mcpField
G
GitHub MCP Server

GitHub MCP Server

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

GitHub MCP Server について

GitHub MCP Serverは、GitHub API向けの非推奨MCPサーバーです。READMEではGitHub公式MCPサーバーの利用を推奨しており、リポジトリ、ブランチ、Issue、プルリクエスト、ファイル、リリースを管理するツールを備えていました。

主な機能

  1. 01リポジトリの取得と作成
  2. 02ブランチの一覧、作成、削除
  3. 03Issueとプルリクエストの管理
  4. 04リポジトリファイルの作成と更新
  5. 05リリースの作成
  6. 06入力検証とAPIレート制限への対応

活用シーン

  1. 01GitHubリポジトリの確認や作成
  2. 02ブランチとIssueの管理
  3. 03プルリクエストの作成、更新、マージ
  4. 04リポジトリファイルの更新やリリース作成

MCP 対応

MCPクライアントにGitHub API操作のツールを公開していました。プロジェクトは非推奨で、READMEはGitHub公式MCPサーバーを推奨しています。

設定

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

インストール方法は未掲載です

このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。

リポジトリ

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

🚨 このリポジトリは非推奨です。🚨

代わりに、公式の GitHub MCP サーバーをご利用ください:https://github.com/github/github-mcp-server

🚨 このリポジトリは非推奨です。🚨


GitHub MCP サーバー

TypeScript Model Context Protocol Version License Status GitHub

GitHub API と連携するためのツールを提供する、Model Context Protocol(MCP)サーバーです。このサーバーを使うと、LLM エージェントが標準化されたインターフェースを通じて、GitHub リポジトリ、イシュー、プルリクエスト、ブランチ、ファイル、リリースを管理できます。

目次

概要

github-mcp-server は Model Context Protocol(MCP)を実装し、以下を通じて LLM と外部システム間の標準化された通信を実現します。

  • クライアント:Claude Desktop、IDE、その他の MCP 互換クライアント
  • サーバー:プロジェクト管理とコラボレーションのためのツールとリソース
  • LLM エージェント:GitHub の操作をプログラムから実行する機能を活用する AI モデル

AI モデルと GitHub API をつなぐブリッジとして機能し、一貫したパターンに従う明確に定義されたツール群を提供します。これらのツールは、認証、検証、エラー処理、レート制限に対応します。

主な機能:

  • GitHub API との連携:GitHub の REST API と安全かつシームレスに連携
  • 包括的な GitHub 機能:リポジトリ、ブランチ、イシュー、PR などを包括的に管理
  • アトミックな機能アーキテクチャ:保守性に優れた、整理されたモジュール式のコード構成
  • 入力検証:すべての操作に対し、Zod スキーマを使った堅牢な検証
  • エラー処理:一貫したエラー分類と報告
  • レート制限:GitHub API のレート制限に標準で対応
  • パフォーマンス重視:最適化された操作とレスポンス形式
アーキテクチャとコンポーネント

コアシステムのアーキテクチャ:

クリックして Mermaid 図を展開
flowchart TB
    subgraph API["API Layer"]
        direction LR
        MCP["MCP Protocol"]
        Val["Validation"]
        Rate["Rate Limiting"]

        MCP --> Val --> Rate
    end

    subgraph Features["Feature Modules"]
        direction LR
        Repo["Repository Management"]
        Branch["Branch Management"]
        Issue["Issue Management"]
        PR["Pull Request Management"]
        File["File Management"]
        Release["Release Management"]

        Repo <--> Branch
        Repo <--> Issue
        Repo <--> PR
        Repo <--> File
        Branch <--> PR
    end

    subgraph Services["Services Layer"]
        direction LR
        GitHub["GitHub Service"]
        Mapper["Response Mapper"]
        RateLimiter["Rate Limiter"]

        GitHub <--> RateLimiter
        GitHub <--> Mapper
    end

    Rate --> Repo
    Rate --> Branch
    Rate --> Issue
    Rate --> PR
    Rate --> File
    Rate --> Release

    Repo --> GitHub
    Branch --> GitHub
    Issue --> GitHub
    PR --> GitHub
    File --> GitHub
    Release --> GitHub

    classDef layer fill:#2d3748,stroke:#4299e1,stroke-width:3px,rx:5,color:#fff
    classDef component fill:#1a202c,stroke:#a0aec0,stroke-width:2px,rx:3,color:#fff
    classDef api fill:#3182ce,stroke:#90cdf4,stroke-width:2px,rx:3,color:#fff
    classDef features fill:#319795,stroke:#81e6d9,stroke-width:2px,rx:3,color:#fff
    classDef services fill:#2f855a,stroke:#9ae6b4,stroke-width:2px,rx:3,color:#fff

    class API,Features,Services layer
    class MCP,Val,Rate api
    class Repo,Branch,Issue,PR,File,Release features
    class GitHub,Mapper,RateLimiter services

