Skip to main content
Glama

rhizome-mcp は、自律型 AI コーディングエージェントのタスク追跡と調整のための、ローカルファーストの MCP サーバーです。Claude Code、Codex、GitHub Copilot、VS Code、その他のあらゆる MCP 互換クライアントといった、異なるプロダクトのエージェントに、プロジェクト作業の共有された永続的なビューを提供します。静的 Go バイナリ 1 つ、プロジェクトごとに SQLite データベース 1 つ、アカウントも Docker もネットワーク依存もありません。

なぜ

AI コーディングエージェントは並行実行され、コンテキストに制限があり、中断されることがあります。TODO.md や単一のチャットコンテキストは、そのような状況に耐えられません。rhizome-mcp は、まさにこれらの障害モードを前提に設計されています。

  • クラッシュしても安全なクレーム。 Issue は、更新可能なリースでアトミックにクレームされます。in_progress は保存されるステータスではなく、アクティブなリースから導出されるため、消滅したエージェントが Issue を永久にロックすることはありません。リースが失効すると、Issue は再びクレーム可能になります。部分一意インデックスにより、データベースレベルで Issue ごとにアクティブな試行が最大 1 つであることが保証されます。

  • 永続的なプロジェクトメモリ。 次のステップを含むチェックポイント、置き換え可能な決定記録、追記専用のイベント履歴、そして Issue・コメント・決定・ノートを横断する FTS5 全文検索を備えています。新しいセッションは状態を再導出するのではなく、最後のチェックポイントから再開します。

  • 契約によるトークン効率。 コンパクトなリスト投影(100 件の Issue ページが 64 KiB 未満に収まることを統合テストで保証)、SQL レイヤーで自由文テキストの本体を除外したグラフノード、スニペットのみの検索、イベント ID による差分同期、そして 1 回の呼び出しに収まる上限付きの作業コンテキストパッケージを提供します。

  • 計画と依存関係グラフ。 サイクル検査済みの blocks 関係、エピック、クレーム可能なエントリポイントの強調表示、さらにアトミックな一括計画(最大 50 件の Issue、100 件の関係、20 件の決定を 1 つの全か無かトランザクションで処理)をサポートします。

  • レビューワークフロー。 レビューリクエストは、Issue の正確なバージョンとイベント位置を固定します。古いターゲットは自動的に無効化されるため、変更されたを承認することはできません。

  • 全体に行き渡る並行性の規律。 変更操作に対する楽観的バージョニング、リプレイセーフな冪等性キー、安定したマシン可読なエラーコード。

  • サーバー不要にした人的可観測性。 rhizome-mcp board は、現在のリース、ブロッカー、レビューキューを表示し、自己完結型の HTML スナップショットを出力します。CLI はすべてをテーブル・JSON・Mermaid としてユーザーが読み取れます。

利用するケース: 複数のエージェントセッション(または複数のエージェントプロダクト)が長期間にわたって同じリポジトリで作業し、手渡し、並列作業、クラッシュやコンテキスト制限の後の復帰が必要な場合。

使う必要がないケース: 認証、権限、Web UI をもつホスト型のマルチユーザートラッカーが必要な場合。これは設計上、ローカル向けの単一開発者ツールです。

Related MCP server: samskriti-project

クイックスタート

インストールと実行

自分のワークフローに合った方法を選んでください。

npm によるゼロインストールのお試し

rhizome-mcp を、バイナリの個別インストールも Go ツールチェーンもなしで、すぐに試せます:

npx rhizome-mcp serve

すべての MCP クライアントで動作します。対応プラットフォーム銀は packages/npm/README.md を参照してください。簡単な評価に最適です。

VS Code

Marketplace または Open VSX から Rhizome MCPodrin.rhizome-mcp)をインストールします。拡張機能はプラットフォーム別のバイナリを同梱し、MCP サーバーを自動登録 して、Rhizome: Initialize Project をコマンドパレットに追加します。ターミナルも mcp.json の編集も不要です。詳細は docs/10-vscode-extension.md を参照してください。

代わりに、通常の mcp.json エントリを使う使いのディストリビューションが必要ですか? その場合は、下記のバイナリをインストールして、このワラクリックリンクを使用します: VS Code に追加

ネイティブバイナリインストーラー

お使いのプラットフォーム向けのリリースバイナリをダウンロードしてインストールします。チェックサムを検証し、デフォルトで ~/.local/bin にインストールします。

curl -fsSL https://raw.githubusercontent.com/Odrin/rhizome-mcp/main/scripts/install.sh | sh
irm https://raw.githubusercontent.com/Odrin/rhizome-mcp/main/scripts/install.ps1 | iex

公式 MCP レジストリ

Model Context Protocol registryio.github.Odrin/rhizome-mcp として提供されている公式 MCP レジストリ経由で rhizome-mcp を使用します。レジストリから利用するクライアント向けです。

初期化と接続

リポジトリ内でトラッキングを初期化します。

rhizome-mcp init

次に、MCP クライアントにサーバーを登録します。一般的なクライアント向けの自動セットアップ:

rhizome-mcp connect claude    # Claude Code
rhizome-mcp connect codex     # Codex
rhizome-mcp connect vscode    # VS Code (if using standalone binary instead of extension)
rhizome-mcp connect json      # Template for any other client

ドライランには --print を使用します。connect は、serve と同じように現在のディレクトリから上へ向かって、実際のプロジェクトルートを見つけ出し、それを --project-root で固定します。これにより、MCP クライアントが後でどのサブディレクトリからサーバーを起動しても、書き出された設定が機能します。この動作は4 つのターゲット(claudecodexvscodejson)すべてで同じです。任意の MCP クライアント向けのマニュアルでの同等手順は、connect 自身が書き出す同じサーバーキーによるものです:

{
  "mcpServers": {
    "rhizome-mcp": {
      "command": "/absolute/path/to/rhizome-mcp",
      "args": ["serve", "--project-root", "/absolute/path/to/your/repository"]
    }
  }
}

または、npx を経由すればバイナリを一切インストールせずに実行できます。

{
  "mcpServers": {
    "rhizome-mcp": {
      "command": "npx",
      "args": ["-y", "rhizome-mcp", "serve", "--project-root", "/absolute/path/to/your/repository"]
    }
  }
}

connect は、自分自身が npx rhizome-mcp のラッパー経由で実行されていることを検出し、そのラッパーの解決済みバイナリパス(npx キャッシュ内にあり、キャッシュの排出やバージョンアップで古くなる)の代わりに、このコンポーネント npx 形式を自動的に出力します。デフォルト(そうでない場合)は解決済み絶対パスで設定を書き出すため、マシン固有になり、チェックインして複数マシン間で共有することは想定していません。一方、共有目的のポータ皮带設定を意図する場合は、connect TARGET --command を渡すと、代わりに PATH に依存する素の rhizome-mcp コマンド名を出力します。ただし、その設定を使用するすべてのマシンの PATHrhizome-mcp があることが前提です。

Stdio がデフォルトのトランスポートです。プロトコル出力は stdout へ、ログは stderr へ出力されます。

これで完了です。接続されたエージェントは絶対リポジトリルートで open_project を開始し、その project_ref を保持して、以後のプロジェクトスコープの呼び出しにその参照を渡します。完全ワークフローはエージェントワークフローガイドを参照してください。返返されるメタデータは rhixome://guides/agent-workflowrhizome://guides/issue-lifecyclerhizome://guides/multi-agent-handoff の各リソースにリンクし、リポジトリのエージェントは .github/skills/ から rhizome-task-workflow スキルをロードできます。

エージェントワークフロースキルのインストール

オープンな Agent Skills フォーマットをサポートするエージェントには、npm で配布される skills CLI を使って rhizome-task-workflow をインストールします。

npx skills add Odrin/rhizome-mcp --skill rhizome-task-workflow

プロジェクトを対象にしたインストールではプロジェクトディレクトリでコマンドを実行し、--global を追加するとスキルを全プロジェクトで利用できます。このスキルは、互換性のあるエージェントに、Rhizome のタスク選定、クレーム、チェックポイント、ハンドオフ、完了方法を教えます。これは MCP サーバーの補完であり、rhizome-mcp バイナリのインストールや MCP 接続の設定は行いません。

プロジェクトの監視

rhizome-mcp board                        # status counts, active leases, blockers, review queue
rhizome-mcp board --serve                # interactive local board UI at a loopback URL
rhizome-mcp board --output board.html    # self-contained HTML snapshot with the planning graph
rhizome-mcp issue list --status ready
rhizome-mcp graph ISSUE-42 --format mermaid
rhizome-mcp doctor --full

ステータスボードには、リアルタイムのリース数、ブロックされている Issue とその理由、未処理のレビューリクエスト、およびプロジェクト全体の計画グラフが報告されます。計画グラフは、完了済み(done、cancelled)の作業をノード予算から除外するため、エントリポイント数は常時クレーム可能な作業を反映します。グラフが 100 ノードの予算で切り詰められた場合、ボードは切り詰めを明示的にマークし、テーブル形式と JSON 形式の両方に保持されたノード数を報告します。

オプション: ローカル HTTP トランスポート

rhizome-mcp serve --http-address 127.0.0.1:0

バインドしたエンドポイントは stderr にログ出力されます。Streamable HTTP エンドポイントは http://127.0.0.1:<port>/mcp です。このトランスポートはループバックのみ、認証なしで、厳格な Host/Origin 検証と、外側のリクエストボディの 1 MiB 上限を強制します。新しい MCP 2026-07-28 クライアントは server/discover を呼び出してから、プロトコルメタデータ付きのダイレクトリクエストを送信します。以前の 2025-11-25 クライアントは、永行者ではなくトのポートセッションに依存することなく initializenotification/initialized を引き続き利用できます。永続的な監査属性が欲しい場合は、create_agent_session で明示的な agent_session_handle を作成し、関連がある変更ツールに渡し、後の end_agent_session で終了してください。トランスポートのクローズによってセッションが終了することはありません。

仕組み

init はリポジトリ内にファイルを 1 つだけ書き込みます:

{
  "version": 1,
  "project_id": "01J..."
}

.agent-tracker.json として保存されます。SQLite データベースはリポジトリの外側で、プラットフォームのアプリケーションデータディレクトリにあり、project_id によって決定されます:

<application-data>/rhizome-mcp/projects/<project-id>/tasks.db

--data-root PATH を使用すると、どのコマンドでもデータルートを明示的に選択できます。それ以外でリポジトリに触れることは一切なく、データベースが Git にコミットされることもありません。

設計原則: Issue が in_progress のまま永久に動けなくなることは避けることです。実効ステータスは、保存されたステータスと、アクティブなリース済み試行の存在から計算されます。エージェントが消えてリースが期限切れになると、試行は expired になり、保存された状態が許せば、その Issue は再び利用可能になります。

コア制約(設計による): Go、SQLite(modernc.org/sqlite、純 GO 実装、CGO 不要)、stdio を主トランスポートとする、プロジェクトごとに1つのデータベース、ホスト型や認証付き Web UI は持たない(ループバック専用のローカルステータスボードは含む)、認証なし、最小限の CLI。将来の場合は docs/06 にまとめられています。

