MCP Server for GitHub Tools について
Agent 経由で GitHub リポジトリを管理する人向けの、TypeScript と MCP SDK による MCP サーバーです。セキュリティ状況や問題の処理に加え、ブランチとプルリクエストも操作できます。
主な機能
- 01GitHub ユーザー情報の取得
- 02セキュリティ問題の作成と一覧表示
- 03Dependabot・コード・シークレットスキャン警告の確認
- 04ブランチの一覧表示と作成
- 05プルリクエストと差分の作成・確認
活用シーン
- 01リポジトリのセキュリティ警告を確認
- 02脆弱性に関する問題を作成
- 03ブランチ保護と最新コミットを確認
- 04プルリクエストを作成して差分を確認
MCP 対応
MCP クライアントに GitHub のユーザー情報、リポジトリのセキュリティ、ブランチ、プルリクエストのツールを提供します。GitHub CLI から取得したトークンで GitHub に認証します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
10掲載時のツール一覧 · 2 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| username | string | はい |
詳細
GitHub ツール用 MCP サーバー
概要
このリポジトリには、GitHub を操作するためのツールを提供する Model Context Protocol(MCP)サーバーの実装が含まれています。このサーバーは TypeScript と MCP SDK を使用して構築されており、Visual Studio Code の GitHub Copilot などの MCP クライアントと統合できます。
機能
このサーバーでは、現在、以下のツールを提供しています。
- GitHub ユーザー情報:ユーザー名を指定して、GitHub ユーザーの詳細を取得します
- セキュリティ課題の作成:適切な書式とラベルを付けて、GitHub リポジトリにセキュリティ課題を作成します
- セキュリティ課題の一覧表示:GitHub リポジトリ内のセキュリティ関連の課題をすべて一覧表示します
- セキュリティ状況のレポート:Dependabot、コードスキャン、シークレットスキャンを含む包括的なセキュリティアラートを取得します
- ブランチ管理:GitHub リポジトリ内のブランチを一覧表示し、新しいブランチを作成します
- プルリクエスト管理:
- ブランチ間でプルリクエストを作成します
- 特定のリポジトリのプルリクエストを一覧表示します。PR 番号、タイトル、説明などの基本情報を含みます。
- 差分とコメントを含む、特定のプルリクエストの詳細情報を取得します
前提条件
- Node.js
- npm(Node.js に含まれています)
- GitHub CLI(gh)がインストールされ、認証済みであること
認証
この MCP サーバーは、GitHub CLI を使用して現在認証済みのユーザーのトークンを取得し、認証に使用します。
ローカルでの実行
サーバーの起動
npm start
ファイルの変更時に自動で再ビルドする開発モードの場合:
npm run dev
サーバーのデバッグと検査を行う場合:
npm run inspect
VS Code との統合
公開済みの最新バージョンを実行する
公開済みの最新バージョンを使用するには、新しいツールを追加し、Command (stdio)を選択して、コマンドnpx @rickardhf/github-security-mcp-serverを使用します。
mcp.json設定ファイルを直接変更する場合は、次の設定を使用できます。
{
"servers": {
"my-local-mcp-server": {
"type": "stdio",
"command": "npx",
"args": [
"@rickardhf/github-security-mcp-server"
]
}
},
...
}
ローカルバージョンを実行する
エディターで MCP サーバーのローカルバージョンを使用するには、以下の例と同様に、プロジェクトのビルド済みファイルを実行します。このサーバー設定をmcp.jsonファイルに追加するだけです。設定は、グローバルまたは特定のワークスペースに適用できます。
{
"servers": {
"my-local-mcp-server": {
"type": "stdio",
"command": "node",
"args": [
"c:\\repos\\private\\mcptest\\dist\\index.js"
]
}
}
}
最初にコマンドnpm run local-installを実行すると、ローカルコンピューターにグローバルインストールされます。その後、以下の設定を使って実行できます。
{
"servers": {
"my-local-mcp-server": {
"type": "stdio",
"command": "npx",
"args": [
"github-security-mcp-server"
]
}
}
}
使い方
利用可能なツール
GitHub ユーザーの取得
GitHub ユーザーの情報を取得します。
例:
Get information about the GitHub user "octocat"
セキュリティ課題の作成
適切な書式とセキュリティ関連のラベルを付けて、GitHub リポジトリにセキュリティ課題を作成します。
例:
Create a security issue for XSS vulnerability in the login form
セキュリティ課題の一覧表示
「bug」と「security」の両方のラベルが付いた、GitHub リポジトリ内のすべてのセキュリティ課題を一覧表示します。
例:
List security issues in the repository "owner/repo-name"
セキュリティ状況の取得
以下を含む、GitHub リポジトリのセキュリティ状況を取得します。
- Dependabot アラート
- コードスキャンアラート
- シークレットスキャンアラート
例:
Get security status for the repository "owner/repo-name"
ブランチの一覧表示
GitHub リポジトリ内のすべてのブランチを、最新のコミット、保護状況、デフォルトブランチかどうかの情報とともに一覧表示します。
例:
List branches in the repository "owner/repo-name"
新しいブランチの作成
既存のブランチを基に、GitHub リポジトリに新しいブランチを作成します。
例:
Create a new branch called "feature-branch" based on "main" in "owner/repo-name"
プルリクエストの作成
GitHub リポジトリ内の2つのブランチ間で、新しいプルリクエストを作成します。
例:
Create a pull request from "feature-branch" to "main" in "owner/repo-name" titled "New Feature Implementation"
プルリクエストの取得
差分とコメントを含む、特定のプルリクエストの詳細情報を取得します。
例:
Get pull request #42 from the repository "owner/repo-name"
AI エージェントがツールを認識しない場合
以下の例のように、AI エージェントがツールを認識しないことがあります。ツールを使用するよう明示すると、うまくいくようです。
プロジェクト構成
- src/index.ts:メインエントリーポイントとサーバー設定
- src/common/:共有ユーティリティと型定義
- utils.ts:共有ユーティリティ関数(GitHub トークンの取得)
- types.ts:TypeScript の型定義
- src/operations/:ツールの実装
- process.ts:ツールの登録とマッピング
- security.ts:セキュリティステータスのレポート機能
- api/:GitHub API 操作
- branch.ts:ブランチ管理操作
- issues.ts:セキュリティ関連の issue 操作
- pull-requests.ts:プルリクエスト操作
- repo.ts:リポジトリ操作
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。