- Read agents, missions, runs, knowledge, memories, skills, inbox items, approvals and your business data tables.
- Write (when enabled): create and update agents, run missions, save memories and knowledge, upsert data rows, resolve approvals, and more.
Endpoints
A
GET on the main endpoint returns a health object: { ok, mcp_protocol_version, server, version }.
- MCP protocol version:
2025-03-26 - Transport: HTTP POST with JSON-RPC 2.0 bodies (
initialize,tools/list,tools/call)
/api/mcp/v1 under a namespaced name (vertical__vertical_card, vertical__vertical_search, …). You do not need a second connector for them.
Connecting a client
Claude (claude.ai / Claude desktop)
- Settings → Connectors → Add custom connector.
- Enter the URL
https://app.concierca.ch/api/mcp/v1. - Claude opens the Concierca AI consent screen — sign in with your Concierca AI account and approve.
- Done. Claude lists the tools your account is entitled to.
ChatGPT (connectors / custom GPT actions)
Same URL and OAuth flow. Known client quirk: ChatGPT caches the tool list when the connector is created and does not refresh it on reconnect. If tools were added or renamed on the server (comparewhoami.registry_version), delete the connector and create it again to pick up the current tool list.
API-key clients (Claude Code, scripts, custom runtimes)
Create a personal API key in the app (Settings → MCP Access), then send it on every request:Authorization: Bearer <token> is also accepted (this is what OAuth tokens use).
First calls in every session
whoami— identity, role, tenant, departments, and the exact tool surface of this credential.get_context— the Operating-Manual context block (high-importance memories + knowledge) that the in-app chat auto-injects. Over MCP it is pull-only; call it once at session start.guardrails_get— the always-load governance rules. Also pull-only over MCP; fetch once and honor them.
Versioning
- The server does not push
listChangednotifications. Clients freeze the tool list at connect time. whoamireturnsregistry_version, a stable fingerprint of the advertised tool surface. If it differs from the value at connect time, reconnect the client to load the current tool list (ChatGPT: delete + recreate the connector).- Renamed tools keep their old names as permanent aliases — existing keys and clients never break.
tools/listadvertises only the canonical names (see Conventions).
