Skip to content

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.

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
Addresshttps://engadin.ai/api/mcphttps://engadin.ai/api/mcp?tools=direct
ForClaude, ChatGPT and other assistants that reasonn8n, Zapier, Make, fixed scripts
ToolsAlways four: search, query, execute, confirm_actionOne tool per action, with plain fields
How it is usedThe assistant looks up what it can do and writes a short scriptPick a tool and fill in its fields
When Engadin adds somethingUsable at once, the tool list never changesIt appears as a new tool
Permissionssearch, query: Always allow. execute, confirm_action: AskPer tool
Limit the listNot neededAdd &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=.

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-resource
https://engadin.ai/.well-known/oauth-authorization-server

You 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 a confirm field that must be true.

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.

ToolDoesRecommended permission
searchWho you are, and the operations you can use, with their signatures.Always allow
queryRuns a script that only reads.Always allow
executeRuns a script that may change things. Supports a dry run.Ask
confirm_actionOne 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 execute run 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 the confirm field 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:

OperationDoes
list_agentsYour agents with id, name, website and status.
get_stats, get_analyticsCounts, and conversations and leads by day, country and language.
list_conversations, get_conversation, search_conversationsConversations, full transcripts, substring search.
list_leadsCaptured leads, newest first.
list_content_gaps, get_content_gap_briefingQuestions answered on weak evidence, and a writing brief for one.
get_crawler_status, trigger_crawlIndex status, and a re-crawl now.
get_agent_settings, update_agent_settingsAn agent’s settings (admins).
create_source, update_source, delete_sourceKnowledge snippets (admins; deleting needs confirmation).
get_admin_route, run_admin_routeAnything 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.

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.

  • “Has anyone asked about X?”: search_conversations answers in seconds what scrolling the inbox does not.
  • Weekly content planning: list_content_gaps plus get_content_gap_briefing produces briefs your writers can work from.
  • After a launch: trigger_crawl, then get_crawler_status, then ask the agent the questions the new pages should answer.

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.