mcpField
G
Github MCP Server

Github MCP Server

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

Github MCP Server について

Github MCP Server は、MCP 経由で LLM と GitHub API を接続するサーバーです。MCP クライアントから GitHub を検索し、Issue やプルリクエストを確認したいユーザー向けに、よく使うリポジトリ照会ツールを提供します。

主な機能

  1. 01リポジトリ、Issue、コミットの検索
  2. 02コード、ユーザー、トピック、ラベルの検索
  3. 03リポジトリのIssueとプルリクエスト一覧
  4. 04Issueとプルリクエストの詳細取得

活用シーン

  1. 01クエリで GitHub リポジトリを検索
  2. 02リポジトリのコードやコミットを検索
  3. 03リポジトリ内のIssueとプルリクエストを確認
  4. 04特定のIssueやプルリクエストの詳細を取得

MCP 対応

MCP サーバーとして、GitHub REST API の検索、一覧、詳細取得ツールを MCP クライアントに公開します。設定には GitHub Personal Access Token が必要です。

設定

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

mcp.json · 共通設定
{
"mcpServers": {
"github-mcp-server-parassolanki": {
"command": "npx",
"args": [
"-y",
"github-mcp-server"
],
"env": {
"GITHUB_PERSONAL_ACCESS_TOKEN": "<GITHUB_PERSONAL_ACCESS_TOKEN>"
}
}
}
}
起動コマンドnpx -y github-mcp-server
設定が必要な環境変数
GITHUB_PERSONAL_ACCESS_TOKENシークレット

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

パッケージ
npmgithub-mcp-server

ツール

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

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

詳細

Github MCP サーバー

Github 用の Model Context Protocol サーバーです。

MCP を通じて Github と連携し、LLM が Github を操作できるようにします。

Github REST API ドキュメント

インストール

手動インストール
  1. Github アカウントのアクセストークンを作成するか、取得します:ガイド

  2. Claude Desktop にサーバー設定を追加します:

{
  "mcpServers": {
    "github": {
      "command": "npx",
      "args": ["-y", "github-mcp-server"],
      "env": {
        "GITHUB_PERSONAL_ACCESS_TOKEN": "your_personal_github_access_token"
      }
    }
  }
}

コンポーネント

