Skip to main content
The Infinite MCP Server allows AI assistants like Claude, Cursor, Codex, and other MCP-compatible tools to interact with your Infinite account. Query API logs, debug errors, explore the API, onboard a business (hosted KYB or capability-driven document upload), create transfers for a bound Connect customer on a platform Connect session (each transfer stays IN_REVIEW until Infinite approves), and — connected with an agent key — pay within that agent’s limits without per-payment ops review.

Overview

The Model Context Protocol (MCP) is an open standard that enables AI assistants to securely access external tools and data sources. The Infinite MCP Server provides:
  • API Log Access: Query your recent API requests and errors
  • Request Debugging: Look up specific requests by ID
  • API Exploration: Make read-only API calls to explore your data
  • Documentation Search: Natural-language search over these docs and the API reference (with snippets), plus full page reads and endpoint schemas
  • Agent onboarding: Create a business customer, start hosted verification, poll status, and ensure a balance account
  • Payments: With a platform Connect organization key or Auth Kit sign-in, create_transfer for a bound customer (forced IN_REVIEW until Infinite ops release). With an agent key, draft and submit payments within the agent’s limits
Assistants should read the Infinite skill first — it’s the full playbook: setup per host, tool reference, rules for moving money, and step-by-step journeys. It’s also served as raw markdown at https://docs.infinite.dev/agent-skill.md.

Getting Started

Endpoint

Sign-in clients use Streamable HTTP:
API-key clients can use the Server-Sent Events transport:

Authentication

Sign in with your Infinite account, or send an API key. Sign in. Add the server URL with no API key. Your assistant opens Auth Kit sign-in. If you already belong to an Infinite organization, the session uses that org. If you are net-new (no org yet), Infinite routes you through Infinite Connect (org_connect) in platform mode: create your business customer, then bind_session_customer so you only see that customer. It uses the production environment. Sandbox access stays on an API key. Agent payment tools stay on an agent key. Self-created organizations awaiting Infinite approval cannot use MCP until approved (organization_pending_approval). API key. Include it as a Bearer token:
The server detects the environment from the key prefix:
  • sk_live_* → Production environment
  • sk_sandbox_* → Sandbox environment
Optional binding header (customer bind):
Header rules:
  • OAuth/Auth Kit sign-in: header is forbidden. Bind with bind_session_customer (use the continuationToken returned by create_business_customer to resume after reconnect).
  • Delegation (in‑app assistant) sessions: header is allowed only when it matches the pinned customer in the delegation token; without a pinned claim it is allowed only for customers owned by the organization.
  • API keys: header is allowed only for customers owned by the organization.
BYO org: use your organization API key to onboard customers under your org (header allowed per rules above). Platform / net-new (Infinite Connect): Net-new businesses onboard under organization id org_connect (slug=connect). OAuth sign-in without an existing org provisions Connect automatically; get_agent_session reports platform mode and connectNetNewAuth: true. Do not paste the shared Connect platform org API key into personal MCP clients. MCP bind_session_customer (and continuationToken after create) scopes bot tools to one customer. Integrators with an existing org: use your BYO org API key or sign in as a member of that org. Platform MCP sessions still require binding a customer before customer-scoped tools. Do not use org_infinite for new Connect onboarding. Customers already on org_infinite remain on that org unchanged. Never paste an unconstrained live organization key into a shared chat. Prefer sandbox keys for demos.

Configuring Your AI Assistant

Sign in. Point the client at https://mcp.infinite.dev/mcp and omit the key. The assistant opens Auth Kit sign-in for your organization, or Infinite Connect for net-new users. API key. Put the key in the Authorization header. Use the host’s native header support where it exists; otherwise bridge with mcp-remote and pass the key with --header. Setting only an environment variable does not send the key. The API-key commands below read the key from INFINITE_API_KEY so it doesn’t end up in your shell history. Export it first (export INFINITE_API_KEY=sk_sandbox_…).

Claude Code

Sign in:
Or send an API key:
Start a new session and run /mcp to confirm infinite is connected.

Cursor

Sign in (no API key) in ~/.cursor/mcp.json (or .cursor/mcp.json in a project):
Or send an API key:

Codex

${AUTH} is single-quoted on purpose: your shell leaves it alone, and mcp-remote substitutes it from the AUTH variable Codex passes to the bridge.

Claude Desktop

Add the following to your Claude Desktop configuration file: macOS: ~/Library/Application Support/Claude/claude_desktop_config.json Windows: %APPDATA%\Claude\claude_desktop_config.json

Other MCP Clients

