MochiuWiki : SUSE, EC, PCB
検索
個人用ツール
ログイン
Toggle dark mode
名前空間
ページ
議論
表示
閲覧
ソースを閲覧
履歴を表示
MCPサーバ - GitHubのソースを表示
提供: MochiuWiki : SUSE, EC, PCB
←
MCPサーバ - GitHub
あなたには「このページの編集」を行う権限がありません。理由は以下の通りです:
この操作は、次のグループのいずれかに属する利用者のみが実行できます:
管理者
、new-group。
このページのソースの閲覧やコピーができます。
== 概要 == GitHub MCP Server (github/github-mcp-server) は、Model Context Protocol (MCP) を通じてAIアシスタントがGitHubプラットフォームに直接接続し、<br> リポジトリ・Issue・Pull Request等を自然言語で操作するための標準化されたツールインターフェースを提供するサーバである。<br> <br> GitHubが公式に開発・提供しており、MITライセンスの下でGo言語で実装されている。<br> <br> Claude Desktop、Claude Code、OpenCode、VS Code (v1.101以降)、Cursor、Windsurf等の主要なMCPクライアント環境で動作する。<br> <br> デプロイメント方式は2種類あり、GitHubがホストするリモートサーバ (https://api.githubcopilot.com/mcp/) を利用する方式と、Dockerを使用してローカルで実行する方式がある。<br> リモートサーバ方式はOAuth認証に対応しており、Docker不要で利用できるため、HTTPトランスポートに対応したクライアントで推奨される。<br> <br> 主な特徴は以下の通りである。<br> * GitHubの公式MCP実装であり、リポジトリ・Issue・Pull Requestを自然言語で操作可能 * リモートサーバ方式とローカルDockerサーバ方式の2つのデプロイメント方式をサポート * OAuth認証およびPersonal Access Token (PAT) 認証に対応 * <code>--toolsets</code> フラグによるツールグループの有効化・無効化が可能で、LLMのコンテキストサイズを削減できる。 * GitHub Enterprise Serverにも対応 * Windows、MacOS、Linuxの主要なOSで動作 <br><br> == GitHub MCP Serverの機能 == GitHub MCP Serverは、リポジトリ操作、Issue操作、Pull Request操作、ブランチ操作等のカテゴリで30以上のツールを提供する。<br> <br> ==== リポジトリ操作ツール ==== リポジトリの管理・操作に関するツールを以下に示す。<br> <br> <center> {| class="wikitable" |+ リポジトリ操作ツールの一覧 ! ツール !! 説明 |- | create_or_update_file || リポジトリ内のファイルを作成または更新する。 |- | push_files || 複数ファイルの変更をコミット・プッシュする。 |- | search_repositories || GitHubリポジトリを検索する。 |- | create_repository || 新規リポジトリを作成する。 |- | get_file_contents || ファイルやディレクトリの内容を取得する。 |- | fork_repository || リポジトリをフォークする。 |- | list_commits || リポジトリのコミット履歴を一覧表示する。 |} </center> <br> ==== Issue操作ツール ==== Issueの作成・管理に関するツールを以下に示す。<br> <br> <center> {| class="wikitable" |+ Issue操作ツールの一覧 ! ツール !! 説明 |- | create_issue || 新規Issueを作成する。 |- | list_issues || Issueを一覧表示・フィルタリングする。 |- | update_issue || Issueのタイトル・説明・状態を更新する。 |- | get_issue || Issueの詳細情報を取得する。 |- | add_issue_comment || Issueにコメントを追加する。 |- | search_issues || Issueを検索する。 |} </center> <br> ==== Pull Request操作ツール ==== Pull Requestの作成・管理に関するツールを以下に示す。<br> <br> <center> {| class="wikitable" |+ Pull Request操作ツールの一覧 ! ツール !! 説明 |- | create_pull_request || 新規Pull Requestを作成する。 |- | list_pull_requests || Pull Requestを一覧表示・フィルタリングする。 |- | merge_pull_request || Pull Requestをマージする。 |- | get_pull_request || Pull Requestの詳細情報を取得する。 |- | get_pull_request_diff || Pull Requestの差分を取得する。 |- | get_pull_request_reviews || Pull Requestのレビューを取得する。 |- | create_pull_request_review || Pull Requestにレビューを投稿する。 |- | update_pull_request || Pull Requestを更新する。 |} </center> <br> ==== ブランチ操作ツール ==== ブランチの管理に関するツールを以下に示す。<br> <br> <center> {| class="wikitable" |+ ブランチ操作ツールの一覧 ! ツール !! 説明 |- | create_branch || 新規ブランチを作成する。 |- | list_branches || リポジトリのブランチを一覧表示する。 |- | get_branch || ブランチの詳細情報を取得する。 |} </center> <br> ==== その他のツール ==== コード検索、GitHub Actions、セキュリティ、通知等に関するツールを以下に示す。<br> <br> <center> {| class="wikitable" |+ その他のツールの一覧 ! ツール !! 説明 |- | search_code || GitHub上のコードを検索する |- | list_workflows || GitHub Actionsワークフローを一覧表示する |- | get_workflow_run || ワークフロー実行の詳細を取得する |- | list_workflow_runs || ワークフロー実行を一覧表示する |- | get_dependabot_alerts || Dependabotセキュリティアラートを取得する |- | list_notifications || 通知を一覧表示する |- | get_code_scanning_alerts || Code Scanningアラートを取得する |} </center> <br> ==== ツールセット制御 ==== <code>--toolsets</code> フラグまたは環境変数 <code>GITHUB_TOOLSETS</code> を使用することにより、機能グループの有効化・無効化が可能である。<br> これにより、LLMコンテキストサイズを削減できる。<br> <br> 下表に、利用可能なツールセットを示す。<br> <br> <center> {| class="wikitable" |+ 利用可能なツールセット一覧 ! ツールセット !! 説明 |- | repos || リポジトリ操作ツール |- | issues || Issue操作ツール |- | pull_requests || Pull Request操作ツール |- | code_security || Code Scanningおよびセキュリティ関連ツール |- | experiments || 実験的機能のツール |- | actions || GitHub Actionsワークフロー関連ツール |- | users || ユーザ情報関連ツール |- | notifications || 通知関連ツール |- | discussions || ディスカッション関連ツール |} </center> <br> ツールセットを指定する例を以下に示す。<br> <br> --toolsets repos,issues,pull_requests <br><br> == 動作要件 == ==== 共通の要件 ==== OS問わず共通して必要な要件を以下に示す。<br> <br> * GitHub Personal Access Token (PAT) またはOAuth認証 *: GitHubのリポジトリやリソースにアクセスするための認証情報が必要 * HTTPトランスポートに対応したMCPクライアント (リモートサーバ方式の場合) *: Claude Code、OpenCode等のHTTPトランスポート対応クライアントで使用可能 <br> ==== リモートサーバ方式の要件 ==== リモートサーバ方式を使用する場合の要件を以下に示す。<br> <br> * Dockerのインストールは不要 * HTTPトランスポートに対応したMCPクライアント *: Claude Desktop はHTTP転送に非対応のため、リモートサーバ方式は使用できない。 <br> ==== ローカルサーバ方式の要件 ==== ローカルDockerサーバ方式を使用する場合の要件を以下に示す。<br> <br> * Dockerのインストールが必要 *: Dockerデーモンが起動していることが必要 * GitHub Personal Access Token (PAT) *: OAuthによる自動認証は利用できないため、PATが必須 <br><br> == GitHub Personal Access Tokenの取得 == ==== 取得手順 ==== GitHub Personal Access Token (PAT) の取得手順を以下に示す。<br> <br> # GitHubにログインする # 右上のアカウントアイコンを選択して、[Settings]を開く。 # 左サイドバーの最下部にある[Developer settings]を選択する。 # [Personal access tokens] - [Tokens (classic)]を選択する。 # [Generate new token (classic)]を選択する。 # トークンに名前を付ける。 #: 例: GitHub MCP Server # 有効期限を設定する。 #: 推奨: 90日または1年。無期限の設定は避ける。 # 必要なスコープを選択する。 # [Generate token]を選択する。 # 生成されたトークンをコピーして安全な場所に保存する。 <br> 生成されたトークンはページを離れた後に再度表示されないため、必ずコピーして保存すること。<br> <br> ==== 推奨スコープ ==== 下表に、GitHub MCP Serverで使用する際の推奨スコープを示す。<br> <br> <center> {| class="wikitable" |+ Personal Access Token 推奨スコープ ! スコープ !! 説明 !! 必須 |- | <code>repo</code> || リポジトリへのフルアクセス || はい |- | <code>workflow</code> || GitHub Actionsワークフロー操作 || いいえ (Actions使用時に必要) |- | <code>read:org</code> || 組織情報の読み取り || いいえ |- | <code>read:discussion</code> || ディスカッションの読み取り || いいえ |- | <code>read:packages</code> || パッケージの読み取り || いいえ |} </center> <br> Fine-grained Personal Access Token (ファイングレインドPAT) も使用可能である。<br> ファイングレインドPATを使用することにより、必要最小限のリポジトリとスコープのみを付与できるため、セキュリティの点から推奨される。<br> <br><br> == 設定 == ==== 設定ファイルの場所 ==== 各MCPクライアントの設定ファイルの場所は以下の通りである。<br> <br> Claude Desktopの設定ファイルを以下に示す。<br> * Linux *: <u>~/.config/Claude/claude_desktop_config.json</u> * MacOS *: <u>~/Library/Application Support/Claude/claude_desktop_config.json</u> * Windows *: <u>%APPDATA%\Claude\claude_desktop_config.json</u> <br> Claude Codeの設定ファイルを以下に示す。<br> * Linux *: <u>~/.config/claude/settings.json</u> * MacOS *: <u>~/Library/Application Support/claude/settings.json</u> * Windows *: <u>%APPDATA%\claude\settings.json</u> <br> OpenCodeの設定ファイルを以下に示す。<br> * Linux / MacOS / Windows (共通) *: <u>$HOME/.opencode.json</u> <br> ==== Claude Desktopでの設定 ==== Claude DesktopはHTTP転送をサポートしていないため、Dockerベースのローカルサーバセットアップが必須である。<br> <br> Claude Desktopの設定ファイルに以下の内容を追記する。<br> <br> <syntaxhighlight lang="json"> { "mcpServers": { "github": { "command": "docker", "args": [ "run", "-i", "--rm", "-e", "GITHUB_PERSONAL_ACCESS_TOKEN", "ghcr.io/github/github-mcp-server" ], "env": { "GITHUB_PERSONAL_ACCESS_TOKEN": "<GitHubのPersonal Access Token>" } } } } </syntaxhighlight> <br> 特定のツールセットのみを有効化する場合は、<code>args</code> に <code>"--toolsets"</code> と使用するツールセット名を追加する。<br> <br> <syntaxhighlight lang="json"> { "mcpServers": { "github": { "command": "docker", "args": [ "run", "-i", "--rm", "-e", "GITHUB_PERSONAL_ACCESS_TOKEN", "ghcr.io/github/github-mcp-server", "--toolsets", "repos,issues,pull_requests" ], "env": { "GITHUB_PERSONAL_ACCESS_TOKEN": "<GitHubのPersonal Access Token>" } } } } </syntaxhighlight> <br> 設定ファイルを保存した後、Claude Desktopを完全に再起動して設定を反映する。<br> <br> ==== Claude Codeでの設定 ==== Claude CodeはHTTPトランスポートをサポートしているため、リモートサーバの使用を推奨する。<br> <br> リモートサーバ (推奨) を使用する場合は、以下のコマンドを実行する。<br> <br> claude mcp add --transport http github https://api.githubcopilot.com/mcp/ <br> ローカルDockerサーバを使用する場合は、以下のコマンドを実行する。<br> <br> claude mcp add --transport stdio github -- docker run -i --rm -e <GITHUB_PERSONAL_ACCESS_TOKEN> ghcr.io/github/github-mcp-server <br> 設定ファイルに直接記述する場合 (ローカルDockerサーバ) は、以下の内容を <code>settings.json</code> ファイルに追記する。<br> <br> <syntaxhighlight lang="json"> { "mcpServers": { "github": { "command": "docker", "args": [ "run", "-i", "--rm", "-e", "GITHUB_PERSONAL_ACCESS_TOKEN", "ghcr.io/github/github-mcp-server" ], "env": { "GITHUB_PERSONAL_ACCESS_TOKEN": "<GitHubのPersonal Access Token>" } } } } </syntaxhighlight> <br> ==== OpenCodeでの設定 ==== OpenCodeはリモートMCPサーバをサポートしており、OAuthフローによる自動認証に対応している。<br> <br> OpenCodeの設定ファイル (<u>~/.opencode.json</u>) に以下の内容を追記する。<br> <br> <syntaxhighlight lang="json"> { "mcpServers": { "github": { "type": "remote", "url": "https://api.githubcopilot.com/mcp/" } } } </syntaxhighlight> <br> ==== VS Codeでの設定 ==== VS Code v1.101以降でGitHub MCP Serverを使用できる。<br> 以下のコマンドを実行してMCPサーバを追加する。<br> <br> code --add-mcp '{"name":"github","command":"docker","args":["run","-i","--rm","-e","GITHUB_PERSONAL_ACCESS_TOKEN","ghcr.io/github/github-mcp-server"],"env":{"GITHUB_PERSONAL_ACCESS_TOKEN":"<GitHubのPersonal Access Token>"}}' <br> ==== 環境変数 ==== 下表に、GitHub MCP Serverの動作をカスタマイズするための環境変数を示す。<br> <br> <center> {| class="wikitable" |+ 環境変数一覧 ! 環境変数 !! 説明 |- | <code>GITHUB_PERSONAL_ACCESS_TOKEN</code> || GitHub Personal Access Token |- | <code>GITHUB_TOOLSETS</code> || 有効化するツールセット (カンマ区切りで複数指定可能) |- | <code>GITHUB_HOST</code> || GitHub Enterprise Serverのホスト名<br>デフォルト: github.com |- | <code>GITHUB_MCP_TOOL_ADD_ISSUE_COMMENT_DESCRIPTION</code> || <u>add_issue_comment</u> ツールのカスタム説明文 |} </center> <br><br> == 使用方法 == GitHub MCP Serverの各ツールは、AIアシスタントが自然言語の指示を受けて自動的に呼び出す。<br> <br> ==== リポジトリの操作例 ==== リポジトリの閲覧・管理に関する操作例を以下に示す。<br> <br> * リポジトリのディレクトリ構造を表示する場合 *: <syntaxhighlight lang="text"> # プロンプト例 : リポジトリのディレクトリ構造を表示してください。 </syntaxhighlight> *: <br> * README.mdファイルの内容を確認する場合 *: <syntaxhighlight lang="text"> # プロンプト例 : README.mdファイルの内容を確認してください。 </syntaxhighlight> *: <br> * 新しいリポジトリを作成する場合 *: <syntaxhighlight lang="text"> # プロンプト例 : 「my-new-project」という名前の新しいリポジトリを作成してください。 </syntaxhighlight> <br> ==== Issueの操作例 ==== Issueの作成・管理に関する操作例を以下に示す。<br> <br> * オープン中のIssue一覧を表示する場合 *: <syntaxhighlight lang="text"> # プロンプト例 : オープン中のIssue一覧を表示してください。 </syntaxhighlight> *: <br> * バグを報告するIssueを作成する場合 *: <syntaxhighlight lang="text"> # プロンプト例 : ログイン画面でパスワードのバリデーションが機能しないバグを報告するIssueを作成してください。 </syntaxhighlight> *: <br> * Issueにコメントを追加する場合 *: <syntaxhighlight lang="text"> # プロンプト例 : Issue #123に「対応中です。近日中に修正します。」というコメントを追加してください。 </syntaxhighlight> <br> ==== Pull Requestの操作例 ==== Pull Requestの作成・管理に関する操作例を以下に示す。<br> <br> * オープン中のPull Requestを一覧表示する場合 *: <syntaxhighlight lang="text"> # プロンプト例 : オープン中のPull Requestを一覧表示してください。 </syntaxhighlight> *: <br> * Pull Requestの差分を確認してレビューする場合 *: <syntaxhighlight lang="text"> # プロンプト例 : PR #456の差分を確認して、コードの問題点をレビューしてください。 </syntaxhighlight> *: <br> * Pull Requestを作成する場合 *: <syntaxhighlight lang="text"> # プロンプト例 : feature/new-uiブランチからmainブランチへのPull Requestを作成してください。 </syntaxhighlight> <br> ==== コードレビューの操作例 ==== コードの分析・レビューに関する操作例を以下に示す。<br> <br> * Pull Requestのコード変更をレビューして改善点を提案する場合 *: <syntaxhighlight lang="text"> # プロンプト例 : PR #789のコード変更をレビューして、改善点を提案してください。 </syntaxhighlight> *: <br> * 最新のコミットメッセージを表示する場合 *: <syntaxhighlight lang="text"> # プロンプト例 : mainブランチの最新10件のコミットメッセージを表示してください。 </syntaxhighlight> <br><br> == トラブルシューティング == ==== 共通の問題 ==== 下表に、OS問わず発生する可能性がある問題と対処法を示す。<br> <br> <center> {| class="wikitable" |+ 共通トラブルシューティング ! 問題 !! 対処法 |- | 認証エラー (401) が発生する || PATが有効であり、必要なスコープを持っているか確認する。 |- | MCPサーバが表示されない || 設定ファイルのJSON構文を確認し、アプリケーションを完全に再起動する。 |- | 権限エラー (403) が発生する || PATのスコープが十分であることを確認する。<br>(リポジトリアクセスには <code>repo</code> スコープが必須) |- | コンテキスト超過が発生する || ツールセットを制限して使用するツール数を削減する。 |} </center> <br> ==== Docker関連の問題 ==== 下表に、Dockerを使用したローカルサーバ方式で発生する可能性がある問題と対処法を示す。<br> <br> <center> {| class="wikitable" |+ Dockerトラブルシューティング ! 問題 !! 対処法 |- | Dockerがインストールされていない || Dockerをインストールする。<br>リモートサーバ方式を使用する場合はDocker不要 |- | Dockerイメージのプルに失敗する || ネットワーク接続を確認する。<br>ghcr.ioへのアクセスが許可されているか確認する。 |- | コンテナの起動に失敗する || Dockerデーモンが起動しているか確認する。<br><code>docker ps</code> コマンドで確認する。 |} </center> <br> ==== 認証・権限の問題 ==== 下表に、認証および権限に関する問題と対処法を示す。<br> <br> <center> {| class="wikitable" |+ 認証・権限トラブルシューティング ! 問題 !! 対処法 |- | PATの有効期限が切れている || GitHubでPATを再生成する。<br>有効期限を適切に設定する。 |- | OAuth認証エラーが発生する || 一部クライアントではOAuth認証に問題がある場合がある。<br>PAT認証に切り替える。 |- | プライベートリポジトリにアクセスできない || PATに <code>repo</code> スコープが付与されているか確認する。 |} </center> <br><br> == 関連リソース == * [https://github.com/github/github-mcp-server 公式リポジトリ (github/github-mcp-server)] * [https://docs.github.com/en/copilot/how-tos/provide-context/use-mcp/use-the-github-mcp-server GitHub Docs - GitHub MCP Serverの使い方] * [https://github.com/github/github-mcp-server/blob/main/docs/installation-guides/install-claude.md Claude用インストールガイド] * [https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens GitHub Personal Access Tokenの管理] <br><br> {{#seo: |title={{PAGENAME}} : Exploring Electronics and SUSE Linux | MochiuWiki |keywords=MochiuWiki,Mochiu,Wiki,Mochiu Wiki,Electric Circuit,Electric,pcb,Mathematics,AVR,TI,STMicro,AVR,ATmega,MSP430,STM,Arduino,Xilinx,FPGA,Verilog,HDL,PinePhone,Pine Phone,Raspberry,Raspberry Pi,C,C++,C#,Qt,Qml,MFC,Shell,Bash,Zsh,Fish,SUSE,SLE,Suse Enterprise,Suse Linux,openSUSE,open SUSE,Leap,Linux,uCLnux,電気回路,電子回路,基板,プリント基板,GitHub,MCP,Model Context Protocol,MCPサーバ,Claude,AI,リポジトリ,Issue,Pull Request,GitHub Actions,Docker,Personal Access Token,PAT,OAuth,Git |description={{PAGENAME}} - 電子回路とSUSE Linuxに関する情報 | This page is {{PAGENAME}} in our wiki about electronic circuits and SUSE Linux |image=/resources/assets/MochiuLogo_Single_Blue.png }} __FORCETOC__ [[カテゴリ:設定]]
MCPサーバ - GitHub
に戻る。
案内
メインページ
最近の更新
おまかせ表示
MediaWiki についてのヘルプ
ツール
リンク元
関連ページの更新状況
特別ページ
ページ情報
We ask for
Donations
Collapse