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

Resolved 💬 5 comments Opened Feb 9, 2026 by janvl Closed Mar 15, 2026

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.:

``json
{
"mcpServers": {
"my-server": {
"command": "node",
"args": ["server.js"],
"alwaysAllow": ["tool_a", "tool_b"]
}
}
}
``

  1. 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

View original on GitHub ↗

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