Skip to main content
Glama

Oboe MCP

コーディングエージェント向けの構造化されたOne-by-Oneワークフロー。

コーディングエージェント向けに、優先順位付けされたセッション状態を備えた、永続的なOne-by-OneレビューワークフローのためのMCPサーバーです。

優先順位付けされたセッションファイル内のアイテムを作成、ナビゲート、解決するための16個のツールを提供します。これには、ブロックされたアイテムの処理、ファーストクラスの承認更新、ネストされた子セッションなどが含まれており、/oboワークフローで生のJSON編集の代わりにMCP操作を使用できるようになります。

AGPL-3.0-or-laterでライセンスされており、商用ライセンスも利用可能です。 完全な条件についてはLICENSEを参照してください。

PyPIパッケージ

以下のいずれかの方法で、PyPIから直接Oboe MCPをインストールまたは実行します:

  • インストールせずに実行: uvx oboe-mcp

  • 現在の環境にインストール: pip install oboe-mcp

oboe-mcpをインストールすると、oboe-cliコマンドもインストールされます:

# After pip install oboe-mcp
oboe-cli --help

# From PyPI 
uvx --from oboe-mcp oboe-cli --help

# From a local checkout (no install needed)
uvx --from /path/to/oboe-mcp oboe-cli --help

CLIリファレンス (oboe-cli)

oboe-mcpをインストールすると、MCPツールが操作するのと同じセッションファイルに対して、人間が使いやすいコマンドラインコンパニオンであるoboe-cliもインストールされます。

oboe-cli [--session SESSION] [--base-dir DIR] COMMAND [ARGS...]

グローバルオプション:

オプション

説明

--session SESSION, -s

セッションファイル名(例: session_20260411_120000.json)または絶対パス

--base-dir DIR, -b

.github/obo_sessions/を含むプロジェクトルート(デフォルトはCWD検出)

Base-dir自動検出: --base-dirが省略された場合、oboe-cli.github/obo_sessions/フォルダを含む現在の作業ディレクトリを使用し、そうでない場合は作業ディレクトリをそのまま使用します。

コマンド

コマンド

説明

sessions

すべてのセッションを一覧表示(`--status active

paused

completed

incomplete`をサポート)

status

セッションの概要統計を表示

create

JSONアイテムファイルから新しいセッションを作成

merge

既存のセッションに新しいアイテムを追加

complete-session

セッション全体を完了としてマーク

list

優先順位スコアでソートされたアイテムを一覧表示(--statusフィルタをサポート)

next

次の実行可能なアイテムを表示

show ITEM_ID

1つのアイテムの詳細を表示

complete ITEM_ID RESOLUTION...

アイテムを完了としてマーク

skip ITEM_ID [REASON...]

アイテムをスキップとしてマーク

in-progress ITEM_ID

アイテムを進行中としてマーク

block ITEM_ID BLOCKER...

アイテムをブロックとしてマーク

`approve ITEM_ID approved

denied

unreviewed`

承認メタデータを設定

update ITEM_ID FIELD VALUE

アイテムの単一フィールドを更新

create-child --child-session FILE

子セッションを作成し、親を一時停止

complete-child [RESOLUTION...]

子セッションを完了し、親を再開

クイックスタート

# Create a session from a JSON items file
oboe-cli --base-dir /path/to/project create \
    --title "Code review findings" \
    --input-file findings.json

# List sessions
oboe-cli --base-dir /path/to/project sessions

# Work through items
oboe-cli --base-dir /path/to/project --session session_20260411_120000.json next
oboe-cli --base-dir /path/to/project --session session_20260411_120000.json \
    in-progress 1
oboe-cli --base-dir /path/to/project --session session_20260411_120000.json \
    complete 1 "Fixed the validation bug"

注: 以前のバージョンで提供されていたobo_helper.pyスクリプトは、現在oboe-cliに委譲する薄い非推奨のシムとなっています。

ツール

説明

obo_create

セッションファイルの作成 + index.jsonの更新をアトミックに実行

obo_list_sessions

index.jsonからセッションを一覧表示

obo_session_status

セッションの概要統計

obo_next

次のアイテム:進行中が最初、次に優先度の高い保留中、次に延期

obo_list_items

priority_scoreの降順でソートされた全アイテム

obo_get_item

1つのアイテムの詳細

obo_mark_blocked

アイテムをブロックとしてマークし、ブロッカー情報を保存

obo_mark_complete

解決テキストと共にアイテムを完了としてマーク

obo_mark_in_progress

アイテムを進行中としてマーク

obo_mark_skip

アイテムをスキップとしてマーク

obo_set_approval

承認メタデータとオプションのライフサイクル状態を設定

obo_complete_session

実行可能なアイテムが残っていない場合にセッションを完了としてマーク

obo_create_child_session

