mcpField
G
GitHub MCP Server Plus

GitHub MCP Server Plus

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

GitHub MCP Server Plus について

GitHub MCP Server Plusは、GitHub APIを通じてリポジトリ操作、検索、IssueやPull Requestの管理を行います。複数ファイルの一括更新、必要に応じたブランチ作成、Pull Requestのレビューやマージに対応します。

主な機能

  1. 01リポジトリのファイル作成と更新
  2. 02複数ファイルを1コミットでプッシュ
  3. 03リポジトリ、コード、Issue、ユーザーの検索
  4. 04IssueとPull Requestの管理
  5. 05ブランチとフォークの作成

活用シーン

  1. 01リポジトリの単一または複数ファイルをコミット
  2. 02コードやGitHub上の議論を検索
  3. 03Pull Requestのレビュー、更新、マージ

MCP 対応

ファイル操作、リポジトリ管理、検索、IssueとPull Requestのワークフロー向けに、GitHub APIツールをMCPクライアントへ提供します。

設定

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

mcp.json · 共通設定
{
"mcpServers": {
"github-server-plus": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"build"
]
}
}
}
起動コマンドdocker run -i --rm build

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

パッケージ
ocibuild

ツール

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

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

詳細

MseeP.ai Security Assessment Badge

GitHub MCP Server Plus

npm downloads

GitHub API 用の MCP サーバーです。ファイル操作、リポジトリ管理、検索機能などを利用できます。

GitHub Server Plus MCP server

機能
  • ブランチの自動作成:ファイルの作成・更新時や変更のプッシュ時に、ブランチが存在しない場合は自動的に作成します
  • 包括的なエラー処理:一般的な問題に対して明確なエラーメッセージを表示します
  • Git 履歴の保持:強制プッシュを行わず、操作によって適切な Git 履歴を維持します
  • バッチ操作:コンテンツまたはファイルパスを指定した、単一ファイルと複数ファイルの両方の操作をサポートします
  • 高度な検索:コード、Issue/PR、ユーザーの検索をサポートします

