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

# For developers

> Consile is a standard remote MCP server. Connect any MCP-compatible client and call the same tools: read-only on the data connectors, read + guardrailed write on connectors like e-conomic, Shopify, HubSpot and LinkedIn Ads.

Consile is a **standard remote MCP server**. If you use Claude or ChatGPT, you
don't need anything in this section. Follow [Connect Claude](/connect/forbind-claude).
This section is for those who want to connect their **own MCP client** or build on
the tools programmatically.

## The short overview

<CardGroup cols={2}>
  <Card title="Transport" icon="server">
    Streamable HTTP (MCP). One endpoint for both JSON-RPC and server→client streaming.
  </Card>

  <Card title="Authentication" icon="key">
    OAuth 2.1, discovered via RFC 9728. Your access token determines which account
    and which connectors you can reach.
  </Card>

  <Card title="Tools" icon="wrench">
    You only get the tools your account is subscribed to. Some connectors
    (Search Console, Uniconta, Dinero) are **read-only**; others (e-conomic,
    Shopify, HubSpot CMS, HubSpot Marketing Email, LinkedIn Ads, Meta Ads) are
    **read + guardrailed write**. See
    [Write tools & guardrails](/developers/write-tools-and-guardrails).
  </Card>

  <Card title="Hosting" icon="location-dot">
    Hosted in the EU. The connector never sees a token your client sent.
  </Card>
</CardGroup>

## Endpoints

Each connector is its **own** named MCP at its own URL; the aggregate `/mcp` is
the **Consile Concierge** (management tools only, no raw connector tools). Your
URLs are shown in the [portal](https://app.consile.ai) under **Konto**.

```
https://mcp.consile.ai/gsc/mcp           # one connector = one URL
https://mcp.consile.ai/uniconta/mcp
https://mcp.consile.ai/economic/mcp
https://mcp.consile.ai/dinero/mcp
https://mcp.consile.ai/shopify/mcp
https://mcp.consile.ai/hubspot/mcp
https://mcp.consile.ai/hubspot-email/mcp
https://mcp.consile.ai/linkedin-ads/mcp
https://mcp.consile.ai/meta-ads/mcp
https://mcp.consile.ai/mcp               # Consile Concierge (management)
```

The method table is the same on every endpoint (`<base>` = a connector URL or `/mcp`):

| Method & path                                        | Purpose                                                                           |
| ---------------------------------------------------- | --------------------------------------------------------------------------------- |
| `POST <base>`                                        | JSON-RPC: `initialize`, `tools/list`, `tools/call`, …                             |
| `GET <base>`                                         | Server→client SSE stream                                                          |
| `GET /.well-known/oauth-protected-resource/<id>/mcp` | RFC 9728 metadata (public) for that connector: points to the authorization server |

Any other method returns `405` with `Allow: GET, POST`.

<Note>
  **Tenancy comes solely from your access token**, never from the URL or from
  tool arguments. A connector endpoint serves ONLY that connector's tools; calling
  `top_queries` against `/mcp` (the Concierge) will not reach Search Console. Your
  access is re-checked on every call. Tools are namespaced as `<id>__<tool>` in the
  transport (e.g. `uniconta__get_account_balance`, `meta-ads__create_campaign`);
  the AI resolves these automatically.
</Note>

<Warning>
  Connector ids match `^[a-z0-9-]+$`, and a few path segments are reserved (`mcp`,
  `.well-known`, `connect`, `api`, `billing`), which is why `/mcp` is the Concierge,
  not a connector.
</Warning>

## What this section covers

<CardGroup cols={2}>
  <Card title="Connect an MCP client" icon="plug" href="/developers/connect-mcp-client">
    From a custom client or via an SDK / mcp-remote.
  </Card>

  <Card title="Authentication" icon="lock" href="/developers/authentication">
    The OAuth flow at the protocol level: discovery, token, scopes.
  </Card>

  <Card title="Write tools & guardrails" icon="shield-halved" href="/developers/write-tools-and-guardrails">
    How the write-capable connectors behave: `WritePreview` dry-runs, the
    `confirm:true` contract, and the PAUSED/DRAFT defaults.
  </Card>

  <Card title="API reference: Google Search Console" icon="magnifying-glass" href="/developers/tools/gsc">
    All seven read-only tools with parameters and examples.
  </Card>

  <Card title="API reference: Uniconta" icon="calculator" href="/developers/tools/uniconta">
    The 19 read-only accounting tools (debtors, creditors, G/L, inventory, `query`).
  </Card>

  <Card title="API reference: e-conomic" icon="file-invoice" href="/developers/tools/economic">
    27 tools: 23 read, 4 guardrailed write (customers + draft invoices).
  </Card>

  <Card title="API reference: Dinero" icon="coins" href="/developers/tools/dinero">
    The 52 read-only tools (accounts, invoices, contacts, vouchers, reports).
  </Card>

  <Card title="API reference: Shopify" icon="shopify" href="/developers/tools/shopify">
    All 50 tools: 40 read, 10 guardrailed write (products, publishing, inventory).
  </Card>

  <Card title="API reference: HubSpot CMS" icon="hubspot" href="/developers/tools/hubspot">
    23 tools: 14 read, 9 guardrailed write (pages, blog, HubDB).
  </Card>

  <Card title="API reference: HubSpot Marketing Email" icon="hubspot" href="/developers/tools/hubspot-email">
    19 tools: 8 read, 11 guardrailed write (drafts free; sending is confirm-gated).
  </Card>

  <Card title="API reference: Meta Ads" icon="meta" href="/developers/tools/meta-ads">
    All 39 tools: 34 read, 5 guardrailed write (read + guardrailed write).
  </Card>

  <Card title="API reference: LinkedIn Ads" icon="linkedin" href="/developers/tools/linkedin-ads">
    All 64 tools: 45 read, 19 guardrailed write (read + guardrailed write).
  </Card>

  <Card title="API reference: Concierge" icon="hexagon" href="/developers/concierge">
    The management tools on `/mcp`.
  </Card>

  <Card title="Errors & limits" icon="triangle-exclamation" href="/developers/errors-and-limits">
    JSON-RPC errors, row limits, data freshness.
  </Card>
</CardGroup>