子セッションを作成し、親を一時停止して子に移行

obo_complete_child_session

子セッションを完了し、親を再開

obo_merge_items

既存のセッションに新しいアイテムを追加して再アクティブ化

obo_update_field

フィールドを更新し、priority_scoreを自動再計算

OBOセッションの理由

One-by-Oneセッションは、単なる保存されたチャットメモではありません。これらは、複数のアイテムの作業を永続的で順序付けられた対話セッションとして処理するためのワークフローモデルです。

通常のチャットやエージェントの組み込みのフォローアップ質問と比較して、OBOはそれらの軽量な対話モードでは通常提供されない機能を追加します:

  • 概要優先のワークフロー:エージェントがスコープ、アイテム数、主要カテゴリ、提案された実行順序から開始可能

  • チャットに現れた順序ではなく、緊急性、重要性、労力、依存関係の圧力に基づく明示的な優先順位の再設定

  • pendingin_progressdeferredblockedcompletedskippedを通じた永続的なライフサイクル状態

  • approval_statusapproval_modeapproved_atapproval_noteを通じた個別の承認メタデータ

  • 保存されたブロッカーメタデータ:ブロックされた作業がアクティブなキューから黙って消えるのではなく、可視化され説明可能になる

  • 親セッションを一時停止し、サブ問題を処理してから親セッションをクリーンに再開するネストされた子セッション

  • ファーストクラスのセッションライフサイクル管理:名前付きワークフローオブジェクトとしてセッションを一覧表示、作成、検査、マージ、一時停止、再開、終了

  • モデルの再起動、エディタの再読み込み、エージェントの引き継ぎ後の決定論的な復旧

  • 会話メモリに頼るのではなく、セッションファイル内の機械可読な監査証跡

これは、作業が多くの調査結果にまたがる場合、明示的なユーザー承認が必要な場合、中間的なサブ調査に依存する場合、または複数のエージェントのターンにわたって存続する必要がある場合に最も重要です。チャットは会話に適しています。構造化された質問ツールは、現在のターンでクリーンな回答を得るのに適しています。OBOは永続的なワークフローオーケストレーションのためのものです。

制御された順次処理、永続的なキュー状態、またはネストされたサブ作業が必要な場合はOBOを使用してください。タスクが小さく、完全なワークフローオブジェクトが価値よりもオーバーヘッドを追加してしまう場合は、通常のチャットを使用してください。

状態モデル

OBOは各アイテムを2つの独立した軸で追跡します。

ライフサイクル軸

  • pending: 作業はキューに入れられているが、まだ開始されていない

  • in_progress: 作業が現在進行中

  • deferred: 作業は後の実行のために承認されており、アクティブなレビューパスが終了するか、ユーザーが明示的に延期された作業を要求するまで、即時のレビューキューから外しておくべき

  • blocked: 外部の依存関係またはサブ問題が解決されるまで作業を続行できない

  • completed: 作業は完了し、クローズされている

  • skipped: 作業は意図的に実行されていない

承認軸

  • unreviewed: 明示的なユーザーの決定がまだ記録されていない

  • approved: ユーザーが作業を承認した

  • denied: ユーザーが作業を明示的に拒否した

承認メタデータフィールド:

  • approval_status: アイテムに対する承認決定

  • approval_mode: 承認タイミングの決定が記録された場合のimmediateまたはdelayed

  • approved_at: 承認が記録されたタイムスタンプ

  • approval_note: 承認決定に関するオプションの自由記述メモ

一般的な組み合わせ:

  • 即時承認: obo_set_approval(..., approval_status="approved", approval_mode="immediate")を呼び出す。アイテムは通常、作業が開始されるかin_progressに移動されるまでpendingのままです

  • 遅延承認: obo_set_approval(..., approval_status="approved", approval_mode="delayed")を呼び出す。これにより遅延承認が記録され、アイテムはdeferredに移動されます

  • 拒否: approval_status=deniedを設定する。アイテムがキューからクローズされる場合は、status=skippedと組み合わせる

対話モード

3つの一般的な対話パターンは、通常のチャット、構造化された質問ツール、および完全なOBOセッションです。これらは異なる問題を解決します。

通常のチャット

askQuestionsスタイルの対話

One-by-Oneセッション

状態が会話内に留まることができる、小さく高速なやり取りのタスクに最適。

エージェントが現在のターンで短い選択肢からユーザーに選択させる必要がある場合に最適。

複数の調査結果や決定が追跡、再開、並べ替え、ブロック、ネスト、またはアイテムごとに承認される必要がある作業に最適。

状態はほとんど会話的であり、長いセッションの後では復旧が困難になる可能性がある。

状態は依然としてほとんど会話的。質問ツールは入力品質を向上させるが、それ自体で永続的なワークフロー状態を提供しない。

