Koskamo

KushBitx MCP

An official MCP server providing safety checks for AI agents paying on Base, including free SpendGuard policy evaluation and paid transaction preflight, token risk, and payment verification tools.

Endpoint and access

No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.

KushBitx MCP logo, by KushBitxVendor evidenceStreamable HTTPNo sign-inEndpoint checked 2026-11-01Operated by KushBitx
You need:No account or API key.Paid tools use x402 in the Cloudflare Agents paidTool formatKeep its key in a .env file listed in .gitignore , never in code.
MCP endpoint (Streamable HTTP)
https://kushbitx.com/mcp
Vendor documentation

What you can do with it

  • Evaluate USDC spending policies against agent budgets
  • Simulate transactions to get ALLOW, REVIEW, or BLOCK verdicts
  • Screen Base tokens for sellability and market risks
  • Verify Base USDC transfer confirmations

Source and maintenance

Vendor evidenceRegistry 1.0.0

Protocol and capabilities

Server
kushbitx-agentproof 1.0.0
MCP protocol
2025-06-18
Tools
6 advertised
Resources
Not advertised
Resource templates
Not advertised
Prompts
Not advertised
Server-advertised capabilities
{
  "tools": {
    "listChanged": false
  }
}

Server-provided instructions

Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.

Use spendguard_evaluate (free) before an agent pays. Paid tools (quick_check, token_risk, preflight, verify_payment) return an x402 payment requirement in _meta["x402/error"]; retry with _meta["x402/payment"] to receive the report. KushBitx never signs, holds keys or moves funds. INCOMPLETE means missing evidence, never zero risk.

Tools

6 advertised

spendguard_evaluate — SpendGuard policy check
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Free. Check a proposed Base USDC payment against a spending policy you supply (per-transaction limit, daily budget, human-approval threshold, allowed recipients) before money moves. Returns APPROVE, HUMAN_APPROVAL or BLOCK with findings. Advisory only: it never signs, holds keys or moves funds.