CLI リファレンス

Command

Purpose

init

.agent-tracker.json とプロジェクトデータベースを作成する

serve [--http-address ADDR] [--profile full|agent|read-only|migration] [--project-root PATH]

MCP サーバーを実行する(stdio。--http-address はローカル HTTP 用、--profile は公開するツールカタログを絞り込む用、--project-root は作業ディレクトリ以外のプロジェクトを配信する用)

connect TARGET [--print] [--command]

サーバーを MCP クライアント(claudecodexvscodejson)に登録する

board [--output PATH] [--serve [--http-address ADDR]]

ステータスボード: 件数、リース、ブロッカー、レビューキュー。オプションの HTML スナップショット。--serve は一時的な HTTP サーバーを実行する

issue list / issue show ISSUE-ID

フィルター付きで issue を調べる

search QUERY

issue、コメント、決定、メモにわたる全文検索

graph ISSUE-ID

依存関係グラフをテーブル、JSON、または Mermaid で表示する

project info / project export / project import

プロジェクトメタ情報、論理 JSON エクスポート、論理 JSON インポート(--input PATH--dry-run または --apply を併用)

backup --output PATH

WAL セーフなオンラインバックアップ

doctor [--full]

整合性、スキーマ、不変条件のチェック

maintenance release-attempt / rebuild-search-index

管理用のリカバリー

引数なしで rhizome-mcp を実行すると完全な使用法が表示され、rhizome-mcp version でビルド情報が表示されます。

MCP サーフェス

このサーバーはライフサイクル全体をカバーする42のツールを提供する: プロジェクト検出、ラベル・関連付け付きの問題 CRUD、計画と依存関係グラフ、バッチ計画の検証/適用、コメントと決定、オプションのアトミックなリソース予約付きの claim/renew/checkpoint/finish、作業コンテキストの組み立て、レビューリクエスト、テキスト検索、差分変更、論理的なプロジェクトエクスポート/インポート、ゲート証拠と診断を伴うワークフローポリシー管理。MCP ツールのアノテーションマトリックスと full/agent/read-only/migration の公開プロファイルマトリックスを含む完全な契約は docs/03-mcp-tools.md にあります。

デフォルトでは、serve は完全な full カタログを公開します。--profile agent|read-only|migration(または環境変数 RHIZOME_TOOL_PROFILE)を渡して絞り込めます。たとえば、変更を行うツールを一切見せたくないクライアントには serve --profile read-only を指定します。プロファイルは公開範囲とプロンプトサイズの制御であり、認可境界ではありません。クライアントが tools/list で何を見ることができても、すべてのツールは各サーバー側の検証を実施します。環境変数の完全なセットと優先順位(非推奨の接頭辞なしフォールバック名を含む)は docs/04-storage-runtime.md の §17.1 を参照してください。

ドキュメント

docs/ のモジュール化されたファイルが正式な仕様です。SPEC.md がインデックスです。エージェントは現在のタスクに関連するセクションのみを読み込んでください(AGENT_BRIEF.md にその方法が説明されています)。

  1. プロダクトのゴールとスコープ

  2. ドメインモデル

  3. MCP ツール

  4. ストレージとランタイム

  5. から実装要件

  6. 先送りされた機能と非目標

  7. 論理的な交換形式

  8. ローカル HTTP トランスポート契約

  9. レビューワークフロー契約

  10. VS Code 拡張機能

  11. プロジェクトルーティング契約

  12. リソース予約

  13. ステータスボード

人間向けのガイド(クイックスタート、ワークフロー、CLI)は site/ にあり、GitHub Pages で公開されています。リリース履歴は CHANGELOG にあります。

開発

ビルドとテスト(CGO なし、外部サービスなし):

CGO_ENABLED=0 go build -o rhizome-mcp .
go test ./...
go test -tags=integration ./...

integration タグは、実プロセスでの MCP スモークテストとワークフローテストを実行します。テストごとに一時的にサーバーバイナリをビルドし、新しいリポジトリと SQLite データルートを初期化し、stdio または HTTP で serve と通信します。単一プロセスのスモークカバレッジに加えて、このスイートは共有 SQLite データルート上でプロセス間シナリオも実行します。同時の claim と update-version の競合、非正常なプロセス kill と再起動、サーバーが書き込み中に取得されたバックアップなど、単一プロセスのテストでは構造的に検出できない欠陥を検出します。ほとんどは専用の integration パッケージにあります。エクスポートされていないパッケージ main 内部を必要とするテストは、リポジトリのルートに配置されています。

CI は main を対象とする各 push と pull request に対して、Ubuntu、macOS、Windows で go vet、ユニットテスト、統合テストを実行します。リリース (.github/workflows/release.yml) は、linux/amd64、linux/arm64、darwin/amd64、darwin/arm64、windows/amd64 向けの CGO なしのバイナリを SHA-256 チェックサム付きで公開します。リリースバイナリには、バージョン、コミット、ビルドタイムスタンプが埋め込まれます(ローカルビルドは Git の VCS 情報または dev を報告し、VERSION 環境変数が両方を上書きします)。

リリース検証には以下が含まれます:

  • 完全な go test ./... スイートをバイナリのアップロード前に実行

  • ビルドされたバイナリをスモークテスト(例: ./rhizome-mcp --version でバージョン文字列がタグと一致することを確認)

  • npm ランチャーテストスイートを npm パブリッシュ前に実行(Node.js ランチャーラッパーのリグレッションを検出)

  • VS Code 拡張機能バイナリは workflow_dispatch での再公開時に、main ではなくタグ付けされたソースからチェックアウトし、バージョンの追随性を確保

  • 集約リリースステータスジョブは、いずれかの公開ステップ(npm、MCP Registry、Marketplace、Open VSX)が失敗した場合はワークフローを失敗させ、部分的な失敗を可視化

このリポジトリは独自のバックログを rhizome-mcp で管理しています。作業は MCP サーバー経由で選択、claim、完了され、持続的な選択は決定として記録されます。Markdown は仕様のみを保持し、タスクの状態は保持しません。AGENTS.mdCONTRIBUTING.md を参照してください。

ライセンス

Apache-2.0。セキュリティポリシー: SECURITY.md

Available Tools

35 tools
add_commentA

Append collaboration context to an issue without rewriting history.

ParametersJSON Schema
NameRequiredDescriptionDefault
contentYes
issue_idYesCanonical issue identifier (ULID or ISSUE-N).
project_refNoProject reference returned by open_project. Pass it explicitly for stateless routing; omit only when using a configured default.
idempotency_keyNo
agent_session_handleNoOptional durable session handle for request attribution.

Output Schema

ParametersJSON Schema
NameRequiredDescription
commentYes

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnlyHint=false and destructiveHint=false. The description adds the context that this operation is append-only and preserves history, which is useful but not comprehensive—it does not explain idempotency behavior or potential side effects beyond the annotation hints.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single front-loaded sentence with no redundant filler. Every word contributes to the core purpose and behavior.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description captures the primary use case but is thin given the tool has 5 parameters and an output schema. It does not address project_ref routing, idempotency key usage, or content semantics, though output schema reduces the need to explain return values.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 60%, with content and idempotency_key lacking descriptions. The tool description does not explicitly describe any parameters, only vaguely referring to content as 'collaboration context.' It adds no meaningful clarification beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Append') and resource ('collaboration context to an issue') plus a distinguishing qualifier ('without rewriting history'). This clearly separates it from siblings like update_issue or create_issue.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'without rewriting history' implies this tool is for additive context rather than editing, but no explicit when-to-use or alternative tools are named. Usage guidance is only implied, not directly stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

apply_importA
DestructiveIdempotent

Apply a validated logical project import document into an empty destination.

ParametersJSON Schema
NameRequiredDescriptionDefault
documentNo
source_uriNo
project_refNoProject reference returned by open_project. Pass it explicitly for stateless routing; omit only when using a configured default.
agent_session_handleNoOptional durable session handle for request attribution.

Output Schema

ParametersJSON Schema
NameRequiredDescription
countsYes
conflictsYes
latest_event_idYes

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare destructive and idempotent behavior. The description adds useful context beyond that by specifying a precondition ('validated') and a restriction ('empty destination'), giving the agent a clearer model of the operation's impact. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single, tightly worded sentence effectively conveys the core purpose without redundancy. Every word contributes meaning, making it appropriately sized and front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the 4-parameter complexity and the presence of an output schema, the description provides the minimum essential context but omits key operational details such as the exact effect of the apply operation and how parameters relate. It is adequate but leaves notable gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 50%, with document and source_uri lacking descriptions. The tool description does not elaborate on any parameter meanings, failing to compensate for the coverage gap. It leaves half the parameters semantically unexplained.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb 'Apply' and clearly identifies the resource ('validated logical project import document') and target ('empty destination'). It distinguishes this tool from siblings like validate_import and export_project by focusing on applying a validated document.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'validated' and 'empty destination' provides clear context for when to use the tool, implying it should follow validation and target an empty project. However, it does not explicitly mention alternatives or exclusions, such as using validate_import first or not applying to non-empty destinations.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

apply_issue_planB
DestructiveIdempotent

Atomically create issues, relations, and decisions from a valid plan.

ParametersJSON Schema
NameRequiredDescriptionDefault
issuesYes
decisionsYes
relationsYes
project_refNoProject reference returned by open_project. Pass it explicitly for stateless routing; omit only when using a configured default.
idempotency_keyYes
agent_session_handleNoOptional durable session handle for request attribution.

Output Schema

ParametersJSON Schema
NameRequiredDescription
next_actionsYes
created_issuesYes
latest_event_idYes
created_decisionsYes
created_relationsYes

TDQS

B3.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare non-readOnly, destructive, and idempotent. The description adds atomicity (all-or-nothing) which is useful context beyond annotations. It does not contradict annotations, but it does not explain the nature of the destructive effects or behavior on invalid plans.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence with no wasted words. It delivers the core action and scope efficiently, though it could be slightly longer to include usage context.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (six parameters, three array types, and atomic semantics), a one-sentence description is inadequate. It lacks critical context about what constitutes a valid plan, how atomicity behaves on failure, what the output schema contains, and its relationship to validate_issue_plan.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With schema description coverage at only 33%, the description should compensate for the core array parameters (issues, decisions, relations) and idempotency_key. It only names the resources without elaborating on structure, ref usage, or how they interrelate, leaving the schema field names as the primary guide.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly identifies the action (create) and the resources (issues, relations, decisions) with the atomicity qualifier. It distinguishes itself from single-entity tools like create_issue, though it does not explicitly name them.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'from a valid plan' implies a prerequisite of validation, but there is no explicit guidance on when to use this tool versus alternatives like apply_import or create_issue. No exclusions or alternative references are provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

archive_issueA
DestructiveIdempotent

Archive one issue using its current version; history remains available.

