[BUG] permissions.allow in settings.json is not honored in Claude Code web remote execution — MCP tools still blocked

Resolved 💬 3 comments Opened May 21, 2026 by dleibu Closed May 23, 2026

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

MCP tool calls listed explicitly in permissions.allow in .claude/settings.json still return
"MCP tool call requires approval" in the Claude Code web remote execution environment.
The allowlist is being ignored entirely — no approval prompt appears, and the calls simply fail.

Environment

  • Surface: Claude Code web (claude.ai/code), remote execution environment
  • All affected tools are explicitly listed in .claude/settings.json under permissions.allow

settings.json (relevant excerpt)

{
  "permissions": {
    "allow": [
      "mcp__3ffcaf2d-d379-483a-8b08-954510a42f23__slack_send_message",
      "mcp__67791568-d862-4be5-8bcd-17710bfe5b77__createConfluencePage",
      "mcp__dcf3e095-536a-4f52-95d8-a7b797d544b6__search_files",
      "mcp__dcf3e095-536a-4f52-95d8-a7b797d544b6__list_recent_files",
      "mcp__dcf3e095-536a-4f52-95d8-a7b797d544b6__create_file"
      // ... and more
    ]
  }
}

Test results


# | Tool | In permissions.allow? | Result
-- | -- | -- | --
1 | slack_read_channel | Yes | ✅ Executes without prompt
2 | slack_send_message | Yes | ❌ MCP tool call requires approval
3 | getPagesInConfluenceSpace | Yes | ✅ Executes without prompt
4 | createConfluencePage | Yes | ❌ MCP tool call requires approval
5 | search_files (Google Drive) | Yes | ❌ MCP tool call requires approval
6 | create_file (Google Drive) | Yes | ❌ MCP tool call requires approval

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


### What Should Happen?

Expected behaviour
Tools listed in permissions.allow should execute without any approval prompt, per the documented
behaviour of the permissions system.

Observed behaviour
The allowlist is not being respected. Write operations (Slack, Confluence) and all Google Drive
operations fail regardless of their presence in permissions.allow. No approval prompt appears —
the calls simply return the error above.

Additional context
Read-only operations for Slack and Confluence work correctly and silently (also in the allowlist)
Google Drive fails even on read operations (search_files, list_recent_files), suggesting
its auth context may not be passed through to the remote execution environment at all
The same MCP connections work in Claude.ai, where an approval UI surfaces as expected
Reproducible across multiple sessions and after re-login
Both ~/.claude/settings.json (user-level) and [.claude/settings.json](https://github.com/dleibu/my-claude/blob/claude/test-integrations-KZam8/.claude/settings.json) (project-level) were checked;
the tools appear in the project-level allowlist

### Error Messages/Logs

```shell

Steps to Reproduce

Steps to reproduce

  1. Open Claude Code on the web (claude.ai/code) and start a new session in a git repository
  2. Ensure the following tools are listed in .claude/settings.json under permissions.allow:

```json
{
"permissions": {
"allow": [
"mcp__<uuid>__slack_send_message",
"mcp__<uuid>__createConfluencePage",
"mcp__<uuid>__search_files"
]
}
}
Connect Slack, Atlassian (Confluence), and Google Drive MCP servers via Claude Code settings
Ask Claude to run the following tool calls:
Slack write: Send a DM to yourself via slack_send_message
Confluence write: Create a page via createConfluencePage
Google Drive read: Search files via search_files
Observe the result
Expected result
All three calls execute silently — no approval prompt, no error — because they are explicitly
listed in permissions.allow.

Actual result
All three return immediately with:

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

No approval prompt appears in the UI. The calls do not execute

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

Other

Additional Information

_No response_

View original on GitHub ↗

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