Skip to main content
Glama

peer-agents-mcp

他のAIコーディングツール(Codex、Claude、Cursorなど)が Grok CLIAntigravity CLI をピアレビュアーおよびコラボレーターとして呼び出せるようにするMCPサーバー。

機能

このサーバーは、ローカルの grok および agy(Antigravity)CLIを、クリーンなModel Context Protocol(MCP)インターフェースの背後でラップします。

MCP対応のエージェントは、以下のことができるようになります:

  • コードの変更、プラン、エラー、質問をGrokまたはAntigravityに送信する

  • 構造化されたピアフィードバックを受け取る

  • セッションメモリを使ったマルチターンのレビュー/デバッグ/プランニングセッションを実行する

  • 同じタスクで両方のCLIを実行して独立した意見を得る

プライマリエージェント(Codex、Claudeなど)が制御を維持します。セカンドオピニオン(または異なる意見)が欲しいときに、特定のタスクをこれらのピアに委任するだけです。

Related MCP server: xAI Grok MCP Bridge

コアアイデア

1つのモデルがすべてを行う代わりに、メインのコーディングエージェントはGrokとAntigravityをピアとして使用できます:

  • Grokはほとんどのコーディング作業(レビュー、プランニング、デバッグ、実装の批評)に

  • Antigravityは大きなコンテキスト、一般的な知識、またはマルチモーダルタスクに

スマートルーティングはリクエストの種類に基づいて自動的に行われます。

利用可能なツール

ツール

目的

ルーティング先

peer_review_diff

unified diff またはパッチをレビューする

Grok(通常)

peer_plan

実装計画を作成する

Grok

peer_debug

ログ/スタックトレースから障害を診断する

Grok

peer_verify

テスト/ビルド出力の安全性を確認する

Grok

peer_ask

一般的な根拠に基づくQ&A

Antigravity

peer_debate

プランAとプランBを独立に比較する

Grok

peer_turn

マルチターンのピアセッションを続行する

同じピア

peer_turn_async

長時間実行のフォローアップターン(バックグラウンドジョブ)

同じピア

peer_implement_async

コールドスタートのGrok実装ハンドオフ(ジョブ)

Grok

peer_review_diff_async

長時間実行のdiffレビュー(バックグラウンドジョブ)

Grok

peer_debug_async

長時間実行のデバッグハンドオフ(バックグラウンドジョブ)

Grok

peer_job_status

バックグラウンドジョブをポーリングする(progress を含む)

peer_job_cancel

バックグラウンドジョブをキャンセルする

peer_jobs_gc

古い終了ジョブをガベージコレクトする

peer_compare

両方のCLIへの低レベルなサイドバイサイド呼び出し

両方

追加のセッションツール: peer_summarizepeer_transcriptpeer_list_sessionspeer_reset、および peer_health

ルーティングされるすべてのツールは、files パラメータでファイルの完全な内容を、diff でdiffを受け取ります。要約は送信しないでください。実際の内容を送信してください。

同期と非同期の使い分け

通常のdiffに対するGrokの同期レビューは、一般的に 3〜6分 かかります。Grokの子プロセスタイムアウトは GROK_TURN_TIMEOUT_MS(デフォルト6分)です。プロセスのタイムアウトを上げても、ホストのMCPクライアントの待機時間は上がりません。ホストが先に諦めた場合、Codexはそのツール応答で durationAdvisory / continuationHint / nativeSessionId を一切見られません。*_async を使用してください。

サーバーは同期ツールを黙ってジョブに変換することはありません

同期を使用(peer_review_diffpeer_planpeer_turn、…)