Point a Streamable HTTP client at https://mcp.infinite.dev/mcp and sign in, or configure an SSE transport to https://mcp.infinite.dev/mcp/sse with Authorization: Bearer <key>.

Verify the connection

Ask the assistant: “What organization am I connected to?” It should call get_organization_info. Only a successful call proves the tools are usable — if they don’t appear, reload the host’s MCP tools or restart it, then try again. To operate as an agent alongside your organization, add a second server (for example infinite-agent) with the agent key.

Docs-only MCP

To search these docs without an Infinite key, connect https://docs.infinite.dev/mcp. It’s read-only and moves no money.

Available Tools

Every code example in these docs has an MCP tab: the prompt to give an assistant connected to this server. Read prompts and dedicated onboarding tools (create_business_customer, start_verification, …) run on MCP. Generic api_request remains GET-only. Agent-key payments run on MCP (see Paying with an agent key). Platform Connect organization-key or Auth Kit sessions can call create_transfer for a bound customer (see Platform Connect transfers). BYO organization keys cannot create transfers on MCP — use an agent key or REST. Other BYO payment writes use the CLI/REST tabs.

get_my_api_errors

Get recent API errors for your organization. Parameters:
  • hours (optional): Hours to look back (default: 24, max: 72)
  • path_pattern (optional): Filter by path pattern
  • limit (optional): Max results (default: 20, max: 50)
Example prompt:
“Show me API errors from the last 6 hours”

get_my_api_logs

Get recent API request logs for debugging. Parameters:
  • hours (optional): Hours to look back (default: 24, max: 72)
  • path_pattern (optional): Filter by path pattern
  • method (optional): Filter by HTTP method (GET, POST, etc.)
  • status_code (optional): Filter by status code
  • limit (optional): Max results (default: 20, max: 100)
Example prompt:
“Show me all POST requests to /v1/customers/individuals in the last hour”

get_request_by_id

Look up a specific API request by request ID. Parameters:
  • request_id (required): The request ID to look up
Example prompt:
“Look up request req_abc123xyz”

search_docs

Search this documentation site and the API reference. Pass the question in natural language — not just keywords. Results include a short snippet so the assistant can answer before opening the full page. Parameters:
  • query (required): The user question or topic (e.g. “How do I fund an Infinite wallet in sandbox?”)
Example prompt:
“Deposit instructions are the same for every onramp and there is no memo — how do I tell deposits apart?“

read_doc

Read a documentation page in full. Parameters:
  • page (required): Page slug, as returned by search_docs (e.g., guides/webhooks)
Example prompt:
“Read the idempotency guide”

get_endpoint_schema

Get the request and response schema for an API endpoint, including required fields. Parameters:
  • method (required): HTTP method (e.g., “POST”)
  • path (required): API path (e.g., “/v1/customers”)
Example prompt:
“What fields are required to create a business customer?“

api_request

Make a read-only GET request to the Infinite API. Parameters:
  • path (required): API path (e.g., “/v1/customers”)
  • query_params (optional): Query parameters as key-value pairs
Example prompt:
“List all my customers with status ACTIVE”

Paying with an agent key

Connect with an agent key (sk_live_agent_… / sk_sandbox_agent_…, issued from Agents) instead of an organization key. The session is pinned to the agent’s customer and funding account, and these tools replace the onboarding tools: Amounts are decimal strings in the agent’s limit currency ("40.00"); the server converts to minor units. Every guardrail — customer, funding account, payee allowlist, per-transfer / daily / monthly caps — is enforced by the API, not by the assistant. Example prompt:
“Pay $40 to Acme Supplies for the June invoice.”
The assistant calls list_payees, then create_transfer (draft), shows you “Send $40.00 from vba_… to Acme Supplies via ACH”, and on your yes calls submit_transfer. If the daily cap is hit it reports the denial and the remaining headroom instead of retrying blindly.

Platform Connect transfers (organization key)

On Infinite Connect (org_connect), a platform MCP session — organization API key (sk_*) or Auth Kit sign-in on a trusted operator host — can call create_transfer for the bound business customer (bind_session_customer or X-Infinite-On-Behalf-Of). The tool creates a real transfer via POST /v1/transfers on the public API. Every such transfer is created in IN_REVIEW and stays there until Infinite operations approve it in the review UI. Customers cannot skip that review; funds do not move on deposit-funded corridors until ops release the transfer (the response may include fundingDirections — do not tell the end user to send deposit funds while status is still IN_REVIEW). Confirm amount, payee, and rail with the user, pass a UUID v4 operationId (reuse only when retrying the same payment), optionally clientReferenceId (your invoice or order reference) and documentIds (doc_… from upload_document), then call create_transfer. Track status with get_transfer / list_transfers. Example prompt:
“Create an ACH payout of $250 to the screened payee eba_… for invoice 1042 for the bound customer.”
The assistant calls create_transfer, returns transferId and IN_REVIEW, and explains that Infinite must approve before the payment proceeds.

