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 MCP server is a thin proxy. All authorisation decisions happen in the Enterspeed Query API. Your MCP client sends a scoped environment client key on every request; the MCP server forwards it as-is; the Query API validates the scope and any index restrictions before returning data.The server also accepts an
?apiKey= query-string fallback for tools that cannot set headers. Prefer the header whenever possible: a key in a URL ends up in access logs along the whole request path.Rate limit
Requests are counted per API key over a rolling one-minute window, with a limit of 120 requests per minute. Exceeding it returns:/health endpoint is exempt.
Required scopes
The platform supports component-scoped environment keys. For MCP use, your key must include:MCP Server alone is not useful — it must be combined with Query API, and Enterspeed enforces that pairing when you save the client.
There are exactly four scopes: Delivery API, Query API, Routes API, and MCP Server. There is no separate Source API scope — access to auto-indexed source entities comes with Query API, narrowed by the index scope below.
Scope presets
When creating an environment client, the Management App exposes these presets so you do not have to toggle scopes manually:
The AI Assistant preset is the right default for MCP integrations.
See Using environment clients for the full table and how to manage scopes in the Management App.
Index scopes
On top of component scopes, each environment client can carry an optional Index Scope that restricts which indices the key can see. Patterns are matched against the fully-qualified index name.
Filtering is enforced by the Query API, so AI clients get a pre-trimmed tool list. This is ideal when you want to give a public-facing AI assistant access to, say, only a marketing-blog index, without exposing the rest of the environment.
Patterns are read in two families, split by the colon:
- Without a colon — matches index names, for example
blog*. - With a colon — matches auto-indexed source entities as
sourceGroup:entityType, for examplecms:*.
cms:* restricts auto-indexed source entities while leaving index queries unrestricted. Set patterns in both families when you want to narrow both.
Creating a scoped key
- Sign in to the Enterspeed Management App.
- Select the tenant and environment you want the AI client to query.
- Go to Environment → API Keys.
- Click Create API key.
- Pick the AI Assistant preset.
- (Optional) Set an Index Scope pattern like
blog*to restrict access. - Give the key a descriptive name, e.g.
claude-prod-blog-assistant. - Click Create — the key is shown once. Store it in your secret manager immediately.
environment-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx.
See Using environment clients for the full environment-client flow, including regenerating a key.
What tools the agent gets
Every tool is a read — the server has no way to change your data or your configuration. To configure a tenant, an agent needs Management MCP instead. The tool list is assembled per key, so two clients pointed at the same server can see different tools. It comes in three layers. Always present — the same eight tools for everyone:
Per index — one
query_<indexName> tool for each index the key can reach, generated from that index’s own fields. These give an agent a typed, index-specific way to query, so it does not have to construct a generic filter by hand.
Unified — an enterspeed_query tool that targets several indexes in a single call.
All three layers respect the key’s index scope, so the agent is handed a pre-trimmed list rather than being told “no” after it tries.
Sample prompts
Use these when demoing or smoke-testing a fresh MCP connection.Connectivity check
List the Enterspeed indices you have access to, then tell me how many of them there are and what their naming convention looks like.Expected behaviour: the agent calls the index-listing tool and returns a list filtered by the key’s Index Scope.
Schema discovery
Describe the blog index. What fields does it have, which ones are searchable, and which are sortable?
Expected behaviour: the agent calls describe_index with indexAlias: blog. A good answer groups fields by type (keyword, text, date, integer, etc.).
Single-index query
Find the five most recent blog posts authored by alice and return their titles, publish dates, and URLs.
Expected behaviour: the agent calls query_blog with a filter on author = alice, sort descending by publishedAt, and pagination.pageSize = 5.
Multi-index query
Across theExpected behaviour: the agent calls the unifiedproductsandproductsv2indices, find items withcategory = beveragesand under 100 kcal per 100g. Return the top three sorted by energy ascending.
enterspeed_query tool with a queries array that targets both indices in a single round-trip.
Auto-indexed data exploration
Show me five raw source entities of typeExpected behaviour: the agent discovers types viaarticlefrom thecmssource group. Which fields are set on the first one?
get_indices_raw_source_entities_by_source_group_alias, then pulls five entities via get_source_items. Access to auto-indexed data comes with the Query API scope — no extra scope is needed beyond the standard Query API + MCP Server combination.
Authorisation check
Which operators can I use to filter queries in Enterspeed?Expected behaviour: the agent calls the
get_operators tool. The list typically includes contains, equals, notEquals, in, lessThan, lessThanOrEquals, greaterThan, and greaterThanOrEquals — the concrete set is data-driven, so trust the tool response over this page.
Tool-listing sanity check
What tools do you have available and which Enterspeed indices are they tied to?Expected behaviour: the agent enumerates the full tool set. If the dynamic and per-index groups are empty, the key is most likely missing the
MCP Server scope — that is the fastest way to spot a misconfigured key.
Troubleshooting
Known limitations
Next steps
- Connecting a client — VS Code, Claude Code, Claude Desktop, or the Anthropic Messages API in C#.
- Connecting an agent — wire a custom C# agent or Azure AI Foundry to the MCP server.
- Management MCP — configure your tenant instead of querying it.