GitHub MCP サーバー
GitHub API 用の MCP サーバー。ファイル操作、リポジトリ管理、検索機能などを有効にします。
特徴
自動ブランチ作成: ファイルを作成/更新したり変更をプッシュするときに、ブランチが存在しない場合は自動的に作成されます。
包括的なエラー処理: 一般的な問題に対する明確なエラーメッセージ
Git 履歴の保存: 強制プッシュなしで適切な Git 履歴を維持する操作
バッチ操作: 単一ファイルと複数ファイルの操作の両方をサポート
高度な検索: コード、問題/PR、ユーザーの検索をサポート
ツール
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(オプションの数値):ページあたりの結果数
戻り値: 問題の詳細の配列
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オブジェクトと詳細
get_issue_comments
問題またはプルリクエストのコメントを取得します
入力:
owner(文字列): リポジトリの所有者repo(文字列): リポジトリ名issue_number(数値): コメントを取得する問題/PR番号
戻り値: コメントID、本文、作成者、タイムスタンプを含むGitHubコメントオブジェクトの配列
Related MCP server: GitHub MCP Server
検索クエリ構文
コード検索
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スコープのみを選択します。
生成されたトークンをコピーする
Claude Desktopでの使用
Claude Desktop でこれを使用するには、 claude_desktop_config.jsonに以下を追加します。
ライセンス
このMCPサーバーはMITライセンスに基づいてライセンスされています。つまり、MITライセンスの条件に従って、ソフトウェアを自由に使用、改変、配布することができます。詳細については、プロジェクトリポジトリのLICENSEファイルをご覧ください。