github-project-management
GitHub Project Management MCP Server
AIアシスタントがModel Context Protocolを介してGitHub Project V2ボードをプログラム的に管理できるようにするカスタムMCP(Model Context Protocol)サーバーです。Python 3.12とFastMCPで構築され、stdioトランスポートで通信し、スタンドアロンのDockerコンテナ内で実行されます。
場所
project/
├── mcp/ ← This directory (root-level, independent of the app)
│ ├── Dockerfile
│ ├── requirements.txt
│ ├── server.py # FastMCP entry point
│ ├── config.py
│ ├── auth.py
│ ├── capabilities.py # Tool → permission mapping
│ ├── profiles.py # Multi-target profile system
│ ├── tools/ # MCP tool definitions
│ ├── services/ # Business logic
│ ├── clients/ # GraphQL + gh CLI clients
│ ├── models/ # Pydantic models
│ ├── graphql/ # Query/mutation strings
│ ├── tests/ # Unit + contract tests
│ ├── scripts/ # Validation, preflight, secret scanning
│ │ ├── validate.sh # ← Run before every push
│ │ ├── preflight.sh # Environment prerequisites
│ │ ├── scan_secrets.sh # Token pattern detection
│ │ └── smoke_build.sh # Minimal build verification
│ ├── profiles/ # Target config (.env files, no secrets)
│ ├── docs/ # Detailed documentation
│ ├── LICENSE # MIT
│ ├── CONTRIBUTING.md
│ └── SECURITY.md注記: このMCPサーバーは、独自のDockerfile、依存関係、ライフサイクルを持つスタンドアロンコンポーネントです。
Related MCP server: GitHub Projects MCP Server
仕組み
MCP Client → docker run --rm -i github-project-mcp:latest → stdin/stdout JSON-RPC → GitHub APIMCPクライアントがツール(例:
create_project_item)を呼び出しますdocker run --rm -i github-project-mcp:latest python server.pyが実行されますサーバーは認証を検証し、stdinでコマンドを待ち受けます
クライアントはstdin経由でJSON-RPCを送信し、stdoutで応答を受け取ります
終了時にコンテナは自動的に破棄されます(
--rm)
Docker — ビルドと管理
イメージのビルド
# Desde la raíz del proyecto
docker build -t github-project-mcp:latest ./mcpDocker Compose(ローカル開発)
MCPをローカルでセットアップして実行する最も簡単な方法:
# 1. Crear tu configuración local (una sola vez)
cp mcp/.env.example mcp/.env
# Editar mcp/.env con tu GITHUB_TOKEN y target (org/repo/project)
# 2. Construir y verificar
cd mcp/
make build
make verifyMakefileターゲット
すべてのターゲットはDocker内で実行されます — ホストの依存関係は不要です。
cd mcp/
make help # Mostrar todos los targets disponibles
make build # Construir imagen Docker
make verify # Validar auth + scopes + config
make test # Ejecutar unit tests
make validate # CI completo (build + syntax + tests + tools + secrets)
make tools # Contar herramientas registradas (>= 100)
make syntax # Verificar sintaxis Python
make secrets # Escanear credenciales en código
make shell # Shell interactivo dentro del contenedor
make clean # Eliminar imágenes注記: ホストで
makeが利用できない場合、ターゲットはDockerで直接呼び出すことができます。例:docker run --rm --env-file .env github-project-mcp:latest python3 scripts/verify_setup.py
各コントリビューターはリポジトリをクローンし、自分の .env を作成するだけで、Docker以外は何もインストールせずにMCPが動作します。
イメージが存在することを確認
docker images | grep github-project-mcp手動テスト(スモークテスト)
docker run --rm -i \
-e GITHUB_TOKEN="<your_token>" \
github-project-mcp:latest \
python server.pyサーバーはstderrに github-project-management MCP server ready. Authentication validated successfully. を出力します。
その後、stdinからのJSON-RPCを待ち受けます。終了するにはCtrl+Cを押します。
変更後の再ビルド
docker build -t github-project-mcp:latest ./mcp --no-cache管理スクリプト
./scripts/dev/start.sh スクリプトは、イメージを管理するための mcp 引数をサポートしています:
./scripts/dev/start.sh mcp build # Construir/reconstruir la imagen
./scripts/dev/start.sh mcp test # Ejecutar smoke test
./scripts/dev/start.sh mcp status # Verificar si la imagen existe注記: MCPは永続的なサービスではありません。
up/down/restartは不要です。クライアントがツールを使用するたびにオンデマンドで起動されます。
IDE統合
MCPは、stdio上でMCPプロトコルをサポートする任意のクライアントと互換性があります。 設定はIDEによって異なります — 一般的なパターンは次のとおりです:
{
"mcpServers": {
"github-project-management": {
"command": "docker",
"args": [
"run", "--rm", "-i",
"-e", "GITHUB_TOKEN",
"--env-file", "mcp/.env",
"github-project-mcp:latest",
"python", "server.py"
]
}
}
}IDE固有の設定については、docs/SETUP.md を参照してください。
登録済みツール(100)
コア操作
ツール | 説明 |
| プロジェクト/フィールドIDを検出 |
| フィルター付きでアイテムを一覧表示 |
| Issueを作成してプロジェクトに追加 |
| ステータス、優先度、期限を更新 |
| ストーリーポイント見積もりを設定 |
| ボードからアイテムをアーカイブ |
Issue管理
ツール | 説明 |
| Issueをクローズ |
| クローズしたIssueを再オープン |
| Issueにコメントを追加 |
| タイトル、本文、ラベル、マイルストーン、担当者を編集 |
| サブIssueとしてリンク |
| サブIssueのリンクを解除 |
| Issueの完全な詳細 |
| クエリで検索 |
ボード操作
ツール | 説明 |
| 任意のステータス列に移動 |
| Doneとしてマーク |
| Trashに移動 |
| 複数アイテムを一括更新 |
| 複数のIssueを一括クローズ |
| 複数のIssueを一括割り当て |
計画とワークフロー
ツール | 説明 |
| スプリント計画を生成 |
| リリースノートを自動生成 |
| 完了ワークフロー全体を実行 |
| スタンドアップレポートを生成 |
| スプリントレビュー概要 |
| 提案を自動トリアージ |
| 期限超過アイテムにフラグ |
| 親+子を作成 |
| スプリントをクローズしてアイテムを移動 |
メタデータ
ツール | 説明 |
| GitHubマイルストーンを作成 |
| マイルストーンをクローズ |
| マイルストーンを一覧表示 |
| ラベルを作成 |
| ラベルを一覧表示 |
| ボード統計 |
| 現在のスプリント指標 |
アーキテクチャ
Tool Layer (FastMCP tool definitions)
↓
Service Layer (business logic, orchestration)
↓
Client Layer (GraphQL + gh CLI + caching)
↓
GitHub APIs (GraphQL v4 + REST v3)委任戦略
メソッド | 使用タイミング |
gh CLI | Issue CRUD、コメント、プロジェクトアイテム追加、クローズ |
カスタムGraphQL | フィールド更新、アーカイブ、検出、サブIssue |
環境変数
変数 | 必須 | 説明 |
| はい | GitHub PAT(fine-grainedまたはclassic) |
| はい | GitHubオーナー(組織またはユーザーログイン) |
| はい | リポジトリ名 |
| はい | Project V2ボード番号(1〜100000) |
トラブルシューティング
MCPが接続しない
# Verificar que la imagen existe
docker images | grep github-project-mcp
# Si no existe, construir
docker build -t github-project-mcp:latest ./mcp
# Verificar token
echo $GITHUB_TOKEN | head -c 20MCPの再接続
MCPがIDEから切断された場合は、対応するMCPクライアントの再接続オプションを使用してください。
認証エラー
コンテナ環境で
GITHUB_TOKENが利用可能であることを確認github_pat_*(fine-grained)トークンには権限が必要: Issues(RW)、Projects(RW)、Metadata(R)クラシックトークンにはスコープが必要:
repo、project、read:org
関連ドキュメント
ドキュメント | 目的 |
トークン設定と権限 | |
ツールの入出力例 | |
パラメータリファレンス | |
一般的なエラー |
ソースの場所と同期
このディレクトリ(mcp/)はMCPパッケージの正規のソースです。
リポジトリには同期されたコピーが次の場所にあります:
app/backend/app/mcp/github_project/— Dockerビルド用にバックエンドに埋め込まれています
同期ワークフロー
すべての変更はここ
mcp/で行います。変更したファイルを埋め込みパスにコピーします:
cp mcp/<file> app/backend/app/mcp/github_project/<file>自動チェックで検証します:
./mcp/scripts/check_sync.sh
同期スクリプトは、共有されているすべての .py ファイルを比較します(バックエンドのコピーで意図的に異なる __init__.py、および Dockerfile や requirements.txt などのインフラ専用ファイルは除外)。CIはプッシュのたびにこのチェックを実行します — 差分があるとビルドが失敗します。
バックエンドのコピーで意図的に異なるファイル
ファイル | 理由 |
| バックエンド固有のインポート+同期ソースのドキュメント |
| ここを参照; コピーポリシーを文書化 |
バックエンドのテストスイートは埋め込みコピーを実行します。構文検証は両方のツリーをコンパイルする必要があります。
強化されたランタイム動作
すべての設定は GH_PROJECT_ プレフィックスを使用し、起動時に検証されます:
設定 | デフォルト | 範囲/動作 |
|
| 1〜120秒 |
|
| 0〜5; 読み取りのみ、変更操作は再試行しない |
|
| 0〜60秒、指数バックオフ |
|
| 1〜720時間 |
|
| 設定可能なローカルパス |
|
| 1〜100 |
|
| 1〜1,000 |
|
| 10,000〜10,000,000 |
メタデータキャッシュはアトミックに書き込まれ、オーナーのみの権限(0600)を使用し、未来のタイムスタンプを拒否し、組織またはプロジェクト番号が異なる場合は再利用されません。CLIおよびGraphQLの診断はトークンに似た値をマスクし、MCPクライアントに返す前にサイズ制限されます。
Dockerのみでの検証
ホストのPythonツールなしで検証を実行:
# Compile both source copies through a Python container
tar -C . -cf - mcp app/backend/app/mcp \
| docker run --rm -i python:3.12-slim sh -c \
'mkdir -p /tmp/factib && tar -xf - -C /tmp/factib && \
python -m compileall -q /tmp/factib/mcp /tmp/factib/app/backend/app/mcp'
# Run the backend MCP tests using the existing backend image
tar -C . -cf - app/backend/app app/backend/tests/mcp \
| docker run --rm -i -e PYTHONPATH=/tmp/factib/app/backend backend:latest sh -c \
'mkdir -p /tmp/factib && tar -xf - -C /tmp/factib && cd /tmp/factib/app/backend && \
pytest -q --confcutdir=/tmp/factib/app/backend/tests/mcp tests/mcp'ローカル検証(プッシュ前)
PRを作成する前、または変更をプッシュする前に必ず実行してください。 これはCIパイプラインをローカルでミラーリングし、GitHub Actionsに到達する前に問題を検出します。
クイックスタート
# Full validation (builds image + runs all checks):
./mcp/scripts/validate.sh
# Quick mode (reuses cached image, skips rebuild):
./mcp/scripts/validate.sh --quick
# Auto-fix known issues (e.g., BOM characters):
./mcp/scripts/validate.sh --fixチェック内容
ステップ | 内容 | CIステップと同じ |
1. BOM | Pythonファイル内のUTF-8 BOMバイトを検出 | N/A(構文エラーを防止) |
2. ビルド |
| "Build MCP image" |
3. 構文 | イメージ内のすべての.pyファイルで | "Syntax check" |
4. テスト |
| "Run unit tests" |
5. ツール | 登録済みツール数をカウント(100以上である必要あり) | "Verify tool count" |
6. シークレット | 追跡対象ファイル内のトークンパターンをスキャン | N/A(公開前) |
利用可能なスクリプト
スクリプト | 目的 | 使用タイミング |
| 完全なCIミラー | すべてのプッシュ/PRの前 |
| 前提条件チェック(Docker、トークン、設定) | 初回セットアップまたは環境変更時 |
| シークレットパターン検出 | リポジトリ公開前 |
| 最小ビルド+ツール数 | クイック健全性チェック |
| マルチターゲット契約スイート | 構造変更後 |
一般的な問題と修正
問題 | 症状 | 修正 |
BOM文字 |
|
|
イメージが未ビルド | Dockerコマンドで「Image not found」 |
|
トークン未設定 | 事前チェックで「No GitHub token found」 |
|
ツール数が100未満 | 新しいツールがserver.pyに登録されていない | server.py内に |
実装済みおよび計画中の作業を含む完全な200項目のレジスタは、docs/HARDENING_200.mdにあります。
拡張機能スイート: 追加ツール60個
このサーバーは合計100以上のツールを公開しています。元の運用ツール40個に加え、tools/capability_suite.pyからの60個の特化機能です。
グループ | 目的 | 例 |
IssueとMarkdown品質 | Issueの検証、正規化、要約、テンプレート化、バンドル、レビュー |
|
コメントシステム | 進捗、計画、ブロッカー、解決コメントの作成、一覧表示、検索、編集 |
|
プロジェクトレポート | 健全性、ステータス、優先度、担当者、期限、フィールドのレポート |
|
プロジェクト計画 | Markdownのエクスポート/インポート、メタデータ同期計画、フィルタ一括計画 |
|
戦略的自動化 | スプリント計画、バックログ優先順位付け、リスク/依存関係レポート、ステークホルダー更新 |
|
ロードマップと意思決定 | チェンジログ、リリースチェックリスト、ロードマップ、レトロスペクティブ、自動化の意思決定 |
|
広範囲にわたる変更を引き起こす可能性のあるツールは、デフォルトでdry_runプランを返します。直接コメント操作を行うツールは、呼び出しごとに1回の可視コメント操作を実行します。機能カタログはインポート時に60個の一意な追加を検証し、Docker検証では両方のソースコピーで100個の登録済みFastMCPツールを確認します。
配布
Dockerイメージ
MCPサーバーはスタンドアロンのDockerイメージとして配布されます。ローカルでビルドするには:
docker build -t github-project-mcp:latest ./mcpCI/CDパイプライン
mcp-ci.yamlワークフローは、以下の場合に自動的に実行されます:
mcp/配下のファイルが変更されたmainへのプッシュmcp/パスに影響するプルリクエスト
パイプラインのステージ:
ビルド — Dockerイメージのビルド検証
構文チェック — すべてのPythonファイルのAST解析
ユニットテスト — pytestスイートの実行
ツール数検証 — 登録済みツールが100以上であることを確認
バージョニング
このMCPサーバーはセマンティックバージョニングに従います。リリース履歴はCHANGELOG.mdを参照してください。
This server cannot be deployed
Maintenance
Related MCP Connectors
Remote MCP for Kanban AI boards—manage projects, tasks, and comments from AI tools.
Connect AI assistants to GitHub - manage repos, issues, PRs, and workflows through natural language.
AI-native git hosting — repos, PRs, issues, CI gates, and AI code review over MCP (60 tools).
Project management shared by people and AI agents, with persistent project state through MCP.
Related MCP Servers
- AlicenseAqualityCmaintenanceEnables natural language management of GitHub Projects V2, including issue creation, status changes, sprint reports, and project setup via MCP tools and shell scripts.311MIT
- AlicenseAqualityDmaintenanceEnables AI assistants to manage GitHub Projects V2, including items, fields, and views through a standardized interface.172 npm1MIT
- FlicenseNot gradedqualityBmaintenanceEnables AI assistants to interact with GitHub issues, pull requests, and Actions workflows through MCP tools.-
- AlicenseNot gradedqualityAmaintenanceEnables AI agents and project managers to turn GitHub Projects v2 into an autonomous project-management layer, handling task checkout, atomic claims, heartbeats, reviews, token budgets, and AI-powered PRD, sprint, triage, and roadmap workflows. It also provides GitHub Actions, Releases, Branches, MCP Resources, and MCP Prompts support with GitHub-native storage.35 npmMIT