Skip to content

MCP servers overview

MCP (Model Context Protocol) is an open standard for connecting AI clients — Claude Code, Claude Desktop, and other MCP-native hosts — directly to a server’s tools, without going through a chat-style API. Octo exposes two MCP servers over Streamable HTTP.

The short path is the simple one. Point a client at /mcp and Octo picks its own tools; reach for /mcp/tools only when your own loop should own the plan.

Changed: /mcp used to serve the full catalog. A client still pointed there will not error — it will simply see 3 tools instead of the whole catalog. If that is you, switch to /mcp/tools.

ServerPathWhat it exposes
Full tool catalog/mcp/toolsOcto’s workspace tool catalog — the same tools the dashboard agent can call (agents, campaigns, contacts, segments, conversations, voice, phone numbers, etc.), filtered by your API key’s role exactly as they are everywhere else.
Delegate to Octo (recommended)/mcpTalk to Octo’s own conversation as MCP tools — send a message, list conversations, fetch a conversation’s messages. Built for programmatic clients (CI, other agents) that want to chat with Octo itself rather than call individual tools directly.

Both servers require a workspace API key on connect (see Get an API key) and both filter what’s available by that key’s role, the same way /v1 does (see Authentication).

Connecting here gives your MCP client direct access to Octo’s tool registry — the same building blocks the meta-agent itself uses to take action in your workspace (create a campaign, look up a contact, check a conversation, search and buy a phone number, etc.), role-filtered per the connecting key. This includes bulk tools (delete_conversations, delete_channels, delete_contacts, delete_campaigns, undeploy_agents, cancel_campaigns) that act on many matching rows in one confirmed call.

Spend, destructive, mass-message, and live-deployment-mutating tools are refused over /mcp/tools, with an error naming the tool’s risk class. MCP is a stateless transport with nowhere to park a pending action, so there is no way to obtain a human confirmation mid-call. Run those actions from the dashboard, from /mcp, or through the /v1 API, where Octo parks them for confirmation — see Confirmations. Octo can also build saved segments from a natural-language audience description (e.g. “everyone with a phone number”) and reuse them across campaigns — the same capability the composer’s Magic Input uses.

Also answers on /mcp/octo and /mcp-meta-agent, its earlier paths, kept permanently so existing client configs keep connecting.

Connecting here exposes a small, fixed set of tools for driving a conversation with Octo itself:

  • send_message — hand Octo a job in plain language and wait for the completed result.
  • list_conversations — list your workspace’s Octo conversations.
  • get_conversation — fetch a conversation’s message history.

Use this when you want an external agent or script to converse with Octo — delegating a task in natural language — rather than calling individual workspace tools yourself.

Both servers take a workspace API key as a bearer token, and nothing else. There is no OAuth authorization server — the hosted API does not publish .well-known/oauth-protected-resource, .well-known/oauth-authorization-server, or .well-known/openid-configuration, and requests to those paths return 404. Clients that support OAuth discovery fall back to the static bearer token you configure.

See Connect for client config, and Get an API key to mint one.