
こんにちは。
アプリケーションサービス本部、DevOps担当の兼安です。
本記事はMac 上で AI コーディングツールから GitHub を操作できる GitHub MCP Server を、
Docker コンテナ経由で Claude Code や Kiro CLI に接続する方法をまとめています。
- 本記事の検証環境
- なぜ GitHub MCP Server を Docker コンテナで動かすのか
- Mac におけるコンテナ動作基盤:Colima
- プロジェクト単位での MCP 設定
- 動作の仕組みと注意点
- 最後に
本記事の検証環境
| ソフトウェア | バージョン |
|---|---|
| macOS | Tahoe 26.5.1 |
| Colima | 0.10.3 |
| Docker(クライアント) | 29.6.1 |
| Docker(サーバー) | 29.5.2(Colima同梱) |
| Claude Code | 2.1.181 |
| Kiro CLI | 0.12.333 |
なぜ GitHub MCP Server を Docker コンテナで動かすのか
Docker イメージでの実行が公式の推奨方法
GitHub MCP Server は、公式が Docker イメージとして配布しています。
GitHub - github/github-mcp-server: GitHub's official MCP Server · GitHub
README には次のように記載されています。
Docker: Use the official Docker image with your GitHub Personal Access Token
つまり、Docker イメージでの実行が公式の推奨方法です。
npm や pip でインストールするスタンドアロンバイナリは提供されていないため、
ローカルで動かすには Docker(または互換ランタイム)が必要になります。
また、MCP の仕様上、クライアント(Claude Code / Kiro CLI)はサーバープロセスを
stdio 経由で起動・通信する設計になっています。
Docker はこの起動モデルと相性がよく、コンテナの起動・終了がそのままサーバーの
ライフサイクルに対応します。
GitHub Copilot の場合は Docker 不要
GitHub MCP Server は stdio に加えて、HTTP(SSE)トランスポートもサポートしています。
GitHub は MCP 用のホスト済みエンドポイントを提供しており、
GitHub Copilot(VS Code)はこのエンドポイントに HTTP で直接接続できます。
https://api.githubcopilot.com/mcp/
Copilot は GitHub 認証を内包しているため、Personal Access Token の設定も
Docker の用意も不要です。
本記事は Claude Code や Kiro CLI を使用する想定で書いています。
この2つはホスト済みエンドポイントを利用できないため、これらのツールで GitHub MCP Server を使う場合は、
現状手元で Docker コンテナとして起動する stdio モードが現実的な選択肢になります。
Mac におけるコンテナ動作基盤:Colima
Docker Desktop を避ける理由
Mac で Docker を動かすには、コンテナを実行するためのデーモン(サーバー)が必要です。
最も知名度が高いのは Docker Desktop ですが、2022年のライセンス変更により、
従業員数250人以上または年間売上高1000万ドル超の企業での業務利用は有料になりました。
Colima はこの代替として広く使われているオープンソース(MIT ライセンス)のツールです。
Colima - Container runtimes on macOS and Linux
商用利用も無料で、内部では Lima という軽量 Linux VM を使って
Docker デーモンを動かします。Apple Siliconにも対応しており、
Docker Desktop より消費リソースが少ない傾向があります。
Docker Desktop と Colima の使い勝手の違い
| 項目 | Docker Desktop | Colima |
|---|---|---|
| GUI | システムトレイアプリあり | なし(CLI のみ) |
| 自動起動 | インストール後すぐ有効 | brew services start colima で設定 |
docker コマンド |
そのまま使える | そのまま使える |
| ライセンス | 大規模商用利用は有料 | MIT(無料) |
| リソース消費 | やや重め | 軽量 |
最大の差は GUI の有無です。
コンテナやイメージをビジュアルで管理したい場面では Docker Desktop が便利ですが、
CLI で操作するだけであれば Colima で不足を感じる場面はほぼありません。
通常の docker コマンドはそのまま使える?
Colima は Docker Desktop の代替として動作するため、
docker run・docker ps・docker build など普段使っているコマンドはすべてそのまま動きます。
Colima は内部で Docker デーモンを起動し、標準のソケット(/var/run/docker.sock)経由で
Docker CLI と通信します。アプリ側からは Docker Desktop との区別はありません。
Docker CLI と Colima の両方が必要な理由
Colimaを使って、docker runなどでコンテナを起動するには、Docker CLI と Colima の両方のインストールが必要です。
その理由は両者の役割が異なるためです。
Docker Desktop はクライアントとデーモンをひとまとめにしていますが、
Homebrew の docker パッケージはクライアント(CLI)だけです。
サーバー(デーモン)は Colima が同梱・起動するため、両方のインストールが必要になります。
なお、検証環境のテーブルでクライアント(29.6.1)とサーバー(29.5.2)のバージョンが
異なるのも同じ理由です。サーバーは Colima が同梱するバージョンを使うため、
Docker CLI とは独立したバージョンになります。
# インストール(両方必要) brew install colima docker # Colima の起動 colima start # ログイン時に自動起動する設定(推奨) brew services start colima
brew services start colimaしておくと、ログイン時に自動でColimaが起動するようになるので設定しておくと便利です。
プロジェクト単位での MCP 設定
プロジェクト単位でGitHub MCP Server を使用する MCP 設定を紹介します。
なお、GitHubの認証にはパーソナルアクセストークンとdirenvによる環境変数を想定しています。
パーソナルアクセストークンとdirenvによる環境変数についてはこちらのブログで詳しく述べています。
Claude Code
プロジェクトルートに .mcp.json を作成します。
{ "mcpServers": { "github": { "command": "docker", "args": [ "run", "-i", "--rm", "-e", "GITHUB_PERSONAL_ACCESS_TOKEN", "ghcr.io/github/github-mcp-server" ] } } }
Claude Code はプロジェクトルートの .mcp.json を自動で読み込みます。
Kiro CLI
プロジェクト内の .kiro/settings/mcp.json に追記します。
{ "mcpServers": { "github": { "command": "docker", "args": [ "run", "-i", "--rm", "-e", "GITHUB_PERSONAL_ACCESS_TOKEN", "ghcr.io/github/github-mcp-server" ] } } }
動作の仕組みと注意点
上述の設定をした上で、Claude Code/Kiro CLIを起動するとそれぞれの設定のcommandとargsに従い、次のコマンドが実行されます。
docker run -i --rm -e GITHUB_PERSONAL_ACCESS_TOKEN ghcr.io/github/github-mcp-server
各オプションの意味は次のとおりです。
| オプション | 意味 |
|---|---|
-i |
stdin をオープンに保ち、stdio で MCP クライアントと通信 |
--rm |
コンテナ終了時に自動削除 |
-e GITHUB_PERSONAL_ACCESS_TOKEN |
ホストの環境変数をコンテナに渡す |
Claude Code/Kiro CLIなどのAIエージェントツールを起動すると、ツールのプロセスごとに独立したコンテナインスタンスが起動します。
従って、独立したコンテナインスタンスなので、AIエージェントツールを複数起動しても競合は起きません。
AIエージェントツールを終了すると stdin が閉じ、コンテナも自動終了・削除されます。
毎回クリーンな状態で起動するため、状態の持ち越しによる問題が起きません。
一方で、AIエージェントツールを起動するたびにコンテナインスタンスがどんどん起動する動きをするので、負荷状況には留意する必要があります。
最後に
Claude Code/Kiro CLIに限らず、AIエージェントツールをうっかり起動しすぎて、高負荷で作業ができなくなるというシーンを見かけるようになりました。
設定とコマンドの意味を理解し、動作が想像できるようになると、そういう状況における対処もしやすくなります。
兼安 聡(執筆記事の一覧)
アプリケーションサービス本部 DS3課
2026 Japan AWS Ambassadors
2024-2026 Japan AWS Top Engineers
2024-2026 Japan AWS All Certifications Engineers
2025-2026 AWS Community Builders
Certified ScrumMaster
PMP
広島在住です。今日も明日も修行中です。
X(旧Twitter)