.auto/ changes, inspecting sessions, binding threads and pull requests, and coordinating sibling agents. Every session that declares the local auto tool gets it wired automatically under the auto alias. This page explains where the server lives, how it authenticates, what it exposes, and how the same tools appear under different client naming schemes.
One server, scoped to a session
Auto MCP is served per session over streamable HTTP:{ type: "http", url, headers } for the endpoint. A token minted for one session can only call that session’s endpoint.
The server itself is assembled fresh per request and registers only the tool implementations present in the session’s tool snapshots — an agent without a chat tool sees no chat.* tools at all, and the billing offer tool exists only for sessions whose auto tool declares capabilities: { billing: write }. checks.* is the one snapshot-independent family: it registers whenever the spawning trigger declared checks:.
Scopes are least-privilege per capability. The local auto tool adds agents:read, environments:read, provider_grants:read/write/use, secrets:read/write, and webhook_endpoints:write on top of the session scopes; GitHub access adds github:mcp; proxied connection tools add mcp:connection. Each tool call is additionally checked against per-tool scopes server-side.
What it exposes
Four tool families ride the one endpoint, documented in detail on their own pages:auto.* — platform coordination
Spawn/message/stop sessions, bindings, connection discovery and consent flows, GitHub Sync, resource dry-runs, managed templates, webhooks, secrets, and eight read-only session-introspection tools.
chat.* — unified messaging
Send, search, history, reactions, attachment downloads, and issue tools across Slack, Discord, Telegram, and Linear.
checks.* — GitHub check runs
List, begin, and conclude the managed checks a trigger declared.
ping
ping({ message? }) → pong: <message> — a connectivity smoke test for the endpoint.auto.connections.providers.list, auto.connections.list, auto.connections.start, auto.agent_tools.connect — consent flows return an authorization URL and report their terminal outcome back to the session automatically), dry-runs (auto.resources.dry_run validates and plans .auto/ changes without applying), session inspection (auto.sessions.summary, .search, .conversation, .tools, .triggers, .bindings, .commands), thread subscription and PR ownership (auto.bind / auto.unbind with slack.thread and github.pull_request targets), and fleet coordination (auto.sessions.spawn / .message / .stop).
Tool names across clients
The canonical tool names are dotted (auto.sessions.spawn, chat.send, checks.begin). MCP clients render them differently:
This is why production system prompts read
mcp__auto__chat_send — it is the claude-code flattening of chat.send on the auto alias, not a different tool. When writing prompts, use the names your agent’s harness will see.
The auto alias itself is reserved deterministically: if an agent’s own remote tool already claimed the alias auto, the platform’s server is wired as auto2 instead (the same rule protects the github alias for GitHub tools).
How the sandbox adapts it
Inside a sandbox, the agent-bridge runtime interposes a thin local shim in front of the session MCP URL for exactly one purpose: it rewritesauto.resources.dry_run into a path-first facade. The agent calls it with no arguments (validate the whole working-tree .auto directory) or with repository-relative paths:; the shim reads the YAML from the working tree — following local imports: automatically, enforcing 100-file / 3,000,000-byte bounds and working-tree containment — and forwards the platform’s established inline-files request upstream. Every other request and response passes through unchanged.
This means a sandboxed agent never has to inline file contents to validate configuration, while remote callers of the same tool keep the explicit files/resources dialects.
Server behaviors worth knowing
- Schema hygiene for picky models.
tools/listresponses are sanitized for model providers that reject boolean JSON-Schema subschemas, and structured parameters accept JSON-encoded strings which the server coerces back to objects — an accommodation for hosts whose constrained decoding cannot emit freeform object maps. Bindingcontextfields document this arm explicitly. - Deprecated aliases are still registered for sessions spawned with older prompts:
auto.artifacts.record/auto.artifacts.release(nowauto.bind/auto.unbind) andauto.chat.subscribe/auto.chat.unsubscribe(now bind/unbind with aslack.threadtarget). New prompts should use the canonical names. - Required tools are enforced at boot. When a trigger declares
checks:, the harness bootstrap requires theautoserver to exposechecks.list,checks.begin,checks.success, andchecks.failurebefore the session’s first turn — a session cannot silently start without its check tools.
Auto MCP is provisioned automatically for hosted sessions; there is no separate standalone MCP server to install into a personal IDE or desktop client today. Hosted agents that “operate auto through MCP” — including the onboarding agent — are themselves sessions calling this endpoint.