ParametersJSON Schema
NameRequiredDescriptionDefault
viewNo
issue_idYesCanonical issue identifier (ULID or ISSUE-N).
project_refNoProject reference returned by open_project. Pass it explicitly for stateless routing; omit only when using a configured default.
idempotency_keyNo
expected_versionYes
agent_session_handleNoOptional durable session handle for request attribution.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate destructive and idempotent behavior. The description adds valuable context: 'history remains available' clarifies that the archive is non-deleting and preserves data, and 'using its current version' reveals the requirement for a matching expected_version. This goes beyond annotation coverage without contradicting it.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single short sentence (8 words) that is front-loaded with the core purpose and contains no filler. Every clause adds meaningful information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the output schema and annotations, the description covers the core purpose, a key behavioral trait (history retention), and the concurrency condition. It does not elaborate on usage context or all parameter semantics, but for a single-issue archive operation with structured schema, it is reasonably complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema descriptions cover issue_id and project_ref, but not the remaining four parameters. The phrase 'using its current version' directly explains the purpose of expected_version, adding meaning not in the schema. However, other parameters like view, idempotency_key, and agent_session_handle remain unexplained, so the description only partially compensates for the 50% schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Archive one issue') with a specific verb and resource, and adds 'using its current version' which indicates the optimistic concurrency scope. This distinguishes it from sibling tools like update_issue or get_issue.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no explicit guidance on when to use this tool versus alternatives, nor does it mention conditions such as issue state or permissions. The only implicit usage cue is the word 'Archive', which is not enough to differentiate from other issue-management actions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

cancel_review_requestA
DestructiveIdempotent

Cancel an open or claimed review request using its current version.

ParametersJSON Schema
NameRequiredDescriptionDefault
project_refNoProject reference returned by open_project. Pass it explicitly for stateless routing; omit only when using a configured default.
expected_versionYes
review_request_idYesCanonical review request identifier (ULID).
agent_session_handleNoOptional durable session handle for request attribution.

Output Schema

ParametersJSON Schema
NameRequiredDescription
idYes
statusYes
versionYes
issue_idYes
claimableYes
created_atYes
resolved_atNo
artifact_idsYes
supersedes_idNo
target_event_idYes
active_attempt_idNo
target_issue_versionYes

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds concurrency semantics with 'using its current version,' indicating optimistic locking via expected_version. This goes beyond the annotations, which already declare destructive and idempotent behavior, providing valuable context for invocation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence that leads with the action and includes all essential constraints. No extraneous words or repetition of schema details.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a destructive tool with an output schema, the description covers the core behavior, state constraints, and concurrency mechanism. It doesn't detail error handling on version mismatch, but the output schema likely covers that. Overall, adequate for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema documents 3 of 4 parameters, but expected_version lacks a description. The description's 'current version' clarifies expected_version's role, and 'open or claimed' gives context for review_request_id. This compensates for the missing schema detail.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('cancel') and resource ('review request'), and specifies scope ('open or claimed'). This clearly distinguishes it from sibling tools like replace_review_request and supersede_review_request.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context by limiting cancellation to open or claimed requests, but doesn't explicitly mention alternatives or exclusions. This is sufficient guidance for selecting the tool when cancellation is intended.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

claim_issueA
Idempotent

Atomically acquire exclusive ready/review work for a 60-3600s renewable lease; already claimed work fails; keyed retries replay.

ParametersJSON Schema
NameRequiredDescriptionDefault
viewNoResponse shape; compact is the default.
issue_idYesClaimable ready or review issue (ULID or ISSUE-N).
project_refNoProject reference returned by open_project. Pass it explicitly for stateless routing; omit only when using a configured default.
lease_secondsNoRequested lease duration in seconds.
idempotency_keyNoOptional key that replays the same claim request.
agent_session_handleNoOptional durable session handle for request attribution.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.2/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses key behavioral traits: atomicity, exclusivity, lease duration range (60-3600s), renewability, failure on already claimed work, and idempotent retry replay. These go well beyond the annotations (which only state readOnlyHint=false, idempotentHint=true) and provide essential operational context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence packed with relevant technical detail—atomic acquire, exclusive ready/review work, lease range, renewal, failure case, and idempotent retry. There is no redundant or filler content; every phrase earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers the core behavioral contract thoroughly, including atomicity, exclusivity, lease mechanics, and retry semantics. It does not explain when to use this tool relative to siblings, but with an output schema present and strong schema coverage, the missing piece is acceptable. The description is complete for the tool's complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% parameter coverage, so the baseline is 3. The description adds minimal extra semantic value: it mentions lease duration and keyed retries, but these largely echo the schema descriptions for lease_seconds and idempotency_key. No new parameter-level meaning is introduced.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool atomically acquires exclusive ready/review work with a renewable lease. It distinguishes this from sibling actions like get_issue (read-only) and update_issue (modification). The verb 'acquire' and specific object 'exclusive ready/review work' make the purpose unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for claiming an issue when starting work, but it does not explicitly state when to use this tool versus alternatives like renew_attempt or get_work_context. No exclusions or alternative recommendations are provided; usage context is inferred rather than explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_agent_sessionA

Create a durable attribution session and one unrecoverable handle; writes a new session on every call (non-idempotent).

ParametersJSON Schema
NameRequiredDescriptionDefault
modelNoOptional model identifier.
agent_labelNoOptional human-readable agent identity.
client_nameYesRequired client identity.
project_refNoProject reference returned by open_project. Pass it explicitly for stateless routing; omit only when using a configured default.
instance_keyNoOptional stable key for this client instance.
client_versionNoOptional client version.

Output Schema

ParametersJSON Schema
NameRequiredDescription
sessionYes
agent_session_handleYes

TDQS

A3.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses key behavioral traits: writes a new session on every call (non-idempotent) and produces an unrecoverable handle. This goes beyond the annotations, which only indicate idempotentHint false, by explaining the practical consequence (a new session each time) and the risk of losing the handle. It does not cover all side effects, but adds meaningful context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single, well-structured sentence that front-loads the core action and includes critical behavioral nuance (non-idempotent, unrecoverable handle). Every clause earns its place, with no redundancy or filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the presence of an output schema and full parameter coverage, the description provides sufficient context for the tool's core function and side effects. It could be slightly more complete by mentioning the relationship to sibling tools or typical usage flow, but it is not incomplete for the tool's complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

All six parameters have descriptions in the schema (100% coverage), so the schema already documents each field. The tool description itself does not add extra semantic value about parameters, such as relationships or usage tips. This matches the baseline for full schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states the tool creates a durable attribution session and an unrecoverable handle, which is a specific action on a clear resource. However, it does not explicitly differentiate from sibling tools like end_agent_session or open_project, though the name and action make the purpose largely unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no explicit guidance on when to use this tool versus alternatives, such as mentioning it as a prerequisite for other agent actions or that end_agent_session is the counterpart. The only implied usage is that creating a session is needed for attribution, but no direct context or exclusions are given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_issueA

Create one epic, task, or bug with optional hierarchy and labels.

ParametersJSON Schema
NameRequiredDescriptionDefault
typeYes
viewNo
titleYes
labelsNo
statusNo
priorityNo
descriptionNo
project_refNoProject reference returned by open_project. Pass it explicitly for stateless routing; omit only when using a configured default.
blocked_reasonNo
idempotency_keyNo
parent_issue_idNoCanonical issue identifier (ULID or ISSUE-N).
acceptance_criteriaNo
agent_session_handleNoOptional durable session handle for request attribution.
create_missing_labelsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate this is a mutation (readOnlyHint=false) and not idempotent (idempotentHint=false), which provides some baseline. The description adds that the tool can create different issue types and optionally set hierarchy and labels, giving more specific behavioral context than annotations alone. However, it does not disclose return values, permissions, or side effects beyond the obvious creation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence that uses every word to convey meaning. It is concise, non-redundant, and avoids filler content, making it efficient for an agent to parse.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite having an output schema that covers return values, the tool is complex with 14 parameters and low schema coverage. The minimal description fails to convey important parameter semantics, usage nuances, or typical scenarios, making it incomplete for an agent to invoke correctly without additional inference.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With only 21% schema description coverage, the burden falls on the description to explain parameters. It clarifies that 'epic, task, or bug' corresponds to the 'type' parameter, and 'hierarchy'/'labels' hint at parent_issue_id and label-related parameters. The remaining 11 parameters (e.g., view, status, priority, description, blocked_reason, idempotency_key) are not covered, leaving significant ambiguity for the agent.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb ('Create') and resource ('one epic, task, or bug'), and scopes it with optional hierarchy and labels. This distinguishes it from sibling tools like update_issue, get_issue, and apply_issue_plan, which all have different actions or scopes.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for creating a single issue of a specified type, but does not explicitly state when to use this tool versus alternatives like update_issue for modifications or apply_issue_plan for applying plans. No exclusions or prerequises are mentioned, leaving the agent to infer context from the name and siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_review_requestA

Create a review request for an exact issue version, event position, and artifact set. Deprecated: prefer replace_review_request.

ParametersJSON Schema
NameRequiredDescriptionDefault
issue_idYesCanonical issue identifier (ULID or ISSUE-N).
project_refNoProject reference returned by open_project. Pass it explicitly for stateless routing; omit only when using a configured default.
artifact_idsNo
supersedes_idNoCanonical review request identifier (ULID).
target_event_idYes
agent_session_handleNoOptional durable session handle for request attribution.
target_issue_versionYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
idYes
statusYes
versionYes
issue_idYes
claimableYes
created_atYes
resolved_atNo
artifact_idsYes
supersedes_idNo
target_event_idYes
active_attempt_idNo
target_issue_versionYes

TDQS

A4.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations do not provide read-only, idempotency, or destructive hints (all false). The description adds deprecation status and the 'exact' requirement, but does not disclose side effects, auth needs, or failure modes. It carries some burden, but not enough to exceed a baseline adequate score.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with action and deprecation notice. Every word earns its place with zero waste.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present and a clear deprecation message, the description is largely sufficient. It lacks detailed behavioral caveats, but for a deprecated create tool, the provided context plus sibling list allows an agent to invoke it correctly. Not a 5 because it omits any mention of prerequisites or side effects beyond the schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 57%, and several required parameters (target_issue_version, target_event_id, artifact_ids) lack schema descriptions. The description clarifies these as 'exact issue version, event position, and artifact set,' adding meaning beyond the schema. It does not explain all 7 parameters, but it adds significant value for the core ones.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Create') and resource ('review request') with precise scope ('exact issue version, event position, and artifact set'). It clearly distinguishes from siblings by noting deprecation and pointing to replace_review_request as the preferred alternative.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states 'Deprecated: prefer replace_review_request,' providing a direct alternative and when-not-to-use guidance. This is a clear exclusion that helps the agent choose the correct sibling tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

end_agent_sessionB
Idempotent

End one explicitly created durable agent session handle.

ParametersJSON Schema
NameRequiredDescriptionDefault
project_refNoProject reference returned by open_project. Pass it explicitly for stateless routing; omit only when using a configured default.
agent_session_handleYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
sessionYes

TDQS