コアコンポーネント:

  • MCP プロトコルレイヤー:AI アシスタントとの通信を処理します
  • 検証レイヤー:スキーマ検証によってデータの整合性を確保します
  • GitHub サービス:GitHub REST API とのコア連携機能です
  • レートリミッター:API のレート制限超過を防ぎます
  • 機能モジュール:ドメイン固有の GitHub 操作を提供します
  • エラー処理:包括的なエラー処理とログ記録のシステムです

機能

リポジトリ管理
  • 作成、一覧表示、取得:新しいリポジトリの作成、ユーザーのリポジトリ一覧の表示、リポジトリの詳細情報の取得を行います
  • 検証と設定:リポジトリ設定を検証し、構成オプションを管理します
ブランチ管理
  • 作成、削除、一覧表示:安全な検証を備えた、ブランチのライフサイクル全体を管理します
  • 保護されたブランチのサポート:保護されたブランチのフィルタリングと操作に対応します
Issue 管理
  • 作成と一覧表示:ラベル付きの詳細な Issue を作成し、フィルタリングオプションを使って Issue を一覧表示します
  • ステータス追跡:Issue の状態(open、closed、all)でフィルタリングします
Pull Request 管理
  • 作成、更新、マージ、一覧表示:Pull Request のライフサイクル全体を管理します
  • レビューとコメントの連携:Pull Request にレビューやコメントを追加します
  • マージオプション:さまざまなマージ戦略(merge、squash、rebase)に対応します
ファイル管理
  • ファイルの作成と更新:コミットメッセージを付けてリポジトリのコンテンツを追加、変更します
  • Base64 エンコードのサポート:テキストとバイナリの両方のファイルコンテンツを処理します
リリース管理
  • リリースの作成:カスタマイズ可能なオプションを使って、タグ付きリリースを作成します
  • ドラフトとプレリリースのサポート:ドラフトおよびプレリリースのワークフローに対応します

インストール

前提条件
  • Node.js(v16 以降)
  • 適切な権限を持つ GitHub 個人アクセストークン
セットアップ
  1. リポジトリをクローンします:

    git clone https://github.com/cyanheads/github-mcp-server.git
    cd github-mcp-server
    
  2. 依存関係をインストールします:

    npm install
    
  3. プロジェクトのルートに .env ファイルを作成し、GitHub トークンを設定します:

    GITHUB_TOKEN=your_github_personal_access_token
    LOG_LEVEL=info
    SERVER_NAME=github-mcp-server
    
  4. プロジェクトをビルドします:

    npm run build
    
  5. サーバーを起動します:

    node build/index.js
    

設定

サーバーは環境変数で設定できます:

環境変数説明デフォルト
GITHUB_TOKENGitHub 個人アクセストークン(必須)-
LOG_LEVELログレベル(debug、info、warn、error、fatal)info
SERVER_NAMEMCP サーバー名github-mcp-server
SERVER_VERSIONMCP サーバーのバージョン0.1.0
API_TIMEOUT_MSAPI 呼び出しのタイムアウト(ミリ秒)10000
RATE_LIMITING_ENABLEDレート制限を有効にするかどうかtrue
RATE_LIMITING_MIN_REMAININGスロットリング開始前の最低残りリクエスト数100
RATE_LIMITING_RESET_BUFFER_MSレート制限のリセット時間に加算する時間バッファ5000
MCP クライアントの設定

MCP クライアントの設定に追加します:

{
  "mcpServers": {
    "github": {
      "command": "node",
      "args": ["/path/to/github-mcp-server/build/index.js"],
      "env": {
        "GITHUB_TOKEN": "your_github_personal_access_token",
        "LOG_LEVEL": "info",
        "SERVER_NAME": "github-mcp-server"
      }
    }
  }
}

プロジェクト構成

このプロジェクトでは、アトミックな機能指向アーキテクチャのパターンを採用しています:

/src
  /configuration             // Application configuration
  /dependencyInjection       // Tool registry and DI container
  /features                  // Feature modules organized by domain
    /repositoryManagement
      /resources             // Read operations
      /modifications         // Write operations
    /branchManagement
    /issueManagement
    /pullRequestManagement
    /fileManagement
    /releaseManagement
  /services                  // External service integrations
    /githubAccess            // GitHub API client and utilities
  /types                     // Core type definitions
  /utilities                 // Helper functions and utilities

