mcp-github-cli について
mcp-github-cli は、GitHub CLI と GitHub GraphQL・REST API を利用して GitHub を操作する MCP サーバーです。MCP クライアントからリポジトリを調査・管理する用途に向け、ユーザー情報、リポジトリ、イシュー、プルリクエストや独自 API リクエストを扱います。
主な機能
- 01認証済みユーザー情報の取得
- 02リポジトリ、ユーザー、コントリビューター情報の取得
- 03イシューとプルリクエストの検索
- 04リポジトリ検索とファイル内容の取得
- 05イシューとプルリクエストの作成
- 06独自の GraphQL・REST リクエストの実行
活用シーン
- 01リポジトリ情報、ブランチ、コミットの確認
- 02イシューやプルリクエストの状況確認
- 03MCP クライアントからイシューやプルリクエストを作成
MCP 対応
GitHub CLI を介して GitHub GraphQL・REST API 用のツールを MCP クライアントに提供します。使用には `gh` のインストールと GitHub 認証が必要です。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
mcp-github-cli
GitHub と連携するための、用途を絞った GraphQL および REST API ツールを提供する MCP サーバーです。このサーバーは、GitHub の API を活用して豊富なデータと機能を提供する、厳選された強力なツールセットを備えています。
使用方法
uvx mcp-github-cli
PyPI から実行されます。goose または claude で使用できます。
前提条件
-
まだインストールしていない場合は、GitHub CLI(
gh)をインストールします。- macOS:
brew install gh - Linux:
sudo apt install gh - Windows:
winget install GitHub.cli
- macOS:
-
GitHub で認証します。
gh auth login
テスト
uv run python main.py --test
次の項目を検証する包括的なテストスイートが実行されます。
- GitHub の認証状態
- ユーザー情報の取得(gh_get_me)
- GraphQL クエリ機能(viewer 情報)
- REST API によるリポジトリ検索
- GraphQL によるリポジトリ情報の取得
- REST API によるブランチ一覧の取得
テスト出力から、各ツールの機能を確認できます。
ソースからの使用方法
CLI から実行する(Goose、またはお試し用)
uv --directory /path/to/mcp-github-cli run python main.py
機能
この MCP サーバーは、GitHub の GraphQL API と REST API を活用する、強力で用途を絞ったツールの提供に特化しています。
ユーザー情報
gh_get_me():認証済みユーザーの詳細情報を取得します
GraphQL ツール
GraphQL ツールは、1 回のリクエストで豊富なネストされたデータを提供します。
gh_graphql_repo_info(owner_repo):リポジトリの包括的な情報を取得しますgh_graphql_user_profile(username):ユーザープロフィールの詳細データを取得しますgh_graphql_pull_requests(owner_repo, limit, state):レビュー担当者とステータスを含むプルリクエストを取得しますgh_graphql_issues(owner_repo, limit, state, labels):コメントとラベルを含む Issue を取得しますgh_graphql_repo_contributors(owner_repo, limit):リポジトリのコントリビューターと、そのコミットを取得しますgh_custom_graphql(query, variables):カスタム GraphQL クエリを実行します
REST API ツール
REST ツールは、一般的な操作に対応する特定の機能を提供します。
gh_rest_search_repos(query, limit):リポジトリを検索しますgh_rest_repo_contents(owner_repo, path, ref):リポジトリのコンテンツを取得しますgh_rest_create_issue(owner_repo, title, body, labels):Issue を作成しますgh_rest_create_pr(owner_repo, title, body, head, base, draft):プルリクエストを作成しますgh_rest_branches(owner_repo):リポジトリのブランチ一覧を取得しますgh_rest_commits(owner_repo, branch, limit):リポジトリのコミット一覧を取得しますgh_rest_api(endpoint, method, data, query_params):カスタム REST API リクエストを実行します
例
これらのツールの使用例を紹介します。
ユーザー情報
# Get authenticated user information
gh_get_me()
GraphQL の例
# Get repository information
gh_graphql_repo_info("block/goose")
# Get user profile
gh_graphql_user_profile("octocat")
# Get open pull requests
gh_graphql_pull_requests("block/goose", 5, "OPEN")
# Get issues with specific labels
gh_graphql_issues("block/goose", 10, "OPEN", ["bug", "help wanted"])
# Custom GraphQL query
gh_custom_graphql("""
query {
viewer {
login
name
}
}
""")
REST API の例
# Search for repositories
gh_rest_search_repos("language:python stars:>1000", 5)
# Get file contents
gh_rest_repo_contents("block/goose", "README.md")
# Create an issue
gh_rest_create_issue("your-username/your-repo", "Bug report", "There's a bug", ["bug"])
# List branches
gh_rest_branches("block/goose")
# Custom REST API request
gh_rest_api("repos/block/goose", "GET", query_params={"sort": "updated"})
ビルドと公開
pyproject.tomlのバージョンを更新します。
[project]
version = "x.y.z" # Update this
- パッケージをビルドします。
# Clean previous builds
rm -rf dist/*
# Or build in a clean environment using uv
uv venv .venv
source .venv/bin/activate
uv pip install build
python -m build
- PyPI に公開します。
# Install twine if needed
uv pip install twine
# Upload to PyPI
python -m twine upload dist/*
ライセンス
MIT
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。