B3.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate idempotent and non-readonly. The description adds that the handle must be 'explicitly created durable', which narrows the accepted input, but doesn't disclose side effects or error behavior beyond that.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single sentence with no redundant words, but the phrasing is slightly awkward. It is appropriately short for the tool's simplicity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given an output schema and annotations, the description is acceptable but lacks usage context and does not mention when to pass project_ref or omit it. The tool's simplicity helps, but guidelines are missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema documents project_ref but not agent_session_handle; the description identifies the handle as the target and specifies it must be an explicitly created durable session handle, adding some meaning. However, it doesn't explain how to obtain one or interaction with project_ref.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses the verb 'End' with the resource 'agent session handle', and adds 'explicitly created durable' to distinguish from implicit or temporary sessions. However, it doesn't contrast with sibling tools like create_agent_session or finish_attempt, but the verb and resource are clear.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No statement about when to use this tool versus alternatives, no exclusions or prerequisites. The description only states what it does, not when it should be chosen.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

export_projectB
Read-onlyIdempotent

Export the selected project as the version 1 logical interchange document.

ParametersJSON Schema
NameRequiredDescriptionDefault
deliveryNo
project_refNoProject reference returned by open_project. Pass it explicitly for stateless routing; omit only when using a configured default.
agent_session_handleNoOptional durable session handle for request attribution.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds that the output is a 'logical interchange document', but it does not explain behavioral aspects like how the 'delivery' parameter affects output, side effects (though none due to annotations), or whether it requires an explicit project_ref. It adds minimal context beyond annotations, hence a mid-range score.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence with no wasted words. It immediately communicates the tool's primary action and output format.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Annotations and output schema cover safety and return format, reducing the burden on the description. However, the description is too terse to provide complete guidance: it lacks usage context, alternative differentiation, and parameter behavior. For a simple export tool, it is minimally adequate but leaves gaps in when and how to use it.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description does not add any meaning to the parameters beyond the schema. Schema coverage is 67%, leaving the 'delivery' parameter (enum: artifact/inline) undocumented in both schema and description. The description fails to clarify what 'delivery' means or how it influences the export, and it does not compensate for the lack of parameter detail.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states a specific verb ('Export'), the resource ('the selected project'), and the output format ('version 1 logical interchange document'). This distinguishes it from sibling tools like get_project or get_changes, which retrieve different data shapes.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives. It does not mention prerequisites (e.g., needing an open project), exclusions, or why one might choose export_project over get_project. The description only states what it does, not when to invoke it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

finish_attemptB
DestructiveIdempotent

End a leased attempt with outcome, verification, artifacts, and status.

ParametersJSON Schema
NameRequiredDescriptionDefault
viewNo
outcomeYes
artifactsNo
attempt_idYes
next_stepsNo
lease_tokenYes
project_refNoProject reference returned by open_project. Pass it explicitly for stateless routing; omit only when using a configured default.
verificationNo
blocked_reasonNo
reason_detailsNo
result_summaryYes
review_outcomeNo
idempotency_keyNo
failure_reason_codeNo
target_issue_statusNo
acknowledged_changesNo
agent_session_handleNoOptional durable session handle for request attribution.
interruption_reason_codeNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already mark this as destructive, non-read-only, and idempotent. The description adds no additional behavioral context such as irreversibility, authorization requirements, or side effects beyond the word 'End'.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence with no fluff, but it is under-specified for an 18-parameter tool. It is easy to parse but sacrifices critical information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with 18 parameters and low schema coverage, the description does not provide enough context about required inputs, state transitions, or side effects. It is not sufficient for reliable tool selection and invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 11%, leaving most parameters unexplained. The description mentions outcome, verification, artifacts, and status, but omits the required fields attempt_id, lease_token, and result_summary, leaving agents without enough semantics to construct valid calls.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses the specific verb 'End' and names the resource 'leased attempt', making its function clear. It lists core data (outcome, verification, artifacts, status), distinguishing it from sibling tools like renew_attempt or save_attempt_note.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this tool versus renew_attempt or other attempt-management siblings. The context of ending a leased attempt is implied, but no exclusions or alternative recommendations are given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_changesA
Read-onlyIdempotent

Get ordered issue events after an event ID for incremental synchronization.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
issue_idNoCanonical issue identifier (ULID or ISSUE-N).
event_typesNo
project_refNoProject reference returned by open_project. Pass it explicitly for stateless routing; omit only when using a configured default.
since_event_idYes
agent_session_handleNoOptional durable session handle for request attribution.

Output Schema

ParametersJSON Schema
NameRequiredDescription
eventsYes
has_moreYes
next_event_idYes
latest_event_idYes

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering safety. The description adds that events are ordered and that fetching starts after a given event ID, which is useful but not extensive behavior detail. It does not mention pagination or how filters interact, so it provides a moderate amount of additional transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, concise sentence that front-loads the verb and key qualifier. Every word contributes to the meaning, and there is no redundancy or filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 6 parameters (3 undocumented), moderate complexity, and available annotations/output schema, the description is terse. It does not explain the relationship between limit, event_types, and the event ordering, nor how to handle subsequent pages. However, the output schema and annotations reduce the need for return-value explanation, making it minimally complete for a read-only sync endpoint.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 50%: issue_id, project_ref, and agent_session_handle are described in the schema, while limit, event_types, and since_event_id are not. The description references 'event ID' which helps clarify since_event_id but does not elaborate on limit or event_types. This adds some meaning but does not fully compensate for the undocumented parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Get'), the resource ('ordered issue events'), and the specific scope ('after an event ID for incremental synchronization'). This distinctly differentiates the tool from siblings like get_issue_activity by emphasizing incremental sync and event ordering.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives a clear usage context ('for incremental synchronization'), which implies when to use it. However, it does not explicitly state when not to use it or name alternative tools, so it stops short of full usage guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_issueA
Read-onlyIdempotent

Get the current issue record by ULID or ISSUE-N display ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
viewNo
issue_idYesCanonical issue identifier (ULID or ISSUE-N).
project_refNoProject reference returned by open_project. Pass it explicitly for stateless routing; omit only when using a configured default.
agent_session_handleNoOptional durable session handle for request attribution.

Output Schema

ParametersJSON Schema
NameRequiredDescription
idYes
typeYes
titleYes
labelsNo
statusNo
versionYes
priorityNo
closed_atNo
created_atNo
display_idYes
updated_atYes
archived_atNo
descriptionNo
sequence_noYes
blocked_reasonNo
parent_issue_idNo
acceptance_criteriaNo

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds the 'current' state nuance, suggesting the latest version, but does not disclose additional behavioral traits such as error handling or return format. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence with zero waste. It clearly communicates the verb, resource, and identifier formats without extraneous detail, earning its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity and the presence of an output schema, the description is largely complete. However, it omits any mention of the 'view' parameter, whose enum values (compact/standard/full) may imply different response depths, and it does not clarify the behavior of 'current' in terms of versioning or archived issues. This leaves a minor but notable gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is high (75%), setting the baseline at 3. The description reinforces issue_id semantics by naming the identifier formats, but it does not explain the 'view' parameter (which lacks a schema description) or add meaning for project_ref and agent_session_handle beyond what the schema provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses the specific verb 'Get' with resource 'current issue record' and identifiers 'ULID or ISSUE-N display ID', clearly distinguishing it from siblings like get_issue_graph (graph) and list_issues (list). It leaves no doubt about the tool's primary function.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for fetching a single issue by its identifier, but it does not explicitly state when to use this tool versus alternatives. No exclusions or sibling tool references are provided, so the guidance is implied rather than explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_issue_activityA
Read-onlyIdempotent

Get a unified newest-first timeline of issue work and artifacts.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
orderNo
typesNo
cursorNo
issue_idYesCanonical issue identifier (ULID or ISSUE-N).
project_refNoProject reference returned by open_project. Pass it explicitly for stateless routing; omit only when using a configured default.
agent_session_handleNoOptional durable session handle for request attribution.

Output Schema

ParametersJSON Schema
NameRequiredDescription
itemsYes
has_moreYes
next_cursorYes

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and idempotentHint=true, so safety is covered. The description adds useful behavioral details: results are newest-first and unified/aggregated. It does not, however, disclose pagination behavior or filtering implications.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One sentence, front-loaded with the verb and object. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only activity tool with an output schema, the description is adequate but not complete: it does not mention the configurable types filter or the cursor-based pagination, and it lacks usage context vis-à-vis sibling tools. The presence of an output schema mitigates the need to describe return values, but filtering options are central to the tool's behavior.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 43% – only issue_id and project_ref are described in the schema. The tool description adds no parameter information, leaving limit, order, types, cursor, and agent_session_handle without additional context. Since coverage is low, the description fails to compensate for undocumented parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses the specific verb 'Get' and defines the resource as a 'unified newest-first timeline of issue work and artifacts,' clearly distinguishing it from siblings like get_issue (which likely returns issue state) and get_changes (which may return diffs).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives no explicit guidance on when to use this tool over alternatives; it only implies its use for an activity timeline. No alternatives or exclusions are mentioned, though the 'unified' phrasing hints it aggregates multiple sources.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_issue_graphA
Read-onlyIdempotent

Get a bounded relation and hierarchy graph around one issue.

ParametersJSON Schema
NameRequiredDescriptionDefault
viewNoOnly compact graph nodes are available.
depthNoRelation hops from root; default 2.
directionNoRelation traversal direction.
max_nodesNoMaximum returned nodes; default 100.
project_refNoProject reference returned by open_project. Pass it explicitly for stateless routing; omit only when using a configured default.
root_issue_idYesIssue at the graph traversal root.
relation_typesNoOptional relation kinds; empty includes all.
include_terminalNoInclude terminal issue nodes.
include_hierarchyNoInclude derived epic hierarchy edges.
agent_session_handleNoOptional durable session handle for request attribution.

Output Schema

ParametersJSON Schema
NameRequiredDescription
edgesYes
nodesYes
summaryYes
warningsNo
truncatedYes
entry_pointsYes
next_actionsYes
root_issue_idNoCanonical issue identifier (ULID or ISSUE-N).
blocking_nodesNo
truncation_reasonNo

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds 'bounded' and 'hierarchy', which provide useful context about the graph's scope, but it does not explain traversal behavior, limits, or return format beyond what annotations/schema offer.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence with no filler. It conveys the essential purpose efficiently.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (10 parameters, output schema, annotations), the description is minimally viable but lacks explicit guidance on when to use it versus siblings. The output schema covers return values, but overall context could be richer.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema fully documents all 10 parameters. The description adds no parameter-specific meaning, but the baseline of 3 is appropriate since the schema carries the burden.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Get'), names the resource ('relation and hierarchy graph'), and scopes it to 'around one issue' and 'bounded', which distinguishes it from siblings like get_issue (single issue) and get_planning_graph (planning graph). This is a clear statement of purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage through the phrase 'around one issue', indicating the tool is for exploring a single issue's relations and hierarchy. However, it does not explicitly state when to use this over alternatives (e.g., get_planning_graph) or provide exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_planning_graphA
Read-onlyIdempotent

Get dependency-aware entry points and blocking nodes for work selection.

