AgentCard MCP Server

Give your AI agent a real payment method, straight from Claude, Cursor, or any MCP client. The agentcard-mcp server exposes AgentCard's purchase surface as MCP tools: request a card credential for a purchase, choosing the payment source — an AgentCard-issued single-use virtual Visa card by default (instant, amount-capped, live for 7 days), or one of your own connected Visa/Mastercard cards via network tokenization (experimental, passkey-approved per purchase).

Spending is guarded end to end: per-card caps, separate account budgets per payment source, a hard daily ceiling, and KYC verification.

Requirements

Setup

Claude Desktop / Claude Code

Add to your MCP config (claude_desktop_config.json, or claude mcp add agentcard -- npx -y agentcard-mcp for Claude Code):

{
  "mcpServers": {
    "agentcard": {
      "command": "npx",
      "args": ["-y", "agentcard-mcp"]
    }
  }
}

Cursor

Add the same block to .cursor/mcp.json.

Windsurf / Cline / other MCP clients

Same configuration — npx -y agentcard-mcp as the command.

First-time account setup

Your agent can do all of this through the MCP tools, in order:

  1. signup — pass your email; click the magic link it sends.
  2. setup — returns a Stripe URL for you to open and save a payment method (the agent never sees or types your real card). Also provisions your agent email inbox and wallet.
  3. check_identity — new accounts may need KYC; the tool returns a hosted verification URL to complete.

After that, cards issue instantly.

Tools

Account

ToolDescription
get_setup_instructionsUsage instructions for the agent
signupSign up or log in with email (sends magic link)
setupSave a payment method (via a Stripe URL you open), agent email, wallet
check_identityCheck KYC status; returns a verification URL when required
get_limitsShow both spend budgets (issued cards + wallet, connected cards)
request_limit_increaseChange a spend limit — raises are email-approved by the account owner

Purchases

ToolDescription
create_cardIssue a single-use virtual Visa card ($1–$150; decimal totals round up)
list_purchasesList all purchases across both payment sources, with unified statuses
get_card_detailsRe-fetch a live issued card's number/CVV/expiry, or a connected purchase's status
cancel_cardCancel an unused issued card and release its hold immediately
get_3ds_codeCheckout 3DS / verification codes from the last 5 minutes
report_issueReport a problem to AgentCard support

Connected cards (experimental)

ToolDescription
list_sourcesList payment sources: the built-in issued-card source + enrolled cards
connect_cardEnroll one of your own Visa/Mastercard cards (returns a browser URL)
create_connected_purchaseMerchant-scoped purchase on a connected card (returns a passkey-approval URL)
get_purchase_credentialsRetrieve the one-time card credential after you approve (returned exactly once)

A typical purchase

  1. Agent calls get_limits to confirm budget.
  2. Agent calls create_card with the checkout total (e.g. 24.99 → a $25 card).
  3. Agent completes checkout with the returned card number, CVV, expiry, cardholder name (Alchemy Agentcard), and billing address — exactly as returned.
  4. If the merchant asks for a verification code, agent calls get_3ds_code.
  5. Done with the card early? cancel_card releases the hold immediately; otherwise unused holds release within 7 days and you're only ever charged when a merchant actually uses a card.

For the experimental connected-card path: connect_card once (you enter your card in the browser), then create_connected_purchase per purchase — you approve each one with a passkey, and the agent retrieves a one-time, merchant-scoped credential with get_purchase_credentials.

Safety model

Troubleshooting

SymptomFix
Tools return "Not logged in"Run signup again — sessions expire
create_card says no payment methodRun setup and open the returned Stripe URL
KYC verification requiredRun check_identity and complete the returned URL
Over a spend limitget_limits to see which budget tripped; request_limit_increase with that source
Connected enrollment failsThe card may not be supported by Visa Intelligent Commerce yet — use create_card
Anything elsereport_issue with the error details

Links