> ## Documentation Index
> Fetch the complete documentation index at: https://docs.zuba.com/llms.txt
> Use this file to discover all available pages before exploring further.

> ## Agent Instructions
> Money amounts are always major-unit decimal strings (e.g. "1000.00"), never floats and never minor units, in every request, response, and webhook payload.
> Authentication is OAuth 2.0 client credentials: exchange the Client ID and Client Secret at the Token URL for a 24-hour JWT and cache it; do not request a token per call.
> Set a unique clientRef on every money-moving request; it is the idempotency key, and retries return the original resource.
> Quotes are single-use, intent-locked, and expire fast: always read expiresAt, consume the quote with the executor matching its intent, and re-quote on expiry instead of retrying.
> Prefer webhooks over polling for payout, order, and deposit status tracking.
> Use the sandbox (api.sandbox.zuba.com) with its deterministic magic values before touching production.

# MCP Server

> Connect Claude Code, Codex, Cursor, VS Code, and other AI coding tools to the Zuba docs over the Model Context Protocol

Zuba exposes a [Model Context Protocol](https://modelcontextprotocol.io) server at `https://docs.zuba.com/mcp` so AI coding tools (Claude Code, Codex, Cursor, VS Code, and others) can search and read these docs directly while you build your integration.

<Info>
  The server is public and read-only: no token, password, or API key. Pointing a tool at the URL alone does not connect it; add the server to your tool's config using the snippets below.
</Info>

## Add to your editor

<Tabs>
  <Tab title="Claude Code">
    Claude Code registers the server for you. Run:

    ```sh theme={"dark"}
    claude mcp add --transport http zuba-docs https://docs.zuba.com/mcp
    ```

    Then confirm it connected:

    ```sh theme={"dark"}
    claude mcp list
    ```
  </Tab>

  <Tab title="Codex">
    Add to `~/.codex/config.toml`:

    ```toml theme={"dark"}
    [mcp_servers.zuba-docs]
    url = "https://docs.zuba.com/mcp"
    ```
  </Tab>

  <Tab title="Cursor">
    Add to `~/.cursor/mcp.json` (global) or `.cursor/mcp.json` (per project):

    ```json theme={"dark"}
    {
      "mcpServers": {
        "zuba-docs": {
          "url": "https://docs.zuba.com/mcp"
        }
      }
    }
    ```
  </Tab>

  <Tab title="VS Code (Copilot)">
    Add to `.vscode/mcp.json`:

    ```json theme={"dark"}
    {
      "servers": {
        "zuba-docs": {
          "type": "http",
          "url": "https://docs.zuba.com/mcp"
        }
      }
    }
    ```
  </Tab>

  <Tab title="Other">
    For a stdio-only client (Windsurf, Cline, Zed, and others), bridge to the remote server with [`mcp-remote`](https://www.npmjs.com/package/mcp-remote):

    ```json theme={"dark"}
    {
      "mcpServers": {
        "zuba-docs": {
          "command": "npx",
          "args": ["-y", "mcp-remote", "https://docs.zuba.com/mcp"]
        }
      }
    }
    ```
  </Tab>
</Tabs>

## Verify it works

Once the server is connected, ask your assistant a question that only the docs can answer, for example:

> Using the zuba-docs MCP server, how do I authenticate and send my first payout?

It should pull the answer straight from these pages (including the money format, `clientRef` idempotency, and quote rules) instead of guessing.
