Skip to main content
Glama
MadanMohan0537

GitHub MCP Agent

GitHub MCP Agent

GitHubリポジトリに関する自然言語の質問をすると、ライブのGitHubデータに基づいた回答が得られます。Cloudflare上では、Workerが任意のLLMプロバイダー(Google、OpenAI、DeepSeek、Cloudflare、Groq、またはカスタムのOpenAI互換API)をツール呼び出しで呼び出し、REST APIを通じてGitHubツールを実装します。ローカルでは、Docker経由で公式のGitHub MCPサーバーと通信する元のStreamlitアプリを引き続き実行できます。

これは、Shubhamsaboo/awesome-llm-apps からのGitHub MCPエージェントのスタンドアロンパッケージです。オリジナルは大規模なサンプルコレクションの中にあります。このリポジトリは、クローン、実行、デプロイが可能な自己完結型のプロジェクトです。

機能

任意の owner/repo をアプリに指定し、質問を入力すると、ライブのGitHubデータに基づいた構造化された回答が得られます。これは一般的なLLMの推測ではありません。典型的な質問:

  • バグとしてラベル付けされているIssueはどれですか?

  • まだレビューが必要なプルリクエストはどれですか?

  • 最近マージされたものは何ですか?

  • このリポジトリの活動状況はどうですか?

エージェントは回答をマークダウンでフォーマットし、役立つ場合はテーブルやGitHubへのリンクを含めます。

Related MCP server: GitHub Tools MCP Server

特徴

  • Issue、プルリクエスト、リポジトリメタデータ、ファイル、検索に対する自然言語クエリ

  • ホスト型利用のためのCloudflare Worker + 静的チャットUI(任意のLLMプロバイダー + GitHub REST)

  • 元のStreamlitアプリ用のDocker経由の公式GitHub MCPサーバー(オプションのローカルパス)

  • 独自のLLMキーを持ち込む:Google、OpenAI、DeepSeek、Cloudflare Workers AI、Anthropic、Groq、OpenRouter、Mistral、xAI、Together、または任意のOpenAI互換エンドポイント

  • サイドバーの認証、プロバイダーピッカー、モデルフィールド、クエリテンプレート、カスタム質問

  • オプションの .env / .dev.vars 読み込みにより、UIからキーを隠せます

ホスト型アーキテクチャ(Cloudflare)

StreamlitとGitHub MCP DockerイメージはCloudflare Pages/Workers上では実行できません。ホスト型アプリは、同じ製品のCloudflareネイティブな再構築です。

