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

# Connect MCP Clients

> Connect Cursor and Claude in one click, or configure VS Code, Codex, and any other MCP-compatible client to the DualEntry MCP server.

Connect an MCP-compatible AI client to DualEntry and ask it a real question about your accounting data. By the end, your assistant will be able to look up records on your behalf.

The server is remote and hosted by DualEntry. You don't install anything locally, and there are no API keys to manage: point your client at one URL and sign in with your DualEntry credentials.

| Property       | Value                                    |
| -------------- | ---------------------------------------- |
| Server URL     | `https://api.dualentry.com/mcp/`         |
| Transport      | Streamable HTTP                          |
| Authentication | OAuth 2.1 (browser sign-in, no API keys) |

<Note>
  Your MCP permissions match your DualEntry role. If you cannot see something in the dashboard, you cannot see it through MCP either.
</Note>

## Fast setup

Cursor and Claude both connect in under a minute, with nothing to copy or paste.

### Cursor

Choose the button below to install the DualEntry MCP server in Cursor with one click. Cursor opens an install prompt, then a browser window to sign in with your DualEntry credentials.

<a href="cursor://anysphere.cursor-deeplink/mcp/install?name=dualentry&config=eyJ1cmwiOiJodHRwczovL2FwaS5kdWFsZW50cnkuY29tL21jcC8ifQ==">
  <img src="https://cursor.com/deeplink/mcp-install-dark.svg" alt="Add DualEntry MCP server to Cursor" height="32" />
</a>

If the button does not open Cursor, use the [Cursor (manual)](#connect-other-clients) tab below to add the server manually.

### Claude

DualEntry is in Anthropic's connector directory. Search for it, sign in, and you are connected. This is the recommended path on Claude for web, desktop, and mobile.

1. Open Claude and go to **Customize > Connectors**.
2. Choose **Add**, then **Browse connectors**.
3. Search for **DualEntry** and select the verified listing.
4. Choose **Connect** and sign in with your DualEntry credentials in the browser window that opens.

On Team and Enterprise plans, an Owner adds the connector once under **Organization settings > Connectors** before members can see it, and each member then authenticates individually. The full walkthrough, including the Owner approval step and troubleshooting, is in [Claude Connector Directory: Connect DualEntry](./connect-claude-from-the-connector-directory).

The directory listing is the same server described in the table above, so the tools and permissions you get are identical either way.

If your organization does not allow directory connectors, use the [Claude.ai (custom)](#connect-other-clients) tab below instead.

## Connect other clients

Every other MCP-compatible client connects with a short copy-paste configuration, including manual fallbacks for Cursor and Claude if the fast paths above don't apply. Each tab below includes a copy-paste-ready configuration; every client connects to the same server URL and uses the same browser-based sign-in.

<Tabs>
  <Tab title="Cursor (manual)">
    **One-click:** use the [Cursor](#cursor) button above.

    **Manual:** open **Cursor Settings > MCP > Add new MCP server**, or add the server to your `mcp.json` file:

    ```json theme={null}
    {
      "mcpServers": {
        "dualentry": {
          "url": "https://api.dualentry.com/mcp/"
        }
      }
    }
    ```

    After saving, Cursor opens a browser window to sign in with your DualEntry credentials.
  </Tab>

  <Tab title="Claude.ai (custom)">
    Use [the connector directory](#claude) unless your organization does not allow directory connectors. The steps below add the same server as a custom connector instead.

    Connectors require a Claude Pro, Max, Team, or Enterprise plan. On Team and Enterprise plans, only Owners can add connectors; members can then authenticate with a connector an Owner has already added.

    1. Open [claude.ai](https://claude.ai) and go to **Customize > Connectors** (Owners on Team and Enterprise plans use **Organization settings > Connectors** instead).
    2. Choose **Add**, then **Add custom connector**.
    3. Enter the URL: `https://api.dualentry.com/mcp/` and confirm.
    4. Complete the authentication prompt in your browser.
  </Tab>

  <Tab title="Claude Code">
    Add the server from your terminal:

    ```bash theme={null}
    claude mcp add --transport http dualentry https://api.dualentry.com/mcp/
    ```

    The first time you use a DualEntry tool, Claude Code opens a browser window for sign-in.
  </Tab>

  <Tab title="VS Code">
    VS Code (with GitHub Copilot) supports remote MCP servers. Add the server to your `.vscode/mcp.json` file:

    ```json theme={null}
    {
      "servers": {
        "dualentry": {
          "type": "http",
          "url": "https://api.dualentry.com/mcp/"
        }
      }
    }
    ```

    Reload the window, then start the server from the **MCP: List Servers** command. VS Code opens a browser window to authenticate.
  </Tab>

  <Tab title="OpenAI Codex">
    Add the server from the Codex CLI, then sign in:

    ```bash theme={null}
    codex mcp add dualentry --url https://api.dualentry.com/mcp/
    codex mcp login dualentry
    ```

    `codex mcp login` opens a browser window for the DualEntry sign-in. The equivalent entry in `~/.codex/config.toml` is:

    ```toml theme={null}
    [mcp_servers.dualentry]
    url = "https://api.dualentry.com/mcp/"
    ```
  </Tab>

  <Tab title="Other clients">
    Any MCP client that supports Streamable HTTP transport and OAuth 2.1 can connect using the server URL:

    ```text theme={null}
    https://api.dualentry.com/mcp/
    ```

    Refer to your client's documentation for how to add a remote MCP server. When you connect for the first time, your client opens a browser window for you to sign in with your DualEntry credentials.
  </Tab>
</Tabs>

## Confirm it worked

Ask your assistant a question that requires live data, for example:

> *"Show me all invoices from last month over \$5,000"*

A working connection returns real results from your organization. If your assistant says it has no access to DualEntry, revisit the [client setup](#connect-other-clients) step above for your specific client, or [the directory steps](#claude) if you are on Claude.

<Warning>
  If your assistant responds but says access is denied, your DualEntry role is missing a required permission rather than the connection being broken. See [Permissions](./mcp-integration#permissions).
</Warning>

## Next steps

* **[Claude Connector Directory: Connect DualEntry](./connect-claude-from-the-connector-directory)**: the full directory walkthrough, including Team and Enterprise Owner approval.
* **[MCP Reference](./mcp-integration)**: the full tool catalog, permissions by tool, and troubleshooting.
* **[Post a Period-End Accrual from Claude](./post-a-period-end-accrual-from-claude)**: a worked example that writes back to the ledger with `save_record`.
* **[Authentication](../../../developers/guides/authentication)**: how DualEntry secures API and MCP access.
* **[DualEntry Public API](../../../developers/guides/index)**: the REST API behind the same accounting data.