各機能ドメインは次のように分割されています:

  • リソース:データを変更しない読み取り操作
  • 変更操作:データを作成、更新、削除する書き込み操作

各操作は専用のディレクトリに格納され、次のファイルを含みます:

  • 操作の実装ファイル
  • 型定義ファイル
  • エクスポート用インデックスファイル

ツール

GitHub MCP Server は、GitHub を操作するための包括的なツール一式を提供します:

リポジトリ管理ツール
ツール説明
get_repository特定のリポジトリの詳細情報を取得します
パラメーター:owner、repo
list_repositories認証済みユーザーのリポジトリ一覧を取得します
パラメーター:type(任意)、sort(任意)
create_repository新しい GitHub リポジトリを作成します
パラメーター:name、description(任意)、private(任意)
ブランチ管理ツール
ツール説明
list_branchesリポジトリ内のブランチ一覧を取得します
パラメーター:owner、repo、protected(任意)、per_page(任意)
create_branch新しいブランチを作成します
パラメーター:owner、repo、branch、sha
delete_branchブランチを削除します
パラメーター:owner、repo、branch
Issue 管理ツール
ツール説明
create_issueリポジトリに新しい Issue を作成します
パラメーター:owner、repo、title、body(任意)、labels(任意)
list_issuesリポジトリ内の Issue 一覧を取得します
パラメーター:owner、repo、state(任意)、labels(任意)
プルリクエスト管理ツール
ツール説明
create_pull_request新しいプルリクエストを作成します
パラメーター:owner、repo、title、head、base、body(任意)
merge_pull_requestプルリクエストをマージします
パラメーター:owner、repo、pull_number、commit_title(任意)、commit_message(任意)、merge_method(任意)
update_pull_request既存のプルリクエストを更新します
パラメーター:owner、repo、pull_number、title(任意)、body(任意)、state(任意)、base(任意)、maintainer_can_modify(任意)
list_pull_requestsリポジトリ内のプルリクエスト一覧を取得します
パラメーター:owner、repo、state(任意)、head(任意)、base(任意)、sort(任意)、direction(任意)
ファイル管理ツール
ツール説明
update_fileリポジトリ内のファイルを作成または更新します
パラメーター:owner、repo、path、message、content、sha(任意)、branch(任意)
リリース管理ツール
ツール説明
create_release新しいリリースを作成します
パラメーター:owner、repo、tag_name、name(任意)、body(任意)、draft(任意)、prerelease(任意)

開発

プロジェクト構成

このプロジェクトでは、厳格な命名規則とディレクトリ構成を採用しています。

  • ファイル名:action.entity.type.ts(例:create.repository.operation.ts)
  • 各モジュールの目的が明確に定義されています
  • 型は実装と同じ場所に配置されています
  • すべてのエクスポートはインデックスファイルを通じて一元管理されています
スクリプト
  • npm run build - プロジェクトをビルドします
  • npm run watch - 変更を監視して再ビルドします
  • npm run inspector - MCP インスペクターツールを実行します
  • npm run clean - ビルド成果物をクリーンアップします
  • npm run rebuild - プロジェクトをクリーンアップして再ビルドします
  • npm run tree - ディレクトリツリーを生成します

エラー処理

サーバーでは、包括的なエラー処理戦略を実装しています。

  • 標準化されたエラーオブジェクト:分類された一貫性のあるエラー形式
  • 入力検証:Zod スキーマによる事前検証
  • レート制限への対策:GitHub API のレート制限を自動的に処理
  • エラーの分類:
    • ネットワークエラー(接続の問題)
    • 認証エラー(トークンの問題)
    • 検証エラー(無効な入力)
    • GitHub API エラー(API 固有の問題)
    • システムエラー(予期しない障害)
  • 詳細なロギング:すべての操作とエラーを構造化して記録

コントリビューション

コントリビューションを歓迎します!Pull Request をお気軽に送信してください。

  1. リポジトリをフォークします
  2. 機能ブランチを作成します(git checkout -b feature/amazing-feature)
  3. 変更をコミットします(git commit -m 'Add some amazing feature')
  4. ブランチにプッシュします(git push origin feature/amazing-feature)
  5. Pull Request を作成します

ライセンス

Apache License 2.0


Model Context Protocol を使用して構築

コメント

MCP は初めてですか?

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

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