mcpField
M
mcp-github-cli

mcp-github-cli

ローカル
github.com/michaelneale開発ツール478 週間前に更新

mcp-github-cli について

mcp-github-cli は、GitHub CLI と GitHub GraphQL・REST API を利用して GitHub を操作する MCP サーバーです。MCP クライアントからリポジトリを調査・管理する用途に向け、ユーザー情報、リポジトリ、イシュー、プルリクエストや独自 API リクエストを扱います。

主な機能

  1. 01認証済みユーザー情報の取得
  2. 02リポジトリ、ユーザー、コントリビューター情報の取得
  3. 03イシューとプルリクエストの検索
  4. 04リポジトリ検索とファイル内容の取得
  5. 05イシューとプルリクエストの作成
  6. 06独自の GraphQL・REST リクエストの実行

活用シーン

  1. 01リポジトリ情報、ブランチ、コミットの確認
  2. 02イシューやプルリクエストの状況確認
  3. 03MCP クライアントからイシューやプルリクエストを作成

MCP 対応

GitHub CLI を介して GitHub GraphQL・REST API 用のツールを MCP クライアントに提供します。使用には `gh` のインストールと GitHub 認証が必要です。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"github-cli": {
"command": "uvx",
"args": [
"mcp-github-cli"
]
}
}
}
起動コマンドuvx mcp-github-cli

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
pypimcp-github-cli

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

mcp-github-cli

GitHub と連携するための、用途を絞った GraphQL および REST API ツールを提供する MCP サーバーです。このサーバーは、GitHub の API を活用して豊富なデータと機能を提供する、厳選された強力なツールセットを備えています。

使用方法

uvx mcp-github-cli

PyPI から実行されます。goose または claude で使用できます。

前提条件

  1. まだインストールしていない場合は、GitHub CLI(gh)をインストールします。

    • macOS:brew install gh
    • Linux:sudo apt install gh
    • Windows:winget install GitHub.cli
  2. 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"})

ビルドと公開

  1. pyproject.toml のバージョンを更新します。
[project]
version = "x.y.z"  # Update this
  1. パッケージをビルドします。
# 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
  1. PyPI に公開します。
# Install twine if needed
uv pip install twine

# Upload to PyPI
python -m twine upload dist/*

ライセンス

MIT

コメント

MCP は初めてですか?

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

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