Skip to main content
Glama
yashwant-kumar08

GitHub Dev Copilot

GitHub Dev Copilot - MCPサーバー

AIエージェント向けのGitHub Copilotとして機能する、本番運用可能なModel Context Protocol (MCP)サーバーです。GitHub APIと連携するツールを提供し、エージェントがリポジトリ、イシュー、PRを管理し、リポジトリの健全性を分析できるようにします。

アーキテクチャ

+----------------+      +-----------------------+      +-------------+
|    AI Agent    | ---> |  GitHub MCP Server    | <--> |  GitHub API |
| (Client)       | STDI |  (Python / FastMCP)   | HTTP |             |
+----------------+      +-----------------------+      +-------------+
                                   |
                        +-----------------------+
                        |        Tools          |
                        | - list_repositories   |
                        | - read_issues         |
                        | - create_issue        |
                        | - comment_on_pr       |
                        | - analyze_repo_health |
                        +-----------------------+

Related MCP server: github-mcp-server

特徴

  • 認証: GitHub Personal Access Token (PAT) を使用して安全に接続します。

  • ツール: 堅牢で厳密に型指定されたMCPツールを公開します。

  • 安全性:

    • Pydanticを使用して入力を検証します。

    • API呼び出しをレート制限してブロックを防止します。

    • トークンを公開しません。

  • 分析: リポジトリをスコアリングするインテリジェントな analyze_repo_health ツール。

セットアップ

  1. リポジトリをクローンし(該当する場合)、プロジェクトディレクトリに移動します。

  2. 依存関係のインストール:

    pip install -r requirements.txt
  3. 環境の設定: .env.example を .env にコピーし、GitHub PATを追加します。

    cp .env.example .env
    # Edit .env and set GITHUB_TOKEN
  4. サーバーの実行: Pythonで直接実行するか、MCPクライアントインスペクタを介して実行できます。

    python main.py

Claude DesktopまたはMCPクライアントでの使用

サーバー設定を claude_desktop_config.json に追加します:

{
  "mcpServers": {
    "github-copilot": {
      "command": "python",
      "args": ["/path/to/mcp_github_dev_copilot/main.py"]
    }
  }
}

利用可能なツール

1. list_repositories

認証されたユーザーがアクセスできるリポジトリを一覧表示します。

  • 戻り値: 名前、オーナー、プライベート/パブリックの状態、スター数、言語。

2. read_issues

リポジトリからイシューを取得します。

  • 入力: repo_owner, repo_name, state ("open", "closed", "all")

  • 出力: ID、タイトル、ラベルを含むイシューのリスト。

3. create_issue

新しいイシューを作成します。

  • 入力: repo_owner, repo_name, title, body (マークダウン), labels

  • 出力: イシューのURLと番号。

4. comment_on_pr

プルリクエストにコメントを追加します。

  • 入力: repo_owner, repo_name, pr_number, comment_text

  • 出力: コメントのURL。

5. analyze_repo_health

リポジトリのヘルスチェックを実行します。

  • チェック項目: オープンなイシュー数、古いイシュー(30日以上)、最近のコミット活動、テストの存在、CI設定。

  • 出力: 健全性スコア(0-100)と改善提案。

セキュリティと制限事項

  • レート制限: サーバーは、待機または再試行によってGitHubのレート制限を処理するデコレータを実装しています。

  • スコープ: PATに repo、read:org、workflow のスコープがあることを確認してください。

  • ブラウザ不使用: このサーバーは公式のGitHub APIを使用しており、ウェブスクレイピングは行いません。

  • ログ: アクティビティは stderr に記録され、MCP stdio通信を妨げないようにしています。

今後の改善点

  • update_issue と merge_pr ツールを追加。

  • ファイル内容の読み取り/検索を実装。

  • GitHub App認証のサポートを追加。

Related MCP Connectors

Related MCP Servers