mcpField
B
Backlog Mcp

Backlog Mcp

ローカル
github.com/corbym生産性38 週間前に更新

Backlog Mcp について

Backlog Mcpは、リポジトリ内のMarkdownファイルで管理するストーリー形式のプロジェクトバックログ向けローカルMCPサーバーです。エージェント用の構造化ツールでストーリーを読み書きし、バージョン管理と共同作業にはGitを使います。

主な機能

  1. 01ストーリーの一覧表示と取得
  2. 02エピックとストーリーの作成
  3. 03ステータスと受け入れ条件の更新
  4. 04タイムスタンプ付きメモの追加
  5. 05ストーリーとエピックの一括更新
  6. 06完了条件の検証

活用シーン

  1. 01リポジトリ内のプロジェクトバックログ管理
  2. 02エージェントによるストーリー進捗の追跡
  3. 03PRに関連するストーリー更新の記録
  4. 04Gitを使ったバックログ編集の共同作業

MCP 対応

ローカルサーバーが、バックログのMarkdownファイルを読み書きするツールをMCPクライアントに公開します。各エージェントが個別にプロセスを実行し、共同作業とファイルのバージョン管理はGitが担います。

設定

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

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

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

リポジトリ

ツール

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

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

詳細

backlog-mcp MCP server

backlog-mcp

ストーリー形式のプロジェクトバックログに対して、AI エージェントが構造化された読み書きを行える MCP サーバーです。エージェントは、ストーリーの一覧表示、内容の読み取り、ステータスの更新、メモの追記を行えます。これらはすべて、プロジェクトリポジトリ内にあるプレーンな Markdown ファイルによって管理されます。

コラボレーションの仕組み

共有サーバーはありません。バックログファイルはリポジトリ内の requirements/ に置かれ、コードと一緒にコミットされ、バージョン管理されます。エージェント同士、またはエージェントと人間のコラボレーションは、コードベースの他の部分と同じように git を通じて行います。2 つのエージェントが別々のストーリーを同時に更新した場合、git がマージします。同じ行を変更した場合は、通常のマージコンフリクトと同じように解決します。

MCP サーバーは、各エージェントが個別に実行するローカルプロセスです。ファイルの読み書きを行い、それ以外は git が処理します。


インストール

Homebrew(tap)
brew tap corbym/backlog-mcp
brew install backlog-mcp

明示的な tap の手順を省略して、直接インストールすることもできます。

brew install corbym/backlog-mcp/backlog-mcp
バイナリリリース

Releases ページからお使いのプラットフォーム向けの最新のバイナリをダウンロードし、$PATH 上の任意の場所に配置してください。

Go install

Go がインストールされている場合:

go install github.com/corbym/backlog-mcp@latest

ソースからビルド

go mod tidy
go build -o backlog-mcp .

セットアップ

プロジェクトのルートに requirements/ フォルダーを初期化します。

./backlog-mcp init /path/to/your/project/requirements

次のものが作成されます。

requirements/
  requirements-index.md   # master index — source of truth for epics and story status
  backlog.md              # priority-ordered list of not-done stories
  epic-001-example/
    story-001.md          # example story file

requirements/ フォルダーをリポジトリにコミットします。ファイルを編集して、独自のエピックやストーリーを追加してください。


実行

./backlog-mcp

サーバーは、起動元の作業ディレクトリを基準に requirements/ ディレクトリを探します。Claude Code は作業ディレクトリをプロジェクトのルートに設定するため、設定は不要です。

プランファイルを作成する
./backlog-mcp plan [name]

requirements/ ディレクトリに新しいプランのひな形を作成します。名前を指定しない場合、ファイル名は plan.md になります。名前を指定すると、plan-<name>.md になります。ファイルがすでに存在する場合は、数値のサフィックスが追加されます(plan-002.md など)。ファイルを開き、エージェントと一緒に内容を記入してからストーリーを作成してください。

MCP クライアントの設定

