Routine MCP connectors don't reliably propagate to cloud session

Resolved 💬 3 comments Opened May 6, 2026 by LauraKalnicky Closed May 10, 2026

Summary

Created a scheduled routine (cloud / anthropic_cloud environment) via the RemoteTrigger API with four MCP connectors attached. Two manually-fired test runs produced inconsistent connector availability inside the spawned session — the runtime exposes a different subset of MCPs each time, despite the trigger config showing all four attached.

Configuration

POST /v1/code/triggers with body containing:

{
  "name": "<routine name>",
  "cron_expression": "0 8 * * 3",
  "enabled": true,
  "job_config": {
    "ccr": {
      "environment_id": "<default cloud env>",
      "session_context": {
        "model": "claude-opus-4-7",
        "allowed_tools": ["Bash", "Read", "Write", "Edit", "Glob", "Grep", "WebFetch"]
      },
      "events": [{ "data": { /* user message */ } }]
    }
  },
  "mcp_connections": [
    { "connector_uuid": "<uuid-A>", "name": "Linear",        "url": "https://mcp.linear.app/mcp" },
    { "connector_uuid": "<uuid-B>", "name": "Slack",         "url": "https://mcp.slack.com/mcp" },
    { "connector_uuid": "<uuid-C>", "name": "Google-Drive",  "url": "https://drivemcp.googleapis.com/mcp/v1" },
    { "connector_uuid": "<uuid-D>", "name": "WordPress-com", "url": "https://public-api.wordpress.com/wpcom/v2/mcp/v1" }
  ]
}

All four connectors are connected on the user's claude.ai account and visible in the routine's web UI.

Observed behavior

Manually fired the routine twice via RemoteTrigger action: "run" within ~5 minutes of each other. The agent prompt instructs it to fail loudly if any required MCP is missing, and the agent self-reported the available MCP servers in each run.

| Run | MCPs visible to agent | Missing |
|-----|------------------------|---------|
| 1 | Linear, Slack, Google-Drive | WordPress-com |
| 2 | (none of the four) | All four |

GET /v1/code/triggers/<id> between runs confirms all four connectors remain in mcp_connections with non-empty UUIDs and URLs. permitted_tools is [] on each entry (default).

Expected behavior

Every run should see the full set of MCP servers listed in mcp_connections. Either all four load deterministically, or a load failure surfaces in the run log so the agent can react (and the routine owner can be alerted).

Impact

The routine is a self-gating biweekly drafter — most weeks it should exit early after one MCP call. Without reliable connector loading it fails silently from the user's perspective (no draft produced; failure visible only if you open the routine's session log.

Workaround

Disabled the routine until propagation is reliable. Happy to provide trigger ID / account details privately if useful for debugging.
EOF
)

View original on GitHub ↗

This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