GitHub MCP Server について
GitHub MCP Serverは、GitHubのリポジトリやプロジェクトデータを扱うAIアシスタント向けのGo製サーバーです。リポジトリ、Issue、プルリクエスト、コード、コミット、ブランチ、Actionsのツールを備え、書き込みは初期状態で無効です。
主な機能
- 01リポジトリ、コード、Issue、コミットの検索
- 02ファイル、ブランチ、コミットの管理
- 03プルリクエストの作成と確認
- 04Issueとコメントの管理
- 05GitHub Actionsのワークフローと実行状況の確認
- 06書き込み権限とツールの自動承認設定
活用シーン
- 01GitHub全体からコード、リポジトリ、Issueを検索
- 02プルリクエストの詳細や差分を確認
- 03リポジトリのファイルやブランチを管理
- 04ワークフローの実行状況やログを確認
MCP 対応
GitHub APIの操作をツールとしてMCPクライアントに公開し、リポジトリ、Issue、プルリクエスト、Actionsなどを扱えます。書き込み操作は初期状態で無効で、フラグで有効にできます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
GitHub MCP サーバー
Go で実装された、GitHub 向けの Model Context Protocol(MCP)サーバーです。このサーバーを使用すると、LLM が標準化されたインターフェースを通じて、GitHub のリポジトリ、イシュー、プルリクエストなどを操作できます。
機能
- 包括的な GitHub API へのアクセス:以下のツールを参照してください
- セットアップコマンド:AI アシスタントを簡単に自動セットアップできます
--auto-approveを指定すると、自動承認のチェックボックスを事前に選択できます--write-accessを指定すると、リモート操作の書き込みアクセスが有効になります- バイナリを安定した場所にコピーします
- ツールの MCP サーバー設定を更新します(cline と claude-desktop に対応)
- セキュリティ制御:
- 安全のため、書き込みアクセスはデフォルトで無効になっています
- きめ細かな自動承認オプション
今後の予定
- 「get_diff」
- 2 つのコミット間の差分
- ?
compare_commitsの出力に含めるべきでしょうか?
インストール
前提条件
- 適切な権限を持つ GitHub Personal Access Token
ビルド済みバイナリを使用する
お使いのプラットフォーム用のビルド済みバイナリは、GitHub Releases ページからダウンロードできます。
# Download the latest release - for "linux_amd64" in this case
RELEASE="$(curl -s https://api.github.com/repos/geropl/github-mcp-go/releases/latest)"
DOWNLOAD_URL="$(echo $RELEASE | jq -r '.assets[] | select(.name | contains("linux_amd64")) | .browser_download_url')"
curl -L -o ./github-mcp-go $DOWNLOAD_URL
chmod +x ./github-mcp-go
# Setup the mcp server (can be called in .gitpod.yml, dotfiles repo, etc.)
./github-mcp-go setup --write-access="${GITHUB_MCP_WRITE_ACCESS:-false}" --auto-approve=allow-read-only || true
rm -f ./github-mcp-go
ソースからビルドする
ソースからビルドする場合:
# Prerequisites: Go 1.23 or later
# Clone the repository
git clone https://github.com/geropl/github-mcp-go.git
cd github-mcp-go
# Build the server
go build -o github-mcp-go .
使用方法
環境変数
GitHub API で認証するには、GitHub Personal Access Token が必要です。
export GITHUB_PERSONAL_ACCESS_TOKEN=your_token_here
セットアップ
このサーバーには、AI アシスタントで使用する MCP サーバーをインストールおよび設定するための便利なセットアップコマンドが含まれています。
# Set up for Cline with auto-approval for read-only tools
./github-mcp-go setup --auto-approve allow-read-only --tool cline
# Set up for Claude Desktop with auto-approval for specific tools
./github-mcp-go setup --auto-approve search_repositories,get_file_contents --tool claude-desktop
# Set up with write access enabled
./github-mcp-go setup --write-access --tool cline
# Show setup help
./github-mcp-go setup --help
サーバーの実行
# Run the server directly (read-only mode)
./github-mcp-go serve
# Run the server with write access enabled
./github-mcp-go serve --write-access
# Show help
./github-mcp-go --help
自動承認オプション
--auto-approve フラグを使用すると、自動承認するツールをカンマ区切りのリストで指定できます。allow-read-only は、読み取り専用のツールをすべて自動承認リストに追加する特別な値です(安全で、状態を変更しません)。
--write-access フラグを指定すると、リモート操作の書き込みアクセスが有効になります。これにより、リモートリポジトリを変更するツールを使用できます。安全のため、書き込みアクセスはデフォルトで無効になっています。
利用可能なツール
リポジトリツール
search_repositories:GitHub リポジトリを検索しますcreate_repository:新しい GitHub リポジトリを作成しますfork_repository:GitHub リポジトリをフォークします
プルリクエストツール
create_pull_request:新しいプルリクエストを作成しますget_pull_request:プルリクエストの詳細情報を取得しますget_pull_request_diff:プルリクエストの差分を取得します
ファイルツール
get_file_contents:ファイルまたはディレクトリの内容を取得しますcreate_or_update_file:ファイルを作成または更新しますpush_files:複数のファイルを 1 つのコミットでプッシュします
イシューツール
create_issue:新しいイシューを作成しますlist_issues:フィルタリングオプションを使ってイシューを一覧表示しますupdate_issue:既存のイシューを更新しますadd_issue_comment:イシューにコメントを追加しますget_issue:特定のイシューの詳細を取得しますlist_issue_comments:イシューのコメントを一覧表示します
ブランチツール
list_branches:リポジトリ内のブランチを一覧表示しますget_branch:特定のブランチの詳細を取得しますcreate_branch:新しいブランチを作成しますmerge_branches:あるブランチを別のブランチにマージしますdelete_branch:ブランチを削除します
コミットツール
get_commit:特定のコミットの詳細を取得しますlist_commits:リポジトリ内のコミットを一覧表示しますcompare_commits:2 つのコミットまたはブランチを比較しますget_commit_status:特定のコミットの統合ステータスを取得しますcreate_commit_comment:特定のコミットにコメントを追加しますlist_commit_comments:特定のコミットのコメントを一覧表示しますcreate_commit:新しいコミットを直接作成します
検索ツール
search_code:リポジトリ全体からコードを検索しますsearch_issues:イシューとプルリクエストを検索しますsearch_commits:リポジトリ全体からコミットを検索します
GitHub Actions ツール
list_workflows:リポジトリ内のすべてのワークフローを一覧表示しますget_workflow:特定のワークフローの詳細情報を取得しますlist_workflow_runs:リポジトリまたは特定のワークフローの実行を一覧表示しますget_workflow_run:特定のワークフロー実行の詳細情報を取得しますdownload_workflow_run_logs:ワークフロー実行のログをダウンロードして処理しますlist_workflow_jobs:ワークフロー実行のジョブを一覧表示しますget_workflow_job:特定のジョブの詳細情報を取得します
リリース
このプロジェクトではセマンティックバージョニングを採用しています。リポジトリに新しいタグがプッシュされると、新しいリリースが自動的にビルドされ、GitHub Releases に公開されます。
新しいリリースの作成方法について詳しくは、RELEASE.mdを参照してください。
利用可能なプラットフォーム
以下のプラットフォーム向けにビルド済みバイナリを利用できます。
- Linux(amd64、arm64)
- macOS(amd64、arm64)
- Windows(amd64)
開発
テスト
このプロジェクトでは、HTTP 通信の記録に go-vcr を使用したテーブル駆動テストを採用しています。
go test ./...
ライセンス
このプロジェクトは MIT ライセンスのもとで公開されています。詳細は LICENSE ファイルを参照してください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。