プロジェクトのルートにコミットするローカル設定ファイルを推奨します。これによりサーバーの適用範囲がプロジェクトに限定され、リポジトリをクローンしたエージェントは誰でも自動的に適切なセットアップを利用できます。プロジェクトごとの設定をせずに、すべてのプロジェクトで backlog-mcp を利用したい場合にのみ、グローバル設定を使用してください。

VS Code / GitHub Copilot — プロジェクトのルートに .vscode/mcp.json を追加します。

{
  "servers": {
    "backlog-mcp": {
      "command": "/path/to/backlog-mcp",
      "type": "stdio"
    }
  }
}

Claude Code — プロジェクトのルートに .claude/settings.json を追加します。

{
  "mcpServers": {
    "backlog-mcp": {
      "command": "/path/to/backlog-mcp"
    }
  }
}

グローバルな代替設定(すべてのプロジェクトに適用)を使う場合は、同じ設定を ~/.claude/settings.json(Claude Code)に配置するか、VS Code のユーザー settings.json で mcp.servers キーの下に追加します(GitHub Copilot)。常に、プロジェクトごとのローカルファイルを優先してください。


ツール

ツール説明
list_storiesストーリーを一覧表示します。epic_id、status、story_typeで絞り込むこともできます
get_storystory_typeを含む、ストーリーの完全なMarkdownコンテンツとメタデータを取得します
get_index_summaryステータス別のエピック/ストーリー数の概要を取得します
create_epic新しいエピックを作成します — 次のEPIC-NNN IDを割り当て、エピックファイルを作成し、インデックスに登録します
create_storyエピック配下に新しいストーリーを作成します — 次のSTORY-NNN IDを割り当て、インデックスとバックログに登録します
set_epic_status完了および後退を防ぐガード付きで、エピックのライフサイクルステータスを更新します(以下を参照)
set_story_statusインデックスとバックログのストーリーステータス(draft、in-progress、blocked、deferred)を更新します
set_acceptance_criteriaストーリーの受け入れ条件セクションを置き換えます(冪等)
check_acceptance_criterionインデックスまたはテキストを指定して、単一の受け入れ条件にチェック [x] を付けます
add_story_noteタイムスタンプ付きのメモをストーリーファイルに追加します
complete_story必須の完了サマリーと受け入れ条件の検証を伴って、ストーリーを完了済みにします
groom_epicエピックの## Storiesセクションをストーリーファイルおよびインデックスのデータと照合して整理します
bulk_update_acceptance_criteria1回の呼び出しで、1つのストーリーに対する複数の受け入れ条件チェックボックスの状態を更新します
bulk_update_stories1回の呼び出しで複数のストーリーを更新します(ステータス、メモ、受け入れ条件のパッチのいずれか、または複数)
bulk_update_epics1回の呼び出しで複数のエピックを更新します(ステータス、メモのいずれか、または両方)
set_epic_statusのガード

ステータスをdoneに設定するには、次の条件を満たす必要があります。

  1. summary — エピックファイルにタイムスタンプ付きのエントリーとして追加される完了メモです。
  2. すべてのストーリーが完了済み — 未完了のストーリーが残っている場合、呼び出しは失敗し、そのストーリーを一覧表示します。未完了のストーリーを意図的に除外することをユーザーが明示的に確認した後に限り、override_incomplete=trueを指定してください。

ステータスを後退させる場合(例:done → in-progress、in-progress → draft)、後退の確認が求められます。エージェントは、続行する前に新しいストーリーの作成を提案してください。この手順を省略することをユーザーが明示的に強く求める場合に限り、confirm_regression=trueを指定してください。blockedとdeferredは同じ段階のステータスであり、自由に設定できます。

complete_storyのガード

ストーリーを完了する前に、受け入れ条件を設定する必要があります(デフォルトのプレースホルダーは不可)。チェックされていない条件がある場合、未チェックの各項目に対する説明をincomplete_itemsに指定しない限り、完了できません。完了した条件には、まずset_acceptance_criteriaでチェック [x] を付けてください — 実際に完了している作業の確認にincomplete_itemsを使わないでください。


環境変数

変数必須デフォルト説明
BACKLOG_ROOTいいえrequirementsrequirementsディレクトリのパスを上書きします

ファイル形式

requirements-index.md — 見出しごとに1つのエピックセクション、テーブル行ごとに1つのストーリー:

## EPIC-001: Combat System — `draft`

| Story | Title | Status | Type |
|-------|-------|--------|------|
| [STORY-001](./epic-001-combat-system/story-001.md) | Basic combat | draft | feature |

backlog.md — 優先度順の番号付きリスト:

1. **STORY-001** — Basic combat
2. **STORY-002** — Enemy AI *(in-progress)*

ストーリーファイルは、BACKLOG_ROOT配下のepic-NNN-slug/story-NNN.mdにあります。

ストーリータイプ: feature、bug、chore、spike

ステータス値: draft、in-progress、done、blocked、deferred


自動PRバックログエージェント

プルリクエストがオープンまたは更新されたときに、ストーリーのステータスを自動更新し、メモを追加するGitHub Actionsワークフローが含まれています。APIキーは不要です — 標準のGITHUB_TOKENのみを使用します。

動作

各pull_requestイベント(opened、synchronize)で、ワークフローは次の処理を行います。

  1. go install github.com/corbym/backlog-mcp@latestを使ってbacklog-mcpバイナリをインストールします。
  2. PRのタイトルとブランチ名からSTORY-NNN IDを検索します。
  3. 一致した各ストーリーについて、(PRが新規オープンされ、ステータスがdraftの場合は)ステータスをin-progressに設定し、PR番号とタイトルを含むタイムスタンプ付きのメモを追加します。
  4. requirements/配下で変更されたファイルをPRブランチにコミットします。
リポジトリでの設定

次の3つのファイルをリポジトリにコピーします。

.github/
  actions/
    install/
      action.yml          # composite action — installs the binary via go install
  scripts/
    backlog_agent.py      # deterministic MCP client (Python 3, stdlib only)
  workflows/
    backlog-agent.yml     # the workflow

ファイルはcorbym/backlog-mcpリポジトリにあります。すでにrequirements/フォルダーがあれば、シークレットや追加の設定は必要ありません。

ブランチとPRの命名

エージェントはSTORY-NNN IDでストーリーを照合します。ブランチ名またはPRタイトルにIDを含めてください。

story-042-short-description          # branch
STORY-042: Short description         # PR title
STORY-042 STORY-043: Short desc      # multiple stories
chore: bump goreleaser to v2         # no story — agent skips cleanly

命名規則の詳細はCONTRIBUTING.mdを参照してください。

GitHub Copilotのエージェントモードでbacklog-mcpを使用する

VS CodeのGitHub Copilotのエージェントモードは、プロジェクトのルートにある.vscode/mcp.jsonからMCP サーバーを読み込みます。キーは"mcpServers"(Claude Codeの規則)ではなく、"servers"であることに注意してください。

{
  "servers": {
    "backlog-mcp": {
      "command": "/path/to/backlog-mcp",
      "type": "stdio"
    }
  }
}

MCP ツールはエージェントモードでのみ使用できます。Copilot Chatのモードドロップダウンから切り替えてください。設定すると、Copilotエージェントはチャットセッション中にlist_stories、get_story、add_story_noteなど、その他すべてのバックログツールを呼び出せます。GitHub Actionsのワークフローが使用するツールと同じです。


注記

  • ファイルへの書き込みはアトミックです(一時ファイルを作成してから名前を変更します)。書き込み中にクラッシュしても、ファイルが破損することはありません。
  • ファイルシステムが信頼できる唯一の情報源です。MCP サーバーがデータを所有することはありません。

コメント

MCP は初めてですか?

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

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