AI CONNECTIONS · MCP

Connect your AI assistant.

Find payments, check balances and create invoices through your own Wholly Crypto installation.

Your server. One MCP URL.

Included in merchant 5.0.0+. No extra daemon, Node.js runtime or hosted relay. Use the installation’s configured API domain, for example https://api.example.com/mcp.

  1. Open Settings → API access. Create a dedicated credential and assign the projects your assistant needs. Start read-only.
  2. In AI connections · MCP, enable MCP. Select your credential, choose Read only and save.
  3. Add the displayed URL to your assistant’s remote HTTP/MCP settings.
  4. For OAuth, sign in to your merchant console. Review the client name, return address and credential permissions, then approve. Your existing Basic Auth and TOTP still apply.
{
  "mcpServers": {
    "whollycrypto": {
      "url": "https://api.example.com/mcp"
    }
  }
}

Replace the example domain. Configuration formats vary by client; choose Streamable HTTP, not a local command or legacy SSE URL.

Ask about your payments.

  • “Show the latest unpaid invoices for my store.”
  • “Which assets can this store accept?”
  • “Check wallet balances and failed webhook deliveries.”
  • “Create a 25 EUR invoice for order 1042.” Requires invoice-creation permission.

Eight read tools cover projects, stores, payment methods, wallets, invoices, delivery history and cached conversions. An optional ninth tool creates invoices using the existing API rules.

Results include project and store IDs. Amounts stay decimal strings. Cached rates and balances retain their freshness information; a conversion is not a guaranteed invoice quote.

Choose what the assistant can access.

MCP is off by default, including after an upgrade. Existing API keys do not gain access automatically. The assistant only sees approved projects; IP restrictions and the credential’s REST rate limit also apply to MCP.

To create invoices, select a read/write credential and Read + create invoices. OAuth clients must request mcp:invoice:create, and you must check Also allow invoice creation during approval.

Reuse the same idempotency_key and invoice body after a timeout. A new key creates a new invoice. Normal spread, tolerance, payment and credit rules still apply.

No key exports or money-sending tools. MCP cannot reveal recovery phrases, send funds, sweep, refund, resend callbacks or change accounts, domains and billing.

OAuth, bearer keys and revocation

OAuth access tokens last 15 minutes. Refresh tokens rotate and the connection lasts up to 30 days. Replaying an old refresh token revokes the connection. Only registered HTTPS or loopback return URLs are accepted.

Use Connected clients → Revoke to remove access. Disabling MCP revokes OAuth connections. Credential rotation, MCP policy changes and canonical API-domain changes require a new connection.

Clients with custom-header support can use an MCP-enabled API key in Authorization: Bearer …. That key keeps its separate REST permissions, so prefer OAuth for MCP-only access. Never paste secrets into chat, URLs or source code.

Only approve a client you recognize. Client names are not verified. Your AI provider receives the information you authorize it to read, including customer data returned by invoice tools.

If a connection fails.

  • 404: enable MCP and use the API host, not the console or checkout host.
  • 401: reconnect with OAuth or check that your bearer credential is valid.
  • 403: check credential access, approved projects, origin and source-IP restrictions.
  • 405 on GET: expected. This stateless endpoint uses POST and finite JSON responses, without a standalone SSE stream.
  • 429: wait for Retry-After. MCP and REST share the credential quota.
  • Cannot create invoices: check all write permissions, project/store status, payment readiness and credit-account verification.

Keep Cloudflare caching and interactive challenges off for /mcp, /mcp/oauth/* and OAuth discovery paths. IP allowlists must include the assistant service’s documented egress addresses.

Supported protocol revisions: 2025-11-25, 2025-06-18 and 2025-03-26. The client must support one of these. See the API reference for every tool, endpoint and error format.

Choose payment methods per invoice.

Use invoice.payment_methods with chain_slug: "ethereum" and asset_tickers: ["USDC", "USDT"]. Find slugs and tickers under the store’s Payment methods or with list_payment_methods.

Merchant 5.4.0+ ignores inactive or unaccepted choices. If none match, store defaults apply. Chain-only includes all active accepted assets. Shared tickers need exact asset_ids. Readiness and rate checks still apply, with chain-specific errors. Lightning is separate; an empty selection array is invalid. Request format →