GitHub公式のMCPサーバーをCursor/Windsurfでつかう
GitHub 公式が Go 実装の MCP(Model Context Protocol)サーバー GitHub MCP Server 0.2.0
を2025年4月17日に公開しました。
これにより、従来の Ahthropic が管理する TypeScript 版 modelcontextprotocol/servers の GitHub 実装が非推奨となり、Docker さえあれば即利用できます。
手順
- Docker を利用できるように OrbStack をインストール
- GitHub 上で認証のための PAT (Personal Access Token) を作成する
- エディタで設定する
Docker 環境の準備
Mac の Docker 環境は Docker Desktop が有名ですが、OrbStack の方が明らかに軽量なのでここでは OrbStack を推奨します。
すでに Docker Desktop を利用している場合でも、OrbStack のインストール過程で移行フローが実行されるので試してみてください。
PAT を生成
GitHub MCP サーバーは GitHub API を利用するため、認証用の PAT (Personal Access Token) が必須です。
PAT は2種類あり、より細かく権限を制御可能な Fine-grained token
の利用を推奨されていますが、理解するのが手間なので Classic token
でも大丈夫です。
- Personal access tokens (classic)
- Fine-grained personal access tokens
Classic token の作り方
- https://github.com/settings/tokens を開く
-
Generate new token
をクリック -
Generate new token (classic)
を選択 - Note:
github-mcp-server
を入力 - Expiration: お試しなら
7 days
, 再設定が面倒ならNo expiration
- Select scopes で
repo
配下を全選択 (Read/Write) -
Generate token
をクリックし、生成された PAT をコピーする
Fine-grained token の作り方
セキュリティ志向が強い人向けの手順を開く
- https://github.com/settings/personal-access-tokens を開く
-
Generate new token
をクリック - Token name:
github-mcp-server
を入力 - Expiration: お試しなら
7 days
, 再設定が面倒ならNo expiration
- Repository access:
All repositories
- Repository Permissions
- Administration:
Read and write
- 注)
create_repository
,fork_repository
をさせたい場合のみ必要。AI で自動化させる恩恵は少ないはずなのでなくてよい
- 注)
- Code scanning alerts:
Read-only
- Commit statuses:
Read and write
- Contents:
Read and write
- Issues:
Read and write
- Pull requests:
Read and write
- Secret scanning alerts:
Read-only
- Administration:
-
Generate token
をクリックし、生成された PAT をコピーする
エディタ側の設定
Cursor の設定
- メニュー Cursor ▸ Preferences ▸ Cursor Settings を開く
- MCP セクション ▸ Add new global MCP server
-
mcp.json
が開くので以下を入力
{
"mcpServers": {
"github": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"GITHUB_PERSONAL_ACCESS_TOKEN",
"ghcr.io/github/github-mcp-server"
],
"env": {
"GITHUB_PERSONAL_ACCESS_TOKEN": "ghp_******"
}
}
}
}
-
ghp_******
の部分に作成した PAT を貼り付けます
Windsurf の設定
- Windsurf ▸ Preferences ▸ Windsurf Settings を開く
- Cascade ▸ Add Server ▸ Add custom server を選択
-
mcp_config.json
が開くので以下を入力
{
"mcpServers": {
"github": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"GITHUB_PERSONAL_ACCESS_TOKEN",
"ghcr.io/github/github-mcp-server"
],
"env": {
"GITHUB_PERSONAL_ACCESS_TOKEN": "ghp_******"
}
}
}
}
-
ghp_******
の部分に作成した PAT を貼り付けます
Windsurf の招待コード
まだ Windsurf を使ったことがない人は、以下の Refferal Link から登録すると 250 のボーナスクレジットがお互いに手に入ります。
動作確認
Cursor なら Agent Mode、Windsurf なら Cascade の Write mode で指示をし、GitHub MCP サーバーが動作するか確認します。
get_me を実行して
サンプルの Issue を作成して
サンプルの PR を作成して
GitHub MCP サーバーを最新にする
執筆時点では、2025年4月22日にリリースされた 0.2.1
が最新です。新しいバージョンがリリースされたら Docker イメージを最新にしなければ更新されません。
MCP サーバーを実行する Docker コマンドは以下のような引数が使われています。
docker
run \
-i \
--rm \
-e GITHUB_PERSONAL_ACCESS_TOKEN \
ghcr.io/github/github-mcp-server
Docker の pull policy が未指定のため、デフォルトの missing
が使われます。ローカルに Docker イメージがない時だけ pull するという指定です。
そのため、最新版がリリースされたら手動で pull する必要があります。
docker pull ghcr.io/github/github-mcp-server:latest
これだと少し面倒なので、pull policy を always
にすることで MCP サーバー起動時に常に最新化されます。各エディタの MCP の JSON ファイルの args に --pull=always
を追加してください。
{
"mcpServers": {
"github": {
"command": "docker",
"args": [
"run",
"--pull=always",
"-i",
"--rm",
"-e",
"GITHUB_PERSONAL_ACCESS_TOKEN",
"ghcr.io/github/github-mcp-server"
],
"env": {
"GITHUB_PERSONAL_ACCESS_TOKEN": "ghp_******"
}
}
}
}
ただし、この方法は壊れたコードがリリースされた場合や、悪意のあるコードが埋め込まれてリリースされた場合が仮にあったとすると、ゼロデイ攻撃を受けるリスクがあることを許容することになります。
Discussion