mcpField
G
GitHub MCP Server

GitHub MCP Server

ローカル
github.com/geroplバージョン管理175 週間前に更新

GitHub MCP Server について

GitHub MCP Serverは、GitHubのリポジトリやプロジェクトデータを扱うAIアシスタント向けのGo製サーバーです。リポジトリ、Issue、プルリクエスト、コード、コミット、ブランチ、Actionsのツールを備え、書き込みは初期状態で無効です。

主な機能

  1. 01リポジトリ、コード、Issue、コミットの検索
  2. 02ファイル、ブランチ、コミットの管理
  3. 03プルリクエストの作成と確認
  4. 04Issueとコメントの管理
  5. 05GitHub Actionsのワークフローと実行状況の確認
  6. 06書き込み権限とツールの自動承認設定

活用シーン

  1. 01GitHub全体からコード、リポジトリ、Issueを検索
  2. 02プルリクエストの詳細や差分を確認
  3. 03リポジトリのファイルやブランチを管理
  4. 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 ファイルを参照してください。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。