非同期を使用(*_async + peer_job_status

~80kプロンプト文字に収まる通常のdiff / プラン

~80k文字(~20kトークン)、120k上限に近い、または切り詰められた

デフォルト / 中リスク

risk_level=high または focus=security--effort high

フォローアップ「この1ファイルを再確認」

実装ハンドオフ(peer_implement_async

ホストが約6分待てる

ホストのMCPタイムアウトが2〜3分以下; 巨大なログ; 複数回試行のデバッグ

同期のGrok/ルーティング結果には、プロンプトが切り詰められた場合、推定トークンが ~20k(~80k文字)を超える場合、risk_level=high / focus=security の場合、またはスタブの自動継続が消費された場合に、追加の durationAdvisory が含まれることがあります。例:

{
  "durationAdvisory": "Grok sync reviews of this size often take 3–6 minutes. If your MCP client times out sooner, use peer_review_diff_async / peer_turn_async and poll peer_job_status."
}

切り詰められた peer_review_diff も同期で実行されます(tools-against-cwd 命令が前置されます)。次回は peer_review_diff_async を優先してください。切り詰めをハードリジェクトとして扱わないでください。

長時間実行の非同期ジョブ

大規模な実装ハンドオフは、MCPクライアントの同期ツールタイムアウトを超える可能性があります。peer_turn をブロックする代わりに、非同期パスを使用してください:

  1. peer_implement_async(コールドスタート)または peer_turn_async(既存セッション)で作業を開始します。

  2. ピアが実行されている間、ローカルの作業を続けます。

  3. peer_job_status30〜60秒 ごとにポーリングします(過剰なポーリングは避けてください)。

  4. statusrunning の間、オプションの progress には textSnippetlastThoughteventCount が含まれる場合があります(Grok streaming-json / agy stream-json)。

  5. statussucceeded になったら、result を読み、必要に応じて peer_turn を続行します。

  6. peer_job_cancel を使用して、このMCPプロセスが所有するキュー済み/実行中のジョブを停止します。

終了ステータス: succeededfailedtimed_outcancelledorphaned

冪等性: 同じ idempotency_key での再試行は同じジョブを返します(実行中またはスティッキーな終了状態)。timed_out / cancelled / failed の後は、新しいキーを使用して作業を再試行してください。

ジョブと完了した結果は ~/.peer-agents/jobs/ の下に保存されます。実行中のプロバイダープロセスはMCPサーバーの再起動を生き延びません。非終了ジョブはハイドレート時に orphaned とマークされます(セッションがすでに操作をコミットしている場合は除き、その場合は succeeded として回復します)。

7日より古い終了ジョブは、ハイドレート時(PEER_AGENTS_JOB_GC_MAX_AGE_MS で上書き可能)または peer_jobs_gc によってガベージコレクトされます。

非同期ジョブは同期ターンとは別のタイムアウトを使用します:

  • PEER_AGENTS_JOB_TIMEOUT_MS — デフォルト 30分1800000

  • GROK_JOB_TIMEOUT_MS / ANTIGRAVITY_JOB_TIMEOUT_MS — オプションのプロバイダー別上書き

  • PEER_AGENTS_JOB_GC_MAX_AGE_MS — 終了ジョブの保持期間(デフォルト7日)

  • PEER_AGENTS_GROK_TRANSPORTheadless(デフォルト)またはウォームプロセスプール用の acp

  • PEER_AGENTS_GROK_ACP_MAX_CLIENTS — 最大同時ACPプロセス数(デフォルト4)

  • PEER_AGENTS_GROK_ACP_IDLE_MS — ACPのターン間アイドルリサイクル(デフォルト max(5 min, GROK_TURN_TIMEOUT_MS + 60s))。アイドルはジョブのライフタイムではありません。実行中の session/prompt はこれを無視します。

ジョブの間、MCPサーバープロセスを稼働させ続けてください。

Grok トランスポート: headless vs ACP

headless(デフォルト)

acp

呼び出し

毎ターン grok --prompt-file

cwdごとの長時間稼働 grok agent stdio

レイテンシ

毎ターンコールドスタート

ウォームプロセス; マルチターンでプロセス+セッションを再利用

CLI機能

サンドボックス、ワークツリー、発行済み --session-id; ツールループでは --json-schema なし; 常に --output-format streaming-json

サブセット(--always-approve); プロンプトによる構造化されたフィードバック。アイドルはターン間のバックストップであり、ジョブのライフタイムではありません。

有効化

(デフォルト)

PEER_AGENTS_GROK_TRANSPORT=acp

厳格なサンドボックスを伴うワンショットレビューには headless を優先してください。多数のフォローアップ peer_turn を実行し、プロセス起動コストを抑えたい場合は acp を優先してください。

他のエージェントによる使用方法

Codex、Claude、またはその他のMCPクライアントは、stdioを介してこのサーバーに接続します。接続すると、エージェントは他のツールとまったく同じようにピアツールを呼び出せます。

典型的なフロー:

  1. エージェントがdiff、エラーログ、またはタスクの説明を準備します。

  2. peer_review_diffpeer_planpeer_debug などを呼び出します。

  3. サーバーが適切なCLIをヘッドレスモードで起動します。

  4. ピアの応答が sessionId とともに返ってきます。

  5. エージェントは後でその sessionId を使って peer_turn でフォローアップできます。

これにより、プライマリエージェントがCLIの呼び出しを自分で管理することなく、永続的で文脈に沿ったピア会話が可能になります。

前提条件

  • Node.js ≥ 18

  • grok CLI(または GROK_COMMAND を設定)

  • agy CLI(Antigravity、または ANTIGRAVITY_COMMAND を設定)

両方のCLIが認証済みで、マシン上で動作している必要があります。

インストールと使用方法

git clone https://github.com/Rakeen70210/peer-agents-mcp
cd peer-agents-mcp
npm install
npm run build

直接実行:

node dist/index.js

MCPクライアント設定

クライアントのMCPサーバー設定に追加します(典型的なstdio設定の例):

{
  "mcpServers": {
    "peer-agents": {
      "command": "node",
      "args": ["/absolute/path/to/peer-agents-mcp/dist/index.js"],
      "env": {
        "GROK_COMMAND": "/home/you/.grok/bin/grok",
        "ANTIGRAVITY_COMMAND": "/home/you/.local/bin/agy"
      }
    }
  }
}

環境変数

  • GROK_COMMAND — grokバイナリへのパス(デフォルト: grok

  • ANTIGRAVITY_COMMAND — agyバイナリへのパス(デフォルト: agy

  • GROK_ARGS / ANTIGRAVITY_ARGS — 追加CLI引数のJSON配列

  • ANTIGRAVITY_CONVERSATIONS_DIR — フォールバックのセッションID取得に使われるagy会話ストアを上書き(デフォルト: ~/.gemini/antigravity-cli/conversations

  • PEER_AGENTS_WORKTREE_DIR — DIY Grok gitワークツリーの親ディレクトリ(デフォルト: ~/.peer-agents/worktrees

  • PEER_AGENTS_STORAGE_DIR — セッションが永続化される場所(デフォルト: ~/.peer-agents/sessions

  • PEER_AGENTS_ENABLED_PROVIDERS — ピアCLIのホワイトリストのカンマ区切りリスト(grokantigravity)。ホストがGrokの場合は antigravity のみを使用して、ピアがGrokに再入しないようにします。

  • PEER_AGENTS_DISABLED_PROVIDERS — ブラックリストのカンマ区切りリスト(PEER_AGENTS_ENABLED_PROVIDERS が設定されている場合は無視されます)

  • GROK_TURN_TIMEOUT_MS — headlessおよびACP向けのGrok同期タイムアウト(デフォルト 6分 / 360000)。呼び出しごとの timeoutMs 以外の唯一のソース。Grokは PEER_AGENTS_TURN_TIMEOUT_MS読みません

  • PEER_AGENTS_TURN_TIMEOUT_MS — Antigravityの同期フォールバックのみ(デフォルト300秒)。Grokには影響しません。 これを未設定にするか、GROK_TURN_TIMEOUT_MS を明示的に設定してください。以前の120秒のGrokタイムアウトを希望する運用者は GROK_TURN_TIMEOUT_MS=120000 を設定する必要があります。

  • ANTIGRAVITY_TURN_TIMEOUT_MS — オプションのAntigravity同期上書き(デフォルト300秒)

  • PEER_AGENTS_GROK_ACP_IDLE_MS — ACPのターン間アイドルリサイクル(デフォルト max(5 min, GROK_TURN_TIMEOUT_MS + 60s))。実行中の session/prompt はアイドルを無視します(promptDepth)。30分のジョブライフタイムではありません

  • PEER_AGENTS_JOB_TIMEOUT_MS — 非同期ジョブのタイムアウト(デフォルト30分)

  • GROK_JOB_TIMEOUT_MS / ANTIGRAVITY_JOB_TIMEOUT_MS — オプションの非同期プロバイダー別上書き

  • PEER_AGENTS_MAX_PROMPT_CHARS — プロンプトサイズの安全リミット(デフォルト120000)。切り詰め時はtools-against-cwd命令を前置して同期ターンを続行します

マルチターンピアセッション

ルーティングされた各呼び出しは sessionId を返します。peer_turn を使用して会話を続けます:

  • ピアに何が変わったかを伝える

  • 新しいdiffやファイルを添付する

  • 修正を再レビューまたは確認するよう依頼する

セッションはディスクに永続化されるため、MCPサーバーの再起動後も保持されます。

GrokとAntigravityのマルチターンは、最初のターンで会話/セッションIDが取得できた場合、ネイティブCLIの再開を優先します。それ以外の場合、MCPは最近のトランスクリプトをプロンプトに復元します。

Grok CLI 統合(1.0.x+)

Grokピアターンは内部で最新のヘッドレスフラグを使用します(呼び出し側はこれらを渡しません):

懸念事項

動作

大きなプロンプト

常に --prompt-file を使用(argv の上限を回避)

マルチターン

利用可能な場合は --resume <nativeSessionId> を使用。コールドスタート時は spawn 前に --session-id を発行。フォールバックとして MCP トランスクリプトのリハイドレートを使用

レビュアー / 批評者

--sandbox read-only--always-approve、編集ツールを拒否、Web 検索なし、--no-plan--no-subagents

プランナー

--sandbox read-only--permission-mode plan--always-approve

実装者

--sandbox workspace--always-approve

権限

レビュアー/批評者/プランナーは --always-approve を使用する(レビュアーは 決して --permission-mode default にしない)。これにより、非 TTY の MCP 子プロセスがクリック待ちにならない。読み取り専用サンドボックス、--disallowed-tools search_replace,write、破壊的な bash を拒否する --deny を維持する。

peer_implement_async

デフォルトで git worktree add + --cwd による git worktree 分離(オプトアウトは use_worktree: false)。Grok 1.0 ヘッドレスは --worktree を無視する。

レビュー結果

最終テキストからの findings JSON のベストエフォート解析。散文も有効なレビューとみなす。Grok ヘッドレスは --json-schema を渡さない(このフラグは 1.0.5 でツールループを中断させる)。

リスク / セキュリティ

--effort を引き上げ。追加の自己検証として --rules を使用(Grok 1.0 は --check を削除)。高 effort は durationAdvisory / *_async の理由であり、--effort high を省略する理由ではない。

スペシャリスト

セキュリティレビュー / アーキテクチャ計画用に --agent を同梱

同期 + 非同期出力

Grok ヘッドレスでは常に --output-format streaming-json(CLI が依然として単一オブジェクトを出力する場合は json-envelope にフォールバック)。peer_job_status では progress を使用。

ACP プール(オプトイン)

PEER_AGENTS_GROK_TRANSPORT=acp によるウォームプロセス再利用。アイドルはジョブのライフタイムではなくターン間のバックストップ。実行中の session/prompt はこれを無視する。

コストテレメトリ

結果の metricsusagenum_turnsstopReason、存在する場合は cost)

Antigravity CLI 統合(agy 1.1.8+)

Antigravity のピアターンは内部的に print モードを使用する(呼び出し側はこれらのフラグを渡さない):

懸念事項

動作

呼び出し

agy -p … --print-timeout … --dangerously-skip-permissions --output-format json --disable-slash-commands

マルチターン

json の conversation_id から --conversation <id> を使用(*.db のディレクトリスナップショットはフォールバックのみ)

レビュー結果

レビュアー/批評者向けの構造化された findings に --json-schema を使用。structured_outputstructured にマッピング

レビュアー / 批評者

--sandbox

プランナー

--sandbox --mode plan

実装者

--mode accept-edits

リスク

Grok と同じリスク/複雑性マップから --effort を設定

ワークスペース

リポジトリパスが設定されている場合は --add-dir <cwd> を使用

エージェント

指定されている場合はオプションで --agent を使用

スラッシュコマンド / スキル

ピアのプロンプトが /commands を展開できないよう、常に --disable-slash-commands を使用

非同期の進捗

非同期ジョブでは --output-format stream-json + peer_job_statusprogress を使用

ヘルスチェック

優先的に agy models を使用。フォールバックとして短い pong ターンを実行

コストテレメトリ

json エンベロープから metrics を取得(usagenum_turns

agy にはまだ worktree、--prompt-file、ACP トランスポートがない。同期ターンは --output-format json のまま。ストリーミングされるのはバックグラウンドジョブのみ。

設計メモ

  • サーバーはリポジトリ自体を変更することはない。既にインストールされている CLI を実行するだけである。

  • セッショントランスクリプト内のユーザーメッセージは、呼び出し元の視点からラベル付けされる(通常は "Codex")。

  • 冪等性キーがサポートされており、同じキーでの繰り返し呼び出しは安全である。

  • 入力が薄すぎる場合(ファイルや差分の欠落など)、コンテキスト品質のヒントが返される。

  • 実装のハンドオフはデフォルトで分離された git worktree(そこへの --cwd)を使用するため、ピアがダーティなメインツリーを上書きしない。

ライセンス

MIT(またはリポジトリで指定されたライセンス)。

Available Tools

13 tools
peer_askC

Before calling: read relevant source files and attach full contents via files. Pass complete diffs/logs — never prose summaries. Set task with goals, affected behavior, and specific concerns. General knowledge or grounded Q&A — routes to Antigravity.

ParametersJSON Schema
NameRequiredDescriptionDefault
questionYesRequired. The decision or question, plus what constraints and tradeoffs the answer must address.
repo_pathYesAbsolute path to the repository root the peer should work in (e.g. /home/user/my-app).
contextNoBackground the peer needs: prior decisions, relevant code paths, docs links, or constraints.
filesNoChanged source files and binary attachments (screenshots, PDFs). Use correct file extensions for images/PDFs and pass base64 or data-URI content.
taskNoHuman-readable session label: what you are trying to achieve, affected behavior, and specific concerns for the peer.
idempotency_keyYesStable key for this operation (e.g. review-auth-jwt-1). Reuse the same key when retrying after timeout.

TDQS

C2.7/5.0
Behavior3/5

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

With no annotations, the description carries full burden. It discloses the routing behavior to Antigravity and mentions automatic staging of binaries. However, it omits details on mutation, authentication, rate limits, or side effects beyond the routing.

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 two sentences but dense and run-on. It mixes instructions, conditions, and routing info in a stream-like manner. Could be better organized with bullet points or clearer separation of purpose vs. usage.

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 6 parameters, no output schema, and complex routing behavior, the description should explain what the tool returns or the outcome. It lacks any mention of return value, response format, or post-call state, leaving the agent uncertain about what to expect.

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 already explains all parameters. The description adds minimal extra meaning (e.g., 'Binary attachments are staged to disk...' in the files parameter is already covered by schema). Baseline score of 3 is appropriate.

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

Purpose2/5

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

The description focuses on pre-call instructions rather than stating the tool's purpose. It vaguely mentions 'General knowledge or grounded Q&A — routes to Antigravity', but the primary verb and resource are unclear. It does not effectively distinguish from sibling tools like peer_debate or peer_plan.

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 provides explicit before-calling steps (read files, attach content, set task) and mentions routing to Antigravity for certain queries. However, it lacks a clear 'when to use' vs 'when not to use' and does not reference specific sibling tools as alternatives.

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

peer_compareA

Before calling: read relevant source files and attach full contents via files. Pass complete diffs/logs — never prose summaries. Set task with goals, affected behavior, and specific concerns. Low-level dual-CLI comparison (prefer phase tools for routing).

ParametersJSON Schema
NameRequiredDescriptionDefault
messageYesExact question both peers must answer independently.
repo_pathYesAbsolute path to the repository root the peer should work in (e.g. /home/user/my-app).
taskYesShort label for this comparison session.
providersNo
diffNoFull unified diff or patch output. Never substitute a prose summary for the actual diff.
filesNoChanged source files and binary attachments (screenshots, PDFs). Use correct file extensions for images/PDFs and pass base64 or data-URI content.
modeNo
systemNo
parallelNo
idempotency_keyYesStable key for this operation (e.g. review-auth-jwt-1). Reuse the same key when retrying after timeout.

TDQS

A3.6/5.0
Behavior2/5

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

No annotations are provided, so the description bears full responsibility. It mentions 'dual-CLI comparison' but does not explain the internal behavior, such as whether it modifies state, runs external processes, or returns results. The focus is on input preparation rather than tool effects.

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 few short sentences with clear front-loading of critical upfront instructions. Every sentence adds value, with no redundant or verbose phrases.

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?

With 10 parameters, no output schema, and no annotations, the description lacks detail on return values, completion behavior, or what happens after invocation. It explains preparation well but omits post-call context, leaving the agent unsure of the tool's overall operation.

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 60%, and the description adds some context, e.g., for 'files' it says 'use correct file extensions...pass base64 or data-URI content.' However, it largely reiterates schema descriptions for parameters like message and repo_path, not adding substantial new meaning.

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 it is a 'low-level dual-CLI comparison' and instructs to attach files and diffs. It clearly indicates a comparison function, distinguishing it from sibling tools like peer_ask or peer_debate, but does not fully articulate the specific verb-resource relationship.

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 provides explicit instructions: 'Before calling: read relevant source files and attach full contents via files. Pass complete diffs/logs — never prose summaries.' It also advises to 'prefer phase tools for routing,' guiding when not to use this tool. This gives clear usage context and alternatives.

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

peer_debateA

Before calling: read relevant source files and attach full contents via files. Pass complete diffs/logs — never prose summaries. Set task with goals, affected behavior, and specific concerns. Independently compare Plan A vs Plan B without cross-contamination.

ParametersJSON Schema
NameRequiredDescriptionDefault
taskYesWhat decision this debate must resolve and what success looks like.
plan_aYesFull Plan A: steps, tradeoffs, risks, and verification approach.
plan_bYesFull Plan B: steps, tradeoffs, risks, and verification approach.
repo_pathYesAbsolute path to the repository root the peer should work in (e.g. /home/user/my-app).
risk_levelNoUse high for auth, payments, migrations, concurrency, and public API changes.
idempotency_keyYesStable key for this operation (e.g. review-auth-jwt-1). Reuse the same key when retrying after timeout.

TDQS

A3.5/5.0
Behavior3/5

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

With no annotations, the description carries the full burden for behavioral disclosure. It explains the need for independent comparison and idempotency key for retries, but does not describe side effects, output format, or behavior under error conditions.

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 concise (4 sentences) and front-loaded with 'Before calling:', which is clear. However, it packs multiple instructions into a single paragraph, slightly reducing readability.

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 no output schema, the description does not explain what the tool returns or how results are presented. It covers preparation well but lacks information on the tool's output, which is needed for complete understanding.

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 100%, baseline 3. The description adds meaning by instructing how to use risk_level (e.g., high for auth, payments) and advising on setting task with specific concerns. This goes beyond the schema descriptions.

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 is for independently comparing Plan A vs Plan B, which aligns with the tool name 'peer_debate'. It specifies the input requirements (files, diffs, task) but does not explicitly distinguish from sibling tools like peer_compare.

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 provides prerequisites and instructions for preparing inputs (read files, attach contents, set task with goals). However, it lacks explicit guidance on when to use this tool versus alternatives (e.g., peer_compare) and does not mention 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.

peer_debugA

Before calling: read relevant source files and attach full contents via files. Pass complete diffs/logs — never prose summaries. Set task with goals, affected behavior, and specific concerns. Route a debugging request after failures.

ParametersJSON Schema
NameRequiredDescriptionDefault
error_logYesRequired. Full stderr, stack trace, assertion text, and failing test output — not a one-line summary.
repo_pathYesAbsolute path to the repository root the peer should work in (e.g. /home/user/my-app).
attempted_fixesNoEverything already tried and why each failed. Required when failed_attempts > 0.
failed_attemptsNoHow many fix attempts have already failed on this bug.
diffNoFull unified diff or patch output. Never substitute a prose summary for the actual diff.
filesNoChanged source files and binary attachments (screenshots, PDFs). Use correct file extensions for images/PDFs and pass base64 or data-URI content.
taskNoHuman-readable session label: what you are trying to achieve, affected behavior, and specific concerns for the peer.
idempotency_keyYesStable key for this operation (e.g. review-auth-jwt-1). Reuse the same key when retrying after timeout.

TDQS

A3.8/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of disclosing behavioral traits. It does not mention whether the tool is read-only or destructive, what side effects occur (e.g., file stageing), or any required permissions. The only hint is the presence of an idempotency key, but its significance is not explained.

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 structured with clear guidance starting with 'Before calling', and each sentence serves a purpose. It is not overly verbose, though it could be slightly more concise by reducing repetitions (e.g., 'Pass complete diffs/logs' and later 'Full unified diff or patch output'). Overall, it is well-organized 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?

For a tool with 8 parameters and no output schema, the description covers the input side well but fails to explain what the tool returns or how to interpret the response. It does not address expected behavior after routing the request (e.g., synchronous vs. asynchronous, result format). This leaves the agent without a complete picture.

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 input schema covers 100% of parameters with descriptions, so the baseline is 3. The description adds valuable emphasis on how parameters should be used (e.g., 'Pass complete diffs/logs — never prose summaries', 'Set task with goals, affected behavior...'), which goes beyond the schema by providing behavioral instructions that improve correct invocation.

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 is for routing a debugging request after failures, and it distinguishes itself from sibling tools like peer_ask or peer_plan by specifying the context of debugging. The verb 'route' combined with 'debugging request' defines a specific action and resource.

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 explicitly tells the user when to use the tool ('after failures') and provides preparatory instructions ('Before calling: read relevant source files...'). It does not explicitly state when not to use it or list alternatives, but the context is clear enough for an agent to infer appropriate usage.

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

peer_healthA

Check whether Grok and Antigravity CLIs are responsive

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4/5.0
Behavior3/5

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

No annotations are provided, so the description must disclose behavioral traits. It states the action (check responsiveness) but lacks details on side effects (presumably none), required permissions, or output format. The verb 'check' implies read-only, but the description does not explicitly confirm safety or what happens on failure.

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?

Single sentence with no filler. Every word contributes to the purpose. Front-loaded with the key action and target.

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 zero-parameter, no-output-schema tool, the description covers the essential behavior. However, it could briefly mention how the result is returned (e.g., boolean status) to avoid ambiguity. Still, the simplicity makes it mostly complete.

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?

Input schema has zero parameters (schema coverage 100% vacuously). Description adds no parameter info because none exist. Baseline for 0 parameters is 4, and the description does not need to elaborate 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?

Description clearly states the verb 'Check' and the specific resources 'Grok and Antigravity CLIs', making the tool's purpose immediately clear. It distinguishes itself from sibling tools (e.g., peer_ask, peer_debate) which involve querying or discussing, while this is a simple health check.

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?

Description implies usage (when you need to check CLI responsiveness) but provides no explicit guidance on when to use alternatives or when not to use this tool. Given the many sibling tools, some contextual tips would help, but the use case is straightforward.

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

peer_list_sessionsB

List persisted peer sessions, optionally filtered by repo path

ParametersJSON Schema
NameRequiredDescriptionDefault
repo_pathNo

TDQS

B3.1/5.0
Behavior2/5

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

No annotations provided; description adds minimal behavioral context beyond 'List' implying read-only. Does not disclose auth requirements, rate limits, or any side effects, though listing is inherently low-risk.

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?

Single sentence, 10 words, front-loaded with verb and resource. No wasted text; everything earns its place.

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 no annotations, no output schema, and only one parameter, the description omits return format, pagination, or any additional context about sessions. Incomplete for a tool with no other structured 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?

With 0% schema description coverage, the description partially compensates by stating 'repo_path' is an optional filter, but does not explain what the path refers to (e.g., local filesystem vs. remote repository).

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 clearly states the action ('List') and the resource ('persisted peer sessions') with a specific optional filter ('by repo path'), which distinguishes it from sibling tools like peer_ask or peer_reset.

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 on when to use this tool versus alternatives, such as checking existing sessions before starting a new one or debugging. Missing when-not-to-use scenarios or prerequisites.

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

peer_planA

Before calling: read relevant source files and attach full contents via files. Pass complete diffs/logs — never prose summaries. Set task with goals, affected behavior, and specific concerns. Route an implementation planning request to the best peer model(s).

ParametersJSON Schema
NameRequiredDescriptionDefault
taskYesRequired. Goal, success criteria, affected modules, and what 'done' looks like.
repo_pathYesAbsolute path to the repository root the peer should work in (e.g. /home/user/my-app).
constraintsNoHard limits: API compatibility, performance budgets, forbidden approaches, deadlines, out-of-scope.
repo_summaryNoHow the repo is structured today — key modules, patterns, and entry points relevant to this task.
risk_levelNoUse high for auth, payments, migrations, concurrency, and public API changes.
complexityNocomplex when the change spans multiple modules, data paths, or deployment steps.
filesNoChanged source files and binary attachments (screenshots, PDFs). Use correct file extensions for images/PDFs and pass base64 or data-URI content.
idempotency_keyYesStable key for this operation (e.g. review-auth-jwt-1). Reuse the same key when retrying after timeout.

TDQS

A3.5/5.0
Behavior2/5

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

No annotations are provided, so the description carries full burden. It discloses only that the tool routes to a peer model, but lacks details on side effects, permissions, rate limits, return values, or whether state is modified. This is insufficient for a tool with 8 parameters and no output schema.

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?

Three sentences, concise and efficient. The first sentence sets a precondition, the second gives guidance, and the third states the purpose. However, the core purpose is last, not front-loaded.

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 8 parameters, 3 required, and no output schema, the description is brief and does not explain return values, error handling, or what happens after routing. It lacks completeness for a planning tool that delegates to another model.

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 descriptions. The description adds context for `files` (attach full contents, never prose summaries) and `task` (goals, affected behavior), but does not mention other parameters like `repo_path`, `constraints`, `repo_summary`, `risk_level`, `complexity`, or `idempotency_key`. It adds moderate value beyond the schema.

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 this tool routes an implementation planning request to the best peer model, using verbs like 'Route' and 'planning request'. It distinguishes from sibling tools that focus on asking, debating, or debugging, though it doesn't explicitly differentiate.

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 provides explicit pre-call instructions: read source files, attach full contents via `files`, pass diffs/logs, and set `task` with goals. It also prohibits prose summaries, offering clear guidance on proper usage.

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

peer_resetC

Clear a session transcript or delete the session entirely

ParametersJSON Schema
NameRequiredDescriptionDefault
session_idYes
idempotency_keyYesStable key for this operation (e.g. review-auth-jwt-1). Reuse the same key when retrying after timeout.
expected_versionNo
keep_metadataNo

TDQS

C2/5.0
Behavior2/5

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

Destructive operation is implied but no details on irreversibility, auth requirements, or what exactly gets cleared/deleted. No annotations to supplement.

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

Conciseness2/5

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

Too short and vague to convey essential context. Single sentence fails to explain tool behavior sufficiently.

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

Completeness1/5

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

Missing output schema, no annotations, 4 parameters mostly undocumented; description incomplete for safe effective use.

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 coverage is 25% (only idempotency_key described). Description adds no parameter meaning; does not compensate for missing schema descriptions.

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

Purpose3/5

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

Description states it clears or deletes a session, but doesn't specify which condition triggers which action. It distinguishes from siblings as reset/delete operation.

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 on when to use this tool versus other peer tools, no context about prerequisites or alternatives.

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

peer_review_diffB

Before calling: read relevant source files and attach full contents via files. Pass complete diffs/logs — never prose summaries. Set task with goals, affected behavior, and specific concerns. Route a diff review to the best peer model(s) based on focus and risk.

ParametersJSON Schema
NameRequiredDescriptionDefault
diffYesRequired. Full unified diff (`git diff`, `git diff --cached`, or patch file). Do not summarize.
repo_pathYesAbsolute path to the repository root the peer should work in (e.g. /home/user/my-app).
focusNoPrimary review lens. Pair with a detailed diff, related files, and a rich `task` describing risks.
risk_levelNoUse high for auth, payments, migrations, concurrency, and public API changes.
filesNoChanged source files and binary attachments (screenshots, PDFs). Use correct file extensions for images/PDFs and pass base64 or data-URI content.
taskNoHuman-readable session label: what you are trying to achieve, affected behavior, and specific concerns for the peer.
needs_speedNoPrefer a faster peer when true; still include full context.
idempotency_keyYesStable key for this operation (e.g. review-auth-jwt-1). Reuse the same key when retrying after timeout.

TDQS

B3.2/5.0
Behavior2/5

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

With no annotations, the description must disclose behavior but only mentions 'route to best peer model' without explaining routing logic, side effects, output format, or idempotency implications. The idempotency_key parameter suggests retry safety, but the description is silent on 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 three sentences with zero wasted words. It front-loads the most critical instruction ('Before calling: read...') and provides crisp, actionable guidance.

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 8 parameters (3 required) and no output schema, the description covers only diff, files, and task. It omits context for repo_path, focus, risk_level, needs_speed, and idempotency_key, leaving the agent to rely solely on schema descriptions.

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%, so baseline is 3. The description reinforces 'files' and 'task' usage (e.g., full contents, specific concerns) but adds no new meaning beyond the schema. It does not elaborate on repo_path, focus, risk_level, or other parameters.

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 routes a diff review to peer models based on focus and risk. However, it does not differentiate from sibling tools like peer_debate or peer_compare, leaving ambiguity about when each is appropriate.

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 provides explicit prerequisites (read files, attach full contents, pass diffs, set task) and a 'never prose summaries' rule. It gives clear context for use but lacks exclusion criteria or comparison to the extensive list of peer sibling tools.

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

peer_summarizeC

Return the rolling session summary and unresolved issues

ParametersJSON Schema
NameRequiredDescriptionDefault
session_idYes

TDQS

C2.4/5.0
Behavior2/5

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

With no annotations, the description must fully convey behavioral traits. It states 'Return' implying read-only, but does not confirm safety, auth needs, or whether the summary is stateful. The term 'rolling' introduces ambiguity about session state management.

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 wasted words, achieving conciseness. However, it is so brief that it underspecifies the tool, sacrificing clarity for brevity.

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 lack of output schema and annotations, the description should provide more context about the return format, the nature of the summary, and how unresolved issues are defined. It fails to do so, leaving significant gaps.

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?

The sole parameter 'session_id' has no schema description (0% coverage), and the tool description does not explain its purpose or format. The description adds no value beyond the parameter name.

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 returns a rolling session summary and unresolved issues, which is distinct from sibling tools like peer_ask or peer_debate. However, it does not elaborate on what 'rolling' means or the context of sessions.

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. The description lacks any mention of use cases, prerequisites, or when to avoid it, leaving the agent to infer usage from the tool name alone.

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

peer_transcriptC

Export recent transcript turns

ParametersJSON Schema
NameRequiredDescriptionDefault
session_idYes
max_turnsNo
formatNo

TDQS

C2.6/5.0
Behavior2/5

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

Without annotations, the description carries full burden but only states 'export', implying a read operation. It does not disclose permission requirements, mutability, or side effects. No information on output format or behavior for edge cases.

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?

Extremely concise at 4 words, front-loading the core action. However, conciseness sacrifices necessary detail, making it under-specified for reliable use.

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 3 parameters and no output schema or annotations, the description lacks information on 'recent' semantics, output structure, pagination, or error handling. Incomplete for effective agent use.

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 0%; description adds no meaning to parameters beyond their names. The required session_id, optional max_turns, and enum format are not explained. No examples or clarifications provided.

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 verb 'export' and resource 'transcript turns', indicating functionality. It distinguishes from siblings like peer_list_sessions (list sessions) and peer_summarize (summarize) by focusing on exporting recent turns. However, it lacks explicit differentiation from similar tools.

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 on when to use this tool versus alternatives like peer_turn, peer_list_sessions, or peer_summarize. Missing context about prerequisites or scenarios.

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

peer_turnC

Before calling: read relevant source files and attach full contents via files. Pass complete diffs/logs — never prose summaries. Set task with goals, affected behavior, and specific concerns. Follow up in an existing routed peer session (use session_id from a prior result).

ParametersJSON Schema
NameRequiredDescriptionDefault
session_idYessession_id from results.<cli>.sessionId in a prior routed tool response.
messageYesWhat changed since the last turn, what you fixed, and what you want re-checked.
diffNoFull unified diff or patch output. Never substitute a prose summary for the actual diff.
filesNoChanged source files and binary attachments (screenshots, PDFs). Use correct file extensions for images/PDFs and pass base64 or data-URI content.
idempotency_keyYesStable key for this operation (e.g. review-auth-jwt-1). Reuse the same key when retrying after timeout.
expected_versionNoPass version from the last turn to avoid stale-session races.

TDQS

C2.5/5.0
Behavior2/5

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

No annotations are provided, so the description must fully disclose behavior. It tells the agent what to prepare but not what the tool does internally (e.g., how it processes the turn, side effects, response format). The behavioral impact is largely hidden.

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 relatively short but contains extraneous instructions that are more procedural than definitional. The mismatch between 'task' and 'message' wastes some clarity. Overall, it is acceptably concise but could be more focused.

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 complexity of a peer review tool with 6 parameters and no output schema, the description is incomplete. It fails to explain what the tool returns, how to continue the session, or what agents should expect after calling peer_turn. Key contextual gaps remain.

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%, so the baseline is 3. The description adds some context by instructing to attach full contents via `files` and never use prose summaries for diffs. However, it incorrectly refers to a 'task' parameter that does not exist in the schema, which detracts from semantic clarity.

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

Purpose3/5

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

The description implies the tool is for following up in an existing peer session, but it does not explicitly state that it sends a new turn in a peer review. The phrase 'Set `task` with goals, affected behavior, and specific concerns' conflicts with the schema, which uses 'message' instead of 'task'. This mismatch reduces clarity.

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 procedural instructions (read files, attach diffs) but does not explain when to use this tool versus sibling tools like peer_ask or peer_debate. There is no guidance on alternatives or 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.

peer_verifyB

Before calling: read relevant source files and attach full contents via files. Pass complete diffs/logs — never prose summaries. Set task with goals, affected behavior, and specific concerns. Route verification of tests/build output.

ParametersJSON Schema
NameRequiredDescriptionDefault
test_outputYesRequired. Complete test runner or build output, including failures, skips, and timing if relevant.
repo_pathYesAbsolute path to the repository root the peer should work in (e.g. /home/user/my-app).
diffNoFull unified diff or patch output. Never substitute a prose summary for the actual diff.
filesNoChanged source files and binary attachments (screenshots, PDFs). Use correct file extensions for images/PDFs and pass base64 or data-URI content.
taskNoHuman-readable session label: what you are trying to achieve, affected behavior, and specific concerns for the peer.
risk_levelNoUse high for auth, payments, migrations, concurrency, and public API changes.
idempotency_keyYesStable key for this operation (e.g. review-auth-jwt-1). Reuse the same key when retrying after timeout.

TDQS

B3.3/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden. It discloses prerequisites and input requirements but fails to mention side effects, return values, error conditions, or any behavioral impacts beyond 'route verification.' This is insufficient for safe tool invocation.

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 concise with four sentences and no wasted words. It is front-loaded with critical instructions, making it efficient for quick reading.

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 7 parameters and no output schema, the description omits key context: what the tool returns, error handling, idempotency key usage, and prerequisites like repo path accessibility. It feels incomplete for a tool that likely performs significant actions.

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 baseline is 3. The description reinforces proper usage (e.g., 'never prose summaries' for diff) but does not add new semantic meaning beyond the schema's parameter descriptions.

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 'Route verification of tests/build output,' which clearly indicates the tool's purpose. However, it does not explicitly differentiate from sibling tools like peer_review_diff or peer_debug, leaving 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 Guidelines4/5

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

The description provides explicit instructions on how to prepare inputs ('read relevant source files and attach full contents via files', 'pass complete diffs/logs — never prose summaries', 'set task with goals'). It implies usage for verification tasks but lacks explicit when-not-to-use guidance or alternatives.

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. 13 tool updatesv0.1.0
    • First observedpeer_ask
    • First observedpeer_compare
    • First observedpeer_debate
    • First observedpeer_debug
    • First observedpeer_health
    • First observedpeer_list_sessions
    • First observedpeer_plan
    • First observedpeer_reset
    • First observedpeer_review_diff
    • First observedpeer_summarize
    • First observedpeer_transcript
    • First observedpeer_turn
    • First observedpeer_verify

TDQS

B3.2/5.0
Disambiguation3/5

While each tool has a distinct purpose, the descriptions share extensive boilerplate text (e.g., 'Before calling: read relevant source files...'), making it harder for an agent to quickly differentiate between tools like peer_ask, peer_compare, and peer_debate. The specific routing information at the end helps but requires careful reading.

Naming Consistency5/5

All tools follow the snakename pattern with the consistent prefix 'peer', using varied but appropriate verbs/verb phrases. No mixing of conventions like camelCase or different prefixes.

Tool Count5/5

13 tools is well within the ideal 3-15 range for a server focused on peer agent interactions. Each tool covers a distinct operation without unnecessary bloat or missing essentials.

Completeness4/5

The tool set covers a broad range of peer agent workflows: asking, comparing, debating, debugging, planning, reviewing, verifying, and session management. Minor gaps like explicit session creation are implicitly handled via peer_turn, so no critical missing operations.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

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

Related MCP Connectors

Related MCP Servers

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/Rakeen70210/peer-agents-mcp'

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