┌─────────────────┐     POST /api/chat (SSE)      ┌──────────────────┐
│ Static chat UI  │ ────────────────────────────► │ Cloudflare Worker│
│ public/         │                               │ Any LLM + tools  │
└─────────────────┘                               └────────┬─────────┘
                                                           │ GitHub REST
                                                           ▼
                                                  ┌──────────────────┐
                                                  │ api.github.com   │
                                                  └──────────────────┘
  1. Workerは public/ からチャットUIを提供し、/api/* を処理します。

  2. チャットリクエストは、選択されたLLMを、MCPの repos、issues、pull_requests ツールセット(ファイルと検索を含む)と同等のGitHubツールで呼び出します。

  3. Workerは、GITHUB_TOKEN を使用してGitHub REST APIに対してこれらのツールを実行します。

  4. トークンはWranglerシークレットまたはサイドバー(X-LLM-Key、X-GitHub-Token)から取得できます。サイドバーの値は、そのリクエストのシークレットを上書きします。

Cloudflareへのデプロイ

前提条件

  • Node.js 18+

  • Cloudflareアカウント

  • 任意のプロバイダー(Google、OpenAI、DeepSeek、Cloudflare、Groq、…)のLLM APIキー

  • GitHubパーソナルアクセストークン(コミットしないこと)

git clone https://github.com/MadanMohan0537/github-mcp-agent.git
cd github-mcp-agent
npm install
npx wrangler login
npx wrangler secret put LLM_API_KEY
npx wrangler secret put GITHUB_TOKEN
npx wrangler secret put LLM_PROVIDER
npm run deploy

デプロイ後、Wranglerは *.workers.dev URLを出力します。UIとAPIは同一オリジンです。

ローカルCloudflare開発

copy .dev.vars.example .dev.vars

実際のキーで .dev.vars を編集し(絶対にコミットしないでください)、次に:

npm run dev

Wranglerが出力するURL(通常は http://127.0.0.1:8787)を開きます。

変数

必須

目的

LLM_API_KEY

はい(クエリ用)

任意のプロバイダーキー:Google、OpenAI、DeepSeek、Groq、Cloudflareなど

LLM_PROVIDER

いいえ

openai、google、deepseek、cloudflare、anthropic、groq、openrouter、mistral、xai、together、または custom

LLM_MODEL

いいえ

そのプロバイダーのモデルID

LLM_BASE_URL

カスタム / Cloudflare上書き

OpenAI互換のベースURL

CLOUDFLARE_ACCOUNT_ID

Cloudflare Workers AI

Workers AIのURLを構築するために使用されるアカウントID

GITHUB_TOKEN

はい(クエリ用)

GitHub REST呼び出しを認証します

プロバイダーエイリアス

いいえ

GOOGLE_API_KEY、OPENAI_API_KEY、DEEPSEEK_API_KEY、GROQ_API_KEY、…

サイドバーにキーを入力することもできます。フィールドのラベルは LLM API key であり、OpenAI専用ではありません。サイドバーの値は、リクエストヘッダーとしてこのWorkerにのみ送信されます。

トークンのスコープ:

  • 公開リポジトリ:public_repo で十分です

  • プライベートリポジトリ:repo

オプションのローカルパス:Streamlit + GitHub MCP Docker

元のPythonアプリは変更されていません。Agno、Streamlit、および ghcr.io/github/github-mcp-server を使用します。

┌─────────────────┐     natural-language query      ┌──────────────────┐
│  Streamlit UI   │ ───────────────────────────────► │  Agno Agent      │
│  github_agent.py│                                  │  (any LLM)      │
└─────────────────┘                                  └────────┬─────────┘
                                                              │ MCP tools
                                                              ▼
                                                     ┌──────────────────┐
                                                     │ Docker container │
                                                     │ github-mcp-server│
                                                     └────────┬─────────┘
                                                              │ GitHub API
                                                              ▼
                                                     ┌──────────────────┐
                                                     │ api.github.com   │
                                                     └──────────────────┘

前提条件

要件

備考

Python 3.10+

3.12に対して開発

Docker

実行中である必要があります。GitHub MCPサーバーはコンテナです

LLM APIキー

Google、OpenAI、DeepSeek、Cloudflare、Groq、または任意のOpenAI互換プロバイダー

GitHubパーソナルアクセストークン

github.com/settings/tokens から

python -m venv .venv
.\.venv\Scripts\Activate.ps1
pip install -r requirements.txt
copy .env.example .env
streamlit run github_agent.py

または、venvがインストールされた後、. un.ps1 / run.bat を実行します。Streamlitが出力するURL(通常は http://localhost:8501)を開きます。

ghcr.io/github/github-mcp-server の最初のDockerプルには1分かかる場合があります。クエリは120秒でタイムアウトします。

使用例

リポジトリ:Shubhamsaboo/awesome-llm-apps

Issues

  • Shubhamsaboo/awesome-llm-apps でバグとしてラベル付けされたIssueを見つける

  • 活発に議論されているIssueはどれですか?

プルリクエスト

  • レビューが必要なPRはどれですか?

  • 最近マージされたPRを表示

リポジトリ

  • リポジトリの健全性メトリクスを表示

  • リポジトリの活動パターンを表示

  • コード品質の傾向を分析

各質問は1つの領域(Issue、PR、またはリポジトリ統計)に焦点を当ててください。広範なプロンプトは時間がかかり、ノイズの多い回答を生成します。

プロジェクト構成

github-mcp-agent/
├── public/              # Cloudflare static chat UI
├── src/                 # Worker: multi-provider LLM agent + GitHub REST tools
├── wrangler.toml        # Workers + assets project
├── package.json         # npm run dev / npm run deploy
├── github_agent.py      # Optional local Streamlit + MCP Docker app
├── requirements.txt
├── .env.example
├── .dev.vars.example
├── LICENSE              # Apache License 2.0 (from the original project)
├── NOTICE
└── README.md

トラブルシューティング

症状

確認事項

LLM API key not provided

サイドバーキー、.dev.vars、または npx wrangler secret put LLM_API_KEY

GitHub token not provided

サイドバートークン、.dev.vars、または npx wrangler secret put GITHUB_TOKEN

Workerデプロイ時にログインを求められる

npx wrangler login を実行し、ブラウザのOAuthフローを完了する

Dockerエラー / docker が見つからない

Streamlitパスでのみ必要。Dockerをインストールし、デーモンを起動する

タイムアウト / 回答が切り詰められる

クエリを絞り込む。ホスト型ツールの結果は、Worker/LLMの制限を維持するためにクリップされる

McpError / mcp に関する ImportError

Streamlitパス:このリポジトリの requirements.txt からインストールする(mcp>=1.9,<2.0)

GitHubからの401 / パーミッションエラー

トークンの有効期限切れ、または repo / public_repo スコープの欠落

帰属

Shubhamsaboo/awesome-llm-apps の GitHub MCP Agent に基づいています。具体的には:

mcp_ai_agents/github_mcp_agent

アップストリームチュートリアル:Build an MCP GitHub agent in less than 50 lines of code

このリポジトリは、ドキュメント、Cloudflare Workersホスト、および小さなパッケージングの変更を加えた独立したスタンドアロンチェックアウトです。これは公式のGitHubまたはCloudflare製品ではありません。

ライセンス

元のawesome-llm-appsプロジェクトはApache License 2.0の下でライセンスされています。この派生物はそのライセンスを保持します。ソースの帰属についてはNOTICEを参照してください。

Related MCP Connectors

Related MCP Servers