状態は.github/obo_sessions/に永続化されるため、別のセッションや別のエージェントが、明示的なアイテムとセッションの状態を保持したままクリーンに再開できる。

良い例: "この関数をリネームして" または "このエラーを説明して"。

良い例: "再開、マージ、置換、停止のどれ?"

良い例: "これら12個の調査結果を1つずつレビューし、それぞれ承認を待つ"。

主な利点: 最も摩擦が少ない。

主な利点: より明確なユーザーの決定と、曖昧な返信の減少。

主な利点: 永続的なキュー管理、明示的なブロッカー、ネストされたサブセッション、および多くのアイテムにわたる決定論的な復旧。

進行例:

  • 通常のチャット:エージェントがいくつかの調査結果を文章でリストアップし、会話自体が何が処理されたかの唯一の記録となる。

  • askQuestions:エージェントはクリーンなメニュー選択を求めることができるが、他で保存しない限り永続的なアイテムキューを持たない。

  • OBOセッション:エージェントは概要から開始し、完全なアイテムリストを保存し、意図的に順序付けし、承認、スキップ、ブロッカーを記録し、チャット履歴からセッションを再構築することなく後で再開できる。

おもちゃの例:5つのレビューアイテム

エージェントが小さなおもちゃのToDoアプリをレビューし、この生の発見順序で5つのアイテムを見つけたとします:

  1. UIの曖昧な設定ラベルを改善する。

  2. バックグラウンド同期ジョブの競合状態を解決する。

  3. 重複するタスクIDの回帰テストを追加する。

  4. create-taskエンドポイントの入力バリデーションを追加する。

  5. ログインハンドラのパスワードログを修正する。

通常のチャット

エージェント:

おもちゃアプリで5つの問題を見つけました: 問題1:UIの曖昧な設定ラベルを改善する。 問題2:バックグラウンド同期ジョブの競合状態を解決する。 問題3:重複するタスクIDの回帰テストを追加する。 問題4:create-taskエンドポイントの入力バリデーションを追加する。 問題5:ログインハンドラのパスワードログを修正する。

次に何をしますか?

ユーザー:

4と2を先にやって。

解説

  • これは高速ですが、チャット自体がシーケンスの唯一の記録となり、アイテム4と3の間の依存関係は暗黙的です。

  • 他の問題の状態はキャプチャされておらず、ユーザーはエージェントに他の問題を表示または作業するように明示的に要求する必要があります。

  • セッションが中断された場合、別のエージェントはトランスクリプトから状態を再構築する必要があります。

askQuestionsスタイルのチャット

エージェント:

5つの問題を見つけました。どれを先にしますか?

オプション: • 4. create-taskエンドポイントの入力バリデーションを追加する • 2. バックグラウンド同期ジョブの競合状態を解決する • 5. ログインハンドラのパスワードログを修正する • 3. 重複するタスクIDの回帰テストを追加する • 1. UIの曖昧な設定ラベルを改善する

ユーザー:

4

エージェント:

次のアクションは?

オプション: • 2を続ける • 残りのリストを並べ替える • 停止

解説

  • これは通常のチャットよりもクリーンなユーザー選択を提供しますが、ツールはそれ自体で永続的で依存関係を認識するワークフローオブジェクトを作成しません。

  • 他の問題の状態は依然としてキャプチャされておらず、ユーザーはエージェントに他の問題を表示または作業するように明示的に要求する必要があります。

  • 同様に、セッションが中断された場合、別のエージェントはトランスクリプトから状態を再構築する必要があります。

One-by-Oneセッション

OBOエージェントのプロンプト指示に従い、エージェントはこの順序付けロジックを割り当てます:

  • アイテム4が最初です。フォローアップの回帰テストが書かれる前に、create-taskエンドポイントの動作を安定させる必要があるためです。

  • アイテム2が次です。競合状態は同期フロー全体の正確性に影響を与える可能性があり、ネストされた調査セッションが必要になる可能性があるためです。

  • アイテム5が続きます。重要なセキュリティ修正ですが、バリデーションや並行性の作業をブロックしません。

  • アイテム3はアイテム4の後ろに留まります。回帰テストは、先行するのではなく、最終的なバリデーション動作をロックインする必要があるためです。

  • アイテム1は依然として有用ですが、他の4つのアイテムと比較して影響が小さいため、最後になります。

エージェント:

5つの調査結果のためにOBOセッションを作成しました。

エグゼクティブサマリー: • 合計アイテム:5 • カテゴリ:1 API正確性、1 並行性、1 セキュリティ、1 テスト、1 UX • 優先順位:4, 2, 5, 3, 1 • 推定労力:11 • クリティカルアイテム:3 • 依存関係メモ:アイテム3

Install Server
A
security – no known vulnerabilities
F
license - not found
A
quality - A tier

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Warnes-Innovations/obo-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server