@tallyforagents/mcp-server — give any MCP-aware AI agent (Claude Desktop, Cursor, Hermes, Cline, Goose) a USDC wallet with scoped spending permissions, no code required.
Use this file to discover all available pages before exploring further.
The Tally MCP server is the easiest way to connect an AI agent to Tally. The agent’s runtime launches the server as a subprocess, discovers four tools (pay_x402_service, pay_direct, list_recent_payments, get_wallet_info), and the LLM can use them like any built-in tool. No SDK calls in your agent code.For agents that don’t speak the Model Context Protocol, see the direct SDK instead.
On first launch, the server auto-creates a Tally agent named mcp-default with no permissions. The agent has the tools but every payment will fail until you grant a wallet.Ask the agent something like “What wallets can you spend from?” — it calls get_wallet_info, sees no permissions, and prints the dashboard URL. Open that URL, click Grant permission, pick a funded wallet, accept the default caps (10/tx,100/day), approve via passkey. Restart the MCP client one more time and you’re done.
Call any HTTP service. If the response is 402 Payment Required (x402 protocol), the server automatically pays via Tally and retries with proof.Use when: the user wants data or a service from a paywalled URL — weather, search, AI models, data feeds, etc.Inputs:
Send USDC from the agent’s wallet to a known recipient address.Use when: the user explicitly names a recipient (a person, contract, or service) at a known address. For paywalled HTTP services, prefer pay_x402_service.Inputs:
Recent transactions for this agent — both outbound payments and inbound deposits.Use when: the user asks “what have I spent?”, “show me my transactions”, or you need to check whether a recent payment confirmed.Inputs:
Param
Type
Required
Notes
limit
integer
no
1–50. Default 10.
status
enum
no
pending / confirmed / failed.
direction
enum
no
inbound / outbound.
Returns an array of payment records under payments[].
The agent’s identity, its wallets, and per-wallet caps.Use when: the user asks “what’s my wallet?”, “what can I spend?”, “what are my limits?”, or before attempting a payment if you’re unsure permissions exist.No inputs.Returns (with permissions):
{ "agent_id": "mcp-default", "status": "no_permissions", "wallets": [], "next_step": "This agent has no spending permissions yet. Visit the dashboard to grant one: https://app.tallyforagents.com/...", "dashboard_url": "..."}
If you’re an LLM helping the user configure this server:
Confirm the user has a Tally account — direct them to tallyforagents.com if not.
Ask for the API key — tly_test_… for testnet. If the user is on Hermes/Claude Desktop, you can write directly to the config file; otherwise output the JSON/YAML block for them to paste.
Tell them to restart the MCP client after editing the config.
Walk through the first-run flow: the agent will exist but have no permissions. The user grants permission via the dashboard URL the agent will print on first tool call.
Don’t auto-spend. When the user first connects, prefer reading tools (get_wallet_info, list_recent_payments) before suggesting any pay_* call. Confirm intent before money moves.