GitHub MCP サーバー
GitHub API 用の MCP サーバー。ファイル操作、リポジトリ管理、検索機能などを有効にします。
特徴
自動ブランチ作成: ファイルを作成/更新したり変更をプッシュしたりするときに、ブランチが存在しない場合は自動的に作成されます。
包括的なエラー処理: 一般的な問題に対する明確なエラーメッセージ
Git 履歴の保存: 強制プッシュなしで適切な Git 履歴を維持する操作
バッチ操作: 単一ファイルと複数ファイルの操作の両方をサポート
高度な検索: コード、問題/PR、ユーザーの検索をサポート
プロジェクト管理: プロジェクトの作成、列の管理、カードの操作など、GitHub プロジェクト (クラシック) 管理のための完全なツールセット
ツール
create_or_update_fileリポジトリ内の単一のファイルを作成または更新する
入力:
owner(文字列): リポジトリの所有者(ユーザー名または組織)repo(文字列): リポジトリ名path(文字列): ファイルを作成/更新するパスcontent(文字列): ファイルの内容message(文字列): コミットメッセージbranch(文字列): ファイルを作成/更新するブランチsha(オプションの文字列): 置き換えられるファイルのSHA (更新用)
戻り値: ファイルの内容とコミットの詳細
push_files1回のコミットで複数のファイルをプッシュする
入力:
owner(文字列): リポジトリの所有者repo(文字列): リポジトリ名branch(文字列): プッシュ先のブランチfiles(配列): プッシュするファイル。pathとcontentがそれぞれ指定されます。message(文字列): コミットメッセージ
戻り値: 更新されたブランチ参照
search_repositoriesGitHubリポジトリを検索する
入力:
query(文字列): 検索クエリpage(オプションの数値):ページ番号perPage(オプションの数値):1ページあたりの結果数(最大100件)
戻り値: リポジトリ検索結果
create_repository新しいGitHubリポジトリを作成する
入力:
name(文字列): リポジトリ名description(オプションの文字列): リポジトリの説明private(オプションのブール値): リポジトリを非公開にするかどうかautoInit(オプションのブール値): READMEで初期化する
戻り値: 作成されたリポジトリの詳細
get_file_contentsファイルまたはディレクトリの内容を取得する
入力:
owner(文字列): リポジトリの所有者repo(文字列): リポジトリ名path(文字列): ファイル/ディレクトリへのパスbranch(オプションの文字列):コンテンツを取得するブランチ
戻り値: ファイル/ディレクトリの内容
create_issue新しい問題を作成する
入力:
owner(文字列): リポジトリの所有者repo(文字列): リポジトリ名title(文字列): 問題のタイトルbody(オプションの文字列): 問題の説明assignees(オプションの文字列[]):割り当てるユーザー名labels(オプションの文字列[]):追加するラベルmilestone(オプションの番号):マイルストーン番号
返品: 作成された問題の詳細
create_pull_request新しいプルリクエストを作成する
入力:
owner(文字列): リポジトリの所有者repo(文字列): リポジトリ名title(文字列): PRのタイトルbody(オプションの文字列): PRの説明head(文字列): 変更を含むブランチbase(文字列): マージ先のブランチdraft(オプションのブール値): ドラフト PR として作成maintainer_can_modify(オプションのブール値): メンテナーによる編集を許可する
戻り値: 作成されたプルリクエストの詳細
fork_repositoryリポジトリをフォークする
入力:
owner(文字列): リポジトリの所有者repo(文字列): リポジトリ名organization(オプションの文字列):フォーク先の組織
戻り値: フォークされたリポジトリの詳細
create_branch新しいブランチを作成する
入力:
owner(文字列): リポジトリの所有者repo(文字列): リポジトリ名branch(文字列): 新しいブランチの名前from_branch(オプションの文字列): ソースブランチ (デフォルトはリポジトリのデフォルト)
戻り値: 作成されたブランチ参照
list_issues
リポジトリの問題の一覧表示とフィルタリング
入力:
owner(文字列): リポジトリの所有者repo(文字列): リポジトリ名state(オプションの文字列):状態(「open」、「closed」、「all」)でフィルタリングlabels(オプションの文字列[]):ラベルでフィルタリングsort(オプションの文字列): ('created'、'updated'、'comments') で並べ替えdirection(オプションの文字列):並べ替えの方向('asc'、'desc')since(オプションの文字列): 日付でフィルタリング (ISO 8601 タイムスタンプ)page(オプションの数字):ページ番号per_page(オプションの数値):1ページあたりの結果数
戻り値: 問題の詳細の配列
update_issue
既存の問題を更新する
入力:
owner(文字列): リポジトリの所有者repo(文字列): リポジトリ名issue_number(数値): 更新する問題番号title(オプションの文字列):新しいタイトルbody(オプションの文字列): 新しい説明state(オプションの文字列):新しい状態(「open」または「closed」)labels(オプションの文字列[]):新しいラベルassignees(オプションの文字列[]): 新しい担当者milestone(オプションの番号):新しいマイルストーン番号
返品: 問題の詳細を更新しました
add_issue_comment
問題にコメントを追加する
入力:
owner(文字列): リポジトリの所有者repo(文字列): リポジトリ名issue_number(数値): コメントする問題番号body(文字列): コメントテキスト
戻り値: 作成されたコメントの詳細
search_code
GitHubリポジトリ全体でコードを検索する
入力:
q(文字列): GitHubコード検索構文を使用した検索クエリsort(オプションの文字列): ソートフィールド ('indexed' のみ)order(オプションの文字列): ソート順 ('asc' または 'desc')per_page(オプションの数値):1ページあたりの結果数(最大100件)page(オプションの数字):ページ番号
戻り値: リポジトリコンテキストを含むコード検索結果
search_issues
問題とプルリクエストを検索する
入力:
q(文字列): GitHub の問題検索構文を使用した検索クエリsort(オプションの文字列): 並べ替えフィールド (コメント、反応、作成など)order(オプションの文字列): ソート順 ('asc' または 'desc')per_page(オプションの数値):1ページあたりの結果数(最大100件)page(オプションの数字):ページ番号
戻り値: 問題とプルリクエストの検索結果
search_users
GitHubユーザーを検索
入力:
q(文字列): GitHubユーザーの検索構文を使用した検索クエリsort(オプションの文字列): 並べ替えフィールド (フォロワー、リポジトリ、参加)order(オプションの文字列): ソート順 ('asc' または 'desc')per_page(オプションの数値):1ページあたりの結果数(最大100件)page(オプションの数字):ページ番号
返されるもの: ユーザー検索結果
list_commits
リポジトリ内のブランチのコミットを取得します
入力:
owner(文字列): リポジトリの所有者repo(文字列): リポジトリ名page(オプションの文字列):ページ番号per_page(オプションの文字列):ページあたりのレコード数sha(オプションの文字列): ブランチ名
戻り値: コミットのリスト
get_issue
リポジトリ内の問題の内容を取得します
入力:
owner(文字列): リポジトリの所有者repo(文字列): リポジトリ名issue_number(数値): 取得する問題番号
戻り値: Github Issueオブジェクトと詳細
delete_issue
GraphQL API を使用して GitHub リポジトリから問題を削除します
入力:
owner(文字列): リポジトリの所有者repo(文字列): リポジトリ名issue_number(数値): 削除する問題番号
戻り値: リポジトリ情報を含む削除確認
get_pull_request
特定のプルリクエストの詳細を取得する
入力:
owner(文字列): リポジトリの所有者repo(文字列): リポジトリ名pull_number(数値): プルリクエスト番号
戻り値: 差分とレビューステータスを含むプルリクエストの詳細
list_pull_requests
リポジトリのプルリクエストの一覧表示とフィルタリング
入力:
owner(文字列): リポジトリの所有者repo(文字列): リポジトリ名state(オプションの文字列):状態(「open」、「closed」、「all」)でフィルタリングhead(オプションの文字列): ヘッドユーザー/組織とブランチでフィルタリングbase(オプションの文字列): ベースブランチでフィルタリングsort(オプションの文字列): ('created'、'updated'、'popularity'、'long-running') で並べ替えdirection(オプションの文字列):並べ替えの方向('asc'、'desc')per_page(オプションの数値):1ページあたりの結果数(最大100件)page(オプションの数字):ページ番号
戻り値: プルリクエストの詳細の配列
create_pull_request_review
プルリクエストのレビューを作成する
入力:
owner(文字列): リポジトリの所有者repo(文字列): リポジトリ名pull_number(数値): プルリクエスト番号body(文字列): レビューコメントのテキストevent(文字列):レビューアクション('APPROVE'、'REQUEST_CHANGES'、'COMMENT')commit_id(オプションの文字列): レビューするコミットのSHAcomments(オプションの配列): 行固有のコメント。それぞれ次の内容が含まれます。path(文字列): ファイルパスposition(数値):diff内の行位置body(文字列): コメントテキスト
返品: 作成されたレビューの詳細
merge_pull_request
プルリクエストをマージする
入力:
owner(文字列): リポジトリの所有者repo(文字列): リポジトリ名pull_number(数値): プルリクエスト番号commit_title(オプションの文字列): マージコミットのタイトルcommit_message(オプションの文字列):マージコミットの詳細merge_method(オプションの文字列): マージ方法 ('merge'、'squash'、'rebase')
戻り値: マージ結果の詳細
get_pull_request_files
プルリクエストで変更されたファイルのリストを取得する
入力:
owner(文字列): リポジトリの所有者repo(文字列): リポジトリ名pull_number(数値): プルリクエスト番号
戻り値: パッチとステータスの詳細を含む変更されたファイルの配列
get_pull_request_status
プルリクエストのすべてのステータスチェックを組み合わせたステータスを取得します
入力:
owner(文字列): リポジトリの所有者repo(文字列): リポジトリ名pull_number(数値): プルリクエスト番号
戻り値: ステータスチェックの結果と個々のチェックの詳細を組み合わせたもの
update_pull_request_branch
ベースブランチからの最新の変更でプルリクエストブランチを更新します(GitHub の「ブランチを更新」ボタンに相当)
入力:
owner(文字列): リポジトリの所有者repo(文字列): リポジトリ名pull_number(数値): プルリクエスト番号expected_head_sha(オプションの文字列): プルリクエストのHEAD参照の予想されるSHA
戻り値: ブランチが更新されたときの成功メッセージ
get_pull_request_comments
プルリクエストのレビューコメントを取得する
入力:
owner(文字列): リポジトリの所有者repo(文字列): リポジトリ名pull_number(数値): プルリクエスト番号
戻り値: コメントテキスト、作成者、差分内の場所などの詳細を含むプルリクエストレビューコメントの配列
get_pull_request_reviews
プルリクエストのレビューを取得する
入力:
owner(文字列): リポジトリの所有者repo(文字列): リポジトリ名pull_number(数値): プルリクエスト番号
戻り値: レビュー状態 (APPROVED、CHANGES_REQUESTED など)、レビュー担当者、レビュー本文などの詳細を含むプル リクエスト レビューの配列
create_project
GitHubリポジトリに新しいプロジェクトを作成する
入力:
owner(文字列): リポジトリの所有者(ユーザー名または組織)repo(文字列): リポジトリ名name(文字列): プロジェクトの名前body(オプションの文字列): プロジェクトの説明
戻り値: 作成されたプロジェクトの詳細
get_project
特定のプロジェクトの詳細を取得する
入力:
owner(文字列): リポジトリの所有者(ユーザー名または組織)repo(文字列): リポジトリ名project_number(数値): プロジェクト番号
返品: プロジェクトの詳細
update_project
既存のプロジェクトの詳細を更新する
入力:
project_id(数値): プロジェクトの一意の識別子name(オプションの文字列): プロジェクトの新しい名前body(オプションの文字列): プロジェクトの新しい説明state(オプションの文字列):プロジェクトの状態(「オープン」または「クローズ」)
返品: 更新されたプロジェクトの詳細
list_projects
GitHubリポジトリ内のすべてのプロジェクトを一覧表示する
入力:
owner(文字列): リポジトリの所有者(ユーザー名または組織)repo(文字列): リポジトリ名state(オプションの文字列):状態(「オープン」、「クローズ」、「すべて」)でプロジェクトをフィルタリングしますpage(オプションの数字):ページ番号(1から始まる)per_page(オプションの数値):ページあたりの結果数(最大100)
戻り値: プロジェクトの詳細の配列
create_project_column
プロジェクトに新しい列を作成する
入力:
owner(文字列): リポジトリの所有者(ユーザー名または組織)repo(文字列): リポジトリ名project_number(数値): プロジェクト番号name(文字列): 列の名前
戻り値: 作成された列の詳細
list_project_columns
プロジェクト内のすべての列を一覧表示する
入力:
project_id(数値): プロジェクトの一意の識別子page(オプションの数字):ページ番号(1から始まる)per_page(オプションの数値):ページあたりの結果数(最大100)
戻り値: プロジェクト列の詳細の配列
update_project_column
既存のプロジェクト列を更新する
入力:
column_id(数値): 列の一意の識別子name(文字列): 列の新しい名前
戻り値: 更新された列の詳細
delete_project_column
プロジェクト列を削除する
入力:
column_id(数値): 列の一意の識別子
戻り値: 成功メッセージ
add_card_to_column
プロジェクト列に新しいカードを追加する
入力:
owner(文字列): リポジトリの所有者(ユーザー名または組織)repo(文字列): リポジトリ名column_id(文字列): カードを追加する列のIDcontent_type(文字列): カードのコンテンツの種類 ('Issue'、'PullRequest'、'Note')content_id(オプションの数値): 問題またはプルリクエストのID (content_typeがIssueまたはPullRequestの場合は必須)note(オプションの文字列):カードのメモ内容(content_typeがNoteの場合は必須)
返品: 作成されたカードの詳細
list_column_cards
プロジェクト列のすべてのカードを一覧表示する
入力:
column_id(数値): 列の一意の識別子archived_state(オプションの文字列): カードのアーカイブ状態でフィルタリング ('all'、'archived'、'not_archived')page(オプションの数字):ページ番号(1から始まる)per_page(オプションの数値):ページあたりの結果数(最大100)
戻り値: カード詳細の配列
move_card
カードを別の位置または列に移動する
入力:
card_id(数値): カードの一意の識別子position(文字列): カードの位置 ('top'、'bottom'、または 'after:<card_id>')column_id(オプションの数値): カードを移動する列のID
戻り値: 成功メッセージ
delete_card
プロジェクトからカードを削除する
入力:
card_id(数値): カードの一意の識別子
戻り値: 成功メッセージ
list_organization_projects
GitHub 組織内のすべてのプロジェクトを一覧表示する(リポジトリ レベルではなく組織レベルで)
入力:
org(文字列): 組織名state(オプションの文字列):状態(「オープン」、「クローズ」、「すべて」)でプロジェクトをフィルタリングしますpage(オプションの数値):ページ番号per_page(オプションの数値):ページあたりの結果数(最大100)
戻り値: 組織プロジェクトの詳細の配列
Related MCP server: OSSInsight MCP Server
プロジェクト V2 ツール (GitHub の新しいプロジェクト エクスペリエンス)
list_organization_projects_v2
GraphQL API を使用して GitHub 組織内のプロジェクト V2 を一覧表示する
入力:
org(文字列): 組織名first(オプションの数値):取得するプロジェクトの数(最大100)after(オプションの文字列): ページ区切りのカーソルorderBy(オプションオブジェクト): プロジェクトの順序付け方法
戻り値: ページ区切り情報を含むプロジェクトの配列
get_project_v2
GraphQL API を使用して GitHub プロジェクト V2 の詳細を取得する
入力:
id(文字列): プロジェクトのノードID
戻り値: フィールドとビューを含む詳細なプロジェクト情報
create_project_v2
GraphQL APIを使用して新しいGitHubプロジェクトV2を作成する
入力:
ownerId(文字列): 組織またはユーザーのノードIDtitle(文字列): プロジェクトのタイトルdescription(オプションの文字列): プロジェクトの説明
戻り値: 作成されたプロジェクトの詳細
update_project_v2
GraphQL API を使用して GitHub プロジェクト V2 を更新する
入力:
projectId(文字列): プロジェクトのノードIDtitle(オプションの文字列): プロジェクトの新しいタイトルdescription(オプションの文字列): プロジェクトの新しい説明closed(オプションのブール値):プロジェクトを閉じるかどうか
返品: 更新されたプロジェクトの詳細
add_item_to_project_v2
GraphQL API を使用して GitHub プロジェクト V2 に問題またはプルリクエストを追加する
入力:
projectId(文字列): プロジェクトのノードIDcontentId(文字列): 追加する問題またはプルリクエストのノードID
返品: 商品の詳細を追加しました
list_project_v2_items
GraphQL API を使用して GitHub プロジェクト V2 内のアイテムを一覧表示する
入力:
projectId(文字列): プロジェクトのノードIDfirst(オプションの数値): 取得するアイテムの数 (最大 100)after(オプションの文字列): ページ区切りのカーソルfilterBy(オプションオブジェクト): アイテムのフィルター
戻り値: フィールド値を持つプロジェクト項目の配列
update_project_v2_item_field
GraphQL API を使用して GitHub プロジェクト V2 内のアイテムのフィールド値を更新する
入力:
projectId(文字列): プロジェクトのノードIDitemId(文字列): アイテムのノードIDfieldId(文字列): フィールドのノードIDvalue(任意): フィールドの新しい値
返品: 商品詳細を更新しました
プロジェクト管理ノート
廃止に関する警告:GitHubは、新しいプロジェクトエクスペリエンスへの移行に伴い、プロジェクト(クラシック)が廃止されることを発表しました。ツール27~39は、将来的に削除される可能性のあるクラシックバージョンのプロジェクトで動作します。新しいGitHubプロジェクトエクスペリエンスでは、ツール40~46をご利用ください。
検索クエリ構文
コード検索
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の設定>開発者設定)
このトークンでアクセスするリポジトリを選択します(パブリック、すべて、または選択)
repoスコープ(「プライベートリポジトリのフルコントロール」)を持つトークンを作成しますあるいは、パブリックリポジトリのみで作業する場合は、
public_repoスコープのみを選択します。Projects V2ツールを使用する場合は、
projectスコープも含めるようにしてください。
生成されたトークンをコピーする
Claude Desktopでの使用
Claude Desktop でこれを使用するには、 claude_desktop_config.jsonに以下を追加します。
ドッカー
NPX
建てる
Dockerビルド:
ライセンス
このMCPサーバーはMITライセンスに基づいてライセンスされています。つまり、MITライセンスの条件に従って、ソフトウェアを自由に使用、改変、配布することができます。詳細については、プロジェクトリポジトリのLICENSEファイルをご覧ください。