mcpField
M
MCP Server for GitHub Tools

MCP Server for GitHub Tools

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

MCP Server for GitHub Tools について

Agent 経由で GitHub リポジトリを管理する人向けの、TypeScript と MCP SDK による MCP サーバーです。セキュリティ状況や問題の処理に加え、ブランチとプルリクエストも操作できます。

主な機能

  1. 01GitHub ユーザー情報の取得
  2. 02セキュリティ問題の作成と一覧表示
  3. 03Dependabot・コード・シークレットスキャン警告の確認
  4. 04ブランチの一覧表示と作成
  5. 05プルリクエストと差分の作成・確認

活用シーン

  1. 01リポジトリのセキュリティ警告を確認
  2. 02脆弱性に関する問題を作成
  3. 03ブランチ保護と最新コミットを確認
  4. 04プルリクエストを作成して差分を確認

MCP 対応

MCP クライアントに GitHub のユーザー情報、リポジトリのセキュリティ、ブランチ、プルリクエストのツールを提供します。GitHub CLI から取得したトークンで GitHub に認証します。

設定

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

mcp.json · 共通設定
{
"mcpServers": {
"GitHub-Security-MCP-Server": {
"command": "npx",
"args": [
"-y",
"@rickardhf/github-security-mcp-server"
]
}
}
}
起動コマンドnpx -y @rickardhf/github-security-mcp-server

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

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

ツール

10

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

パラメーター型必須説明
usernamestringはい

詳細

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 エージェントがツールを認識しないことがあります。ツールを使用するよう明示すると、うまくいくようです。

image

プロジェクト構成

  • 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:リポジトリ操作

コメント

MCP は初めてですか?

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

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