[BUG] Routines: MCP connector tool calls fail with "requires approval" despite connectors being added to routine

Resolved 💬 19 comments Opened May 21, 2026 by Leonnikishaev Closed May 21, 2026
💡 Likely answer: A maintainer (chrislloyd, collaborator) responded on this thread — see the highlighted reply below.

Preflight Checklist

  • [x] I have searched existing issues and this hasn't been reported yet
  • [x] This is a single bug report (please file separate reports for different bugs)
  • [x] I am using the latest version of Claude Code

What's Wrong?

Summary

When running a Routine in remote mode, MCP tool calls (Gmail, Google Calendar, Microsoft 365) fail with "Streamable HTTP error: Error POSTing to endpoint: MCP tool call requires approval" — even though all three connectors are explicitly added to the routine with the "no approval needed" banner confirmed.

Environment

  • Claude Code web (code.claude.com)
  • Routine type: Remote / scheduled
  • Trigger: Weekdays at 8:30 AM EDT
  • Connectors: Gmail, Google Calendar, Microsoft 365

Steps to reproduce

  1. Create a Routine with Gmail, Google Calendar, and Microsoft 365 connectors added
  2. Confirm the yellow banner says "Claude can use all tools from these connectors without asking for permission during runs"
  3. Trigger a run (manual or scheduled)
  4. All MCP tool calls fail with approval error

What I tried

  • settings.json at ~/.claude/settings.json with all MCP tools allowlisted
  • CLAUDE_PERMISSION_MODE=bypassPermissions in cloud environment variables
  • Reconnecting all integrations
  • Running manually and approving each tool call

Expected behavior

Connectors added to a Routine should run without approval prompts during remote execution.

Actual behavior

Every MCP tool call returns "MCP tool call requires approval" at the server level before Claude Code's own permission logic is even reached.

Related issues

  • #10801 — Critical: No way to bypass MCP tool approval prompts in VSCode extension

What Should Happen?

Connectors added to a Routine should run without approval prompts during remote execution.

Error Messages/Logs

Streamable HTTP error: Error POSTing to endpoint: MCP tool call requires approval

Steps to Reproduce

  1. Create a Routine at code.claude.com with Gmail, Google Calendar, and Microsoft 365 connectors added
  2. Confirm the banner says "Claude can use all tools from these connectors without asking for permission during runs"
  3. Trigger a run (manual or scheduled)
  4. All MCP tool calls fail with approval error at the server level

Claude Model

Sonnet (default)

Is this a regression?

Yes, this worked in a previous version

Last Working Version

_No response_

Claude Code Version

Claude 1.8089.1 (b98a06) 2026-05-19T18:28:48.000Z

Platform

Anthropic API

Operating System

macOS

Terminal/Shell

Terminal.app (macOS)

Additional Information

_No response_

View original on GitHub ↗

19 Comments

github-actions[bot] · 1 month ago

Found 1 possible duplicate issue:

  1. https://github.com/anthropics/claude-code/issues/61015

This issue will be automatically closed as a duplicate in 3 days.

  • If your issue is a duplicate, please close it and 👍 the existing issue instead
  • To prevent auto-closure, add a comment or 👎 this comment

🤖 Generated with Claude Code

joecorkerton · 1 month ago

Yep I started having the same issue

tdesai-eightfold · 1 month ago

Following.
Facing Same Issue
Note:- It was working 8hrs back.

lsplanningteam1 · 1 month ago

Same issues occured. Playmcp, gmail, notion all connectors are not woking.
It worked this morning(about 10 hrs ago)

JackOfSpade · 1 month ago

Yep, remote routine cannot read or write to Google calendar.

xu2xulim · 1 month ago

Same here for Google Calendar

dhk1 · 1 month ago

It was working perfectly before and recently this issue started.

krauserene89 · 1 month ago

