Skip to content

[BUG] Claude Desktop Cowork: "Always allow" for MCP tools does not persist across sessions #24433

Description

@janvl

Description

In Claude Desktop's Cowork (local agent mode), clicking "Always allow" (⌘⏎) for MCP tool calls does not persist. Each new Cowork session requires re-approving every MCP tool call, making it impractical when working with MCP servers that expose many tools.

Steps to Reproduce

  1. Configure a local MCP server in claude_desktop_config.json with multiple tools
  2. Start a new Cowork task
  3. When the "Claude wants to use [tool_name]" dialog appears, click "Always allow" (⌘⏎)
  4. Complete or end the Cowork task
  5. Start a new Cowork task that uses the same MCP tools

Expected Behavior

Tool approvals from "Always allow" should persist across Cowork sessions, so previously approved MCP tools don't require re-approval.

Actual Behavior

Every new Cowork session starts with a blank enabledMcpTools state ({"":true}). All MCP tools need to be individually re-approved, even those previously marked as "Always allow".

This is particularly painful for MCP servers with many tools (e.g. 40-50 tools), as it means clicking through dozens of approval dialogs at the start of every task.

Investigation

Looking at the session data in ~/Library/Application Support/Claude/local-agent-mode-sessions/, each new Cowork session creates a fresh JSON file with enabledMcpTools: {"":true}. The "Always allow" choice is never written back to this object or to any shared config.

Suggested Solutions

  1. Persist MCP tool approvals globally — Store "Always allow" choices in a shared config file (e.g. config.json or claude_desktop_config.json) so they apply to all future sessions
  2. Support alwaysAllow in server config — Allow pre-approving tools per MCP server in claude_desktop_config.json, e.g.:
    {
      "mcpServers": {
        "my-server": {
          "command": "node",
          "args": ["server.js"],
          "alwaysAllow": ["tool_a", "tool_b"]
        }
      }
    }
  3. Bulk approval — Allow approving all tools from a trusted MCP server at once, rather than one-by-one

Environment

  • Claude Desktop: latest version (macOS)
  • macOS 15.3.1
  • MCP server: custom server with 50+ tools via stdio bridge

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    area:mcpbugSomething isn't workinghas reproHas detailed reproduction stepsplatform:macosIssue specifically occurs on macOSstaleIssue is inactive

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions