Skip to main content
Glama
kmosoti

github-projects

by kmosoti

github-projects

Claude Code と Codex 向けプラグイン: Pydantic v2 モデル、PEP 544 プロトコル、および GitHub Projects v2 ボード(例: github.com/users/<owner>/projects/<n>)を管理するための MCP サーバー — ドラフト版 HTTP QUERY メソッドをファーストクラスでサポート。

アーキテクチャ

server.py      MCP server (mcp SDK v2, stdio) — 19 tools, structured output
   │  depends on
protocols.py   ProjectsBackend / GraphQLTransport (runtime-checkable Protocols)
   │  implemented by
service.py     GitHubProjectsService — GraphQL over the transport,
               project-id + field caching, string→typed field-value coercion
graphql.py     GraphQL documents (works for both user and org owners)
http.py        QueryClient — HTTP QUERY (draft-ietf-httpbis-safe-method-w-body)
               with per-origin capability memory and POST fallback
models.py      Frozen Pydantic v2 models, __typename-discriminated unions
  • MCP レイヤーは ProjectsBackend プロトコルにのみ依存するため、バックエンドは交換可能で、テストは構造的にフェイクで代用されます。

  • QueryClient は QUERY を楽観的に送信し、Accept-Query アドバタイズメントを記録し、トランスポートエラー時に 1 回再試行し(QUERY は安全かつ冪等)、405/501 ではオリジンごとに恒久的に POST へフォールバックします。つまり、現在の GitHub に対してはそのまま動作し、GitHub が QUERY サポートをリリースすると自動的にアップグレードされます。

Related MCP server: GitHub Project MCP Server

セットアップ

プライマリランタイムは CPython 3.14.7 free-threaded(3.14.7t)です。また、gh CLI が project スコープ付きで認証されている必要があります:

gh auth refresh -s project      # grants read + write for Projects v2

トークンは GITHUB_TOKEN / GH_TOKEN から解決され、それ以外の場合は gh auth token が使用されます。

uv sync
uv run pytest             # 32 tests
uv run gh-projects-mcp    # run the server on stdio

Claude Code と Codex から使用する

リポジトリのルートから:

# Claude Code (registered user-wide)
claude mcp add --scope user github-projects -- uv --directory "$PWD" run gh-projects-mcp

# Codex
codex mcp add github-projects -- uv --directory "$PWD" run gh-projects-mcp

プラグインマニフェストは .claude-plugin/plugin.json(MCP サーバーは ${CLAUDE_PLUGIN_ROOT} 経由で宣言)と .codex-plugin/plugin.json にあります。両ホスト向けの使用スキルは skills/github-projects/SKILL.md にあります。

ツール

ツール

目的

list_projects

ユーザー/組織のボード一覧(オプションで検索)

get_project

オーナー + 番号によるボード

list_fields

単一選択オプションとイテレーションを含むフィールド

list_items

コンテンツとフィールド値を持つ項目。保存済みビューのフィルタークエリによる評価も可能

create_project / update_project

ボードの作成、タイトル/README/可視性/クローズ状態の編集

add_item

URL による issue/PR の追加

add_draft_issue

ドラフト issue の追加

update_field_value

フィールドの設定。値は文字列で、フィールドタイプに応じて変換 — 単一選択とイテレーションは名前でマッチ(Status → "Done")

clear_field_value

フィールドのクリア

archive_item / delete_item

項目のアーカイブまたは削除

plan_project / apply_project

冪等な望ましい状態の調整: フィールドとオプションのエイリアス、意味的に検証されたリーフ/コンテナビュー、順序付けされたカラム、明示的なリタイア、項目メタデータ、エピック/サブ issue 階層、ネイティブ issue 依存関係、レガシー依存関係プローズのクリーンアップ

sprint_board

1 つのイテレーションのステータスカラムビュー(または全項目 + 未計画バケット)

epic_breakdown

ネイティブのサブ issue 階層からのエピックごとの完了ロールアップ

list_views

名前、レイアウト、フィルター、順序付けされた表示フィールドを持つ保存済みビュー

post_status_update / list_status_updates

プロジェクトの長期的なコンテキストトレイル

Maintenance

ActivityStale
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers