🌍

Claude Code の MCP サーバーの設定をグローバルにする

に公開

結論

claude mcp add github \
    -e GITHUB_PERSONAL_ACCESS_TOKEN=github_pat_*** \
+   -s user \
    -- \
    docker \
    run \
    -i \
    --rm \
    -e GITHUB_PERSONAL_ACCESS_TOKEN \
    ghcr.io/github/github-mcp-server

経緯

前回の記事 で、何故か Claude Code が MCP 経由じゃなくて gh コマンドで GitHub を操作しようとするという追記をしたが、これは Claude Code が作業するためのフォルダを git worktree コマンドを使って新たに作っていたせいだったと思われる。

Claude Code は新しいフォルダで claude コマンドを実行すると毎回このフォルダを信頼するか訪ねてきたりするが、MCPの設定もフォルダ(≒プロジェクト)ごとにしないといけないらしい。なので、claude mcp add ... みたいなコマンドを毎回打つ必要がある。

これは git worktree を使ってるとだるすぎるのでグローバルな設定を追加したい。

公式ドキュメントのTIPS によると、

You can use -s global to add the server to your global configuration instead of the project-specific one

ということなので、-s global 付きで実行して毎回セットアップしなくて良いようにする。

claude mcp add github \
    -e GITHUB_PERSONAL_ACCESS_TOKEN=github_pat_*** \
+   -s global \
    -- \
    docker \
    run \
    -i \
    --rm \
    -e GITHUB_PERSONAL_ACCESS_TOKEN \
    ghcr.io/github/github-mcp-server

と思ったら以下のエラーが出てできない。

Invalid scope: global. Must be one of: local, user, project

どうもドキュメントの修正が追いついてないらしい。多分 user を選べばやりたいことは実現可能なのか? CHANGELOG.md にも記述があった。

https://github.com/anthropics/claude-code/blob/4c9bd9cd744989734d2642ca1165317e24af91b3/CHANGELOG.md?plain=1#L154

0.2.49

  • Previous MCP server scopes have been renamed: previous "project" scope is now "local" and "global" scope is now "user"

というわけでコマンド修正。

claude mcp add github \
    -e GITHUB_PERSONAL_ACCESS_TOKEN=github_pat_*** \
-   -s global \
+   -s user \
    -- \
    docker \
    run \
    -i \
    --rm \
    -e GITHUB_PERSONAL_ACCESS_TOKEN \
    ghcr.io/github/github-mcp-server
Added stdio MCP server github with command: docker run -i --rm -e GITHUB_PERSONAL_ACCESS_TOKEN ghcr.io/github/github-mcp-server to user config

適当なフォルダにて claude で /mcp を打ってみる。

> /mcp
  ⎿  MCP Server Status

     • github: connected

できてるっぽいですね。

Discussion