GitHub MCP Server
Provides tools for managing GitHub repositories, issues, pull requests, code search, discussions, and projects through the GitHub API.
Enables interaction with GitHub Actions workflows, including triggering workflow runs and retrieving logs for CI/CD operations.
This server does not currently have a deployable release on Glama. Follow the repository's setup instructions to install and configure it for your MCP client, including any required credentials and local dependencies.
GitHub MCP Server - Docker統合環境
VS Code、Cursor、Kiro、Claude Desktop等の統合IDEにGitHub MCP Server機能を提供するDocker常駐サービス。
HTTP transport対応
このプロジェクトは github-mcp-server のHTTP接続を優先採用しています。
複数IDEウィンドウから同時接続しやすく、stdio 方式より並列利用に向いた構成です。
Claude Desktop だけは HTTP transport 非対応のため、docker run -i ... stdio でサーバーを直接起動します。
イメージ方針(2026-02-07時点):
既定イメージ:
ghcr.io/github/github-mcp-server:main理由: 公式最新リリース
v0.30.3にはhttpサブコマンドが未搭載で、http対応は現時点でmainタグに含まれるためセキュリティ:
.github/workflows/security.ymlでTrivyスキャンを継続実行
Related MCP server: Narad GitHub Agent
概要
GitHub公式のMCPサーバーをDockerコンテナとして常駐させ、各IDEから統一的にGitHub機能を利用できます。
提供機能
リポジトリ管理: 作成、削除、設定
Issue/PR操作: 作成、更新、コメント、レビュー
GitHub Actions連携: ワークフロー実行、ログ取得
Code Search: コード検索、ファイル検索
Discussions: ディスカッション管理
Projects: プロジェクト管理
クイックスタート
前提条件
Docker 20.10+
Node.js 18+ /
npx(mcp-http-bridgeを使う場合のみ)GitHub Personal Access Token (PAT) または OAuth対応クライアント
インストール
# 1. リポジトリクローン
git clone https://github.com/scottlz0310/mcp-docker.git
cd mcp-docker
# 2. 環境整備のみ実行(初回推奨)
./scripts/setup.sh --prepare-only
# 3. セットアップ本実行
./scripts/setup.shセットアップスクリプトが以下を実行します:
.envファイルの作成(初回のみ)GITHUB_PERSONAL_ACCESS_TOKENの設定確認(未設定でも起動可能)
設定ディレクトリの作成
Docker依存関係の確認
Dockerイメージの取得(pull)
サービスの起動
コンテナ状態の確認
--prepare-only を使うと、Docker未導入の段階でも .env と設定ディレクトリの準備だけ先に完了できます。
# Makefile経由でも実行可能
make prepareGitHub Token設定
方法1: 環境変数で設定 (推奨)
export GITHUB_PERSONAL_ACCESS_TOKEN=github_pat_your_token_here
./scripts/setup.sh環境変数が設定されている場合、.envファイルの設定は不要です。
方法2: .envファイルで設定
Fine-grained personal access token (推奨)
設定:
Repository access: 対象リポジトリを選択 (または All repositories)
Permissions:
Contents: Read and write
Issues: Read and write
Pull requests: Read and write
Workflows: Read and write
Metadata: Read-only (自動選択)
.envファイルに設定:
GITHUB_PERSONAL_ACCESS_TOKEN=github_pat_your_token_hereClassic token (非推奨)
GitHub Settings > Tokens (classic) でトークンを作成
スコープ:
repo,workflow,read:org,read:user.envファイルに設定:
GITHUB_PERSONAL_ACCESS_TOKEN=ghp_your_token_here注意: 環境変数 GITHUB_PERSONAL_ACCESS_TOKEN が設定されている場合、.envファイルの設定より優先されます。
HTTPエンドポイント
既定URL:
http://127.0.0.1:8082ポートを変更する場合:
GITHUB_MCP_HTTP_PORTを設定(未設定時は8082)直接 HTTP 接続するクライアントでは、必要に応じて
Authorization: Bearer <PAT/OAuth Token>ヘッダーを送ってください。Claude Desktop は
docker run -i ... stdioで接続します。-e GITHUB_PERSONAL_ACCESS_TOKEN(値なし)を指定すると、ホスト環境変数を安全に受け渡せます。疎通確認(
401 Unauthorizedでもサーバー起動確認としては正常):
curl -i "http://127.0.0.1:${GITHUB_MCP_HTTP_PORT:-8082}/"# 例: 18082で起動
export GITHUB_MCP_HTTP_PORT=18082
docker compose up -d github-mcpIDE統合
VS Code / Cursor
# 設定生成
./scripts/generate-ide-config.sh --ide vscode
# 設定ファイルに追加
# VS Code: settings.json
# Cursor: settings.jsonClaude Desktop
# 設定生成
./scripts/generate-ide-config.sh --ide claude-desktop
# 設定ファイルに追加
# macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
# Linux: ~/.config/Claude/claude_desktop_config.json
# Windows: %APPDATA%\Claude\claude_desktop_config.json生成される設定は docker run -i --rm ... stdio で GitHub MCP Server を直接起動する形式です。
{
"mcpServers": {
"github-mcp-server-docker": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"GITHUB_PERSONAL_ACCESS_TOKEN",
"-v",
"C:\\Users\\dev\\src\\Mcp-Docker\\config\\github-mcp:/app/config:rw",
"-v",
"github-mcp-cache:/app/cache:rw",
"ghcr.io/github/github-mcp-server:main",
"stdio"
]
}
}
}-i は必須です。省略すると stdio 通信が切断されます。
-e GITHUB_PERSONAL_ACCESS_TOKEN は値を埋め込まずに書いてください。
カスタムイメージを使う場合は GITHUB_MCP_IMAGE を設定して再生成できます。
mcp-http-bridge
mcp-http-bridge は MCP stdio フレームを受け取り、HTTP POST で MCP サーバーへそのまま転送する最小CLIです。
npx -y mcp-http-bridge --url http://127.0.0.1:8082npx -y mcp-http-bridge \
--url http://127.0.0.1:8082 \
--header "Authorization: Bearer your_token_here" \
--timeout 10000サポートするオプション:
--url: 転送先の MCP HTTP エンドポイント--header: 追加 HTTP ヘッダ。複数回指定可能--timeout: HTTP タイムアウト(ミリ秒、既定30000)
Kiro
# 設定生成
./scripts/generate-ide-config.sh --ide kiro
# 設定ファイルに配置
# ~/.kiro/settings/mcp.jsonAmazon Q
# 設定生成
./scripts/generate-ide-config.sh --ide amazonq
# 設定方法
# VS Code: 設定 > Amazon Q > MCP ServersCodex CLI
# 設定生成 (TOML)
./scripts/generate-ide-config.sh --ide codex
# 設定ファイルに追記
# ~/.codex/config.tomlCopilot CLI
# 設定生成 (JSON)
./scripts/generate-ide-config.sh --ide copilot-cli
# Copilot CLI MCP設定ファイルに配置
# ~/.copilot/mcp-config.json基本操作
サービス管理
# 起動
docker compose up -d
# 停止
docker compose down
# 再起動
docker compose restart github-mcp
# ステータス確認
docker compose ps
# ログ確認
docker compose logs -f github-mcp
# ログ(最新100行)
docker compose logs --tail=100 github-mcpヘルスチェック
# 標準チェック(コンテナ状態 + トークンがあればAPI確認)
./scripts/health-check.sh
# API確認をスキップ
./scripts/health-check.sh --no-api
# API確認を強制実行
./scripts/health-check.sh --with-apiセキュリティ
イメージのバージョン固定
docker-compose.ymlと各サンプルはGITHUB_MCP_IMAGE変数を参照し、デフォルトでghcr.io/github/github-mcp-server:mainを使用します。別のバージョンを使う場合は次のように上書きします:
export GITHUB_MCP_IMAGE=ghcr.io/github/github-mcp-server:v0.30.3
docker compose pull github-mcpGitHub Actionsでのセキュリティスキャン
Security Scanワークフロー(.github/workflows/security.yml)で、Trivy の結果を GitHub Security タブへ送信します。ワークフローは
push/pull_requestに加えて毎週月曜 15:00 JST (0 6 * * 1UTC) に実行され、リポジトリ/コンテナ双方の脆弱性を継続的に監視します。
開発
リント・テスト
# すべてのリント実行
make lint
# シェルスクリプトのみ
make lint-shell
# シェルスクリプトテスト
make test-shellメンテナンス
コンテナ管理
# distrolessイメージのためシェルはありません(exec sh不可)
# 起動コマンドを確認
docker inspect mcp-github --format='Entrypoint={{.Config.Entrypoint}} Cmd={{.Config.Cmd}}'
# コンテナの詳細情報
docker compose ps --format json
docker inspect mcp-github
# リソース使用状況
docker stats mcp-github
# コンテナ再作成(設定変更後)
docker compose up -d --force-recreate github-mcpイメージ管理
# イメージ更新
docker compose pull github-mcp
docker compose up -d github-mcp
# イメージ一覧
docker images | grep github-mcp-server
# 古いイメージ削除
docker image prune -fログ管理
# ログ確認(リアルタイム)
docker compose logs -f github-mcp
# ログ確認(最新N行)
docker compose logs --tail=100 github-mcp
# ログ確認(タイムスタンプ付き)
docker compose logs -t github-mcp
# ログ確認(特定期間)
docker compose logs --since="2024-01-01" github-mcp
# ログファイル確認
docker inspect mcp-github --format='{{.LogPath}}'データ管理
# ボリューム一覧
docker volume ls | grep mcp
# ボリューム詳細
docker volume inspect mcp-docker_github-mcp-cache
# キャッシュクリア
docker compose down
docker volume rm mcp-docker_github-mcp-cache
docker compose up -d
# 設定ファイルバックアップ
tar -czf config-backup-$(date +%Y%m%d).tar.gz config/トラブルシューティング
# コンテナ完全リセット
docker compose down -v
docker compose up -d
# ネットワーク確認
docker network ls | grep mcp
docker network inspect mcp-docker_mcp-network
# リソースクリーンアップ
docker system prune -f
docker volume prune -f
# 全コンテナ・イメージ削除(注意)
docker compose down -v --rmi all
# 全コンテナを強制停止・削除
docker ps -aq | xargs -r docker stop
docker ps -aq | xargs -r docker rmディレクトリ構成
Mcp-Docker/
├── docker-compose.yml # サービス定義
├── .env.template # 環境変数テンプレート
├── .env # 環境変数(gitignore)
├── config/
│ └── github-mcp/ # サーバー設定
├── scripts/
│ ├── setup.sh # セットアップ
│ ├── generate-ide-config.sh # IDE設定生成
│ ├── health-check.sh # ヘルスチェック
│ └── lint-shell.sh # シェルスクリプトLint
├── tests/
│ └── shell/ # シェルスクリプトテスト
├── docs/
│ └── SECURITY_PATCHES.md # セキュリティ方針
└── examples/
└── github-mcp/ # サンプルComposeトラブルシューティング
サービスが起動しない
# ログ確認
docker compose logs github-mcp
# 詳細ログ確認
docker compose logs --tail=200 github-mcp
# コンテナ再作成
docker compose down
docker compose up -d
# 強制再作成
docker compose up -d --force-recreate github-mcpGitHub API接続エラー
# トークン確認
cat .env | grep GITHUB_PERSONAL_ACCESS_TOKEN
# トークンの有効性確認
curl -H "Authorization: Bearer YOUR_TOKEN" https://api.github.com/user
# コンテナ設定から確認(distrolessのため exec env は非対応)
docker inspect mcp-github --format='{{range .Config.Env}}{{println .}}{{end}}' | grep GITHUBヘルスチェック失敗
# コンテナ状態確認
docker compose ps github-mcp
# 再起動回数の確認
docker inspect mcp-github --format='running={{.State.Running}} restart={{.RestartCount}}'
# ログ確認
docker compose logs --tail=200 github-mcp
# API含むヘルスチェック
./scripts/health-check.sh --with-apiメモリ不足
# リソース使用状況確認
docker stats mcp-github
# メモリ制限変更(docker-compose.yml編集後)
docker compose up -d --force-recreate github-mcpポート競合
# ポート使用状況確認(使用中のポート番号を指定)
lsof -i :${GITHUB_MCP_HTTP_PORT:-8082}
netstat -an | grep ${GITHUB_MCP_HTTP_PORT:-8082}
# ポート変更(環境変数)
export GITHUB_MCP_HTTP_PORT=8083
docker compose up -d --force-recreate github-mcp運用ガードレール
トークンは
.envファイルやコンテナ環境変数で管理し、Claude Desktop 側には極力持ち込まないコンテナは専用ネットワークで分離
ログは機密情報をマスキング
リソース制限: 512MB/1CPU
ライセンス
MIT License - 詳細はLICENSEを参照
関連プロジェクト
ci-helper - GitHub Actions ローカル実行ツール(旧Actions Simulator)
WSL-kernel-watcher - WSLカーネル更新監視ツール(開発予定)
関連リンク
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
This server cannot be deployed
Maintenance
Related MCP Connectors
GitHub Copilot MCP: code, repo, PR, workflow tools for AI assistants.
Create, deploy, and operate MCP servers directly from your GitHub repositories.
AI-native git hosting — repos, PRs, issues, CI gates, and AI code review over MCP (60 tools).
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…
Related MCP Servers
- AlicenseBqualityCmaintenanceMCP server that exposes GitHub operations as tools for AI agents, enabling code search, issue management, and PR review.12MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI-powered GitHub interactions including repository analysis, code search, PR reviews, and more through the MCP protocol.4MIT
- AlicenseBqualityDmaintenanceMCP (Model Context Protocol) server for GitHub API integration. This server provides comprehensive tools for interacting with GitHub repositories, issues, pull requests, branches, and code search through a unified interface.156 npmMIT
- FlicenseNot gradedqualityAmaintenanceA GitHub MCP server that wraps the gh CLI to expose GitHub operations like issues, pull requests, branches, labels, repositories, CI actions, and Projects V2 as tools for MCP clients.-