はじめに
本記事は、もともと Claude Desktop で Backlog MCP と連携して Backlog 操作を行っていた筆者が、CCPM のように Backlog を操作したいと考え、Claude Code でコマンドを作成した話です。
何を作ったのか
Claude Code の /bl コマンドから Backlog のプロジェクト管理を行うためのコマンド群を作成しました。
CCPM では GitHub Issues を「記憶ストレージ」として扱う という発想が採用されています。
この考え方を Backlog にも応用できるのではないかと考えたことがきっかけです。
Backlog の課題を 「記憶ストレージ」 として扱い、
プロジェクトの切り替え、課題作成、開始、更新、クローズ、
次にやるべきタスクの推薦、簡易ダッシュボード、バルク作成、マイルストーン操作などを
テキストだけで素早く実行できるようにすることを目的としています。
主な特徴は以下のとおりです。
- プロジェクトコンテキスト管理(セッション間で永続化)
- 課題ライフサイクル操作(create / start / update / comment / close)
- 優先度アルゴリズムによる「次の一手」(
/bl:next) - 進捗ステータス(
/bl:status)、スタンドアップ、ブロッカー一覧 など
リポジトリを公開していますので、ぜひご覧ください。
👉 https://github.com/bellsanct/cc-backlog
動くまでに必要なもの
- Backlog アカウント(API キー発行可能な権限)
- BacklogMCP サーバー(Claude Code 用に設定)
- Claude Code(CLI)
※ 補足: Claude Desktop の MCP 設定とは別です。Claude Code 側で BacklogMCP を有効化してください。
インストール(最短手順)
git clone https://github.com/bellsanct/cc-backlog .cc-backlog
cp -r .cc-backlog/.claude .
プロジェクト直下に .claude/ ディレクトリが作成されます。
コマンドやテンプレート、コンテキストファイルはこの配下に保存されます。
はじめてのコマンド(お試し)
# プロジェクト一覧を表示
/bl:project-list
# → APIキーを発行したアカウントが参照できるプロジェクト一覧が表示されます
# 作業プロジェクトを設定
/bl:project-set MYPRJ
# → 設定しておくと、以後の課題作成でプロジェクト指定を省略できます
# 課題を作成
/bl:issue-create --title "機能Xを実装" --type Feature --priority High
# 次にやるべきタスクを表示
/bl:next --count 3
# 作業を開始
/bl:issue-start MYPRJ-123 --assignee-me
# ステータスダッシュボードを表示
/bl:status
# 完了したらクローズ
/bl:issue-close MYPRJ-123 --resolution Fixed
# 日本語でレスポンスが欲しいとき
/bl:status 日本語でお願い
どんなときに便利か考える
- エディタや CLI を中心に作業しており、ブラウザに切り替えたくないとき
- 「次に何をやるか」を迷わず決めたいとき(優先度・期日・経過日数などでスコアリング)
- チーム内ルール(自動コメント、アサイン、遷移制約など)をツール側に組み込みたいとき
アーキテクチャ概要
Claude Code CLI
│
▼
cc-backlog(.claude/commands/bl/*)
│ │
│ └─ BacklogMCP(nulab/backlog-mcp-server)
│ │
└─ コンテキスト層(.claude/context/*.json)
│
└─ Backlog API
Backlog との通信は BacklogMCP に任せ、クライアント側では「運用ロジック」「状態の永続化」「入出力整形」に集中しています。
結論
- コマンドべースでBacklog操作が可能になった
- Backlogの内容を記憶ストレージとして扱えるようになった
- まだまだ改善の余地あり
これからの展望
- まだ機能は発展途上だが、実際に使い込んでみて機能をもっと増やしてみたい。
- Claude Desktop操作では、Slack MCPとも組み合わせて使っていたので外部ツールとの連携強化も対応したい。
- コマンド.mdの内容を精査してトークンを削減する(ClaudeCode任せにしていた)