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

# MCP: Connect AI assistants

> Give AI assistants like Claude read-only access to your financial data through Synci's Model Context Protocol server.

Synci ships a **Model Context Protocol (MCP)** server, so AI assistants like Claude can answer questions about your finances using live data from your connected accounts. Access is strictly **read-only**: the MCP server cannot create, modify, or delete anything in your Synci account.

```text MCP endpoint theme={"dark"}
https://api.synci.io/mcp
```

## Connecting a client

Add the endpoint above to any MCP client that supports remote servers with OAuth (for example Claude, or other assistants that support MCP connectors). The client discovers Synci's OAuth configuration automatically and registers itself; no manual API keys are involved.

During authorization you will be asked to:

<Steps>
  <Step title="Sign in to your Synci account" />

  <Step title="Approve the permission">
    The assistant requests **"Access your financial data through AI assistants (read-only)"**.
  </Step>

  <Step title="Select which accounts the assistant may see" />
</Steps>

You can revoke the connection at any time from your Synci settings. Connecting requires an active Synci subscription.

## What the assistant can do

| Tool | Returns |
| - | - |
| `list_connections` | Your bank and provider connections and their health status |
| `list_accounts` | Your connected financial accounts (bank, investment, crypto) |
| `get_account_balance` | Recent balance snapshots for one account |
| `list_transactions` | Transactions within a date range |
| `list_holdings` | Investment and crypto positions (symbol, quantity, market value) |

<Note>
  Data reflects the most recent sync from your bank or broker, not real-time values. Sensitive identifiers (IBANs, account numbers, card numbers, owner names) are always omitted from MCP responses.
</Note>

## Security model

The MCP server follows the [MCP authorization specification](https://modelcontextprotocol.io/specification/2025-06-18/basic/authorization), which requires OAuth 2.1 with **Dynamic Client Registration** (RFC 7591). AI clients register themselves at `https://api.synci.io/oauth/register` when you connect them. That endpoint is intentionally open: it is how Claude, ChatGPT and other assistants obtain a `client_id` without a manual approval step, and it is not a vulnerability on its own. What a self-registered client can do is bounded by the controls below.

<AccordionGroup>
  <Accordion title="Scope confinement">
    Every self-registered client is pinned to the single `mcp:use` scope, regardless of what it requests at registration or authorization. That scope grants access to the read-only MCP tools listed above and nothing else. It cannot reach the REST API, the Developer Program surfaces, or any write operation.
  </Accordion>

  <Accordion title="PKCE is mandatory">
    Self-registered clients are public clients (no client secret). The authorization endpoint rejects any request from a public client that does not carry a `code_challenge` with the `S256` method, so an intercepted authorization code cannot be exchanged for a token.
  </Accordion>

  <Accordion title="Redirect URIs are exact-match">
    The `redirect_uri` presented at authorization must exactly match one registered for that client. At registration, redirect URIs must use `https`; plain `http` is accepted only for `localhost` loopback callbacks, and browser-reserved schemes such as `javascript:` or `data:` are refused.
  </Accordion>

  <Accordion title="Consent is never skipped">
    Every self-registered client goes through the Synci consent screen. The screen names the client, shows the exact host that will receive the authorization code, and warns when the assistant is not one we recognise. Curated branding is only applied when the client's redirect host matches a known AI tool, so a client that merely names itself after a known assistant is shown as unrecognised. You also choose which accounts the assistant may see, and an active Synci subscription is required.
  </Accordion>

  <Accordion title="Rate limiting and monitoring">
    Registration is rate-limited per IP, and rejected registrations are reported to our error monitoring.
  </Accordion>

  <Accordion title="Revocation">
    You can disconnect any assistant from your Synci settings at any time. Access tokens expire after one hour and refresh tokens after 30 days.
  </Accordion>
</AccordionGroup>

If you believe you have found a security issue that bypasses one of these controls, contact us at [support@synci.io](mailto:support@synci.io). We do not run a paid bug bounty program.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.