Same Problem here =(

tai-rangel · 1 month ago

facing the same problem

crypturbano-coder · 1 month ago

Same issue here. Three scheduled routines with Slack connector all started failing today with "MCP tool call requires approval" on every Slack tool call. Routines ran successfully May 13–20 before breaking simultaneously.

Slack connector works fine in Claude.ai chat on the same account at the same time. Team plan (org-level connectors). No configuration changes made. Removing/re-adding the connector on the routine didn't help.

victor-gv · 1 month ago

Same issue here, it worked a few days ago

martinmaaloe · 1 month ago

Same issue here! Worked fine yesterday.

SuzanBanifadel · 1 month ago

same issue Still blocked it happen only on routine — every Atlassian MCP call (getJiraIssue, getAccessibleAtlassianResources, atlassianUserInfo) returns MCP tool call requires approval. The connector itself is rejecting requests, so no retry I run from here will change the outcome.

derrickshowers · 1 month ago

Confirming this on a Team plan account with a remote routine that aggregates Meta Ads (via Pipeboard Meta Ads connector), reads/writes Notion pages and comments, and queries Amplitude.

Symptom: every MCP tool call — notion-fetch, notion-get-comments, notion-update-page, notion-create-comment, get_insights, query_dataset — returns Streamable HTTP error: Error POSTing to endpoint: MCP tool call requires approval. Same routine fired successfully on 2026-05-20 before the regression.

Things tried (none worked):

  • Set permitted_tools explicitly per tool name on each mcp_connections entry via the API (POST /v1/code/triggers/<id>)
  • Slimmed allowed_tools down to ["Bash","Read","Glob","Grep","TodoWrite"] to match another known-working routine on the same account
  • Removed the preset:default shim the UI auto-injects on edit
  • Aligned connector entry names with UI normalization (underscore → dash)
  • Manual fire via RemoteTrigger action=run — same error

Critical signal: the same connector UUIDs (Notion 638cb7aa-..., Pipeboard 9d24bd3c-..., Amplitude 628463a5-...) work perfectly from a local Claude Code session right now. OAuth scopes and the underlying MCP servers are healthy — the failure is specifically in the routine execution layer's approval gate.

Use case impact: breaks an unattended Meta Ads performance dashboard that updates a Notion page every 4 hours with current spend, CTR, audience/placement breakdowns, and inline replies to user comments left on the doc. Working around it manually from chat sessions, which defeats the unattended purpose.

Happy to share the routine config privately if it helps repro.

bellmount · 1 month ago

Same issue; G Cal/ Notion/ Todoist MCPs not called

chrislloyd collaborator · 1 month ago

Dupe of #61015

Jaaloong · 1 month ago

Same issue here. The MCP connections to Linear and Gmail aren’t working either.

ayeryn · 1 month ago

Adding repro data — same account, two routines, two distinct failure modes that confirm the regression and isolate variables.

| Routine | Connectors attached (UI + API both confirm) | Session sees MCP tools? | Failure mode |
|---|---|---|---|
| Morning Brief | Notion only | Yes | Every call returns MCP tool call requires approval (matches #61027) |
| Nightly Sweep | Notion + Gmail | No — zero mcp__* tools in registry | ToolSearch select: and keyword fallback both return No matching deferred tools found |

Trigger record API response (POST /v1/code/triggers/<id>) includes for nightly:

"mcp_connections": [
  {"connector_uuid": "...", "name": "Notion", "permitted_tools": [], "url": "https://mcp.notion.com/mcp"},
  {"connector_uuid": "...", "name": "Gmail",  "permitted_tools": [], "url": "https://gmailmcp.googleapis.com/mcp/v1"}
]

UI also shows both toggles enabled in the resumed-session connector popover (screenshot available on request).

User-side fixes that did NOT work for nightly (5 independent paths, all dead end):

  1. Detach + reattach both connectors via routine config UI (with save between)
  2. Delete + recreate the routine as a fresh trigger record (identical config)
  3. Re-seed prompt via RemoteTrigger update (preserves model/connectors/cron)
  4. Community workaround from u/e_lizzle in this thread (no-op sub-agent dispatch at prompt start to warm registry) — dispatch returns READY successfully, but MCP tools remain absent post-dispatch. So the workaround's mechanism works, but the registry is not merely cold here — it has no binding to warm
  5. Session-level connector toggle off-and-on in the resumed-session UI popover (different code path from the routine-config-level detach in #1)

UI shows connectors toggled ON in the resumed-session view; runtime reports zero tools.

Diagnostic output from a clean run (Opus 4.7, prompt instructs ToolSearch select + keyword fallback after sub-agent warm-up):

0.0 — Warm-up dispatch: succeeded. Reply: "READY". Tool used: Agent (subagent_type=general-purpose).
0.1 — Active tool inventory: 0 mcp__* tools (present or deferred). Non-MCP only: Agent, Bash, Edit, Read, SendUserFile, Skill, ToolSearch, Write (+ deferred Monitor, NotebookEdit, PushNotification, WebFetch, WebSearch).
0.2 — ToolSearch select:mcp__claude_ai_Notion__notion-fetch,... → "No matching deferred tools found". Fallback query "notion" → same. 0/4 schemas loaded.
0.4 — ToolSearch select:mcp__claude_ai_Gmail__search_threads,... → "No matching deferred tools found". Fallback query "gmail" → same. 0/3 schemas loaded.

Key signal from the dual-routine A/B: same account, same MCP backend, same Notion connector. Morning Brief (Notion-only, last updated 2026-05-20) gets tools-present-but-approval-blocked. Nightly Sweep (Notion + Gmail, last updated 2026-05-21) gets zero tools. The differentiator is either (a) Gmail being in the connector list breaks binding, or (b) routines re-saved after 2026-05-19 land in the zero-tools state. Either would be a useful narrowing.

Affected build: 2026-05-19 Claude Code routine harness onward, per timing on this account. Cross-references #61027 (approval-block path), #53489 (routine vs interactive binding pathway), #51736 (post-v2.1.116 ToolSearch returning "No matching deferred tools found").

github-actions[bot] · 5 days ago

This issue has been automatically locked since it was closed and has not had any activity for 7 days. If you're experiencing a similar issue, please file a new issue and reference this one if it's relevant.