Skip to content

Cloud MCP ​

This guide shows how to connect Claude (Desktop & Web), Cursor, Claude Code and Codex to the Bruin Cloud MCP so your AI assistant can securely call Bruin Cloud tools (for example: listing pipelines, inspecting runs, or triggering actions) directly from chat.

Bruin Cloud MCP is optional. The Bruin CLI already supports Cloud operations through bruin cloud, which is usually the right interface when an assistant has shell access and a configured API key or .bruin.yml. Use Bruin Cloud MCP when your assistant is set up for MCP tool calls, when you want structured Cloud tools available directly in chat, or when the assistant should not shell out to the local CLI.

Setup ​

The Bruin Cloud MCP is exposed at:

https://cloud.getbruin.com/mcp

For an individual connection, create a personal access token with only the permissions required by the MCP tools you plan to use. Personal tokens are also limited by your current role on the selected team. Use a team token only for a shared integration that should act as the team.

  1. Log in to Bruin Cloud.
  2. Open the user menu and select Access Tokens. For a team token, use Team Settings → API Tokens instead.
  3. Create a token, choose Custom, and select the permissions required by the tools in the table below.
  4. Copy the plain-text token once; it is not shown again.

See API Tokens for the full token-management walkthrough.

Cursor ​

Go to Settings > Cursor Settings > Tools & MCP > New MCP Server.

Edit the .cursor/mcp.json file and add your token.

json
{
  "mcpServers": {
    "bruin_cloud": {
      "type": "streamable-http",
      "url": "https://cloud.getbruin.com/mcp",
      "headers": {
        "Authorization": "Bearer YOUR_TOKEN_HERE"
      }
    }
  }
}

Restart Cursor (or reload the window) so it picks up the MCP config.

Claude Code ​

From a terminal (any directory):

bash
claude mcp add --transport http bruin_cloud https://cloud.getbruin.com/mcp --header "Authorization: Bearer YOUR_TOKEN_HERE"
bash
# List configured MCP servers
claude mcp list

# Details for one server
claude mcp get bruin_cloud

# Remove a server
claude mcp remove bruin_cloud

Inside Claude Code, type /mcp to see MCP status and connected servers.

Claude (Desktop & Web) ​

The Claude Desktop and Web apps connect to Bruin Cloud as a custom connector over OAuth — you sign in to Bruin Cloud and approve access, so there is no API token to create or paste (you can skip the token step above).

  1. In Claude, open Settings → Connectors → Add custom connector.

  2. For Remote MCP server URL, enter:

    https://cloud.getbruin.com/mcp

  3. Leave Advanced settings (OAuth Client ID / Secret) empty — Claude registers itself automatically.

  4. Click Add. Claude opens a Bruin Cloud sign-in page.

  5. Sign in, choose which team to connect, and approve.

Claude returns to the connectors list showing Connected, and the Bruin Cloud tools become available in chat. The connection is scoped to the team you selected and limited by your current permissions on that team; access tokens are short-lived and refresh automatically.

Codex CLI ​

Edit your Codex configuration file at ~/.codex/config.toml:

toml
[mcp_servers.bruin_cloud]
url = "https://cloud.getbruin.com/mcp"
http_headers = { Authorization = "Bearer YOUR_TOKEN_HERE" }
enabled = true

Restart Codex CLI to load the new configuration.


Using the tools ​

Once the Bruin Cloud MCP server is connected, you can ask in natural language, for example:

  • “List all pipelines for my team.”
  • “Show pipeline runs status failed.”
  • “Get asset instances for pipeline Y, run_id Z.”
  • “Mark pipeline X run Y as success.”
  • "Trigger a new run for pipeline X with start/end dates."
  • "Show me the latest runs for pipeline X, sorted by start time."
  • "List all assets for pipeline X and show their current status."
  • "For pipeline X, show asset instances that failed in the last 24 hours."
  • "Get the logs for asset Y from run Z."
  • "Show me validation errors."
  • "Cancel the currently running instance of pipeline X."
  • "Mark external dependencies in run id X as success."
  • "List all connections."
  • "Create a new generic connection called my-secret with value X."
  • "Delete the connection named my-secret."
  • "What was my BigQuery warehouse spend last month?"
  • "Which pipelines cost the most this month? Break it down by pipeline."
  • "Break down warehouse cost by user for pipeline X."
  • "Show the daily cost trend for pipeline X over the last 2 weeks."
  • "What are the most expensive assets in pipeline X?"

Available tools ​

