Claude CodeのMCP serverのUser Scopeの挙動をちょっと理解した件
問題意識
Claude CodeでMCPサーバーをUser Scopeで登録する際、Anthropicのドキュメントでは以下のようなシンプルなコマンドが紹介されています。
# Add a user server
claude mcp add my-user-server -s user /path/to/server
参考:Model Context Protocol (MCP) - Anthropic
ただ、実際に使ってみると「より複雑な設定が必要なMCPサーバーはどうやって登録するんだ?」という疑問が。詳細な設定方法を公式ドキュメントやGoogle検索で見つけられなかったので、少し調べてみました。
解決方法
いきなり結論ですが、~/.claude.json
の更新でいけます。
実際に試してみましょう。例として、BeehiveInnovations/zen-mcp-serverを使って以下のコマンドを実行してみます(zen-mcp-serverを例に出していますが、登録したいMCP serverを利用する形で問題ないです)。
claude mcp add zen -s user ~/zen-mcp-server/.zen_venv/bin/python
コマンド実行後に~/.claude.json
を覗いてみると、こんな感じでzen-mcp-serverが登録されています。
{
...
"mcpServers": {
"zen": {
"type": "stdio",
"command": "/Users/{username}/zen-mcp-server/.zen_venv/bin/python",
"args": [],
"env": {}
}
}
}
ここからが本題です。BeehiveInnovations/zen-mcp-serverのREADMEを参考に、この設定をもう少し詳細に書き換えてみます。
{
...
"mcpServers": {
"zen": {
"type": "stdio",
"command": "/Users/{username}/zen-mcp-server/.zen_venv/bin/python",
"args": ["/Users/{username}/zen-mcp-server/server.py"],
"env": {
"PYTHONPATH": "/Users/{username}/zen-mcp-server"
}
}
}
}
動作確認してみましょう。適当なディレクトリを作ってclaude
を起動します。
mkdir mcp-test
cd mcp-test
claude --dangerously-skip-permissions
/zen
と入力すると、ちゃんとサジェスションが表示されます!
実際に/zen
コマンドも正常に動作しました。
~/.claude.json
を直接編集することで、複雑な設定が必要なMCPサーバーも簡単にUser Scopeに追加できることがわかりました。~/.claude.json
はClaude Codeによって書き込まれ得るので、MCP serverの管理方法としては若干微妙な感じがしますが、より複雑なMCP serverをUser Scopeで登録するための暫定的な方法としては良いと思います。
Discussion