ParametersJSON Schema
NameRequiredDescriptionDefault
depthNo
max_nodesNo
project_refNoProject reference returned by open_project. Pass it explicitly for stateless routing; omit only when using a configured default.
root_issue_idNoCanonical issue identifier (ULID or ISSUE-N).
include_reviewNo
include_relatedNo
agent_session_handleNoOptional durable session handle for request attribution.

Output Schema

ParametersJSON Schema
NameRequiredDescription
edgesYes
nodesYes
summaryYes
warningsNo
truncatedYes
entry_pointsYes
next_actionsYes
root_issue_idNoCanonical issue identifier (ULID or ISSUE-N).
blocking_nodesNo
truncation_reasonNo

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare read-only, idempotent, and non-destructive behavior. The description adds meaningful context by explaining that the graph is dependency-aware and focuses on entry points and blocking nodes, which goes beyond the structured annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence with no wasted words. It efficiently communicates the tool's core purpose and output.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The output schema covers return values, so lack of return-value description is acceptable. However, with 7 optional parameters and low schema coverage, the description leaves significant gaps about parameter usage and when to invoke this tool, making it only partially complete for reliable invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 43%, and the description does not compensate by explaining the key parameters: depth, max_nodes, include_review, and include_related. These remain ambiguous, and the description provides no additional semantic guidance beyond the sparse schema descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool gets dependency-aware entry points and blocking nodes, naming the specific resource (planning graph) and its purpose (work selection). This differentiates it from siblings like get_issue_graph and get_work_context, which focus on different aspects.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'for work selection' implies a use case but does not explicitly state when to use this tool over alternatives, nor does it provide exclusions. The agent must infer the appropriate context from the tool name and description alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_projectA
Read-onlyIdempotent

Get metadata, limits, supported values, event position, and guide links for a project_ref or configured default.

ParametersJSON Schema
NameRequiredDescriptionDefault
project_refNoProject reference returned by open_project. Pass it explicitly for stateless routing; omit only when using a configured default.
agent_session_handleNoOptional durable session handle for request attribution.
include_instructionsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
guidesYes
limitsYes
projectYes
sessionYes
app_versionYes
project_refYes
next_actionsYes
tool_profileYes
config_versionYes
schema_versionYes
latest_event_idYes
supported_statusesYes
supported_prioritiesYes
supported_issue_typesYes
supported_relation_typesYes

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations cover the safety profile (readOnlyHint, idempotentHint, destructiveHint). The description adds the fallback to a configured default and lists specific data categories, but does not disclose additional behavioral traits like authentication requirements or potential errors.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single sentence that is front-loaded with the action and clearly enumerates the data categories. No filler or redundant information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has an output schema, rich annotations, and a clear purpose, the description suffices for selecting and invoking the tool. However, the meaning of 'event position' and the include_instructions parameter are left undefined, leaving minor gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema descriptions cover 67% of parameters, with project_ref and agent_session_handle well documented. The tool description echoes project_ref but does not clarify the undocumented include_instructions parameter, so it adds minimal value beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses the specific verb 'Get' and clearly identifies the resource as project metadata, limits, supported values, event position, and guide links. It distinguishes from sibling tools like get_issue or get_issue_graph by focusing on project-level information.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description clearly implies when to use this tool (when you need project metadata) and mentions the fallback to a configured default, providing useful context. However, it does not explicitly compare to alternatives or state when not to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_review_requestA
Read-onlyIdempotent

Get one review request by identifier.

ParametersJSON Schema
NameRequiredDescriptionDefault
project_refNoProject reference returned by open_project. Pass it explicitly for stateless routing; omit only when using a configured default.
review_request_idYesCanonical review request identifier (ULID).
agent_session_handleNoOptional durable session handle for request attribution.

Output Schema

ParametersJSON Schema
NameRequiredDescription
idYes
statusYes
versionYes
issue_idYes
claimableYes
created_atYes
resolved_atNo
artifact_idsYes
supersedes_idNo
target_event_idYes
active_attempt_idNo
target_issue_versionYes

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already disclose readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds no additional behavioral context (e.g., what happens if the ID is not found, any rate limits, or prerequisites). Since annotations carry the transparency burden, a baseline score of 3 is appropriate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence, 8 words, and front-loads the core action ('Get one review request'). Every word is necessary and there is no fluff or redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple get-by-id tool, the combination of a clear description, complete schema descriptions, rich annotations, and an output schema is largely sufficient. The only minor gap is the lack of explicit guidance about when to favor this over list_review_requests, but the schema and annotations cover the essential invocation details.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, with all three parameters having descriptions (e.g., review_request_id as 'Canonical review request identifier (ULID)'). The description itself adds minimal parameter meaning beyond the schema, so the baseline score of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Get one review request by identifier' clearly states a specific verb (get), a specific resource (review request), and a specific scope (one by identifier). It distinguishes from siblings like list_review_requests (which retrieves multiple) and create/cancel/replace_review_request (which are mutations).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage (when you need a single review request by ID) but does not explicitly state when to use it versus alternatives such as list_review_requests. No exclusions or alternative tool names are mentioned. The schema provides some routing context (project_ref) but that is not part of the description.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_work_contextB
Read-onlyIdempotent

Get bounded task, blocker, decision, checkpoint, and recovery context.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitsNoOptional 1-20 bounds for requested list sections only.
includeNoOptional unique context sections; empty returns the compact default.
issue_idYesIssue whose work context to load.
project_refNoProject reference returned by open_project. Pass it explicitly for stateless routing; omit only when using a configured default.
agent_session_handleNoOptional durable session handle for request attribution.

Output Schema

ParametersJSON Schema
NameRequiredDescription
issueYes
reviewsYes
blockersYes
warningsYes
artifactsYes
decisionsYes
relationsYes
truncatedYes
checkpointYes
parent_epicYes
next_actionsYes
attempt_historyYes
recent_commentsYes
previous_attemptYes
truncated_sectionsYes
project_instructionsYes
recent_attempt_notesYes
related_issue_summariesYes
changes_since_previous_attemptYes

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds the 'bounded' trait, indicating results are limited, but does not specify how bounds work (e.g., default limits, configurable via the limits parameter) or mention the 'include' parameter's role in selecting sections. This adds minimal behavioral context beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One sentence with no filler: 'Get bounded task, blocker, decision, checkpoint, and recovery context.' It is front-loaded with the verb and resource, and every word carries meaning. This is concise and well-structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is a read operation with a rich schema (5 parameters, nested limits object, include enum) and an output schema. The description provides the high-level purpose, and the schema already documents details like default behavior and parameter constraints. Given the annotation coverage and schema richness, the description is sufficiently complete for an agent to select the tool correctly, even though it does not mention integration points like project_ref or agent_session_handle.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% coverage with descriptions for all parameters (e.g., issue_id: 'Issue whose work context to load', include: 'Optional unique context sections; empty returns the compact default'). The description's list of context types (task, blocker, decision, checkpoint, recovery) loosely maps to schema enum values but does not add further parameter-level detail. Since the schema handles parameter semantics comprehensively, a baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb 'Get' and a resource 'work context' with a 'bounded' qualifier, enumerating the context types (task, blocker, decision, checkpoint, recovery). This clearly indicates the tool's purpose and distinguishes it from siblings like 'get_issue' by focusing on a bounded aggregate view, though it does not explicitly mention aggregation or a composite nature.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It does not mention exclusions, prerequisites, or alternative tools, and there is no contextual hint about appropriate use cases. The list of context types implicitly suggests a holistic view, but this is not explicit enough to count as usage guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_decisionsA
Read-onlyIdempotent

List project-wide or issue-scoped decisions with cursor pagination.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo0 uses the default limit of 20; maximum is 100.
cursorNo
issue_idNoCanonical issue identifier (ULID or ISSUE-N).
project_refNoProject reference returned by open_project. Pass it explicitly for stateless routing; omit only when using a configured default.
agent_session_handleNoOptional durable session handle for request attribution.

Output Schema

ParametersJSON Schema
NameRequiredDescription
itemsYes
has_moreYes
next_cursorYes

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint and idempotentHint, so the safety profile is known. The description adds useful behavioral details about cursor pagination and the ability to scope results project-wide or by issue, which are not captured by annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that is front-loaded with the verb 'List' and communicates scope and pagination without waste. Every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple list tool with strong annotations, a descriptive schema, and an output schema, this description covers the essentials: what it lists, the optional scoping, and pagination behavior. No additional context is strictly necessary.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema descriptions cover 4 of 5 parameters. The description adds meaning to the cursor parameter by explicitly mentioning 'cursor pagination', which is the one parameter lacking a schema description. This slightly elevates it above the baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it lists decisions and specifies both scoping options (project-wide or issue-scoped) and the pagination mechanism. This distinguishes it from sibling tools like list_issues or get_issue_activity, which operate on different resources.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context for when to use the tool: to list decisions, optionally scoped by issue. It doesn't explicitly name alternative tools or exclusion criteria, but the context is sufficient for an agent to choose this over list_issues or similar list tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_issuesA
Read-onlyIdempotent

List and filter issues, including effective status, blockers, and claimability.

ParametersJSON Schema
NameRequiredDescriptionDefault
viewNo
limitNo0 uses the default limit of 20; maximum is 100.
typesNo
cursorNo
labelsNo
statusesNo
is_blockedNo
prioritiesNo
project_refNoProject reference returned by open_project. Pass it explicitly for stateless routing; omit only when using a configured default.
is_claimableNo
parent_issue_idNoCanonical issue identifier (ULID or ISSUE-N).
include_archivedNo
effective_statusesNo
agent_session_handleNoOptional durable session handle for request attribution.

Output Schema

ParametersJSON Schema
NameRequiredDescription
itemsYes
has_moreYes
next_cursorYes
next_actionsYes

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and destructiveHint=false, so the agent knows it is safe. The description adds the 'effective status, blockers, claimability' context, but it does not disclose pagination behavior, defaults for archived issues, or any other non-obvious behavior. This is adequate but not enriching.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single, concise sentence that is front-loaded with the verb and resource, and delivers relevant specifics without waste.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (14 parameters, output schema), the description covers the core purpose but omits important operational details such as project_ref scoping, pagination defaults, and whether archived issues are excluded by default. The annotations and output schema reduce the burden, but this is not complete enough for an agent to make fully informed decisions on all variations.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 29%, so the description carries some responsibility. It hints at filterable dimensions (effective_statuses, is_blocked, is_claimable) but does not elaborate on many other parameters like statuses, labels, or priorities, nor does it distinguish 'statuses' from 'effective_statuses'. This adds a bit of meaning but does not fully compensate for the low coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool lists and filters issues, with specific mention of effective status, blockers, and claimability. This distinguishes it from single-issue retrieval (get_issue) and search. However, it does not explicitly name alternatives, so it stops short of a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies use for listing/filtering issues, which is clear. It does not explicitly state when-not-to-use or mention alternatives like get_issue for single issues, but the context is unambiguous given the tool name and sibling set.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_labelsA
Read-onlyIdempotent

