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 allowlistpoa_balance— assigned wallet native USDCpoa_faucet— invite faucet; fails closed when disabledpoa_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.