Skip to main content
The Management MCP server exposes 40 tools, made up of 23 reads, 16 writes, and set_tenant_context, which selects the tenant a session works on. This page lists all of them so you can see exactly what an agent connected to your tenant is able to do. The tools are grouped here by toolset — the group names you can pass in the ?toolsets= connection parameter to offer an agent only part of the surface. A connection that names no toolsets gets every group. What an agent can actually do with a tool is still decided by your account’s permissions in the tenant, and by ?readOnly=true if you set it. Writes come in two kinds:
  • Write (additive) tools add something new and remove nothing.
  • Write (changes existing) tools can change, replace, or stop serving something that already exists. These are marked destructive to MCP clients, which is why some clients ask before running them. A tool is this kind if any call to it can change something that exists, even when other calls to it only add. configure_destination and the four upsert_* tools are examples.
There are no delete tools, by design. The server has no way to send a DELETE or a PATCH request — every call it can make is a read, or a create or update on a fixed allow-list checked when the server starts. No tool can delete a tenant, schema, environment, source, source group, domain, destination, client, or entity.

core

Always offered, whatever toolsets says: without these a session cannot say who it is or select a tenant.

schemas

The reason most people connect the server. The read tools let an agent design and prove a schema before anything is written.
The dry-run and validate tools are reads, despite sounding like they change something. They work on a ?readOnly=true connection, so an agent can design, test, and validate a schema end to end without being able to save it — a good default even for authoring work, until you are happy with the result.
deploy_mapping_schema and unpublish_mapping_schema ask you to confirm in your client, by typing the environment’s name, before anything changes. Clients without MCP elicitation support are refused for these two tools. A client set to auto-approve can answer for you.

sources

delivery

domains

destinations

clients

On an environment client, an empty index scope means unrestricted, not no access. A partial update that dropped the field would therefore widen the client rather than narrow it. update_environment_client avoids this by reading the current client and merging your changes onto it, so an agent cannot silently remove an index restriction by omitting it — but it is worth knowing when you review what an agent changed.

observability

provisioning

How the upsert tools decide what to do

upsert_environment, upsert_source_group, upsert_source, and upsert_domain each create a resource or change one. The arguments you pass decide which, never what already exists in your tenant.
  • Without the argument that names an existing resource (environment, sourceGroup, source, or domain), the call can only create. If a resource with that name already exists exactly as asked, nothing is written and the result says unchanged. If one exists with that name but differs, the call is refused and nothing changes. The refusal lists the differences and, where they can be changed, the call that would change them.
  • With that argument, the call only changes that one resource. If the argument does not match anything, the call is refused. It never falls back to creating something.
A misspelled edit therefore fails instead of creating something new. A call that succeeds reports an outcome of created, updated, or unchanged. Environment clients keep separate create_environment_client and update_environment_client tools, because an environment client is itself a credential. Creating one issues a key that can read your content, and updating one changes what that key can reach.

Tools that were renamed or merged

The tools below no longer exist. If a saved prompt, script, or log filter names one of them, use the call on the right instead. The arguments keep their names. Called with those arguments, each list_* tool returns what the earlier tool returned. The upsert tools report outcome where the earlier tools reported created or updated. Your tenant’s logs record the name of the tool that was actually called, so a log filter on an earlier tool name stops matching. Log entries for the upsert tools still carry an action named after the earlier tools, such as create_source or update_source.

What is deliberately not exposed

Some Management API capabilities are intentionally absent from the tool set:
  • Anything that deletes. No tenant, schema, environment, source, source group, domain, destination, client, view, or index can be removed through MCP.
  • Reading or regenerating a key on demand. No tool returns an access key, and the immediate key regeneration used when a key has leaked stays in the Management App. rotate_management_client is the routine rotation, with a grace window, and its new key is only readable in the app.
  • Bulk deploy paths. Deploying broadly stays in the Management App.
For the update tools, the permission is the verb, not the address. Several of the allowed updates share an address with a delete operation in the underlying API — the server can reach the update and has no way to reach the delete.

Next steps

  • Overview — hostname, authentication, connection parameters, guardrails, and client setup.
  • Query MCP — query your Enterspeed data instead of your configuration.