get_organization_info

Get information about your authenticated organization. Example prompt:
“What organization am I connected to?”

Agent onboarding tools

Dedicated tools (session API key, not open POST): Draft and submit payments on MCP with an agent key. On platform Connect, organization-key or Auth Kit sessions can also call create_transfer for a bound customer (Platform Connect transfers). Those sessions can discover quotes, create payee/transfer drafts, and read transfer status. BYO organization keys cannot create_transfer on MCP. Example prompt:
“Onboard Acme Corp (acme@example.com, US), request USD_BALANCE, upload the formation docs I have, and tell me when we’re ACTIVE with a balance account.”

Example Conversations

Debugging API Errors

You: “I’m getting 400 errors when creating customers. Can you help me debug?” AI: Uses get_my_api_errors to find recent 400 errors, then uses get_endpoint_schema for POST /v1/customers/individuals and explains which required fields are missing.

Exploring Your Data

You: “Show me my recent transfers and their statuses” AI: Uses api_request to call GET /v1/transfers and summarizes the results.

Understanding the API

You: “How do I verify that a webhook actually came from you?” AI: Uses search_docs to find the webhooks guide, reads it with read_doc, and walks through signature verification.

Rate Limits

The MCP server enforces rate limits per organization:
  • 60 requests per minute per organization
  • Rate limit headers are included in responses

Security

  • Scoped to your organization: You can only access data belonging to your organization
  • API key validation: Keys are validated on every request
  • No sensitive data exposure: API keys and secrets are never returned in responses
  • api_request is GET-only: omitted entirely for platform Connect orgs (along with org-wide log tools); onboarding writes go through dedicated agent tools
  • Customer bind: platform sessions pin tools to one cus_. Bind with bind_session_customer and the continuationToken from create_business_customer. Header rules:
    • OAuth/Auth Kit sign‑in: header is forbidden. Bind with bind_session_customer (use the continuationToken returned by create_business_customer to resume after reconnect).
    • Delegation (in‑app assistant): header is allowed only when it matches the pinned customer in the delegation token; without a pinned claim it is allowed only for customers owned by the organization.
    • API keys (BYO org): header is allowed only for customers owned by your organization.
    • API keys on a platform Connect org (MCP_PLATFORM_ORG_IDS): the platform org owns every Connect customer it operates, so a valid cus_… id alone is sufficient to bind any Connect customer by header. Use on trusted operator hosts only.
  • create_business_customer: pass a secret UUID operationId (crypto.randomUUID()); reuse after reconnect to recover the same customer + continuationToken
  • Sandbox tools are sandbox-only: sandbox_* tools are registered only for sk_sandbox_ sessions and act only on the bound customer’s accounts and transfers
  • Rate limits: platform traffic is limited per SSE session (60/min) with a larger org ceiling (300/min)
  • Hosted KYB: prefer for humans — do not collect identity documents in chat when a verification URL is available; verification status tools return projected progress, not full form schemas. MCP upload_document / upload_rfi_document are allowed when the host supplies files for RFI fulfillment or API KYB substitute (10MB decoded cap).
  • Payments: BYO organization keys cannot create transfers on MCP (use an agent key or REST). Platform Connect organization-key or Auth Kit sessions can create_transfer for a bound customer — each transfer is forced IN_REVIEW until Infinite ops approve. Agent-key sessions draft and submit_transfer within the agent’s customer, funding account, payee allowlist, and spend limits, all enforced by the API without per-payment Infinite approval

Troubleshooting

”Invalid API key” error

Ensure your API key:
  • Starts with sk_sandbox_ or sk_live_ (agent keys: sk_sandbox_agent_ / sk_live_agent_)
  • Is sent in the Authorization header as Bearer <key> — with mcp-remote, pass it via --header, not only an environment variable
  • Has not been revoked (a revoked agent’s key stops working immediately)

“Rate limit exceeded” error

Wait a minute before making more requests. Consider batching your queries.

Connection issues

Verify:
  • Your network can reach https://mcp.infinite.dev/mcp/sse
  • Your MCP client is correctly configured
  • The Authorization header is being sent

Need Help?