claude-memory/graph/fixes/claude-code-mcp-user-scope-config-is-claudejson-not-claudemc-f01c17.md

55 lines
1.8 KiB
Markdown

---
id: f01c17f0-6641-4d11-98cb-1d182e7e98af
type: fix
title: "Claude Code MCP user-scope config is ~/.claude.json, not ~/.claude/.mcp.json"
tags: [claude-code, mcp, configuration, fix, claude-home]
importance: 0.8
confidence: 0.8
created: "2026-02-25T23:12:20.651207+00:00"
updated: "2026-03-02T02:14:29.410950+00:00"
relations:
- target: 6665d42a-0c52-4684-999b-bf8982439069
type: RELATED_TO
direction: incoming
strength: 0.9
edge_id: 61fe9147-073d-4795-813f-beee81c948cc
- target: d746c584-c625-4710-b2a7-bba205e2e92d
type: RELATED_TO
direction: incoming
strength: 0.86
edge_id: 68659ca8-6d75-48d8-8de0-3f8b5f7b4e7e
---
# Claude Code MCP User-Scope Config Location
## Problem
Confusion about where Claude Code stores user-scoped MCP server configurations. The file `~/.claude/.mcp.json` exists but is NOT the authoritative config for user-scoped servers.
## Root Cause
The actual user-scoped MCP config lives in `~/.claude.json` under the `"mcpServers"` key. The `~/.claude/.mcp.json` file appears to be a legacy or alternate config that may not be reliably loaded by Claude Code.
## Fix
Always use the `claude mcp` CLI to manage user-scoped MCP servers:
```bash
# Add a user-scoped MCP server
claude mcp add -s user <name> <command> [args...]
# Remove a user-scoped MCP server
claude mcp remove -s user <name>
# List all MCP servers
claude mcp list
```
These commands write to `~/.claude.json`, which is the correct location.
## Current User-Scoped Servers (as of 2026-02-25)
- `cognitive-memory``python3 mcp_server.py` (local skill)
- `n8n-mcp``npx n8n-mcp` (npm package)
- `gitea-mcp``~/.local/bin/gitea-mcp` (local binary)
## Key Takeaway
- Correct file: `~/.claude.json``"mcpServers"` key
- Wrong file: `~/.claude/.mcp.json` (do not use directly)
- Always use `claude mcp add/remove -s user` for user-scope changes