If you use Claude, ChatGPT or Microsoft 365 Copilot, use the customer guides instead:
Connect Claude,
Connect ChatGPT or
Microsoft 365 Copilot (a pilot, e-conomic
only). This page is for your own clients.
Option 1: an MCP-aware client
Clients that already speak MCP (e.g. desktop AI apps with custom connectors) only need a connector’s URL from the portal. Each connector is its own endpoint, and/mcp is the Concierge. The client discovers the
authorization server itself, takes you through login, and stores your token.
Claude Code
Add each connector as its own HTTP server. On the connector page in the portal, Kopiér Claude Code-kommando copies the command:/mcp in Claude Code to sign in. Use one name per connector, e.g.
consile-economic for https://mcp.consile.ai/economic/mcp.
Option 2: mcp-remote (stdio → remote bridge)
Clients that can only run local stdio servers can bridge to Consile withmcp-remote. It opens the browser for OAuth the first time and caches your token.
Add one entry per connector:
Option 3: programmatically via an MCP SDK
Use an official MCP SDK with a Streamable HTTP transport and an OAuth provider. Once connected, the flow is the standard MCP handshake:1
initialize
Negotiate protocol version and capabilities. A connector endpoint reports its
server name as
Consile · <connector name>. The result can carry instructions
(see Protocol notes).2
tools/list
Fetch the tools available to you on this endpoint. On a connector endpoint you get
that connector’s tools when your organization subscribes (otherwise none), plus
connect_account (not on CVR). On e-conomic and Uniconta a read-only access level hides the
write tools. Calls also require a seat assigned to your user; see
Authentication. On /mcp you
always get the seven Concierge tools.3
tools/call
Call a tool with its arguments. See the
API reference.
Example: raw JSON-RPC
Atools/call request over POST /gsc/mcp (abbreviated; the
Authorization: Bearer <token> header is omitted here). gsc__top_queries is a
GSC tool, so it goes to the GSC endpoint, not the aggregate /mcp. Tool names on
a connector endpoint are namespaced <id>__<tool>:
content holds one
text block with the payload as JSON, and structuredContent holds the same payload as
an object:
isError: true and a text block instead of a
JSON-RPC error; see Errors & limits.
The connect_account tool
Besides the connector’s own tools, tools/list on every connector endpoint except
CVR (which needs no connection) includes one extra tool, connect_account. The tool
is not namespaced and takes no arguments. It returns
{ "connect_url": "…", "instructions": "…" }, a link the user opens in a browser to
connect the provider account for the whole organization. The link expires after
10 minutes. It only works for a connector the organization subscribes to, and it does
not count as usage. On Shopify the tool is listed, but the link fails because Shopify
needs the shop domain first; connect Shopify in the portal instead. On the Concierge
endpoint /mcp the same tool takes a required connector argument, for example
"gsc"; see Concierge.
Protocol notes
- Headers: send
Content-Type: application/jsonandAccept: application/json, text/event-streamon every POST. Without both Accept types the server answers406, and with another Content-Type it answers415. A response may arrive as an SSE stream (text/event-stream) whosedata:line carries the JSON-RPC response. - Stateless: the server does not issue an
Mcp-Session-Idand sends no server-initiated notifications (nonotifications/tools/list_changed). Calltools/listagain to pick up a new subscription or a changed access level. In chat clients that means starting a new conversation. - Keep-alive: while a tool call is still running on an SSE response stream, the
server sends an SSE comment line (
: keepalive) about every 25 seconds. Ignore it. initializeinstructions: on a connector endpoint, theinitializeresult can includeinstructionsthat explain why the signed-in user has no or limited access (no subscription, no seat, a read-only access level or a reduced set of tools). Show them or pass them to the model.- Browser clients: requests with an
Originheader other thanhttps://mcp.consile.aiare rejected with403, and the MCP endpoints send no CORS headers. Connect from a server-side process, a desktop app or throughmcp-remote. - Limits: request bodies up to 256 KiB (larger bodies get
400). Requests are rate limited per account and connector endpoint. On429, wait for theRetry-Afterheader (1 second) and retry. Current limits are in Errors & limits.
If you call a connector endpoint without a valid token, you get
401 with a
WWW-Authenticate header pointing to the endpoint’s metadata document. That’s the
normal starting point for OAuth. See Authentication.