GitHub GraphQL MCP Server について
GitHub GraphQL MCP Serverは、単一のクエリ・ミューテーション用ツールを通じて、GitHubのGraphQL APIを開発者やアシスタントに提供します。操作変数とエラー報告に対応し、GitHub Personal Access Tokenで認証します。
主な機能
- 01GitHub GraphQLクエリとミューテーションの実行
- 02操作変数の指定
- 03エラー処理と報告
- 04クエリ例とドキュメント
活用シーン
- 01GitHubリポジトリの詳細を取得する
- 02GraphQLでリポジトリを検索する
- 03GitHubユーザー情報を照会する
MCP 対応
MCPサーバーは、GitHub APIに対するGraphQLクエリとミューテーションを実行するツールを提供します。MCPクライアントは操作変数を渡せます。利用にはGitHub Personal Access Tokenが必要です。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
GitHub GraphQL MCP Server
GitHub の GraphQL API にアクセスするための Model Context Protocol(MCP)サーバーです。このサーバーは、GitHub の API に対して任意の GraphQL クエリやミューテーションを実行できるツールを 1 つ公開します。
機能
- GitHub の API に対するあらゆる GraphQL クエリの実行
- 包括的なエラー処理と報告
- クエリ例を含む詳細なドキュメント
- GraphQL の操作における変数のサポート
前提条件
- Python 3.10 以降
- GitHub のパーソナルアクセストークン(PAT)
インストール
- このリポジトリをクローンします
- 仮想環境をセットアップします(推奨):
# On macOS/Linux python3 -m venv .venv source .venv/bin/activate # On Windows python -m venv .venv .venv\Scripts\activate - 依存関係をインストールします:
pip install -r requirements.txt
使い方
サーバーの実行
# If using a virtual environment, make sure it's activated
source .venv/bin/activate # On Windows: .venv\Scripts\activate
# Run the server with your GitHub token
GITHUB_TOKEN=your_github_token_here python github_graphql_mcp_server.py
Claude for Desktop の設定
以下を Claude Desktop の設定ファイルに追加します:
{
"github-graphql": {
"command": "/absolute/path/to/your/.venv/bin/python",
"args": [
"/absolute/path/to/github_graphql_mcp_server.py"
],
"options": {
"cwd": "/absolute/path/to/repository"
},
"env": {
"GITHUB_TOKEN": "your_github_token_here"
}
}
}
/absolute/path/to/ をサーバーファイルの実際のパスに置き換え、GitHub トークンを追加します。
クエリの例
リポジトリ情報の取得
query GetRepo($owner: String!, $name: String!) {
repository(owner: $owner, name: $name) {
name
description
stargazerCount
url
createdAt
owner {
login
avatarUrl
}
}
}
変数:
{
"owner": "octocat",
"name": "Hello-World"
}
リポジトリの検索
query SearchRepos($query: String!, $first: Int!) {
search(query: $query, type: REPOSITORY, first: $first) {
repositoryCount
edges {
node {
... on Repository {
name
owner { login }
description
stargazerCount
url
}
}
}
}
}
変数:
{
"query": "language:python stars:1000",
"first": 5
}
ユーザー情報の取得
query GetUserInfo($login: String!) {
user(login: $login) {
name
login
bio
avatarUrl
followers {
totalCount
}
repositories(first: 5, orderBy: {field: STARGAZERS, direction: DESC}) {
nodes {
name
description
stargazerCount
}
}
}
}
変数:
{
"login": "octocat"
}
GitHub API のレート制限
GitHub の API レート制限に注意してください:
- 認証済みリクエスト:1 時間あたり 5,000 件
- 未認証リクエスト:1 時間あたり 60 件
トラブルシューティング
問題が発生した場合:
- GitHub トークンに適切な権限があることを確認します
- 仮想環境が適切にセットアップされ、有効化されていることを確認します
- トークンが環境変数に正しく設定されていることを確認します
- Claude Desktop を使用している場合は、Python へのパスが正しいことを確認します(仮想環境の Python への絶対パスを使用してください)
- サーバーログでエラーメッセージを確認します
- GraphQL クエリが GitHub のスキーマに対して有効であることを確認します
- 設定を変更した後は Claude for Desktop を再起動します
よくあるエラー
spawn python ENOENT
- このエラーは、Python 実行ファイルが見つからなかったことを意味します
- 解決策:仮想環境内の Python 実行ファイルへのフルパスを使用します(例:
/path/to/your/.venv/bin/python)
ModuleNotFoundError: No module named 'httpx'(またはその他のパッケージ)
- Python 環境に必要な依存関係がインストールされていません
- 解決策:仮想環境を有効化して、
pip install -r requirements.txtを実行してください
Error: GitHub token not found in environment variables
-
サーバーが GitHub トークンを見つけられませんでした
-
解決策:GITHUB_TOKEN 環境変数が設定されていることを確認してください
ライセンス
MIT
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。