- Ask an agent to explain how a tenant is wired together — sources, environments, domains, clients, deployments.
- Have an agent write a mapping schema, dry-run it against a real source entity, and save a new version.
- Investigate a view or route that is not producing what you expect.
- Query your tenant logs and metrics in natural language.
Hostname
A health check is available without authentication:
The server speaks MCP Streamable HTTP on the root URL. Responses are delivered as a server-sent event stream on that same URL, so clients that label their transport SSE generally work when pointed at the root. There is no separate
/sse endpoint — always configure the root URL.How authentication works
The Management MCP server is a passthrough proxy. It holds no credentials of its own. Your MCP client sends a Management API key on every request, the server forwards it unchanged, and the Management API makes every authorisation decision.Use a read-only key for read-only work
Management clients have an access level — read-write or read-only. Because the server passes your key straight through, the key decides what an agent can do — the server never widens it. We recommend the smallest key that does the job:
A read-only key reaches every read tool — including both dry-run tools and schema validation, which are read-only despite sounding like they change something. If an agent tries a write tool with a read-only key, the Management API rejects the call and the agent gets a clear permission error. That is the intended outcome, not a fault.
What the server can and cannot do
The server exposes 35 tools: 22 reads and 13 additive writes.- Reads cover tenant overview, sources and source entities, mapping schemas, deployments, views and routes, indexes and index documents, domains and hostnames, environment clients, logs, and metrics.
- Writes are additive only — create and update. They cover schema authoring (create a schema, save a version, deploy), environments, source groups and sources, domains, and environment clients.
Guardrails
Beyond the key’s own permissions, the hosted server applies three limits you should know about.Schema deploys are restricted to non-production environments
Schema deploys are restricted to non-production environments
On the hosted server,
deploy_mapping_schema only deploys to environments named dev, development, test, or staging. A deploy targeting any other environment — including anything named prod, production, or live — is refused with a deploy_not_permitted error naming the environments that are allowed.This is a restriction of the hosted server, not of your key. Renaming an environment to get around it does not work either: update_environment refuses a rename that would move an environment onto the allowed list.Production deploys stay a deliberate human action in the Management App.Access keys are never returned through MCP
Access keys are never returned through MCP
The server strips the
accessKey field out of every response before your client sees it, at every level of nesting. This covers environment client keys and source ingest keys.It applies even to create_environment_client, which mints a key: the tool creates the client, and the key value is not in the response. The agent is told a key was created and that it must be collected from the app — so it reports the right next step instead of inventing a value. Fetch the key in the Management App when you need it.The field is removed rather than masked, so no tool can observe a key at any point.Rate limit — 60 requests per minute per key
Rate limit — 60 requests per minute per key
Requests are counted per API key over a rolling one-minute window. Exceeding the limit returns:Well-behaved MCP clients back off and retry. The limit applies to the whole MCP endpoint, and
/health is exempt.For comparison, Query MCP allows 120 requests per minute per key.Security model
If you are reviewing this server before pointing an agent at your tenant, this is the short version:- No server-held credentials. The server has no Enterspeed key of its own and no way to configure one. It can only act with a key you send it.
- Passthrough authorisation. Every permission decision is made by the Management API against your key, not by the MCP server.
- No destructive verbs. The server cannot issue a
DELETEor aPATCHat all. - Secrets are not readable. Access keys are removed from responses at the HTTP boundary, so no tool can observe one.
- Production deploys are out of reach on the hosted server.
- Least privilege is yours to set. Use a read-only key unless the agent genuinely needs to write.
Creating a Management API key
- Management App (read-write)
- Management API (read-only)
- Sign in to the Enterspeed Management App.
- Go to Settings → Management clients.
- Click to create a management client and give it a descriptive name, such as
claude-schema-authoring. - Copy the key — it starts with
management-. Store it in your secret manager immediately.
Connecting a client
The pattern is the same for every MCP client: point it at the root URL with HTTP transport and set anx-api-key header.
- Claude Code CLI
- VS Code (GitHub Copilot)
- Claude Desktop
- Other MCP clients
The user scope (
--scope user) installs the server for the current user across all projects. Use --scope project to install it for the current project only but for all users — that writes a checked-in .mcp.json, so use an environment variable for the key rather than pasting it.Known limitations
Sample prompts
Use these to smoke-test a fresh connection. OrientationGive me an overview of my Enterspeed tenant — how many sources, environments, and domains do I have, and how are they connected?Schema investigation
List my mapping schemas and show me the current version of the one that produces my product pages. What triggers it?Authoring loop (needs a write-capable key)
Write an index schema that indexes my article entities with title, publish date, and author. Dry-run it against a real article first, then save it as a new version.
Troubleshooting
The route for /products/red-shoe is not returning what I expect. Inspect the route and the view behind it and tell me what is wrong.
Logs
Show me any processing errors in the last 24 hours, grouped by schema.