ツール
  1. search_repositories:GitHub でリポジトリを検索します。

    • 必須入力:
      • query(string):リポジトリの検索クエリです。
      • page(number、デフォルト:30、最大:100):ページネーション用のページ番号です。
      • per_page(number、デフォルト:30、最大:100):1 ページあたりの結果数です。
  2. search_issues:リポジトリのイシューを検索します。

    • 必須入力:
      • query(string):リポジトリの検索クエリです。
      • page(number、デフォルト:1):ページネーション用のページ番号です。
      • per_page(number、デフォルト:30、最大:100):1 ページあたりの結果数です。
      • order(省略可能な string、デフォルト:desc):並び順(asc または desc)です。
      • sort(省略可能な string、デフォルト:best match):並べ替えの基準となるフィールドです(comments、reactions、reactions-+1、reactions--1、reactions-smile、reactions-thinking_face、reactions-heart、reactions-tada、interactions、created または updated のいずれか)。
  3. search_commits:リポジトリのコミットを検索します。

    • 必須入力:
      • query(string):リポジトリの検索クエリです。
      • page(number、デフォルト:1):ページネーション用のページ番号です。
      • per_page(number、デフォルト:30、最大:100):1 ページあたりの結果数です。
      • order(省略可能な string、デフォルト:desc):並び順(asc または desc)です。
      • sort(省略可能な string、デフォルト:best match):並べ替えの基準となるフィールドです(committer-date または author-date のいずれか)。
  4. search_code:リポジトリ内のコードを検索します。

    • 必須入力:
      • query(string):リポジトリの検索クエリです。
      • page(number、デフォルト:1):ページネーション用のページ番号です。
      • per_page(number、デフォルト:30、最大:100):1 ページあたりの結果数です。
  5. search_users:リポジトリのユーザーを検索します。

    • 必須入力:
      • query(string):リポジトリの検索クエリです。
      • page(number、デフォルト:1):ページネーション用のページ番号です。
      • per_page(number、デフォルト:30、最大:100):1 ページあたりの結果数です。
      • order(省略可能な string、デフォルト:desc):並び順(asc または desc)です。
      • sort(省略可能な string、デフォルト:best match):並べ替えの基準となるフィールドです(followers、repositories または joined のいずれか)。
  6. search_topics:トピックを検索します。

    • 必須入力:
      • query(string):リポジトリの検索クエリです。
      • page(number、デフォルト:1):ページネーション用のページ番号です。
      • per_page(number、デフォルト:30、最大:100):1 ページあたりの結果数です。
  7. search_labels:リポジトリ内のラベルを検索します。

    • 必須入力:
      • query(string):リポジトリの検索クエリです。
      • page(number、デフォルト:1):ページネーション用のページ番号です。
      • per_page(number、デフォルト:30、最大:100):1 ページあたりの結果数です。
      • order(省略可能な string、デフォルト:desc):並び順(asc または desc)です。
      • sort(省略可能な string、デフォルト:best match):並べ替えの基準となるフィールドです(created または updated のいずれか)。
  8. list_repositories_issues:リポジトリのイシューを一覧表示します。

    • 必須入力:
      • owner(string):リポジトリの所有者。
      • repo(string):リポジトリ名。
      • page(任意の number、デフォルト:1):ページネーションのページ番号。
      • per_page(任意の number、デフォルト:30、最大:100):1ページあたりの結果数。
      • direction(任意の string、デフォルト:desc):並べ替えの順序(asc または desc)。
      • sort(任意の string、デフォルト:created):並べ替えフィールド(created、comments、updated のいずれか)。
      • since(任意の string):指定した時刻以降に最終更新された結果(ISO 8601 形式:YYYY-MM-DDTHH:MM:SSZ.)。
      • labels(任意の string):カンマ区切りのラベル名。例:bug,ui,@high。
      • milestone(任意の string):マイルストーン番号。
      • assignee(任意の string):担当ユーザー名(すべてを対象にする場合は *)。
      • creator(任意の string):イシューを作成したユーザー。(すべてを対象にする場合は *)。
      • mentioned(任意の string):イシュー内でメンションされているユーザー。
  9. get_issue:リポジトリからイシューを取得します。

    • 必須入力:
      • owner(string):リポジトリの所有者。
      • repo(string):リポジトリ名。
      • issue_number(number):イシュー番号。
  10. list_repositories_pull_requests:リポジトリのプルリクエストを一覧表示します。

    • 必須入力:
      • owner(string):リポジトリの所有者。
      • repo(string):リポジトリ名。
      • page(任意の number、デフォルト:1):ページネーションのページ番号。
      • per_page(任意の number、デフォルト:30、最大:100):1ページあたりの結果数。
      • direction(任意の string、デフォルト:desc):並べ替えの順序(asc または desc)。
      • sort(任意の string、デフォルト:created):並べ替えフィールド(created、popularity、long-running、updated のいずれか)。
      • head(任意の string):head ユーザーまたは head 組織とブランチ名でプルリクエストを絞り込みます。形式は user:ref-name または organization:ref-name です(例:github:new-script-format または octocat:test-branch)。
      • base(任意の string):ベースブランチ名でプルリクエストを絞り込みます。(例:gh-pages)。
  11. get_pull_request:リポジトリからプルリクエストを取得します。

    • 必須入力:
      • owner(string):リポジトリの所有者。
      • repo(string):リポジトリ名。
      • pull_request_number(number):プルリクエスト番号。

使用例

Github とやり取りするために使用できるプロンプトの例:

  1. 「modelcontextprotocol」→ search_repositories ツールを実行して、modelcontextprotocol が言及されているリポジトリを検索します。
  2. 「modelcontextprotocol servers リポジトリの 739 番のイシューは何ですか」→ get_issue ツールを実行して、modelcontextprotocol servers リポジトリの 739 番のイシューを取得します。
  3. 「modelcontextprotocol servers リポジトリの 717 番の PR は何ですか」→ get_pull_request ツールを実行して、modelcontextprotocol servers リポジトリの 717 番の PR を取得します。

開発

  1. 依存関係をインストールします:
pnpm install
  1. .env で Github アクセストークンを設定します:
GITHUB_PERSONAL_ACCESS_TOKEN=<your_personal_github_access_token>
  1. ウォッチモードでローカル実行します:
pnpm dev
  1. サーバーをビルドします:
pnpm build
  1. インスペクターを使ってローカルでデバッグします:
pnpm inspector

コメント

MCP は初めてですか?

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

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