Docs / Agent MCP

Agent Gateway MCP

Claude and Cursor talk to POA through the Agent Gateway. The agent never holds a private key.

1. Get an API token

Create a token in Explorer. Public registration assigns a wallet with read and transfer capabilities. Save the token before funding the wallet: it authorizes operations on that wallet's funds. Registration is rate-limited.

Self-registration does not grant faucet access. Fund the assigned wallet with a POA transfer or the Ethereum bridge. Withdrawals to Ethereum are currently disabled.

2. Check your wallet

curl --fail-with-body -H "Authorization: Bearer $POA_AGENT_TOKEN" \
  https://poa.net/77/agent/v1/network

The response identifies your assigned wallet, capabilities, and request limits. Public REST and wallet JSON-RPC do not require this token.

3. Connect tools

Tools wrap /agent/v1:

  • poa_network — discovery, capabilities, RPC allowlist
  • poa_balance — assigned wallet native USDC
  • poa_faucet — invite faucet; fails closed when disabled
  • poa_transfer — send from the assigned wallet; fails closed when disabled

poa_faucet pays a configured amount of native USDC to this agent’s assigned wallet. You cannot pick the destination or the amount. Quota is per agent, not per address: on 77, one successful payout per 24 hours. The same idempotency key replays the first result without a second credit.

Do not put an EVM_PRIVATE_KEY in the MCP config. Keys stay in 2d-hsm.

{
  "mcpServers": {
    "poa": {
      "command": "node",
      "args": ["/absolute/path/to/poa-web/mcp/agent-gateway/server.mjs"],
      "env": {
        "POA_AGENT_TOKEN": "<your API token>",
        "POA_AGENT_BASE_URL": "https://poa.net/77/agent/v1"
      }
    }
  }
}

Use Node.js 24 or later and the MCP adapter from your poa-web checkout. Replace the example path with its absolute path. Public JSON-RPC remains rpc.poa.net for agents that already have a key. Paying an HTTP resource with native USDC is x402, a separate public surface. See Network.