Bug Report: Project-scoped MCP servers don't trigger approval prompt
Summary
When starting a Claude Code session in a project containing .mcp.json, the expected approval prompt for project-scoped MCP servers never appears. Users must manually create .claude/settings.local.json to enable servers, bypassing the intended security workflow.
Expected Behavior
- Start Claude Code session in project with
.mcp.json
- Approval prompt appears: "This project wants to use MCP servers: [list]. Approve?"
- On approval,
.claude/settings.local.json is automatically created with enabled servers
- Servers become available in
/mcp
Actual Behavior
- Start Claude Code session in project with
.mcp.json ✅
- No approval prompt appears ❌
.claude/settings.local.json is NOT created ❌
- Servers do NOT appear in
/mcp list ❌
- Must manually create
.claude/settings.local.json with enabledMcpServers array
Steps to Reproduce
- Create project directory
- Add
.mcp.json with MCP server configurations:
{
"mcpServers": {
"google-workspace": {
"command": "uv",
"args": ["--directory", "/path/to/server", "run", "main.py"],
"env": { ... }
}
}
}
- Start Claude Code session in project:
claude code
- Expected: Approval prompt appears
- Actual: No prompt, servers not available
Observed Issues
claude mcp list does NOT show project-scoped servers from .mcp.json
- No approval prompt at session start
- No indication that
.mcp.json was even detected
- Possible conflict when same-named servers exist in user-scoped config
Environment
- OS: macOS Darwin 25.0.0
- Claude Code CLI (latest)
.mcp.json exists in project root with valid configuration
Workaround
Manually create .claude/settings.local.json:
{
"enabledMcpServers": ["google-workspace", "mcp-datetime"]
}
Impact
- Breaks documented security model for project-scoped MCP servers
- Users unaware of
.claude/settings.local.json requirement
- No visibility into which servers are project vs user-scoped
- Approval mechanism completely non-functional
Suggested Fixes
- Critical: Trigger approval prompt on session start when
.mcp.json detected
- Add
--verbose flag to show MCP server discovery/loading process
- Show scope indicators in
claude mcp list (user/project/local)
- Warn when project servers conflict with user-scoped servers
- Document
.claude/settings.local.json approval mechanism clearly
Bug Report: Project-scoped MCP servers don't trigger approval prompt
Summary
When starting a Claude Code session in a project containing
.mcp.json, the expected approval prompt for project-scoped MCP servers never appears. Users must manually create.claude/settings.local.jsonto enable servers, bypassing the intended security workflow.Expected Behavior
.mcp.json.claude/settings.local.jsonis automatically created with enabled servers/mcpActual Behavior
.mcp.json✅.claude/settings.local.jsonis NOT created ❌/mcplist ❌.claude/settings.local.jsonwithenabledMcpServersarraySteps to Reproduce
.mcp.jsonwith MCP server configurations:{ "mcpServers": { "google-workspace": { "command": "uv", "args": ["--directory", "/path/to/server", "run", "main.py"], "env": { ... } } } }claude codeObserved Issues
claude mcp listdoes NOT show project-scoped servers from.mcp.json.mcp.jsonwas even detectedEnvironment
.mcp.jsonexists in project root with valid configurationWorkaround
Manually create
.claude/settings.local.json:{ "enabledMcpServers": ["google-workspace", "mcp-datetime"] }Impact
.claude/settings.local.jsonrequirementSuggested Fixes
.mcp.jsondetected--verboseflag to show MCP server discovery/loading processclaude mcp list(user/project/local).claude/settings.local.jsonapproval mechanism clearly