spendguard_evaluate input schema
{
  "type": "object",
  "required": [
    "agentId",
    "requestId",
    "chain",
    "asset",
    "recipient",
    "amount",
    "policy"
  ],
  "properties": {
    "asset": {
      "enum": [
        "USDC"
      ],
      "type": "string"
    },
    "chain": {
      "enum": [
        "base"
      ],
      "type": "string"
    },
    "amount": {
      "type": "string"
    },
    "policy": {
      "type": "object",
      "required": [
        "maxPerTransaction",
        "remainingDailyBudget",
        "requireHumanAbove",
        "maxRepeats",
        "allowedRecipients",
        "blockUnknownRecipients"
      ],
      "properties": {
        "maxRepeats": {
          "type": "integer",
          "minimum": 1
        },
        "allowedRecipients": {
          "type": "array",
          "items": {
            "type": "string",
            "pattern": "^0x[a-fA-F0-9]{40}$"
          }
        },
        "maxPerTransaction": {
          "type": "string"
        },
        "requireHumanAbove": {
          "type": "string"
        },
        "remainingDailyBudget": {
          "type": "string"
        },
        "blockUnknownRecipients": {
          "type": "boolean"
        }
      },
      "additionalProperties": false
    },
    "agentId": {
      "type": "string"
    },
    "context": {
      "type": "object",
      "properties": {
        "repeatCount": {
          "type": "integer",
          "minimum": 0
        },
        "agentProofDecision": {
          "enum": [
            "ALLOW",
            "WARN",
            "BLOCK",
            "INCOMPLETE",
            "UNKNOWN"
          ],
          "type": "string"
        }
      },
      "additionalProperties": false
    },
    "recipient": {
      "type": "string",
      "pattern": "^0x[a-fA-F0-9]{40}$"
    },
    "requestId": {
      "type": "string"
    }
  },
  "additionalProperties": false
}
spendguard_evaluate annotations
{
  "title": "SpendGuard policy check",
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
quick_check — Quick Check
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Fast pre-payment sanity check for agents on Base: confirms the RPC reports Base mainnet (chain ID 8453) and that the official USDC contract has deployed code. No request body. Returns PASS or FAIL with both checks and a timestamp. It is not a token-risk report, transaction simulation or payment proof. Paid tool: 0.001 USDC per call on Base via x402 (exact scheme). An unpaid call returns the payment requirement and charges nothing.

quick_check input schema
{
  "type": "object",
  "properties": {},
  "additionalProperties": false
}
quick_check annotations
{
  "title": "Quick Check",
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
token_risk — Token Risk
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Token-risk report for one Base ERC-20 contract. Checks whether the token can be sold (honeypot simulation), buy/sell/transfer tax, owner privileges (mint, pause, blacklist, balance changes, proxy upgrades), holder concentration and DEX liquidity. Returns ALLOW, WARN, BLOCK or INCOMPLETE with scored findings and per-check coverage. INCOMPLETE means required evidence was unavailable, never zero risk. Read-only: never signs or trades. Paid tool: 0.001 USDC per call on Base via x402 (exact scheme). An unpaid call returns the payment requirement and charges nothing.

token_risk input schema
{
  "type": "object",
  "required": [
    "chain",
    "address"
  ],
  "properties": {
    "chain": {
      "enum": [
        "base"
      ],
      "type": "string",
      "description": "Blockchain network."
    },
    "address": {
      "type": "string",
      "pattern": "^0x[a-fA-F0-9]{40}$",
      "description": "Base token contract address."
    }
  },
  "additionalProperties": false
}
token_risk annotations
{
  "title": "Token Risk",
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
preflight — Transaction Preflight
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Simulate one unsigned Base transaction before an agent signs it. Runs eth_call and gas estimation on current chain state, decodes the intent (ERC-20 transfer, approve, NFT setApprovalForAll), flags unlimited approvals, calldata sent to a non-contract, zero-address targets, reverts and destination risk labels such as phishing or sanctions. Returns ALLOW, WARN, BLOCK or INCOMPLETE with findings. No key or signed transaction is requested. Paid tool: 0.001 USDC per call on Base via x402 (exact scheme). An unpaid call returns the payment requirement and charges nothing.

preflight input schema
{
  "type": "object",
  "required": [
    "chain",
    "to"
  ],
  "properties": {
    "to": {
      "type": "string",
      "pattern": "^0x[a-fA-F0-9]{40}$",
      "description": "Transaction destination."
    },
    "data": {
      "type": "string",
      "pattern": "^0x([a-fA-F0-9]{2})*$",
      "description": "Unsigned calldata."
    },
    "from": {
      "type": "string",
      "pattern": "^0x[a-fA-F0-9]{40}$",
      "description": "Optional sender used for simulation."
    },
    "chain": {
      "enum": [
        "base"
      ],
      "type": "string"
    },
    "valueWei": {
      "type": "string",
      "pattern": "^[0-9]+$",
      "description": "Native ETH value in wei."
    }
  },
  "additionalProperties": false
}
preflight annotations
{
  "title": "Transaction Preflight",
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
verify_payment — Payment Proof
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Verify one Base USDC payment onchain before an agent releases goods or credit. Reads the transaction receipt and checks the official USDC Transfer logs against the expected recipient, amount and optional sender. Returns VERIFIED, MISMATCH, FAILED or PENDING_OR_NOT_FOUND with block number, confirmations, the matching transfer and a Basescan link. Read-only: never moves funds. Paid tool: 0.00288 USDC per call on Base via x402 (exact scheme). An unpaid call returns the payment requirement and charges nothing.

verify_payment input schema
{
  "type": "object",
  "required": [
    "chain",
    "txHash",
    "expectedTo",
    "expectedAmount"
  ],
  "properties": {
    "chain": {
      "enum": [
        "base"
      ],
      "type": "string"
    },
    "txHash": {
      "type": "string",
      "pattern": "^0x[a-fA-F0-9]{64}$"
    },
    "expectedTo": {
      "type": "string",
      "pattern": "^0x[a-fA-F0-9]{40}$"
    },
    "expectedFrom": {
      "type": "string",
      "pattern": "^0x[a-fA-F0-9]{40}$"
    },
    "expectedAmount": {
      "type": "string",
      "pattern": "^[0-9]+(\\.[0-9]{1,6})?$",
      "description": "Expected USDC amount."
    }
  },
  "additionalProperties": false
}
verify_payment annotations
{
  "title": "Payment Proof",
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
kushbitx_preflight — KushBitx Preflight
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

One check before money moves on Base. Simulates the unsigned transaction, decodes approvals and transfers, screens the token and the recipient or spender, and applies a protected SpendGuard policy when given. Returns ALLOW, REVIEW or BLOCK with sourced findings. Fail-closed: no ALLOW unless every check ran. Does not detect prompt injection; use Protected SpendGuard for that. Paid tool: 0.005 USDC per call on Base via x402 (exact scheme). An unpaid call returns the payment requirement and charges nothing.

kushbitx_preflight input schema
{
  "type": "object",
  "required": [
    "chainId",
    "to"
  ],
  "properties": {
    "to": {
      "type": "string",
      "pattern": "^0x[a-fA-F0-9]{40}$",
      "description": "Transaction destination (contract or wallet)."
    },
    "data": {
      "type": "string",
      "pattern": "^0x([a-fA-F0-9]{2})*$",
      "description": "Unsigned calldata."
    },
    "from": {
      "type": "string",
      "pattern": "^0x[a-fA-F0-9]{40}$",
      "description": "Wallet that will sign. Required in practice: without it the verdict is REVIEW (sender_unknown), because the transaction cannot be simulated from the signing wallet."
    },
    "value": {
      "type": "string",
      "pattern": "^[0-9]+$",
      "description": "Native ETH value in wei."
    },
    "amount": {
      "type": "string",
      "pattern": "^[0-9]+(\\.[0-9]{1,18})?$",
      "description": "Amount in token units, for the record."
    },
    "intent": {
      "enum": [
        "swap",
        "transfer",
        "approve",
        "buy_token",
        "contract_call"
      ],
      "type": "string",
      "description": "What the agent means to do."
    },
    "policy": {
      "type": "object",
      "required": [
        "policyId",
        "agentId",
        "requestId"
      ],
      "properties": {
        "agentId": {
          "type": "string"
        },
        "policyId": {
          "type": "string"
        },
        "requestId": {
          "type": "string"
        }
      },
      "description": "Protected SpendGuard policy (send the agent key as Authorization: Bearer). Base USDC transfers only.",
      "additionalProperties": false
    },
    "chainId": {
      "enum": [
        8453
      ],
      "type": "integer",
      "description": "Base mainnet."
    },
    "minAmountOut": {
      "type": "string",
      "pattern": "^[0-9]+(\\.[0-9]{1,36})?$",
      "description": "Swap: smallest acceptable output, in token units (for example 25.5)."
    },
    "tokenAddress": {
      "type": "string",
      "pattern": "^0x[a-fA-F0-9]{40}$",
      "description": "Token to screen, when it is not the transaction destination (for example the token being bought)."
    },
    "expectedTokenOut": {
      "type": "string",
      "pattern": "^0x[a-fA-F0-9]{40}$",
      "description": "Swap: token the swap must deliver; 0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE for native ETH. For buy_token, tokenAddress is used when this is absent."
    },
    "expectedRecipient": {
      "type": "string",
      "pattern": "^0x[a-fA-F0-9]{40}$",
      "description": "Swap: who must receive the output. Default: from."
    }
  },
  "additionalProperties": false
}
kushbitx_preflight annotations
{
  "title": "KushBitx Preflight",
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}

Prompts

Not advertised

No prompt definitions available.

Resources

Not advertised

No resource definitions available.

30-day availability

Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.

Successful checks
1 of 1 (100%)
Average latency
364 ms
95th percentile latency
364 ms

Maintenance history

Public check and source-refresh events. Editorial and ownership records remain private.

  • · probe · passed · 364 ms · metadata changed · 6 tool(s)

Connect from your client

Each snippet registers the same endpoint; pick the client you use.

This server is operated by the named third party. Listing and endpoint checks are not an endorsement or a security audit. Review the operator's permissions, terms, and data handling before connecting. How listings are checked and corrected.

Claude Code

Run this once in a terminal. It registers the remote server. Use --scope project to write .mcp.json for the repo.
Claude Code configuration
claude mcp add --transport http kushbitx-mcp https://kushbitx.com/mcp

Codex

Run this once. Codex stores MCP servers in ~/.codex/config.toml (or .codex/config.toml in a trusted project).
Codex configuration
codex mcp add kushbitx-mcp --url https://kushbitx.com/mcp

Cursor

Merge this server into .cursor/mcp.json in your project, then enable kushbitx-mcp in your MCP settings.
Cursor configuration
{
  "mcpServers": {
    "kushbitx-mcp": {
      "url": "https://kushbitx.com/mcp"
    }
  }
}

Cline

Merge this into cline_mcp_settings.json (Cline → MCP Servers → Configure).
Cline configuration
{
  "mcpServers": {
    "kushbitx-mcp": {
      "type": "streamableHttp",
      "url": "https://kushbitx.com/mcp",
      "disabled": false
    }
  }
}

VS Code

Merge this server into .vscode/mcp.json. Use MCP: List Servers to start kushbitx-mcp and inspect its tools.
VS Code configuration
{
  "servers": {
    "kushbitx-mcp": {
      "type": "http",
      "url": "https://kushbitx.com/mcp"
    }
  }
}

Gemini CLI

Run this once. It writes .gemini/settings.json in the current project; pass --scope user for ~/.gemini/settings.json.
Gemini CLI configuration
gemini mcp add --transport http kushbitx-mcp https://kushbitx.com/mcp

Claude Desktop

Merge this into claude_desktop_config.json (macOS: ~/Library/Application Support/Claude/, Windows: %APPDATA%\Claude\), then restart Claude Desktop.
Claude Desktop configuration
{
  "mcpServers": {
    "kushbitx-mcp": {
      "url": "https://kushbitx.com/mcp"
    }
  }
}

Windsurf

Merge this into ~/.codeium/windsurf/mcp_config.json, then refresh MCP in Cascade. Windsurf remote servers use serverUrl, not url.
Windsurf configuration
{
  "mcpServers": {
    "kushbitx-mcp": {
      "serverUrl": "https://kushbitx.com/mcp"
    }
  }
}

Let your agent find its tools

Find servers like KushBitx MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.

Do you run KushBitx MCP?

Prove ownership with a DNS record, a well-known file, or your Official MCP Registry entry, and your edits publish immediately. Proofs are re-checked weekly; admins can still hide or remove a listing.

Claim this listing