🪷

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の画像

実際に/zenコマンドも正常に動作しました。
考え中

~/.claude.jsonを直接編集することで、複雑な設定が必要なMCPサーバーも簡単にUser Scopeに追加できることがわかりました。~/.claude.jsonはClaude Codeによって書き込まれ得るので、MCP serverの管理方法としては若干微妙な感じがしますが、より複雑なMCP serverをUser Scopeで登録するための暫定的な方法としては良いと思います。

GitHubで編集を提案

Discussion