List reusable labels with optional name search and cursor pagination.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo0 uses the default limit of 50; maximum is 100.
queryNo
cursorNo
project_refNoProject reference returned by open_project. Pass it explicitly for stateless routing; omit only when using a configured default.
agent_session_handleNoOptional durable session handle for request attribution.

Output Schema

ParametersJSON Schema
NameRequiredDescription
itemsYes
has_moreYes
next_cursorYes

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the description need not repeat safety traits. It adds behavioral context by explicitly mentioning cursor pagination and optional name search, which informs the agent about iteration and filtering behavior. No contradictions with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence: 'List reusable labels with optional name search and cursor pagination.' Every word is necessary and adds distinct value, with zero redundancy or filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is a simple read-only list operation with an output schema available. The description covers the core action, search, and pagination. It does not describe return values, but the output schema handles that, and annotations provide safety context. Reasonably complete for its complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema descriptions cover limit, project_ref, and agent_session_handle, but query and cursor have no descriptions. The description's 'name search' maps to query and 'cursor pagination' maps to cursor, compensating for the undocumented parameters. This adds semantic meaning beyond the schema, though it does not parse the exact syntax for query.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description starts with the specific verb 'List' and resource 'reusable labels', making the primary action unambiguous. It further differentiates from sibling list_* tools by mentioning optional name search and cursor pagination, which are unique capabilities for this tool.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the tool is for retrieving labels, with optional name filtering and pagination. Although it does not explicitly list alternatives or exclusions, the resource-specific wording ('reusable labels') makes the use case clear. It provides enough context for an agent to choose this tool when labels are involved.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_review_requestsA
Read-onlyIdempotent

List review requests with optional status and claimability filters.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum is 100; the default is 20.
cursorNo
statusNo
claimableNo
project_refNoProject reference returned by open_project. Pass it explicitly for stateless routing; omit only when using a configured default.
agent_session_handleNoOptional durable session handle for request attribution.

Output Schema

ParametersJSON Schema
NameRequiredDescription
itemsYes
has_moreYes
next_cursorNo

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering safety behavior. The description does not contradict these but also adds little beyond the filter capability. Pagination behavior (e.g., cursor, default limit) is not described in the description, though the output schema and parameter descriptions partially cover this.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that is front-loaded with the core action ('List review requests') and adds only relevant filter details. Every word contributes value, with no redundancy or extraneous information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has a rich output schema and strong annotations, so the description does not need to explain return values or safety. However, with 6 parameters and a pagination cursor, the description could have provided more context on pagination or when to use this over search. It is minimally adequate but leaves some usage nuances implicit.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With schema coverage at 50%, the description partially compensates by explicitly naming 'status' and 'claimability' as filters, clarifying their role. However, it does not explain cursor or how pagination works, and the three parameters with schema descriptions (limit, project_ref, agent_session_handle) are not enriched further.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses the specific verb 'List' with the resource 'review requests' and specifies optional status and claimability filters. This clearly distinguishes it from sibling tools like get_review_request (single item) and mutation tools such as create/cancel/supersede_review_request.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for listing review requests with filters but provides no explicit guidance on when to use this tool versus alternatives like search or get_review_request. No exclusions or preferred contexts are stated, leaving usage to be inferred from the tool's name and sibling names.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

manage_issue_relationB
DestructiveIdempotent

Add or remove one blocks, related_to, or duplicates relation.

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYes
project_refNoProject reference returned by open_project. Pass it explicitly for stateless routing; omit only when using a configured default.
relation_typeYes
idempotency_keyNo
source_issue_idYesCanonical issue identifier (ULID or ISSUE-N).
target_issue_idYesCanonical issue identifier (ULID or ISSUE-N).
agent_session_handleNoOptional durable session handle for request attribution.

Output Schema

ParametersJSON Schema
NameRequiredDescription
changedYes
relationYes
affected_issuesYes

TDQS

B3.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate destructiveHint=true and readOnlyHint=false, and the description reinforces this with 'add or remove.' It adds specific relation types and the single-relation scope, but does not elaborate on irreversible removal or other behavioral nuances. This adds some value beyond annotations without fully disclosing consequences.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that immediately states the core action and relation types. No wasted words; it is appropriately front-loaded and easy to parse.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite having an output schema, the tool is a destructive write operation with 7 parameters and clear potential for misuse (e.g., removing relations permanently). The sparse one-liner fails to provide sufficient context regarding relation direction, idempotency behavior, or error conditions, making it incomplete for safe invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema covers 57% of parameters, but the description does not compensate for the undocumented ones. It does not clarify the roles of source_issue_id versus target_issue_id in the relation, nor explain the idempotency_key or agent_session_handle. The assertion 'one relation' implies a single pair, but key parameter semantics are left ambiguous.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description explicitly states 'Add or remove one blocks, related_to, or duplicates relation,' which clearly identifies the verb (add/remove), the resource (issue relations), and the specific relation types. This distinguishes it from sibling tools like get_issue_graph (read-only) and update_issue (broader updates).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives, nor does it mention any prerequisites, context, or exclusions. It is a bare functional statement with no usage context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

open_projectA
Read-onlyIdempotent

Open a project by absolute root and return its project_ref, metadata, limits, supported values, event position, and guide links.

ParametersJSON Schema
NameRequiredDescriptionDefault
project_rootYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
guidesYes
limitsYes
projectYes
sessionYes
app_versionYes
project_refYes
next_actionsYes
tool_profileYes
config_versionYes
schema_versionYes
latest_event_idYes
supported_statusesYes
supported_prioritiesYes
supported_issue_typesYes
supported_relation_typesYes

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already declare readOnlyHint=true and idempotentHint=true, covering the safety profile. The description adds value by listing the exact return contents (project_ref, metadata, limits, etc.), which helps the agent anticipate the output. No contradictions with the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, dense sentence that conveys the action and the full set of returned items without extraneous words. Every phrase earns its place, making it highly efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (one parameter, read-only semantics, output schema provided), the description adequately covers the tool's behavior and expected output. It lacks usage guidance against siblings, but that is a separate dimension and not critical for understanding this tool's core function.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema provides only a 'project_root' string parameter with no description. The description clarifies that it must be an absolute root path, adding semantic meaning beyond the schema's bare type. It does not provide examples or path format details, but for a single parameter this is adequate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb 'Open' and identifies the resource 'project by absolute root,' enumerating the returned fields (project_ref, metadata, limits, supported values, event position, guide links). This makes the tool's purpose clear and distinguishes it from siblings like get_project by specifying the absolute root requirement and the detailed return payload.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives such as get_project or export_project. It does not state prerequisites, exclusions, or alternative recommendations, leaving the agent to infer usage from the tool's name alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

record_decisionA
Destructive

Append a durable project or issue decision, optionally superseding one.

ParametersJSON Schema
NameRequiredDescriptionDefault
titleYes
statusNo
contentYes
summaryYes
issue_idNo
project_refNoProject reference returned by open_project. Pass it explicitly for stateless routing; omit only when using a configured default.
supersedes_idNo
agent_session_handleNoOptional durable session handle for request attribution.

Output Schema

ParametersJSON Schema
NameRequiredDescription
decisionYes
superseded_decision_idYes

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate destructiveHint=true, and the description adds 'durable' and 'superseding' context, hinting at the effect on an existing decision. However, it does not disclose side effects like how the superseded decision's status changes or any permissions needed. The description is consistent with annotations but adds limited behavioral detail.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence, front-loaded with the action verb, and contains no unnecessary words. It efficiently conveys the core function and a key optional behavior.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has 8 parameters, a status enum, and an output schema, the description captures the primary purpose but omits details such as how to set status to 'rejected', how linking to issues/projects works, and how supersession is reflected. It is adequate for a simple write operation but leaves gaps for a tool of this complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With only 25% schema description coverage, the description should compensate by explaining parameter roles. It vaguely hints at issue_id/project_ref via 'project or issue decision' and supersedes_id/status via 'superseding', but it does not clarify which parameters are required, how they relate, or the meaning of the status enum. This is insufficient for effective parameter usage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb 'Append' and clearly identifies the resource as a 'durable project or issue decision', also noting the optional superseding behavior. This distinguishes it from siblings like add_comment or list_decisions, making the tool's purpose unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the tool is for recording formal decisions, but it does not explicitly state when to use it over alternatives (e.g., add_comment for comments) or provide exclusion criteria. The use case is clear enough for basic selection, but there is no explicit guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

renew_attemptA

Extend an active work or review lease before it expires.

ParametersJSON Schema
NameRequiredDescriptionDefault
attempt_idYes
lease_tokenYes
project_refNoProject reference returned by open_project. Pass it explicitly for stateless routing; omit only when using a configured default.
lease_secondsNo
agent_session_handleNoOptional durable session handle for request attribution.

Output Schema

ParametersJSON Schema
NameRequiredDescription
server_timeYes
next_actionsYes
lease_expires_atYes

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate this is a non-read-only, non-idempotent operation. The description adds the 'active' and 'before it expires' constraints, but does not disclose side effects such as whether the lease token rotates, how lease_seconds changes the lease, or any rate limits. It adds some context beyond annotations but omits potentially important behavioral details.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence with a clear verb and object. It is concise and contains no redundant words, examples, or filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, return values do not need to be explained. However, the description leaves gaps around the lease_token and lease_seconds parameters, and does not clarify what 'active work or review lease' means in terms of the attempt lifecycle. It is minimally adequate but lacks important operational context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 40%, and the description provides no parameter-specific details. The required parameters attempt_id and lease_token are not explained, and the optional lease_seconds behavior is not mentioned. The description does not compensate for the low schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses the specific verb 'Extend' and names the resource 'active work or review lease', clearly distinguishing it from siblings like 'finish_attempt' and 'create_review_request'. It states exactly what action the tool performs.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'before it expires' provides clear temporal context for when to use this tool: on an active lease that is about to lapse. It does not explicitly name alternatives or exclusions, but the timing guidance is sufficient for most cases.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

replace_review_requestB
DestructiveIdempotent

Atomically supersede a predecessor review request and create its open successor in one transaction.

ParametersJSON Schema
NameRequiredDescriptionDefault
project_refNoProject reference returned by open_project. Pass it explicitly for stateless routing; omit only when using a configured default.
artifact_idsNo
idempotency_keyYes
target_event_idYes
agent_session_handleNoOptional durable session handle for request attribution.
target_issue_versionYes
predecessor_request_idYesCanonical review request identifier (ULID).
predecessor_expected_versionYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
successorYes
predecessorYes
latest_event_idYes

TDQS

B3.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate destructive and non-read-only behavior. The description adds valuable context about atomicity and transactional semantics, which goes beyond annotations. It does not detail additional side effects or permissions, but the atomicity disclosure is a meaningful addition.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence with no waste. It clearly conveys the core action and key attribute (atomicity) in an efficient manner.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a complex operation with 8 parameters and low schema coverage, the description is insufficient. It does not explain preconditions, effects on the predecessor, or parameter relationships. Although an output schema exists, the operational context remains incomplete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 38%, and the description itself mentions no parameters. The tool has 8 parameters with 5 required, and no guidance is provided on their semantics or relationships. This leaves the agent with insufficient information to correctly populate required fields like 'predecessor_expected_version' or 'target_issue_version'.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function: to atomically supersede a predecessor review request and create its open successor. It uses specific verbs and resources, but does not explicitly differentiate from the sibling tool 'supersede_review_request', which may cause some ambiguity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'in one transaction' implies usage where atomicity is required, and the predecessor/successor relationship gives some context. However, there is no explicit guidance on when to use this tool versus alternatives like 'supersede_review_request' or 'create_review_request', leaving the agent to infer.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

