mcpField
S
Server Github MCP (PR Comment)

Server Github MCP (PR Comment)

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

Server Github MCP (PR Comment) について

Server Github MCP (PR Comment) は、GitHub APIをMCPクライアントから利用し、リポジトリ作業や検索、Issueとプルリクエストの管理を行うサーバーです。Git履歴を保ちながら複数ファイルを変更でき、存在しないブランチも自動作成します。

主な機能

  1. 01単一・複数ファイルの作成と更新
  2. 02リポジトリ、ブランチ、Issue、プルリクエストの管理
  3. 03コード、リポジトリ、Issue、ユーザーの検索
  4. 04コミット、ファイル、レビュー、チェック状態の取得
  5. 05強制プッシュを使わないGit履歴の維持

活用シーン

  1. 01リポジトリへのファイル変更のコミット
  2. 02コード、リポジトリ、GitHubユーザーの検索
  3. 03プルリクエストの作成とレビュー
  4. 04リポジトリのIssueの追跡と更新

MCP 対応

GitHub APIの操作をMCPクライアント向けのツールとして公開し、ファイル操作、検索、リポジトリやプルリクエストの管理を可能にします。

設定

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

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

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

パッケージ
npm@rz195440/server-github-mcp

ツール

28

掲載時のツール一覧 · 3 週間前に更新

パラメーター型必須説明
ownerstringはいリポジトリの所有者(ユーザー名または組織)
repostringはいリポジトリ名
pathstringはいファイルを作成または更新するパス
contentstringはいファイルの内容
messagestringはいコミットメッセージ
branchstringはいファイルを作成または更新するブランチ
shastringいいえ置き換えるファイルの SHA(既存ファイルの更新時に必須)

詳細

GitHub MCP サーバー

非推奨のお知らせ: このプロジェクトの開発は、https://github.com/195440/server-github-mcp リポジトリの GitHub に移管されました。


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