ツール

  1. create_or_update_file

    • リポジトリ内の単一ファイルを作成または更新します
    • 入力:
      • owner (string):リポジトリの所有者(ユーザー名または組織)
      • repo (string):リポジトリ名
      • path (string):ファイルを作成・更新するパス
      • content (string):ファイルの内容
      • message (string):コミットメッセージ
      • branch (string):ファイルを作成・更新するブランチ
      • sha (optional string):置き換えるファイルの SHA(更新の場合)
    • 戻り値:ファイルの内容とコミットの詳細
  2. push_files_content

    • 複数のファイルを直接のコンテンツで単一のコミットにまとめてプッシュします
    • 入力:
      • owner (string):リポジトリの所有者
      • repo (string):リポジトリ名
      • branch (string):プッシュ先のブランチ
      • files (array):プッシュするファイル。各ファイルには path と content が含まれます
      • message (string):コミットメッセージ
    • 戻り値:更新されたブランチ参照
  3. push_files_from_path

    • ファイルシステムのパスから複数のファイルを単一のコミットにまとめてプッシュします
    • 入力:
      • owner (string):リポジトリの所有者
      • repo (string):リポジトリ名
      • branch (string):プッシュ先のブランチ
      • files (array):プッシュするファイル。各ファイルには次の項目が含まれます:
        • path (string):リポジトリ内の対象パス
        • filepath (string):読み込む元のファイルシステムパス
      • message (string):コミットメッセージ
    • 戻り値:更新されたブランチ参照
  4. search_repositories

    • GitHub リポジトリを検索します
    • 入力:
      • query (string):検索クエリ
      • page (optional number):ページネーション用のページ番号
      • perPage (optional number):1ページあたりの結果数(最大 100)
    • 戻り値:リポジトリの検索結果
  5. create_repository

    • 新しい GitHub リポジトリを作成します
    • 入力:
      • name (string):リポジトリ名
      • description (optional string):リポジトリの説明
      • private (optional boolean):リポジトリをプライベートにするかどうか
      • autoInit (optional boolean):README で初期化するかどうか
    • 戻り値:作成したリポジトリの詳細
  6. get_file_contents

    • ファイルまたはディレクトリの内容を取得します
    • 入力:
      • owner (string):リポジトリの所有者
      • repo (string):リポジトリ名
      • path (string):ファイル/ディレクトリへのパス
      • branch (optional string):内容を取得するブランチ
    • 戻り値:ファイル/ディレクトリの内容
  7. create_issue

    • 新しい Issue を作成します
    • 入力:
      • owner (string):リポジトリの所有者
      • repo (string):リポジトリ名
      • title (string):Issue のタイトル
      • body (optional string):Issue の説明
      • assignees (optional string[]):割り当てるユーザー名
      • labels (optional string[]):追加するラベル
      • milestone (optional number):マイルストーン番号
    • 戻り値:作成した Issue の詳細
  8. create_pull_request

    • 新しいプルリクエストを作成します
    • 入力:
      • owner (string):リポジトリのオーナー
      • repo (string):リポジトリ名
      • title (string):PR のタイトル
      • body (optional string):PR の説明
      • head (string):変更を含むブランチ
      • base (string):マージ先のブランチ
      • draft (optional boolean):ドラフト PR として作成するかどうか
      • maintainer_can_modify (optional boolean):メンテナーによる編集を許可するかどうか
    • 戻り値:作成したプルリクエストの詳細
  9. fork_repository

    • リポジトリをフォークします
    • 入力:
      • owner (string):リポジトリのオーナー
      • repo (string):リポジトリ名
      • organization (optional string):フォーク先の組織
    • 戻り値:フォークしたリポジトリの詳細
  10. create_branch

    • 新しいブランチを作成します
    • 入力:
      • owner (string):リポジトリのオーナー
      • repo (string):リポジトリ名
      • branch (string):新しいブランチ名
      • from_branch (optional string):ソースブランチ(デフォルトはリポジトリのデフォルトブランチ)
    • 戻り値:作成したブランチの参照
  11. list_issues

    • リポジトリのイシューを一覧表示し、絞り込みます
    • 入力:
      • owner (string):リポジトリのオーナー
      • repo (string):リポジトリ名
      • state (optional string):状態で絞り込みます('open'、'closed'、'all')
      • labels (optional string[]):ラベルで絞り込みます
      • sort (optional string):並べ替え基準('created'、'updated'、'comments')
      • direction (optional string):並べ替え順序('asc'、'desc')
      • since (optional string):日付で絞り込みます(ISO 8601 タイムスタンプ)
      • page (optional number):ページ番号
      • per_page (optional number):1 ページあたりの結果数
    • 戻り値:イシューの詳細の配列
  12. update_issue

    • 既存のイシューを更新します
    • 入力:
      • owner (string):リポジトリのオーナー
      • repo (string):リポジトリ名
      • issue_number (number):更新するイシュー番号
      • title (optional string):新しいタイトル
      • body (optional string):新しい説明
      • state (optional string):新しい状態('open' または 'closed')
      • labels (optional string[]):新しいラベル
      • assignees (optional string[]):新しい担当者
      • milestone (optional number):新しいマイルストーン番号
    • 戻り値:更新したイシューの詳細
  13. add_issue_comment

    • イシューにコメントを追加します
    • 入力:
      • owner (string):リポジトリのオーナー
      • repo (string):リポジトリ名
      • issue_number (number):コメントを追加するイシュー番号
      • body (string):コメントのテキスト
    • 戻り値:作成したコメントの詳細
  14. search_code

    • GitHub リポジトリ全体からコードを検索します
    • 入力:
      • q (string):GitHub のコード検索構文を使った検索クエリ
      • sort (optional string):並べ替えフィールド('indexed' のみ)
      • order (optional string):並べ替え順序('asc' または 'desc')
      • per_page (optional number):1 ページあたりの結果数(最大 100 件)
      • page (optional number):ページ番号
    • 戻り値:リポジトリのコンテキストを含むコード検索結果
  15. search_issues

    • イシューとプルリクエストを検索します
    • 入力:
      • q (string):GitHub のイシュー検索構文を使った検索クエリ
      • sort (optional string):並べ替えフィールド(comments、reactions、created など)
      • order (optional string):並べ替え順序('asc' または 'desc')
      • per_page (optional number):1 ページあたりの結果数(最大 100 件)
      • page (optional number):ページ番号
    • 戻り値:イシューとプルリクエストの検索結果
  16. search_users

    • GitHub ユーザーを検索します
    • 入力:
      • q (string):GitHub のユーザー検索構文を使った検索クエリ
      • sort (optional string):並べ替えフィールド(followers、repositories、joined)
      • order (optional string):並べ替え順序('asc' または 'desc')
      • per_page (optional number):1 ページあたりの結果数(最大 100 件)
      • page (optional number):ページ番号
    • 戻り値:ユーザーの検索結果
  17. list_commits

    • リポジトリのブランチのコミットを取得します
    • 入力:
      • owner (string):リポジトリの所有者
      • repo (string):リポジトリ名
      • page (optional string):ページ番号
      • per_page (optional string):1 ページあたりのレコード数
      • sha (optional string):ブランチ名
    • 戻り値:コミットの一覧
  18. get_issue

    • リポジトリ内の Issue の内容を取得します
    • 入力:
      • owner (string):リポジトリの所有者
      • repo (string):リポジトリ名
      • issue_number (number):取得する Issue の番号
    • 戻り値:GitHub Issue オブジェクトと詳細
  19. get_pull_request

    • 特定のプルリクエストの詳細を取得します
    • 入力:
      • owner (string):リポジトリの所有者
      • repo (string):リポジトリ名
      • pull_number (number):プルリクエスト番号
    • 戻り値:差分とレビュー状況を含むプルリクエストの詳細
  20. list_pull_requests

    • リポジトリのプルリクエストを一覧表示し、絞り込みます
    • 入力:
      • owner (string):リポジトリの所有者
      • repo (string):リポジトリ名
      • state (optional string):状態('open'、'closed'、'all')で絞り込みます
      • head (optional string):head のユーザー/組織とブランチで絞り込みます
      • base (optional string):base ブランチで絞り込みます
      • sort (optional string):('created'、'updated'、'popularity'、'long-running')で並べ替えます
      • direction (optional string):並べ替え順('asc'、'desc')
      • per_page (optional number):1 ページあたりの結果数(最大 100)
      • page (optional number):ページ番号
    • 戻り値:プルリクエストの詳細の配列
  21. create_pull_request_review

    • プルリクエストにレビューを作成します
    • 入力:
      • owner (string):リポジトリの所有者
      • repo (string):リポジトリ名
      • pull_number (number):プルリクエスト番号
      • body (string):レビューコメントのテキスト
      • event (string):レビューアクション('APPROVE'、'REQUEST_CHANGES'、'COMMENT')
      • commit_id (optional string):レビュー対象のコミットの SHA
      • comments (optional array):行ごとのコメント。それぞれに次の項目を含みます:
        • path (string):ファイルパス
        • position (number):差分内の行位置
        • body (string):コメントのテキスト
    • 戻り値:作成されたレビューの詳細
  22. merge_pull_request

    • プルリクエストをマージします
    • 入力:
      • owner (string):リポジトリの所有者
      • repo (string):リポジトリ名
      • pull_number (number):プルリクエスト番号
      • commit_title (optional string):マージコミットのタイトル
      • commit_message (optional string):マージコミットの補足説明
      • merge_method (optional string):マージ方法('merge'、'squash'、'rebase')
    • 戻り値:マージ結果の詳細
  23. get_pull_request_files

    • プルリクエストで変更されたファイルの一覧を取得します
    • 入力:
      • owner (string):リポジトリの所有者
      • repo (string):リポジトリ名
      • pull_number (number):プルリクエスト番号
    • 戻り値:パッチとステータスの詳細を含む変更ファイルの配列
  24. get_pull_request_status

    • プルリクエストのすべてのステータスチェックをまとめたステータスを取得します
    • 入力:
      • owner (string):リポジトリの所有者
      • repo (string):リポジトリ名
      • pull_number (number):プルリクエスト番号
    • 戻り値:ステータスチェックの集約結果と個々のチェックの詳細
  25. update_pull_request_branch

    • base ブランチの最新の変更をプルリクエストのブランチに反映します
    • 入力:
      • owner (string):リポジトリの所有者
      • repo (string):リポジトリ名
      • pull_number (number):プルリクエスト番号
      • expected_head_sha (optional string):プルリクエストの HEAD ref に期待される SHA
    • 戻り値:ブランチの更新が成功したことを示すメッセージ
  26. get_pull_request_comments

    • プルリクエストのレビューコメントを取得します
    • 入力:
      • owner (string):リポジトリの所有者
      • repo (string):リポジトリ名
      • pull_number (number):プルリクエスト番号
    • 戻り値:プルリクエストのレビューコメントの配列
  27. get_pull_request_reviews

    • プルリクエストのレビューを取得します
    • 入力:
      • owner (string):リポジトリの所有者
      • repo (string):リポジトリ名
      • pull_number (number):プルリクエスト番号
    • 戻り値:プルリクエストのレビューの配列

