Preflight Checklist
What's Wrong?
MCP tool calls made inside a Claude Code Routine (automated, non-interactive CCR session) consistently fail with:
Streamable HTTP error: Error POSTing to endpoint: MCP tool call requires approval
The Anthropic CCR proxy (api.anthropic.com/v2/ccr-sessions/{id}/mcp) returns this error on every call.
Since Routines have no interactive user present, no approval UI can appear — and indeed none appears. Disconnecting and reconnecting the MCP connectors (Heptabase) does not resolve the issue. The MCP config file (/tmp/mcp-config-{session_id}.json) is correctly generated with valid server IDs and proxy URLs.
What Should Happen?
MCP connectors that have been authorized in claude.ai settings should work in Routines without requiring per-call interactive approval. This was the behavior until recently.
Error Messages/Logs
Steps to Reproduce
- In claude.ai/code, configure a Routine that calls MCP tools (e.g. Heptabase get_journal_range, Notion notion-create-pages)
- Ensure the MCP connectors are connected (OAuth authorized) in claude.ai settings
- Trigger the Routine
- Observe that every MCP tool call fails with MCP tool call requires approval
- No approval UI appears anywhere in the browser
- Disconnecting and reconnecting the MCP connector does not fix the issue
- The same MCP tools work correctly in local Claude Code CLI with the same OAuth-authorized connections
Claude Model
Sonnet (default)
Is this a regression?
Yes, this worked in a previous version
Last Working Version
No response
Claude Code Version
2.1.146
Platform
Anthropic API
Operating System
macOS
Terminal/Shell
Other
Additional Information
No response
Preflight Checklist
What's Wrong?
MCP tool calls made inside a Claude Code Routine (automated, non-interactive CCR session) consistently fail with:
Streamable HTTP error: Error POSTing to endpoint: MCP tool call requires approval
The Anthropic CCR proxy (api.anthropic.com/v2/ccr-sessions/{id}/mcp) returns this error on every call.
Since Routines have no interactive user present, no approval UI can appear — and indeed none appears. Disconnecting and reconnecting the MCP connectors (Heptabase) does not resolve the issue. The MCP config file (/tmp/mcp-config-{session_id}.json) is correctly generated with valid server IDs and proxy URLs.
What Should Happen?
MCP connectors that have been authorized in claude.ai settings should work in Routines without requiring per-call interactive approval. This was the behavior until recently.
Error Messages/Logs
Steps to Reproduce
Claude Model
Sonnet (default)
Is this a regression?
Yes, this worked in a previous version
Last Working Version
No response
Claude Code Version
2.1.146
Platform
Anthropic API
Operating System
macOS
Terminal/Shell
Other
Additional Information
No response