MCP server
Engadin exposes the workspace as a Model Context Protocol server, so an AI assistant of yours (Claude, an MCP Inspector, your own agent) can do what you can do in the dashboard: read conversations, leads, analytics and gaps, and change what your role lets you change. It acts as you, with exactly your role; what the dashboard refuses you, the MCP server refuses too.
Choose your address
Section titled “Choose your address”There are two addresses. Both sign you in the same way and can do exactly what your role can do; they differ in how the tools are shaped.
| For AI assistants (recommended) | For automation tools | |
|---|---|---|
| Address | https://engadin.ai/api/mcp | https://engadin.ai/api/mcp?tools=direct |
| For | Claude, ChatGPT and other assistants that reason | n8n, Zapier, Make, fixed scripts |
| Tools | Always four: search, query, execute, confirm_action | One tool per action, with plain fields |
| How it is used | The assistant looks up what it can do and writes a short script | Pick a tool and fill in its fields |
| When Engadin adds something | Usable at once, the tool list never changes | It appears as a new tool |
| Permissions | search, query: Always allow. execute, confirm_action: Ask | Per tool |
| Limit the list | Not needed | Add &ops=list_leads,get_conversation |
Rule of thumb: an assistant that reasons uses /api/mcp; a workflow that
calls a fixed action uses /api/mcp?tools=direct, ideally with &ops=.
Connecting
Section titled “Connecting”Two ways, both configured on Developers → MCP.
Full OAuth 2.1 with dynamic client registration, PKCE and refresh tokens. An MCP host that speaks OAuth — claude.ai, the MCP Inspector — needs only the endpoint URL; it discovers the rest:
https://engadin.ai/.well-known/oauth-protected-resourcehttps://engadin.ai/.well-known/oauth-authorization-serverYou approve the connection once, in the browser, signed in as yourself. The resulting access is scoped to your workspace and your role.
- claude.ai, Claude Desktop, mobile: Settings > Connectors > Add custom
connector, paste
https://engadin.ai/api/mcp, leave the token field empty. - Claude Code:
claude mcp add --transport http engadin https://engadin.ai/api/mcp - Other assistants: add the same URL as a remote MCP server with OAuth.
- n8n, Zapier, Make: use
https://engadin.ai/api/mcp?tools=direct(with&ops=for the actions the workflow needs) and OAuth2 credentials, or a bearer token. Tools that delete or send have aconfirmfield that must betrue.
Bearer token
Section titled “Bearer token”For hosts that do not do OAuth, mint a token on the MCP page and send it:
Authorization: Bearer <mcp token>On /api/mcp the server has four tools, whatever your role. The assistant
finds what it can do with search, then writes a short script that calls
those operations. On /api/mcp?tools=direct each operation below is a tool
of its own.
| Tool | Does | Recommended permission |
|---|---|---|
search | Who you are, and the operations you can use, with their signatures. | Always allow |
query | Runs a script that only reads. | Always allow |
execute | Runs a script that may change things. Supports a dry run. | Ask |
confirm_action | One delete, send or other final action, after you agreed. | Ask |
Scripts run in an isolated sandbox with no network access. Every call inside them is checked against your role one by one, so a script can never reach more than you could by clicking.
Safeguards:
- Intent: every
executerun starts with one sentence saying what it changes. Claude shows it when asking for your approval. - At most 10 changes per run. For more, the assistant first does a dry run that lists every planned change, then runs the same script with an explicit limit.
- Confirmation: deletes and anything that leaves Engadin go through
confirm_action(or theconfirmfield on the direct address). - Audit: every call is logged, and changes appear in the audit log marked “via MCP”.
- Disconnect: revoke any token or OAuth connection on Developers > MCP.
Some of the operations:
| Operation | Does |
|---|---|
list_agents | Your agents with id, name, website and status. |
get_stats, get_analytics | Counts, and conversations and leads by day, country and language. |
list_conversations, get_conversation, search_conversations | Conversations, full transcripts, substring search. |
list_leads | Captured leads, newest first. |
list_content_gaps, get_content_gap_briefing | Questions answered on weak evidence, and a writing brief for one. |
get_crawler_status, trigger_crawl | Index status, and a re-crawl now. |
get_agent_settings, update_agent_settings | An agent’s settings (admins). |
create_source, update_source, delete_source | Knowledge snippets (admins; deleting needs confirmation). |
get_admin_route, run_admin_route | Anything else the dashboard can do, as you. |
Most operations take an optional agent id; without one they cover every agent you can see. A token locked to one agent only ever sees that agent.
Configuring a client
Section titled “Configuring a client”For an MCP host that reads a JSON config:
{ "mcpServers": { "engadin": { "url": "https://engadin.ai/api/mcp" } }}Hosts that support OAuth will prompt you to authorize on first use. Hosts that do not will need the bearer token added the way that host expects.
What it is good for
Section titled “What it is good for”- “Has anyone asked about X?”:
search_conversationsanswers in seconds what scrolling the inbox does not. - Weekly content planning:
list_content_gapsplusget_content_gap_briefingproduces briefs your writers can work from. - After a launch:
trigger_crawl, thenget_crawler_status, then ask the agent the questions the new pages should answer.
What it will not do
Section titled “What it will not do”It will not issue or rotate credentials (MCP tokens and API keys are created
in the dashboard only), and it will not run anything your role cannot. Deletes
and anything that leaves Engadin (emails, webhooks) always go through
confirm_action, so your client asks you first. An organization owner can
switch MCP changes off entirely; reading keeps working.