検索クエリ構文

コード検索
  • language:javascript:プログラミング言語で検索します
  • repo:owner/name:指定したリポジトリ内を検索します
  • path:app/src:指定したパス内を検索します
  • extension:js:ファイル拡張子で検索します
  • 例:q: "import express" language:typescript path:src/
Issue の検索
  • is:issue または is:pr:種類で絞り込みます
  • is:open または is:closed:状態で絞り込みます
  • label:bug:ラベルで検索します
  • author:username:作成者で検索します
  • 例:q: "memory leak" is:issue is:open label:bug
ユーザー検索
  • type:user または type:org:アカウントの種類で絞り込みます
  • followers:>1000:フォロワー数で絞り込みます
  • location:London:所在地で検索します
  • 例:q: "fullstack developer" location:London followers:>100

検索構文の詳細については、GitHub の検索ドキュメントをご覧ください。

セットアップ

Personal Access Token

適切な権限を持つGitHub Personal Access Token を作成します:

  • GitHub Settings > Developer settings にある Personal access tokens に移動します
  • このトークンでアクセスするリポジトリ(Public、All、Select)を選択します
  • repo スコープ(「Full control of private repositories」)を持つトークンを作成します
    • または、パブリックリポジトリのみを扱う場合は、public_repo スコープのみを選択します
  • 生成されたトークンをコピーします
Claude Desktop での使用

Claude Desktop で使用するには、以下を claude_desktop_config.json に追加します:

Docker
{
  "mcpServers": {
    "github": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-e",
        "GITHUB_PERSONAL_ACCESS_TOKEN",
        "mcp/github"
      ],
      "env": {
        "GITHUB_PERSONAL_ACCESS_TOKEN": "<YOUR_TOKEN>"
      }
    }
  }
}
NPX
{
  "mcpServers": {
    "github": {
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-github"
      ],
      "env": {
        "GITHUB_PERSONAL_ACCESS_TOKEN": "<YOUR_TOKEN>"
      }
    }
  }
}

ビルド

Docker ビルド:

docker build -t mcp/github -f src/github/Dockerfile .

ライセンス

この MCP サーバーは MIT License の下でライセンスされています。MIT License の利用規約に従う限り、ソフトウェアを自由に使用、変更、配布できます。詳細については、プロジェクトリポジトリ内の LICENSE ファイルをご覧ください。

コメント

MCP は初めてですか?

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

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