Odel
agentpay mcp

agentpay mcp

Local
@up2itnow08225TypeScriptMITUpdated 1w ago

Non-custodial x402 payment MCP server for AI agents. Wallets and payments on 17 chains.

AgentPay MCP

npm CI License: MIT

AgentPay MCP is a stdio Model Context Protocol server for x402 payments and wallet operations. It exposes Agent Wallet SDK functions as MCP tools and loads a caller-controlled signing key from the local process environment.

The current npm package is agentpay-mcp v4.1.17.

Start without funds

Check the installed command without loading wallet credentials:

npx -y agentpay-mcp --version
npx -y agentpay-mcp --help

Use the AgentPay Wallet Starter for a no-funds verification of allowed, approval-required, and blocked policy outcomes.

MCP client configuration

Wallet tools read the following environment variables:

VariableRequired for wallet toolsMeaning
AGENT_PRIVATE_KEYYesLocal hot-wallet signing key
AGENT_WALLET_ADDRESSYesDeployed AgentAccountV2 address
CHAIN_IDNo8453 or 84532; defaults to Base mainnet
RPC_URLNoCaller-selected Base RPC endpoint
FACTORY_ADDRESSFor deploymentWallet factory address
NFT_CONTRACT_ADDRESSFor deploymentToken contract bound to a wallet
SESSION_TTL_SECONDSNoLocal session lifetime in seconds

Example MCP configuration:

{
  "mcpServers": {
    "agentpay": {
      "command": "npx",
      "args": ["-y", "agentpay-mcp"],
      "env": {
        "AGENT_PRIVATE_KEY": "<secret-reference-or-local-key>",
        "AGENT_WALLET_ADDRESS": "0x<deployed-wallet-address>",
        "CHAIN_ID": "84532"
      }
    }
  }
}

Do not commit a real signing key. Use the client or operating system's secret mechanism where one exists. Start on Base Sepolia before using Base mainnet.

Tool groups

The tool registry in src/index.ts exposes these groups:

GroupExamples
Walletdeploy_wallet, get_wallet_info, queue_approval
Paymentssend_payment, x402_pay, x402 session tools
Policyset_spend_policy, check_budget, OTel budget tools
TokensLookup, custom-token registration, balances, and transfers
ExecutionSwap, USDC bridge, and mutual-stake escrow
TrustERC-8004 identity, reputation, and UAID verification
Historyget_transaction_history for wallet contract events

Tool schemas and handlers live under src/tools/.

Security boundaries

These boundaries matter more than the feature list:

  • The server reads AGENT_PRIVATE_KEY into its local Node.js process and uses viem for signing. Protect the process, environment, and MCP client config.
  • set_spend_policy stores policy in the MCP server process. The same agent can call that tool again, and a process restart clears its rolling state.
  • Every current value-moving handler calls the in-process policy check, but this is still application-level enforcement.
  • On-chain limits exist only when the wallet owner configures them directly on AgentAccountV2. set_spend_policy does not write those contract limits.
  • An over-limit transaction is a human gate only when the owner key is kept separate from the agent key.
  • get_transaction_history reads on-chain wallet events. It is not an MCP request log and does not record rejected pre-chain attempts or read-only calls.
  • Runtime wallet configuration currently supports Base mainnet and Base Sepolia. Unsupported chain IDs fail closed in src/utils/client.ts.
  • Swap, bridge, escrow, and payment tools can move funds and consume gas. Test with bounded values and independent wallet limits.

Read docs/security-posture.md for the detailed control map and known limitations.

Technical proof index

The repository keeps deeper interoperability and buyer-safety evidence in versioned documents:

AgentPay pins viem exactly at 2.56.0.

The directory comparison was captured against agentpay-mcp@4.1.9; the package version at the top of this README is the current release.

Verify a clean checkout

npm ci
npm run build
npm run typecheck
npm test
npm run lint
npm run security
npm run smoke:clean-install

The CI workflow is separate from scheduled daily review and repair workflows. A scheduled-review failure is not a product-test result, and a repair success does not replace CI.

Related repositories

Support and disclosure

License

MIT. See LICENSE.