Skip to content

Agents > Oz Cloud Agents & Orchestration

MCP Servers for cloud agents

Open in ChatGPT ↗
Ask ChatGPT about this page
Open in Claude ↗
Ask Claude about this page
Copied!

Connect cloud agents to external tools, APIs, and internal services using MCP servers.

Cloud agents can call external tools through Model Context Protocol (MCP) servers. This lets agents reach beyond the terminal to automatically interact with systems like GitHub, dbt, Sentry, or any custom internal service, whenever the workflow requires it.

Add MCP servers to a cloud agent when it needs to:

  • Read from or write to an external API (issue trackers, monitoring tools, cloud services)
  • Call local processes that expose MCP endpoints
  • Use internal developer tools that you’ve wrapped in an MCP interface

The agent calls MCP tools automatically based on what the task requires, without the need for explicit instruction.

You can supply MCP configuration in two ways:

  • At run time — pass --mcp when calling oz agent run or oz agent run-cloud. See MCP Servers in the CLI reference for the full syntax.
  • In an agent config file — define mcp_servers directly in a YAML or JSON agent config file (passed with -f / --file). This is the recommended approach for repeatable workflows.

Each MCP server entry is keyed by a name you choose. A server config must have exactly one transport type:

TransportField(s)When to use
Warp-shared serverwarp_idReference an MCP server already configured in Warp by its UUID
Stdio (local process)command, argsLaunch a local executable as an MCP server
Streamable HTTP / SSEurlConnect to a remote or locally hosted MCP endpoint
  • warp_id — UUID of a Warp-shared MCP server (find UUIDs with oz mcp list or from Settings > Agents > MCP servers)
  • command — Executable to launch (stdio transport)
  • args — Arguments passed to command (only valid with command)
  • env — Environment variables passed to the process (only valid with command)
  • url — HTTP or HTTPS endpoint URL (streamable HTTP or SSE transport)
  • headers — HTTP headers sent with requests (only valid with url)

You may define any number of MCP servers in a single config.

{
"github": {
"url": "https://mcp.example.com/github"
},
"dbt": {
"command": "uvx",
"args": ["dbt-mcp"],
"env": {
"DBT_HOST": "https://example.us1.dbt.com",
"DBT_SERVICE_TOKEN": "${DBT_SERVICE_TOKEN}"
}
}
}

For repeatable cloud agent workflows, declare your MCP servers inside the agent config file passed to -f / --file:

{
"name": "my-production-agent",
"model_id": "claude-sonnet-4",
"system_prompt": "You are a helpful assistant focused on backend development.",
"environment_id": "SVhg783GBFQHk1OfdPfFU9",
"mcp_servers": {
"github": {
"url": "https://mcp.example.com/github"
},
"dbt": {
"command": "uvx",
"args": ["dbt-mcp"],
"env": {
"DBT_HOST": "https://example.us1.dbt.com",
"DBT_SERVICE_TOKEN": "${DBT_SERVICE_TOKEN}"
}
}
}
}

Pass this file when running a cloud agent:

Terminal window
oz agent run-cloud --environment <ENV_ID> -f my-agent-config.json --prompt "Check for regressions in the last deploy"
  • MCP configuration must be valid JSON, or YAML when embedded in a broader agent config file.
  • If mcp_servers is omitted, the agent runs with no MCP servers enabled.
  • Each server name must be unique and non-empty.
  • The warp_id transport is validated against your Warp account. Referenced servers must be accessible to you.