save_attempt_noteB

Append a restartable checkpoint, finding, warning, or progress note.

ParametersJSON Schema
NameRequiredDescriptionDefault
kindYesHow the note should be classified.
contentYesRequired restartable note content.
artifactsNoOptional artifacts created or referenced by this work.
importantNoMarks the note as important.
attempt_idYesActive attempt receiving the note.
next_stepsNoOptional concrete actions after this note.
lease_tokenYesSecret proof of the active attempt lease.
project_refNoProject reference returned by open_project. Pass it explicitly for stateless routing; omit only when using a configured default.
idempotency_keyNoOptional key that replays the same note request.
agent_session_handleNoOptional durable session handle for request attribution.

Output Schema

ParametersJSON Schema
NameRequiredDescription
artifactsYes
attempt_noteYes
next_actionsYes

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate a write operation (readOnlyHint: false) but provide no additional detail. The description adds only the ambiguous word 'restartable', which may hint at checkpointing but is not explained. It does not mention the required lease_token proof, potential side effects, or any idempotency nuances (despite the idempotency_key parameter). This leaves significant behavioral gaps.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence and is very concise with no filler. It front-loads the action. However, 'restartable' is unclear and might mislead; a slightly more explicit phrase like 'save an attempt note that can be used to resume work' would be both concise and clearer. Still, it earns a high score for structure.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with 10 parameters including sensitive auth fields (lease_token), idempotency control, and an enum, the description is too thin. It does not explain the lease requirement, the meaning of 'restartable', or how the different note kinds should be used. The output schema exists, so return values are not necessary, but the high-level operational context is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema itself documents all parameters with descriptions. The tool description adds no parameter-specific meaning beyond 'restartable', which does not map to any one schema field. The baseline of 3 is appropriate since the schema carries the burden.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb ('Append'), the resource (a note to an attempt), and the scope (checkpoint, finding, warning, or progress). It distinguishes from sibling tools like add_comment or record_decision by referencing attempt-specific notes. Though 'restartable' is slightly vague, the core purpose is unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives. There is no mention of prerequisites (e.g., active attempt lease), when to choose 'checkpoint' vs 'progress', or situations where another tool like record_decision might be more appropriate. The description is a bare statement with no exclusions or contextual hints.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

supersede_review_requestA
DestructiveIdempotent

Supersede an open or claimed review request using its current version. Deprecated: prefer replace_review_request.

ParametersJSON Schema
NameRequiredDescriptionDefault
project_refNoProject reference returned by open_project. Pass it explicitly for stateless routing; omit only when using a configured default.
expected_versionYes
review_request_idYesCanonical review request identifier (ULID).
agent_session_handleNoOptional durable session handle for request attribution.

Output Schema

ParametersJSON Schema
NameRequiredDescription
idYes
statusYes
versionYes
issue_idYes
claimableYes
created_atYes
resolved_atNo
artifact_idsYes
supersedes_idNo
target_event_idYes
active_attempt_idNo
target_issue_versionYes

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

While annotations already declare destructiveHint=true and idempotentHint=true, the description adds the important deprecation warning and the concurrency-related detail 'using its current version', which hints at optimistic locking via expected_version. This is meaningful context beyond the structured fields, though it stops short of explaining the exact effects of superseding.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is only two sentences, front-loading the core action and immediately adding a deprecation note. No redundant information. Every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With the output schema present and annotations covering safety/idempotency, the description provides sufficient context for a deprecated tool. It mentions the valid target state ('open or claimed') and the version mechanism. However, it does not elaborate on what 'supersede' does to the original request (e.g., whether it becomes closed), which would be helpful but is not critical given the explicit deprecation direction.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 75%, with expected_version undocumented. The description's phrase 'using its current version' directly clarifies the role of expected_version (the current version to check against). This adds semantic value beyond the schema, while the remaining params are already described.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses the specific verb 'Supersede' with a clear resource ('an open or claimed review request') and a mechanism ('using its current version'). It also explicitly distinguishes this tool from sibling `replace_review_request` by marking itself as deprecated, which resolves ambiguity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives an explicit when-to-use context ('open or claimed review request') and directly names an alternative ('prefer replace_review_request'), telling the agent that this tool should not be used in favor of the replacement. This is clear, actionable guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

update_issueA
DestructiveIdempotent

Patch one issue using its current version for optimistic concurrency.

ParametersJSON Schema
NameRequiredDescriptionDefault
viewNo
changesYes
issue_idYesCanonical issue identifier (ULID or ISSUE-N).
project_refNoProject reference returned by open_project. Pass it explicitly for stateless routing; omit only when using a configured default.
idempotency_keyNo
expected_versionYes
agent_session_handleNoOptional durable session handle for request attribution.
create_missing_labelsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already state readOnlyHint=false and destructiveHint=true, so the agent knows this is a mutating and potentially destructive operation. The description adds the concurrency-control mechanism (using current version) but does not elaborate on conflict behavior, side effects, or the meaning of idempotentHint. It contributes some value beyond annotations but not extensive detail.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence that conveys the core purpose without waste. Every word earns its place, making it highly concise and well-structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (8 parameters, nested objects, destructive hint, optimistic concurrency), the description is too minimal. It does not explain error handling on version conflict, behavior of create_missing_labels, or how the view parameter affects output. An output schema exists but does not compensate for missing behavioral and parameter context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 38%, so the description must compensate for undocumented parameters. It only hints at expected_version ('using its current version'), while other critical parameters like changes, idempotency_key, create_missing_labels, and view remain unexplained. The description adds little to parameter understanding.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function: 'Patch one issue using its current version for optimistic concurrency.' It uses a specific verb ('patch'), names the resource ('one issue'), and adds a distinguishing detail (optimistic concurrency) that separates it from sibling tools like create_issue or archive_issue.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context for when to use the tool: when updating an issue with optimistic concurrency, requiring the current version. It does not explicitly list exclusions or alternative tools, but the context is unambiguous enough for an agent to infer appropriate use.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

validate_importA
Read-onlyIdempotent

Validate a logical project import document without writing anything.

ParametersJSON Schema
NameRequiredDescriptionDefault
documentNo
source_uriNo
project_refNoProject reference returned by open_project. Pass it explicitly for stateless routing; omit only when using a configured default.
agent_session_handleNoOptional durable session handle for request attribution.

Output Schema

ParametersJSON Schema
NameRequiredDescription
countsYes
writesYes
conflictsYes

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and destructiveHint=false, so the 'without writing anything' phrase is largely redundant. The description adds minimal behavioral context beyond what annotations provide, but it does reinforce the non-mutating nature against sibling tools like apply_import.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence that conveys the action and the key constraint without extraneous detail. Every word adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the existence of an output schema and rich annotations, the description does not need to explain return values. However, it does not clarify the purpose of document versus source_uri, which are both optional and undocumented in the schema. This is a notable gap for a validation tool with 4 parameters, though the overall simplicity of the tool mitigates the impact.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 50%, with document and source_uri having no descriptions. The tool description does not explain the relationship between these parameters or when to use one over the other. The only parameter guidance comes from the schema for project_ref and agent_session_handle, leaving the core input parameters ambiguously specified.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'validate' and the resource 'logical project import document,' while the phrase 'without writing anything' distinguishes it from apply_import and other mutation tools. This is specific and unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies a dry-run validation use case by stating 'without writing anything,' but it does not explicitly mention alternatives or when to avoid using the tool. The context is clear enough for an agent to infer the primary purpose, but lacks explicit exclusion guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

validate_issue_planA
Read-onlyIdempotent

Normalize and validate a bounded multi-issue plan without writing it.