機能
  • ブランチの自動作成:ファイルの作成・更新や変更のプッシュ時に、ブランチが存在しない場合は自動的に作成します
  • 包括的なエラー処理:一般的な問題に対して明確なエラーメッセージを表示します
  • Git 履歴の保持:強制プッシュを行わず、適切な Git 履歴を維持します
  • 一括操作:単一ファイルと複数ファイルの両方の操作に対応します
  • 高度な検索:コード、イシュー/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

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

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

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

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

    • 新しいイシューを作成します
    • 入力:
      • owner (string):リポジトリの所有者
      • repo (string):リポジトリ名
      • title (string):イシューのタイトル
      • body (optional string):イシューの説明
      • assignees (optional string[]):割り当てるユーザー名
      • labels (optional string[]):追加するラベル
      • milestone (optional number):マイルストーン番号
    • 戻り値:作成したイシューの詳細
  7. 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):メンテナーによる編集を許可するかどうか
    • 戻り値:作成したプルリクエストの詳細
  8. fork_repository

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

    • 新しいブランチを作成します
    • 入力:
      • owner (string):リポジトリの所有者
      • repo (string):リポジトリ名
      • branch (string):新しいブランチ名
      • from_branch (optional string):元のブランチ(デフォルトはリポジトリのデフォルトブランチ)
    • 戻り値:作成されたブランチの参照
  10. 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 ページあたりの結果数
    • 戻り値:イシューの詳細の配列
  11. 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):新しいマイルストーン番号
    • 戻り値:更新されたイシューの詳細
  12. add_issue_comment

    • イシューにコメントを追加します
    • 入力:
      • owner (string):リポジトリの所有者
      • repo (string):リポジトリ名
      • issue_number (number):コメントするイシュー番号
      • body (string):コメント本文
    • 戻り値:作成されたコメントの詳細
  13. search_code

    • GitHub リポジトリ全体からコードを検索します
    • 入力:
      • q (string):GitHub のコード検索構文を使用した検索クエリ
      • sort (optional string):並べ替えフィールド('indexed' のみ)
      • order (optional string):並べ替え順序('asc' または 'desc')
      • per_page (optional number):1 ページあたりの結果数(最大 100)
      • page (optional number):ページ番号
    • 戻り値:リポジトリのコンテキストを含むコード検索結果
  14. 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):ページ番号
    • 戻り値:イシューとプルリクエストの検索結果
  15. 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):ページ番号
    • 戻り値:ユーザーの検索結果
  16. list_commits

  • リポジトリ内のブランチのコミットを取得します
  • 入力:
    • owner (string):リポジトリの所有者
    • repo (string):リポジトリ名
    • page (optional string):ページ番号
    • per_page (optional string):1 ページあたりのレコード数
    • sha (optional string):ブランチ名
  • 戻り値:コミットの一覧
  1. get_issue
  • リポジトリ内のイシューの内容を取得します
  • 入力:
    • owner (string):リポジトリの所有者
    • repo (string):リポジトリ名
    • issue_number (number):取得するイシュー番号
  • 戻り値:Github Issue オブジェクトと詳細
  1. get_pull_request
  • 特定のプルリクエストの詳細を取得します
  • 入力:
    • owner (string):リポジトリのオーナー
    • repo (string):リポジトリ名
    • pull_number (number):プルリクエスト番号
  • 戻り値:差分とレビュー状況を含むプルリクエストの詳細
  1. list_pull_requests
  • リポジトリのプルリクエストを一覧表示し、絞り込みます
  • 入力:
    • owner (string):リポジトリのオーナー
    • repo (string):リポジトリ名
    • state (任意の string):状態で絞り込みます('open'、'closed'、'all')
    • head (任意の string):ヘッドユーザー/組織とブランチで絞り込みます
    • base (任意の string):ベースブランチで絞り込みます
    • sort (任意の string):並べ替え基準('created'、'updated'、'popularity'、'long-running')
    • direction (任意の string):並べ替え順('asc'、'desc')
    • per_page (任意の number):1 ページあたりの結果数(最大 100)
    • page (任意の number):ページ番号
  • 戻り値:プルリクエストの詳細の配列
  1. create_pull_request_review
  • プルリクエストのレビューを作成します
  • 入力:
    • owner (string):リポジトリのオーナー
    • repo (string):リポジトリ名
    • pull_number (number):プルリクエスト番号
    • body (string):レビューコメントのテキスト
    • event (string):レビューアクション('APPROVE'、'REQUEST_CHANGES'、'COMMENT')
    • commit_id (任意の string):レビュー対象のコミットの SHA
    • comments (任意の array):行ごとのコメント。それぞれ次の項目を含みます:
      • path (string):ファイルパス
      • position (number):差分内の行位置
      • body (string):コメントのテキスト
  • 戻り値:作成されたレビューの詳細
  1. merge_pull_request
  • プルリクエストをマージします
  • 入力:
    • owner (string):リポジトリのオーナー
    • repo (string):リポジトリ名
    • pull_number (number):プルリクエスト番号
    • commit_title (任意の string):マージコミットのタイトル
    • commit_message (任意の string):マージコミットの追加詳細
    • merge_method (任意の string):マージ方法('merge'、'squash'、'rebase')
  • 戻り値:マージ結果の詳細
  1. get_pull_request_files
  • プルリクエストで変更されたファイルの一覧を取得します
  • 入力:
    • owner (string):リポジトリのオーナー
    • repo (string):リポジトリ名
    • pull_number (number):プルリクエスト番号
  • 戻り値:パッチとステータスの詳細を含む、変更されたファイルの配列
  1. get_pull_request_status
  • プルリクエストのすべてのステータスチェックの統合ステータスを取得します
  • 入力:
    • owner (string):リポジトリのオーナー
    • repo (string):リポジトリ名
    • pull_number (number):プルリクエスト番号
  • 戻り値:統合されたステータスチェックの結果と個々のチェックの詳細
  1. update_pull_request_branch
  • ベースブランチの最新の変更をプルリクエストのブランチに反映します(GitHub の「Update branch」ボタンと同等です)
  • 入力:
    • owner (string):リポジトリのオーナー
    • repo (string):リポジトリ名
    • pull_number (number):プルリクエスト番号
    • expected_head_sha (任意の string):プルリクエストの HEAD ref に期待される SHA
  • 戻り値:ブランチが更新された際の成功メッセージ
  1. get_pull_request_comments
  • プルリクエストのレビューコメントを取得します
  • 入力:
    • owner (string):リポジトリのオーナー
    • repo (string):リポジトリ名
    • pull_number (number):プルリクエスト番号
  • 戻り値:コメントのテキスト、作成者、差分内の位置などの詳細を含む、プルリクエストのレビューコメントの配列
  1. get_pull_request_reviews
  • プルリクエストのレビューを取得します
  • 入力:
    • owner (string):リポジトリのオーナー
    • repo (string):リポジトリ名
    • pull_number (number):プルリクエスト番号
  • 戻り値:レビュー状態(APPROVED、CHANGES_REQUESTED など)、レビュアー、レビュー本文などの詳細を含む、プルリクエストのレビューの配列
  1. add_pr_summary_comment
  • プルリクエストに概要コメントを追加します
  • 入力:
    • owner(string):リポジトリの所有者
    • repo(string):リポジトリ名
    • pull_number(number):プルリクエスト番号
    • body(string):コメント本文
  • 戻り値:作成されたコメントの詳細
  1. add_pr_line_comment
  • プルリクエストに行を指定したコメントを追加します
  • 入力:
    • owner(string):リポジトリの所有者
    • repo(string):リポジトリ名

検索クエリ構文

コード検索
  • language:javascript:プログラミング言語で検索
  • repo:owner/name:特定のリポジトリを検索
  • path:app/src:特定のパスを検索
  • extension:js:ファイル拡張子で検索
  • 例:q: "import express" language:typescript path:src/
イシュー検索
  • 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 の検索に関するドキュメントを参照してください。

セットアップ

個人用アクセストークン

適切な権限を持つGitHub 個人用アクセストークンを作成します。

  • 個人用アクセストークンに移動します(GitHub の「Settings」>「Developer settings」内)
  • このトークンにアクセスを許可するリポジトリを選択します(Public、All、または Select)
  • repo スコープ(「プライベートリポジトリの完全な制御」)を付与してトークンを作成します
    • または、パブリックリポジトリのみで作業する場合は、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",
        "@rz195440/server-github-mcp"
      ],
      "env": {
        "GITHUB_PERSONAL_ACCESS_TOKEN": "<YOUR_TOKEN>"
      }
    }
  }
}
NPX
{
  "mcpServers": {
    "github": {
      "command": "npx",
      "args": [
        "-y",
        "@rz195440/server-github-mcp"
      ],
      "env": {
        "GITHUB_PERSONAL_ACCESS_TOKEN": "${input:github_token}"
      }
    }
  }
}

ビルド

Docker のビルド:

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

ライセンス

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

コメント

MCP は初めてですか?

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

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