Each tool checks its concrete permission. A personal token must contain that permission, and your current team role must grant it. Read-only tools only query data; write tools change state and compatible assistants may require confirmation before calling them.

ToolAccessRequired permissionPurpose
pipeline-list-toolreadpipeline:listList pipelines, or fetch one pipeline's details.
pipeline-run-list-toolreadpipeline:run:listList pipeline runs, or fetch one run's details.
asset-list-toolreadpipeline:asset:showList assets, or fetch one asset's details and dependencies.
asset-health-toolreadpipeline:asset:showGet asset health information.
asset-instance-list-toolreadpipeline:run:asset-instance:showList asset instances within a run.
asset-instance-logs-toolreadpipeline:run:asset-instance:showFetch execution logs for an asset instance.
asset-runs-toolreadpipeline:run:listShow run history for an asset.
backfill-list-toolreadpipeline:run:listList backfills and their runs.
run-tags-toolreadpipeline:run:showList tags for a pipeline run.
validation-error-list-toolreadpipeline:showList pipeline validation errors.
connection-list-toolreadconnection:listList connection metadata, never secret values.
connection-types-toolreadconnection:listList supported connection types and their fields.
cost-explorer-schema-toolreadpipeline:cost:showDescribe Cost Explorer dimensions and metrics.
cost-explorer-toolreadpipeline:cost:showQuery warehouse cost data.
notification-rule-list-toolreadnotification-rule:listList notification rules.
notification-rule-schema-toolreadnotification-rule:listDescribe the notification-rule schema.
pipeline-trigger-toolwritepipeline:run:triggerTrigger a pipeline run.
pipeline-rerun-toolwritepipeline:run:re-runRerun an existing pipeline run.
pipeline-toggle-toolwritepipeline:updateEnable or disable a pipeline.
asset-rerun-toolwritepipeline:run:asset-instance:re-runRerun an asset.
backfill-trigger-toolwritepipeline:run:triggerTrigger a backfill over a date range.
backfill-delete-toolwritepipeline:run:deleteDelete a backfill.
backfill-mark-toolwritepipeline:run:mark-asMark backfill runs with a status.
backfill-skip-assets-toolwritepipeline:run:mark-asSkip selected assets in a backfill.
mark-pipeline-run-toolwritepipeline:run:mark-asMark a pipeline run's status.
mark-asset-run-toolwritepipeline:run:asset-instance:mark-asMark an asset run's status.
mark-external-dependency-toolwritepipeline:run:asset-instance:mark-asMark an external dependency's status.
asset-health-manual-entry-create-toolwritepipeline:run:asset-instance:mark-asCreate a manual asset-health entry.
asset-health-manual-entry-delete-toolwritepipeline:run:asset-instance:mark-asDelete a manual asset-health entry.
run-note-toolwritepipeline:run:updateSet or clear a pipeline-run note.
run-delete-toolwritepipeline:run:deleteDelete a pipeline run.
connection-create-toolwriteconnection:createCreate a connection.
connection-delete-toolwriteconnection:deleteDelete a connection.
notification-rule-create-toolwritenotification-rule:manageCreate a notification rule.
notification-rule-update-toolwritenotification-rule:manageUpdate a notification rule.
notification-rule-delete-toolwritenotification-rule:deleteDelete a notification rule.

Troubleshooting ​

  • 401 Unauthorized: Missing or invalid Bearer token. Check that the token is correct and not expired.
  • “Insufficient token permissions”: The token is missing the concrete permission named in the error. Edit the token and grant that permission.
  • “Your role does not grant”: A personal token cannot exceed your current role on the selected team. Ask a team admin to update your role or use a tool your role permits.
  • Cursor, tools not showing: Ensure .cursor/mcp.json is valid JSON and restart Cursor.
  • Claude Code, server not found: Run claude mcp list to confirm the server is configured; use claude mcp get bruin_cloud to check its URL and headers.
  • Codex CLI, tools not available: Ensure ~/.codex/config.toml is valid toml and restart Codex CLI.
  • Claude custom connector, stuck or "disconnected": Re-run Add custom connector, sign in to Bruin Cloud, and make sure you approve access for a team you belong to. Leave the OAuth Client ID/Secret fields empty.
  • Pipelines for the operations the MCP can drive (runs, backfills, status).
  • Connections for the connections the MCP can list and create.
  • Insights for the Cost Explorer data the MCP can query (warehouse spend by pipeline, asset, or user).
  • Bruin MCP (local) for the local-CLI MCP, separate from the cloud-hosted one.
  • bruin cloud — the CLI command that talks to Bruin Cloud using the same kind of API token.