ParametersJSON Schema
NameRequiredDescriptionDefault
issuesYes
decisionsYes
relationsYes
project_refNoProject reference returned by open_project. Pass it explicitly for stateless routing; omit only when using a configured default.
agent_session_handleNoOptional durable session handle for request attribution.
include_normalized_planNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
validYes
errorsYes
summaryYes
warningsYes
next_actionsYes
normalized_planNo
plan_fingerprintYes
normalization_changedYes

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and idempotentHint=true. The description adds valuable context by stating no write occurs, which reinforces the annotation. It also introduces 'normalize', hinting at transformation behavior beyond what annotations cover, though it does not detail normalization rules.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence with no filler words. It clearly states the action, object, and key side-effect constraint, making it highly efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (nested arrays, multiple required parameters) and the existence of an output schema, the description is minimal but adequate. It explains the core purpose and the no-write constraint, but does not elaborate on what 'normalize' entails or what validation criteria are enforced. The annotations and output schema fill some gaps, but not all.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 33% (only project_ref and agent_session_handle have descriptions). The tool description provides no parameter-level guidance, leaving the agent to infer the meaning of issues, relations, decisions, and include_normalized_plan from names alone. With low coverage, the description needed to compensate but did not.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses specific verbs ('Normalize and validate') and a clear resource ('bounded multi-issue plan'), and explicitly distinguishes from writing by adding 'without writing it'. This makes the tool's purpose unmistakable and differentiates it from sibling tools like apply_issue_plan.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'without writing it' clearly indicates a read-only validation/preview use case, contrasting with apply_issue_plan. However, it does not explicitly state when to prefer this over validate_import or when not to use it, so it falls just short of full guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 33 tool updatesv1.2.1
    • Changedadd_comment1 field changed
      • addedInput schema / properties / agent_session_handle / description
        Added value: +"Optional durable session handle for request attribution."
    • Changedapply_import1 field changed
      • addedInput schema / properties / agent_session_handle / description
        Added value: +"Optional durable session handle for request attribution."
    • Changedapply_issue_plan1 field changed
      • addedInput schema / properties / agent_session_handle / description
        Added value: +"Optional durable session handle for request attribution."
    • Changedarchive_issue1 field changed
      • addedInput schema / properties / agent_session_handle / description
        Added value: +"Optional durable session handle for request attribution."
    • Changedcancel_review_request1 field changed
      • addedInput schema / properties / agent_session_handle / description
        Added value: +"Optional durable session handle for request attribution."
    • Changedclaim_issue5 fields changed
      • addedInput schema / properties / agent_session_handle / description
        Added value: +"Optional durable session handle for request attribution."
      • addedInput schema / properties / idempotency_key / description
        Added value: +"Optional key that replays the same claim request."
      • changedInput schema / properties / issue_id / description
        Previous value: -"Canonical issue identifier (ULID or ISSUE-N)."New value: +"Claimable ready or review issue (ULID or ISSUE-N)."
      • addedInput schema / properties / lease_seconds / description
        Added value: +"Requested lease duration in seconds."
      • addedInput schema / properties / view / description
        Added value: +"Response shape; compact is the default."
    • Changedcreate_agent_session5 fields changed
      • addedInput schema / properties / agent_label / description
        Added value: +"Optional human-readable agent identity."
      • addedInput schema / properties / client_name / description
        Added value: +"Required client identity."
      • addedInput schema / properties / client_version / description
        Added value: +"Optional client version."
      • addedInput schema / properties / instance_key / description
        Added value: +"Optional stable key for this client instance."
      • addedInput schema / properties / model / description
        Added value: +"Optional model identifier."
    • Changedcreate_issue1 field changed
      • addedInput schema / properties / agent_session_handle / description
        Added value: +"Optional durable session handle for request attribution."
    • Changedcreate_review_request1 field changed
      • addedInput schema / properties / agent_session_handle / description
        Added value: +"Optional durable session handle for request attribution."
    • Changedexport_project1 field changed
      • addedInput schema / properties / agent_session_handle / description
        Added value: +"Optional durable session handle for request attribution."
    • Changedfinish_attempt1 field changed
      • addedInput schema / properties / agent_session_handle / description
        Added value: +"Optional durable session handle for request attribution."
    • Changedget_changes1 field changed
      • addedInput schema / properties / agent_session_handle / description
        Added value: +"Optional durable session handle for request attribution."
    • Changedget_issue1 field changed
      • addedInput schema / properties / agent_session_handle / description
        Added value: +"Optional durable session handle for request attribution."
    • Changedget_issue_activity1 field changed
      • addedInput schema / properties / agent_session_handle / description
        Added value: +"Optional durable session handle for request attribution."
    • Changedget_issue_graph9 fields changed
      • addedInput schema / properties / agent_session_handle / description
        Added value: +"Optional durable session handle for request attribution."
      • addedInput schema / properties / depth / description
        Added value: +"Relation hops from root; default 2."
      • addedInput schema / properties / direction / description
        Added value: +"Relation traversal direction."
      • addedInput schema / properties / include_hierarchy / description
        Added value: +"Include derived epic hierarchy edges."
      • addedInput schema / properties / include_terminal / description
        Added value: +"Include terminal issue nodes."
      • addedInput schema / properties / max_nodes / description
        Added value: +"Maximum returned nodes; default 100."
      • addedInput schema / properties / relation_types / description
        Added value: +"Optional relation kinds; empty includes all."
      • changedInput schema / properties / root_issue_id / description
        Previous value: -"Canonical issue identifier (ULID or ISSUE-N)."New value: +"Issue at the graph traversal root."
      • addedInput schema / properties / view / description
        Added value: +"Only compact graph nodes are available."
    • Changedget_planning_graph1 field changed
      • addedInput schema / properties / agent_session_handle / description
        Added value: +"Optional durable session handle for request attribution."
    • Changedget_project1 field changed
      • addedInput schema / properties / agent_session_handle / description
        Added value: +"Optional durable session handle for request attribution."
    • Changedget_review_request1 field changed
      • addedInput schema / properties / agent_session_handle / description
        Added value: +"Optional durable session handle for request attribution."
    • Changedget_work_context4 fields changed
      • addedInput schema / properties / agent_session_handle / description
        Added value: +"Optional durable session handle for request attribution."
      • addedInput schema / properties / include / description
        Added value: +"Optional unique context sections; empty returns the compact default."
      • changedInput schema / properties / issue_id / description
        Previous value: -"Canonical issue identifier (ULID or ISSUE-N)."New value: +"Issue whose work context to load."
      • addedInput schema / properties / limits / description
        Added value: +"Optional 1-20 bounds for requested list sections only."
    • Changedlist_decisions1 field changed
      • addedInput schema / properties / agent_session_handle / description
        Added value: +"Optional durable session handle for request attribution."
    • Changedlist_issues1 field changed
      • addedInput schema / properties / agent_session_handle / description
        Added value: +"Optional durable session handle for request attribution."
    • Changedlist_labels1 field changed
      • addedInput schema / properties / agent_session_handle / description
        Added value: +"Optional durable session handle for request attribution."
    • Changedlist_review_requests1 field changed
      • addedInput schema / properties / agent_session_handle / description
        Added value: +"Optional durable session handle for request attribution."
    • Changedmanage_issue_relation1 field changed
      • addedInput schema / properties / agent_session_handle / description
        Added value: +"Optional durable session handle for request attribution."
    • Changedrecord_decision1 field changed
      • addedInput schema / properties / agent_session_handle / description
        Added value: +"Optional durable session handle for request attribution."
    • Changedrenew_attempt1 field changed
      • addedInput schema / properties / agent_session_handle / description
        Added value: +"Optional durable session handle for request attribution."
    • Changedreplace_review_request1 field changed
      • addedInput schema / properties / agent_session_handle / description
        Added value: +"Optional durable session handle for request attribution."
    • Changedsave_attempt_note9 fields changed
      • addedInput schema / properties / agent_session_handle / description
        Added value: +"Optional durable session handle for request attribution."
      • addedInput schema / properties / artifacts / description
        Added value: +"Optional artifacts created or referenced by this work."
      • addedInput schema / properties / attempt_id / description
        Added value: +"Active attempt receiving the note."
      • addedInput schema / properties / content / description
        Added value: +"Required restartable note content."
      • addedInput schema / properties / idempotency_key / description
        Added value: +"Optional key that replays the same note request."
      • addedInput schema / properties / important / description
        Added value: +"Marks the note as important."
      • addedInput schema / properties / kind / description
        Added value: +"How the note should be classified."
      • addedInput schema / properties / lease_token / description
        Added value: +"Secret proof of the active attempt lease."
      • addedInput schema / properties / next_steps / description
        Added value: +"Optional concrete actions after this note."
    • Changedsearch11 fields changed
      • addedInput schema / properties / agent_session_handle / description
        Added value: +"Optional durable session handle for request attribution."
      • addedInput schema / properties / cursor / description
        Added value: +"Cursor from a previous page."
      • addedInput schema / properties / entity_types / description
        Added value: +"Optional result types; empty includes all."
      • changedInput schema / properties / epic_id / description
        Previous value: -"Canonical issue identifier (ULID or ISSUE-N)."New value: +"Optional epic scope (ULID or ISSUE-N)."
      • addedInput schema / properties / include_archived / description
        Added value: +"Include archived issue records."
      • changedInput schema / properties / issue_id / description
        Previous value: -"Canonical issue identifier (ULID or ISSUE-N)."New value: +"Optional issue scope (ULID or ISSUE-N)."
      • addedInput schema / properties / labels / description
        Added value: +"Optional label filter."
      • addedInput schema / properties / limit / description
        Added value: +"0 uses the default; 1-100 caps results."
      • addedInput schema / properties / query / description
        Added value: +"Required full-text terms."
      • addedInput schema / properties / snippet_length / description
        Added value: +"0 uses the default; 1-1000 caps excerpts in runes."
      • addedInput schema / properties / statuses / description
        Added value: +"Optional issue-status filter."
    • Changedsupersede_review_request1 field changed
      • addedInput schema / properties / agent_session_handle / description
        Added value: +"Optional durable session handle for request attribution."
    • Changedupdate_issue1 field changed
      • addedInput schema / properties / agent_session_handle / description
        Added value: +"Optional durable session handle for request attribution."
    • Changedvalidate_import1 field changed
      • addedInput schema / properties / agent_session_handle / description
        Added value: +"Optional durable session handle for request attribution."
    • Changedvalidate_issue_plan1 field changed
      • addedInput schema / properties / agent_session_handle / description
        Added value: +"Optional durable session handle for request attribution."
  2. 35 tool updatesv1.2.0
    • First observedadd_comment
    • First observedapply_import
    • First observedapply_issue_plan
    • First observedarchive_issue
    • First observedcancel_review_request
    • First observedclaim_issue
    • First observedcreate_agent_session
    • First observedcreate_issue
    • First observedcreate_review_request
    • First observedend_agent_session
    • First observedexport_project
    • First observedfinish_attempt
    • First observedget_changes
    • First observedget_issue
    • First observedget_issue_activity
    • First observedget_issue_graph
    • First observedget_planning_graph
    • First observedget_project
    • First observedget_review_request
    • First observedget_work_context
    • First observedlist_decisions
    • First observedlist_issues
    • First observedlist_labels
    • First observedlist_review_requests
    • First observedmanage_issue_relation
    • First observedopen_project
    • First observedrecord_decision
    • First observedrenew_attempt
    • First observedreplace_review_request
    • First observedsave_attempt_note
    • First observedsearch
    • First observedsupersede_review_request
    • First observedupdate_issue
    • First observedvalidate_import
    • First observedvalidate_issue_plan

TDQS

B3.4/5.0

Scored across 35 tools

Disambiguation2/5

Several tools have overlapping purposes: create_review_request, replace_review_request, and supersede_review_request all handle review request creation/supersedure, with two marked deprecated. Also, get_planning_graph and get_work_context both provide context-heavy views, and the abundance of similar verbs (create/list/get/manage) creates boundary confusion despite useful descriptions.

Naming Consistency4/5

Tool names overwhelmingly use a consistent snake_case verb_noun pattern (e.g., list_issues, renew_attempt, archive_issue). The only notable deviation is the single-word 'search' and a few unconventional verb choices like 'open_project' and 'manage_issue_relation', which are minor and do not obscure the overall pattern.

Tool Count2/5

With 35 tools, the server is well above the 'too many (25+)' threshold. The count is inflated by deprecated tools (create_review_request, supersede_review_request) that could be removed, and the sheer number makes the tool surface unnecessarily heavy for agents to navigate.

Completeness4/5

The server covers a comprehensive domain: issue lifecycle, review requests, attempts/leases, decisions, relations, sessions, import/export, and planning graphs. Minor gaps like lacking a direct 'list_relations' tool are mitigated by get_issue_graph, but the presence of deprecated tools and some redundancies suggest the surface is not fully polished.

Maintenance

ActivityNo data
ResponsivenessUnresponsive

Related MCP Connectors

Related MCP Servers

  • A
    license
    B
    quality
    C
    maintenance
    A local-first MCP server that provides AI agents with safe codebase access through file discovery, hybrid lexical-semantic search, and project introspection. It features durable local memory and semantic indexing while keeping all data and processing entirely on your local machine.
    74
    14
    6
    MIT
  • A
    license
    A
    quality
    A
    maintenance
    A lightweight, fully local MCP server that provides AI coding tools with a shared SQLite memory store and built-in conflict arbitration, enabling structured memory sharing across tools like ZCode, Codex, Cursor, and Claude Code without external dependencies.
    4
    7
    Apache 2.0
  • A
    license
    A
    quality
    A
    maintenance
    Local MCP server giving AI coding agents (Claude Code, Cursor, VS Code/JetBrains Copilot) a shared, persistent memory of your projects and every bug/issue faced during development. Stateless, plain-file storage (AGENTS.md + issues.jsonl) — no database.
    16
    238
    1
    MIT

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/Odrin/rhizome-mcp'

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