Skip to main content
Glama

cross-review

MCP server orchestrating API-first cross-review between Claude, ChatGPT Codex, Gemini, DeepSeek, Grok, and Perplexity with unanimous convergence gates.

status: stable release npm CI Publish runtime: API-only license: Apache 2.0

Upgrade from the published registry.

npm upgrade -g @lcv-ideas-software/cross-review --ignore-scripts --allow-git=none --allow-remote=none
# or using the GitHub Packages mirror:
npm upgrade -g @lcv-ideas-software/cross-review --@lcv-ideas-software:registry=https://npm.pkg.github.com --ignore-scripts --allow-git=none --allow-remote=none

npm 12 global operations evaluate the whole global dependency tree, not this package's project policy in isolation. The command therefore disables every install-time script and keeps Git and remote-URL dependencies blocked. The published package has no install lifecycle and is tested in this mode. Never add --dangerously-allow-all-scripts, and do not install a locally built source tree or tarball as a substitute for the published registry release.

Status. Stable. The current source/release target is v05.00.00 (package 5.0.0). Use the npm badge or npm view @lcv-ideas-software/cross-review version for registry state and server_info for the version actually loaded by an MCP window. See CHANGELOG.md for the full release history.

Project renamed 15/05/2026. This project was previously published as @lcv-ideas-software/cross-review-v2 (versions 0.x through 3.7.5). v4.0.0 is the first release under the shorter canonical name @lcv-ideas-software/cross-review after the companion cross-review-v1 project was discontinued and archived. Historical CHANGELOG entries below v4.0.0 reference the prior name verbatim.

The version history at a glance:

Release

Scope

v05.00.00

Major: legacy Sonar dimensions removed. estimateCost no longer prices them; the five Sonar-only rate-card keys stay accepted by the schema as deprecated no-ops named at boot; a central config the schema rejects is now announced at boot.

v04.06.08

Evidence custody fixes. A provider-escaped GitHub URL quoted from the attachment no longer downgrades a READY vote; a relator may name a file the admitted unified diff materializes.

v04.06.07

No manual gesture. A push to main that changes the version publishes to npmjs.com and GitHub Packages and then records the Release with the run's own token.

v04.06.06

Native release path. The repository-owned tagging, dispatch and policy machinery leaves; publishing runs on a published GitHub Release with npm Trusted Publishing and provenance.

v04.06.05

Native organization governance. Actions lockfile, advanced CodeQL workflow, merge-queue triggers and the v04.05.26 recovery workflow leave; the canonical Dependabot auto-merge and the organization workflows enter; the release gates read the CodeQL default-setup analyses.

v04.06.04

Makes evidence conflict correlation linear and argv-exact, and makes future/current model parsing clause-aware through finite English/Portuguese frames, including replace … with, update … to, Portuguese present qualifiers, and semicolon isolation.

v04.06.03

Restores fail-closed anti-deception semantics for conflicting executions of the same command, additive not only/não só model claims, and current-state claims beside planning language, while preserving independent RED/GREEN records and genuine future targets.

v04.06.02

Republish of v04.06.01 with a self-contained pin-validator action (bundled parser, clean-runner proven), reference-resolved local action manifests and a location-scoped Scorecard allowance.

v04.06.01

Republish of v04.06.00 with the supply-chain gate fix: minimal per-job GITHUB_TOKEN permissions across all workflows, TokenPermissionsID back under Scorecard watch, and a real pinning revalidation in the Publish gate covering the immutable $/ same-repo references.

v04.06.00

Migrates the Perplexity peer to the Agent API (perplexity/kimi-k3) before the Sonar sunset of 27/09/2026, moves Grok to grok-4.6 with xhigh effort, refreshes provider rate documentation, and makes the relator lottery smoke deterministic with an explicit chi-square bound.

v04.05.39

Prevents repeated caller-token permission recovery in one boot, regenerates only after a confirmed disappearance, and makes the trusted-console Windows recipe replace only a protected-empty DACL before verifying the exact result.

v04.05.38

Locks the T2#10 source-regex debt at its current smoke=129, source-contract=29, total 158 baseline so a new broad source-style regex pin cannot consume the two-pin allowance left by the older v4.4.6 budget.

v04.05.37

Makes Windows caller-token ACL hardening interruption-tolerant, repairs one protected-empty-DACL denial without looping or rotating tokens, binds path/SID data outside the PowerShell command parser, and adds a dedicated Windows regression gate.

v04.05.36

Repairs byte-exact JSON citation grounding, preserves active caller evidence during full decision retry, accepts documented terminal Perplexity aggregate content, and refreshes the signed immutable central automation pins.

v04.05.35

Hardens the public-package boundary, moves administrative release checks into the protected non-deployment environment, updates TypeScript ESLint to 8.66.0, and makes Windows parent-process forensics tests deterministic without changing the 500 ms best-effort runtime cap.

v04.05.34

Removes two redundant control-flow expressions reported by GitHub Code Quality while preserving the budget-preflight behavior and the lazy evidence-attachment fallback used when truthfulness preflight is disabled.

v04.05.33

Supersedes the unpublished 4.5.32 tag by recognizing npm's documented 404 identity concealment only in the negative OIDC probe, matching npm's scoped-package escaping, retaining an exact-201 positive gate, and resolving OpenAI 7.3.0.

v04.05.32

Bootstraps checksum-verified npm 12.0.2, proves both npm OIDC environment boundaries before source execution, splits privileged publication from verification, and remediates the current Hono, brace-expansion, fast-uri and ip-address advisories.

v04.05.31

Supersedes the unpublished 4.5.30 tag by making the clean-consumer license gate follow the exact bundled MCP SDK version instead of a stale hard-coded version.

v04.05.30

Updates the OpenAI runtime to 7.0.0 and bundled MCP SDK to 1.30.0; completely removes Socket Security and StepSecurity; prevents redundant immutable-tag publication; fails closed on ambiguous GitHub API status; and runs direct Zizmor through checksum-verified uv.

v04.05.29

Supersedes the unpublished 4.5.28 tag and locks brace-expansion 5.0.8 after its newly disclosed high-severity DoS advisory blocked publication; also retains the descriptor-based caller-token TOCTOU fix verified by CodeQL.

v04.05.28

Adds opt-in Claude Opus 5 support; bounds Evidence Broker amplification without weakening blockers; repairs interrupted-session lifecycle, checklist provenance and truthfulness diagnostics; hardens caller-token ACLs; and makes event polling compact.

v04.05.27

Updates the Anthropic and OpenAI SDKs, makes manifests and lockfiles the dependency source of truth, and ships hardened dependency automation with verified release recovery.

v04.05.26

Bundles the MCP runtime and hardens exact-SHA automation, immutable releases, and current provider dependencies.

v04.05.25

Resolves the three registry advisories in the lockfile: body-parser 2.3.0, nested protobufjs 7.6.5, and brace-expansion 5.0.7; updates the one reviewed install-script approval to protobufjs@7.6.5. Scorecard and Auto-tag remain fail-closed; no alert was suppressed.

v04.05.23

Accepts npm 12's one-item npm view --json response only when it contains one metadata object; empty, multiple, and malformed responses fail closed before the integrity-bound audit lock and mandatory npm audit signatures gate.

v04.05.22

Decodes npm's Sigstore DSSE envelope before binding the SLSA provenance to the protected tag, publication workflow, and immutable source commit; the later cryptographic npm audit signatures gate remains mandatory.

v04.05.21

Aligns the durable effective-config regression with JSON semantics: unset optional properties are omitted consistently from persisted snapshots and their SHA-256 canonical form.

v04.05.20

Restores a deterministic CI fixture for the pre-publish budget/cache contract: Gemini has an explicit test rate and a manually known settlement cannot retain a stale unknown-spend marker. The production financial gate remains fail-closed.

v04.05.19

Hardens the npm publication gate without weakening artifact verification: an integrity-bound temporary lock drives npm ci and npm audit signatures, while visibility no longer pipes downloaded data into Node.

v04.05.18

Closes the 4.5.16–4.5.17 session-audit findings: symmetric grounding for blocking verdicts, per-peer write-through durability, terminal preflight audit trails, bounded evidence judges, complete cache/config telemetry and action-oriented compact reports.

v04.05.17

Publishes the accumulated provider/toolchain maintenance, raises the Anthropic SDK range and keeps npm 12 dependency scripts fail-closed with an exact, reviewed Google Gen AI 2.12.0 no-op lifecycle permission.

v04.05.16

Makes background observation compact and race-safe: summary polling by default, explicit forensic detail, real HTML-neutralized Markdown, durable cross-host job status and idempotent late-cancellation results with final state.

v04.05.15

Ships the Evidence Broker continuity fix with the complete Dependabot hardgate: supported npm resolver, npm 12 build/release pin, pip-compile source+hash lock, grouped Python updates and concurrent-base merge retry.

v04.05.14

Restores Evidence Broker continuity safely: clean grounded historical READY sources are replayed locally without stale prompt reuse, strict same-owner aliases collapse, git -C ... diff --check is recognized and final convergence is persisted consistently.

v04.05.13

Eliminates a repeated ReDoS class in Evidence Broker symbol extraction and makes publication wait for CodeQL on the exact SHA plus zero actual open code-scanning alerts.

v04.05.12

Fixes Evidence Broker convergence: direct rounds receive unresolved checklist IDs, grounded same-requester rechecks close the correct item, natural-language alternatives no longer deadlock, and irrelevant or partial evidence still fails closed.

v04.05.11

Makes autonomous evidence routing unambiguous in the MCP contract: AI evidence is persisted automatically through review starters, while the optional operator authority-promotion tool cannot be mistaken for a mandatory human upload step.

v04.05.10

Retries npm attestation propagation independently from package visibility and follows the registry-advertised pathname on the pinned npm registry origin, preventing false-negative post-publish failures without weakening SLSA provenance requirements.

v04.05.09

Keeps server-authored READY remediation out of peer caller_requests, preventing unresolvable evidence-checklist blockers while preserving real peer asks and the complete decision audit trail.

v04.05.08

Hash-pinned npm 12.0.1 bootstrap across CI/release jobs and trusted default-branch auto-tag checkout with exact successful-CI SHA gating; closes code-scanning alerts 32–38.

v04.05.07

Complete 4.5.6 provider remediation plus CI-before-tag release ordering, npm 12.0.1 alignment, strict dependency-script review and cache exclusion.

v04.05.06

Six-provider contract remediation — provider-specific wire schemas and output budgets, controlled OpenAI/Gemini truncation recovery, safe citation/diff correlation, runtime namespace fixes, corrected FinOps, and npm 12/OIDC release hardening.

v04.05.05

Clean-runner publish follow-up — make cancellation, health and accounting regression fixtures independent from private operator rate cards and reject false-green preflight coverage; production financial gates remain fail-closed.

v04.05.04

Runtime-hardgate remediation — fix grounding, truthfulness namespaces, consensus judging, multi-window cancellation, accounting, session ceilings, terminal reports and cross-provider ultra normalization.

v04.05.03

Security/hardgate patch — remove exponential regex backtracking, trust integrity-checked attachment path/digest metadata, accept correlated single-quoted artifact literals and stop treating source-version bumps as historical runtime claims.

v04.05.02

Patch release — publish the complete authenticated-evidence transport update with a hermetic clean-runner regression fixture; no operator central configuration is required by the test gate.

v04.05.01

Patch release — restore authenticated peer evidence transport with append-only active snapshots, combined preflight parity, strict operational records, independent relator/reviewer roles and immutable terminal outcomes; no manual operator attachment is required.

v04.05.00

Minor release — refresh all six provider contracts and add fail-closed provider terminals, runtime config fingerprints, operator evidence custody, peer self-attestation rejection, and grounded READY votes.

v04.04.08

Patch — raise the transitive hono override floor and clear the current advisory set.

v04.04.07

Patch — promote the patched protobufjs floor for downstream consumers.

v04.04.06

Patch — close the remaining Claude re-validation tail: orchestrator attached-evidence reads now fail closed, session_doctor defaults to action-oriented findings, and T2#10 source-regex debt drops to a locked total of 160.

v04.04.05

Patch — close the seven verified residual audit items: evidence fail-closed realpath handling, typed shadow-decision runtime events, derived release date, redaction-comment correction, retry/security gate verification, and a locked T2#10 smoke source-contract budget.

v04.04.04

Patch — central config can now carry model-specific rate cards, so Claude Opus 4.8 and Claude Fable 5 pricing are both stored and the active Anthropic rates follow the configured Claude model automatically.

v04.04.03

Patch — continue the T2#10 smoke-debt reduction by moving the lazy provider SDK import source contract into the dedicated source-contract smoke, preserving coverage while reducing broad smoke regex pins.

v04.04.02

Patch — support Claude Fable 5 as an explicit Anthropic production-model option, including verified model selection, refusal handling, refusal events, docs and cost guidance.

v04.04.01

Patch — complete residual audit sweep: full mutating-tool identity gate, evidence attachment cache/safety, async EventLog flush, Perplexity auth-only probe mode, cache-cost correctness, dashboard report method split, and dedicated source-contract smoke isolation.

v04.04.00

Minor — consolidated audit close-out: log-level validation, realpath containment, initial-draft fabrication guard, Perplexity probe minimization, identity audit events, derived tool list, docs and metadata guards.

v04.03.09

Patch — move truthfulness_preflight coverage into a focused smoke script and tighten evidence-artifact matching for path-qualified refs and .md/.diff/.patch/.csv files.

v04.03.08

Patch — move evidence_preflight behavior coverage into a focused smoke script and run it explicitly before the broader smoke suite.

v04.03.07

Patch — evidence preflight now blocks paid review when the submission references an external evidence/log artifact that was not attached to the session.

v04.03.06

Patch — isolate runtime-smoke in a temporary data directory so harness runs do not write open sessions into the operator's real runtime corpus.

v04.03.05

Patch — filter Perplexity streaming <think> token events, expand ~ in central config paths, escape dashboard runtime paths, and harden smoke scripts.

v04.03.04

Patch — harden cross-process event sequencing, exact-match fabrication checks, Gemini missing-text handling, and streaming provider error retry classification.

v04.03.03

Patch — add forensic diagnostics for append/event and identity failures, flush pending events on shutdown signals, retry structured provider 5xx errors, and refresh official AI provider SDKs.

v04.03.02

Patch — harden persistence redaction, finalized-session mutation guards, side-effect identity gates, caller-token rotation output, and Windows registry config fallback.

v04.03.01

Patch — tighten skip-peer classification so non-retryable provider errors block, while Anthropic overload events remain retryable and better surfaced in skip diagnostics.

v04.03.00

Minor — P1/P2/P3 follow-up with unresolved-evidence close-out visibility, an offline fixture eval harness, and a read-only peer reliability report.

v04.02.05

Patch — harden session auditability with terminal events, cost split reporting, not_resurfaced visibility, and relator provenance checks for session IDs/GitHub URLs.

v04.02.04

Patch — harden truthfulness preflight auditability, add a read-only preflight retest tool, and reduce false parser warnings for attached/log evidence.

v04.02.03

Patch — promote the Gemini canonical default to gemini-3.1-pro-preview and refresh the active local Gemini rate card.

v04.02.02

Patch — provider-doc refresh, Perplexity probe repair, current model pins, and rate-card guidance.

v04.02.01

Patch — publish the workspace hard-gate cleanup as a package release.

v04.02.00

Minor — bounded MCP session listing and cancellation semantics cleanup.

v04.01.01

Patch — release the hard-gate cleanup as a published package.

v04.01.00

Minor — security hardening of session-store concurrency, write-path DoS surface, and credential redaction.

v04.00.08

Patch — eliminate the recurring js/file-access-to-http CodeQL false positive at the source.

v04.00.07

Patch — bounded npm registry fetch in the post-publish verifier.

v04.00.06

Patch — Windows-safe registry verifier.

v04.00.05

Patch — hard-gate close-out for the Codex v4.0.4 audit.

v04.00.04

Patch — restore prettier coverage of src/ and scripts/ (close audit on v4.0.3 hard-gate gap).

v04.00.03

Patch — biome/check gate wiring after the v4 rename.

v04.00.02

Patch — Codex second-pass audit close-out (6 findings).

v04.00.01

Patch — close-out of post-v4.0.0 audit (eight surfaces left stale by the rename bulk-replace).

v04.00.00

Major — project renamed to cross-review

v03.07.05

Patch — logs+sessions study 15/05/2026 close-out (4 surgical fixes from 244-session/429-round corpus).

v03.07.03

Patch — "sem fallback é sem fallback" directive + Codex v3.7.2 parecer residuals.

v03.07.02

Patch — Codex 3rd super-audit close-out of v3.7.1

v03.07.01

Patch — Codex super-audit close-out of v3.7.0

v03.07.00

Minor — Codex super-audit close-out 14/05/2026

v03.06.00

Minor — observability + caller-discipline close-out 14/05/2026

v03.05.00

Minor — Codex operational-report close-out 14/05/2026: 5 findings from sessions f0db3970 + df052926.

v03.04.00

Minor — Perplexity multi-failure-mode close-out 13/05/2026: 3 coordinated fixes covering 7 production sessions Codex flagged (51973fac, f72e597a, f9a19401, 99d46a2b, 00d92cce, 59776026, 0003b2fe).

v03.03.00

Minor — Caller peer-selection lock (operator directive 12/05/2026: "TODOS OS AGENTES/PEERS SEMPRE PARTICIPAM, INDEPENDENTE DA ESCOLHA OU VONTADE DO CALLER").

v03.02.00

Patch — Codex bug-report close-out 12/05/2026: three surgical fixes (Perplexity <think> parser + session-state invariant + orchestrator strict peers).

v03.01.00

Minor — Central config file (config.json). Eliminates ~700 redundant env-var declarations across the 7 MCP host configs.

v03.00.00

Major — Perplexity joins the sexteto. Quinteto (5 peers) → sexteto (6).

v02.28.00

Minor — Cold-start hardening Part 3: Windows registry env-var lookup bulk-cached (3-7 s → ~100 ms).

v02.27.01

Patch — Cold-start hardening Part 2: lazy-load 5 provider SDKs + defer 6 startup sweeps to setTimeout(30s).

v02.27.00

Minor — Cold-start hardening Part 1: corrupted meta.json auto-quarantine + finalized-session auto-prune.

v02.26.01

Patch — max_attached_evidence_chars default raised 80_000 → 200_000 to fix multi-file evidence truncation.

v02.26.00

Minor — Full pricing-model schema: base + extended-tier + cache (read/write) + promo (limited-time discount), all env-configurable, graceful fallback when fields are absent or promo expires.

v02.25.01

Patch — meta.json corruption hotfix: redact() env-style pattern was crossing JSON-escape boundaries.

v02.25.00

Third deliberation mode circular joins ship and review.

v02.24.00

Evidence-provenance lock for the ship-mode relator (Codex bug report 10/05/2026).

v02.23.00

Anthropic empty-revision degenerate path detection.

v02.22.00

session_doctor drill-down + per-round cost telemetry + budget warning event.

v02.21.00

Cross-provider prompt caching across all 5 peers (OpenAI, Anthropic, Gemini, DeepSeek, Grok).

v02.18.08

Site sponsor card iteration.

v02.18.07

Patch — site/index.html visual identity refresh.

v02.18.06

Patch — Gemini API function-declaration compatibility for MCP tool inputSchemas.

v02.18.05

Patch — anti-drift smoke drivers for v2.18.4 audit closure (operator directive 07/05/2026).

v02.18.04

Patch — Codex external audit 07/05/2026 outcome: 6 surgical fixes (P1.1, P1.2, P1.3, P1.4, P2.1, P2.4).

v02.18.03

Patch — Gemini default pin bump gemini-3.1-pro-previewgemini-2.5-pro (operator preference 07/05/2026; coordinated with cross-review-v1 v1.12.4).

v02.18.02

Tier 5 — Windows process-tree introspection (coordinated with cross-review-v1 v1.12.2).

v02.18.01

Hotfix: closes Dependabot security advisory GHSA-v2v4-37r5-5v8g (medium severity) — ip-address XSS in Address6 HTML-emitting methods.

v02.18.00

F1 caller capability tokens (coordinated with cross-review-v1 v1.11.0).

v02.17.00

HARD GATE — identity forgery rejection (operator directive 05/05/2026).

v02.16.00

Tribunal protocol repair plus operational doctor.

v02.15.01

server_info consensus visibility hotfix.

v02.15.00

Backlog bundle for operational judge controls.

v02.14.01

Grok reasoning model hotfix.

v02.14.00

Grok joins the tribunal.

v02.13.00

Lead meta-review drift fix.

v02.12.00

Shadow judge observability.

v02.11.00

Relator lottery plus shadow auto-wire.

v02.09.00

LLM evidence-judge pass.

v02.08.00

Per-peer health and Evidence Broker lifecycle.

v02.07.00

Evidence Broker.

v02.06.01

Fallback/recovery budget hard gate.

v02.06.00

Token-delta compaction plus v2.5 format hotfix bundle.

v02.05.00

Evidence and budget hardening pass.

v02.04.01

CI stub fail-fast hotfix.

v02.04.00

Audit-closure hardening pass.

v02.03.03

Prompt shielding and financial safety.

v02.03.02

CI-green README/docs cleanup.

v02.03.01

README organizational standardization.

v02.03.00

Provider-neutral review_focus.

v02.02.00

Provider token streaming.

v02.01.01

CodeQL and model-selection hardening.

v02.01.00

First stable cross-review release.

v02.00.04

Session event race hotfix.

v02.00.03

Background sessions and durable reports.

v02.00.02

Publishing and dashboard sanitization.

v02.00.01

Public npm/package metadata alignment.

v02.00.00

Development package line hardening.

v2.0.0-alpha.2

Durable session recovery alpha.

v2.0.0-alpha.1

Model attestation and store hardening alpha.

v2.0.0-alpha.0

Initial API/SDK-only MCP server.

What It Does

cross-review is the stable API-first implementation of the cross-review pattern. It orchestrates provider API clients (OpenAI/Codex, Anthropic/Claude, Google Gemini, DeepSeek, xAI/Grok, and Perplexity) and provides an MCP-compatible server surface.

Runtime calls are real provider calls by default. Stubs exist only for smoke tests and CI when CROSS_REVIEW_STUB=1.

  • OpenAI client library (openai) for the Codex/OpenAI peer.

  • Anthropic TypeScript client library (@anthropic-ai/sdk) for Claude.

  • Google Gen AI client library (@google/genai) for Gemini.

  • OpenAI-compatible DeepSeek API through the OpenAI client library.

  • OpenAI-compatible xAI Grok API through the OpenAI client library.

  • OpenAI-Responses-compatible Perplexity Agent API through the OpenAI client library.

  • The MCP SDK (@modelcontextprotocol/sdk) is declared as a development dependency and bundled into the stdio artifact; its audited scope is therefore bundled/dev, not an undeclared consumer dependency.

package.json is the source of truth for declared dependency ranges. package-lock.json records the exact resolution for this repository checkout; consumers resolve those ranges through their own lockfiles.

Related MCP server: Multi-MCP

Quick Start

# Set API keys (PowerShell example)
[Environment]::SetEnvironmentVariable("OPENAI_API_KEY", "<OPENAI_API_KEY>", "User")
[Environment]::SetEnvironmentVariable("ANTHROPIC_API_KEY", "<ANTHROPIC_API_KEY>", "User")
[Environment]::SetEnvironmentVariable("GEMINI_API_KEY", "<GEMINI_API_KEY>", "User")
[Environment]::SetEnvironmentVariable("DEEPSEEK_API_KEY", "<DEEPSEEK_API_KEY>", "User")
[Environment]::SetEnvironmentVariable("GROK_API_KEY", "<GROK_API_KEY>", "User")
[Environment]::SetEnvironmentVariable("PERPLEXITY_API_KEY", "<PERPLEXITY_API_KEY>", "User")

Restart your terminal after changing environment variables.

Run the MCP host only from the package published by the registry; do not point a production host at this checkout:

npm upgrade -g @lcv-ideas-software/cross-review --ignore-scripts --allow-git=none --allow-remote=none

For local smoke tests (no-cost):

$env:CROSS_REVIEW_STUB = "1"
npm test

Configuration

Model selection and runtime behaviour can be controlled with environment variables. Example overrides (PowerShell):

[Environment]::SetEnvironmentVariable("CROSS_REVIEW_OPENAI_MODEL", "gpt-5.6-sol", "User")
[Environment]::SetEnvironmentVariable("CROSS_REVIEW_OPENAI_REASONING_EFFORT", "max", "User")
[Environment]::SetEnvironmentVariable("CROSS_REVIEW_ANTHROPIC_MODEL", "claude-fable-5", "User")
[Environment]::SetEnvironmentVariable("CROSS_REVIEW_ANTHROPIC_REASONING_EFFORT", "max", "User")
[Environment]::SetEnvironmentVariable("CROSS_REVIEW_GEMINI_MODEL", "gemini-3.1-pro-preview", "User")
[Environment]::SetEnvironmentVariable("CROSS_REVIEW_DEEPSEEK_MODEL", "deepseek-v4-pro", "User")
[Environment]::SetEnvironmentVariable("CROSS_REVIEW_GROK_MODEL", "grok-4.6", "User")
[Environment]::SetEnvironmentVariable("CROSS_REVIEW_GROK_REASONING_EFFORT", "xhigh", "User")
[Environment]::SetEnvironmentVariable("CROSS_REVIEW_PERPLEXITY_MODEL", "perplexity/kimi-k3", "User")
[Environment]::SetEnvironmentVariable("CROSS_REVIEW_PERPLEXITY_REASONING_EFFORT", "max", "User")

ultra is a Codex product/CLI execution mode, not a literal OpenAI Responses API reasoning.effort. Cross-review nevertheless accepts it in central config, environment variables and per-call overrides as a compatibility alias, then normalizes it inside each provider adapter. For gpt-5.6-sol, the wire value is the official max; ultra is never sent to the Responses API. Using max directly remains equivalent and makes the API value explicit. The shared legacy value minimal is likewise translated to GPT-5.6's lowest active API effort, low. Explicit older-model overrides use a family-aware compatibility matrix: GPT-5.5/5.4/5.2 map minimal to low and max/ultra to xhigh; GPT-5.1 maps minimal to low and xhigh/max/ultra to high; original GPT-5 maps none to minimal and xhigh/max/ultra to high. Supported native values pass through unchanged.

Claude Fable 5 is the canonical Anthropic pin. Its request deliberately omits the explicit thinking field: Fable applies adaptive thinking automatically, while output_config.effort controls depth. Anthropic documents a 30-day data retention posture and no zero-data-retention option for this model. A response with stop_reason="refusal" is recorded as provider_refusal, and partial refusal output is not accepted as a review.

Claude Opus 5 (claude-opus-5) is a first-class explicit override, not a fallback and not an automatic replacement for Fable 5. The adapter sends adaptive thinking with omitted thinking text and supports low/medium/high/xhigh/max effort. The maintained 64,000-token Claude output budget is Anthropic's recommended starting point for xhigh or max; the model's synchronous API ceiling is 128,000. Selecting Opus 5 also selects its own model-specific rate card, so Fable pricing is never borrowed.

For Grok, GROK_API_KEY is canonical. The default pin is grok-4.6; xAI accepts low, medium, high, or xhigh reasoning effort for it, so the adapter normalizes max/ultra to xhigh before sending the request.

For Perplexity, PERPLEXITY_API_KEY is canonical. The default pin is perplexity/kimi-k3 on the Perplexity Agent API (OpenAI-Responses-compatible /v1/responses). Sonar Chat Completions retires on 27/09/2026, so legacy unprefixed Sonar ids are rejected with a migration diagnostic. The reviewer role declares the web_search tool (billed per invocation); the relator role never does.

Central configuration is loaded once when the MCP server process starts. Use server_info.config_load to inspect the loaded path, parse result, loaded and current SHA-256/mtime, and reload_required. live_reload_supported is false: after editing config.json or host environment variables, restart or reload the MCP host/window. A stale or invalid central config blocks paid calls instead of silently spending under fallback defaults.

Evidence judges have independent compact controls: evidence_judge_autowire.max_output_tokens defaults to 2048 and evidence_judge_autowire.reasoning_effort defaults to medium. Unknown in-flight provider cost blocks judge dispatch rather than being treated as zero. Their environment-variable equivalents are CROSS_REVIEW_EVIDENCE_JUDGE_MAX_OUTPUT_TOKENS and CROSS_REVIEW_EVIDENCE_JUDGE_REASONING_EFFORT; as with the other central settings, an explicit host environment value takes precedence over config.json.

Evidence Broker admission is fail-closed and atomic. Its configurable defaults are 8 requests per peer per round, 24 requests per round, 64 durable items and 64,000 total request characters per session:

{
  "evidence_broker": {
    "max_requests_per_peer_round": 8,
    "max_requests_per_round": 24,
    "max_items_per_session": 64,
    "max_chars_per_session": 64000
  }
}

Crossing a limit never truncates, discards or auto-satisfies a blocker. The complete peer response remains durable, the checklist batch is rejected as a unit, automatic judging is skipped and the session stops with evidence_checklist_contract_violation before another paid round. Existing oversized sessions stop before provider dispatch.

Financial and budget controls are required for paid provider calls. Configure these environment variables before running real sessions (example):

[Environment]::SetEnvironmentVariable("CROSS_REVIEW_MAX_SESSION_COST_USD", "20", "User")
[Environment]::SetEnvironmentVariable("CROSS_REVIEW_PREFLIGHT_MAX_ROUND_COST_USD", "20", "User")
[Environment]::SetEnvironmentVariable("CROSS_REVIEW_UNTIL_STOPPED_MAX_COST_USD", "20", "User")

MCP Tools

  • server_info

  • runtime_capabilities

  • probe_peers

  • session_init

  • session_list

  • session_read

  • ask_peers

  • session_start_round

  • run_until_unanimous

  • session_start_unanimous

  • session_cancel_job

  • session_recover_interrupted

  • session_poll

  • session_events

  • session_metrics

  • session_doctor

  • session_report

  • session_peer_reliability_report

  • session_check_convergence

  • session_preflight_check

  • session_truthfulness_preflight_check

  • session_attach_evidence — optional operator-only authority promotion; AI callers use the automatic evidence field on review starters

  • session_evidence_checklist_update

  • session_evidence_judge_pass

  • session_evidence_judge_consensus_pass

  • session_judgment_precision_report

  • contest_verdict

  • escalate_to_operator

  • regenerate_caller_tokens

  • session_sweep

  • session_finalize

session_events returns at most 200 events by default, excludes peer.token.delta telemetry unless include_token_deltas=true, and returns next_seq plus has_more for bounded pagination. Set limit explicitly up to 1,000 when a larger forensic page is needed.

session_poll uses detail="summary" by default. The compact response keeps operational progress, verdicts, bounded peer summaries and convergence data, but omits complete prior-round peer text, raw and structured payloads. Use detail="full" or session_read only for deliberate forensic inspection. active_round_number names the round executing now, whereas latest_completed_round_number names the newest round already appended to durable history; during a live round these values can differ.

Every tool that accepts response_format="markdown" returns actual Markdown, not a JSON object serialized inside a text block. Strings from callers, peers and persisted sessions are HTML-neutralized before rendering.

session_cancel_job is idempotent around settlement races. A late request for a known completed, failed or cancelled job returns requested=false, reason="job_already_terminal", terminal_job and final_state. When the session itself is already terminal, the reason is session_already_terminal. Compact job status is persisted per session so a sibling MCP host or a restarted runtime can return the same answer without requiring process-local memory.

session_doctor separates real and stub sessions, flags terminal outcomes that lack terminal events, and reports peer-call cost separately from generation artifact cost. Terminal max-rounds and terminal not_resurfaced history stay in totals but are omitted from default operational findings; pass include_terminal_findings=true to enumerate that historical inventory. session_report uses the same cost split and calls out not_resurfaced evidence checklist items as inference-only, not proof that the requested evidence was satisfied. If a session otherwise reaches unanimity with open or not_resurfaced checklist items, finalization records an *_with_unresolved_evidence outcome reason and emits a durable unresolved evidence event. session_peer_reliability_report is read-only and aggregates per-peer parser warnings, evidence ask status, provider failures, cost and latency.

Anti-deception and evidence custody

The runtime does not treat a peer's claim that work was completed as proof. Before paid calls and again during convergence, it checks runtime/model claims, workflow and authorization assertions, test/build/hash claims, concrete source correspondence, unresolved evidence asks, model attestation, and structured status completeness. Authenticated caller evidence supplied inline or through the evidence field is persisted with an integrity digest and transported to every reviewer as PEER-SUBMITTED / UNVERIFIED; no manual operator attachment is required. Each external submission atomically supersedes the active caller snapshot while preserving prior manifests for audit, so retries cannot inherit old failures or replay old successes. Every READY vote must cite sources traceable to the reviewed artifact or admitted evidence. When operational claims depend only on peer-submitted material, at least two independent non-author reviewers must use confidence="verified" and cite the attachment path, SHA-256 and correlated raw lines; one voter, inferred confidence or narrative repetition cannot converge. Relator output that invents operational evidence is rejected rather than propagated; a source that quotes an admitted attachment literally — a GitHub URL the provider escaped included — is not treated as invented, and a file whose post-image an admitted unified diff carries is not treated as unattached.

READY is intentionally not free-form. Its summary must be exactly No blocking objections remain., caller_requests and follow_ups must be empty, and no narrative may appear outside the JSON/status envelope. Detail belongs in evidence_sources. This removes synonym/negation ambiguity: any noncanonical READY becomes NEEDS_EVIDENCE and cannot converge.

Each attachment-backed evidence_sources item has one canonical string format:

Attachment: evidence/review.txt
sha256=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
Artifact quote: "Tests 74 passed (74)"

This block shows the decoded string; a raw JSON response encodes its two line breaks as \n.

The path and full 64-character lowercase digest identify the same persisted attachment, and Artifact quote is a literal from that attachment. The quote must be at least 12 characters and must end the item. Cite the smallest sufficient literal (normally no more than 500 characters); the hard limits are 2,500 characters per whole item and 30 items. Multiple sources belong in separate array items—never join attachments or append rationale after a quote. The wire type deliberately remains string[], so existing string-producing clients remain compatible; the runtime does not require citation objects.

These limits are both anti-verbosity and anti-shortcut controls. A peer must inspect the artifact and cite the decisive raw value, but must not replace a review with a full-file, full-log, or provider-output dump. A bare filename, digest, generic assurance, or empty code fence cannot sustain READY.

Only the human operator may call the optional session_attach_evidence authority-promotion surface or mutate terminal state and security configuration. This tool is never required for an ordinary AI-initiated review: the runtime tool descriptions and rejected-call remediation direct AI callers to the automatically persisted evidence field. Each new attachment records the verified caller, origin, timestamp, byte count and SHA-256, emits a durable custody event, and is re-hashed on every read. Tampering fails closed. Peer-attributed material remains reviewable but cannot grant operator authority; a generic attachment does not by itself prove an unrelated claim.

An evidence requester may automatically withdraw only its own earlier ask after a strictly grounded READY/verified recheck. That transition is recorded as requester_reverified; silence remains not_resurfaced, and no peer can close another peer's ask or an operator-terminal item.

On an existing session, review starters require the persisted petitioner token or the dedicated operator token. Evidence is attributed to the authenticated invoker rather than inherited from the session owner, so a peer cannot turn its submission into operator_verified by continuing an operator-owned session.

Caller identity uses seven distinct local capabilities: one for each peer and one for operator. Operator tools require the operator token even when token enforcement for peers is otherwise permissive. Keep that token only in a dedicated human-console MCP host—placing it in a model host grants that model operator authority. host-tokens.json contains secrets and assumes the local OS account/data directory is trusted. The runtime now removes inherited NTFS ACLs from this file on Windows and grants only the current user, SYSTEM and Administrators; on POSIX it verifies owner-only mode 0600. This blocks direct read access inherited by model-sandbox groups, but it is not isolation from another process running as the same unrestricted OS user.

session_cancel_job and contest_verdict accept only the explicitly persisted session petitioner with its peer token, or the dedicated operator. Legacy sessions without an explicit petitioner require the operator token.

Repository conventions

License

Apache-2.0. See LICENSE, NOTICE, and THIRDPARTY.


Available Tools

31 tools
ask_peersAsk PeersA

Run a real API review round against selected peers. AI evidence supplied in evidence is persisted durably and transported automatically; no manual operator attachment is required. Runtime default uses real provider APIs; stubs run only when CROSS_REVIEW_STUB=1.

ParametersJSON Schema
NameRequiredDescriptionDefault
taskYes
draftYes
peersNo
callerNooperator
evidenceNoRaw evidence from the authenticated AI caller. It is persisted automatically as durable, SHA-256-addressed caller_submitted_unverified material and transported to reviewers; no manual operator attachment is required. Do not call session_attach_evidence for this routine path.
session_idNo
review_focusNoOptional provider-neutral review scope anchor. This is not Claude Code's /focus UI command; it is injected as a front-loaded Review Focus prompt block for every selected peer, including OUT OF SCOPE handling for unrelated findings.
caller_statusNoREADY
response_formatNojson
reasoning_effort_overridesNoOptional per-peer reasoning_effort overrides for this call. Keys are peer ids (codex|claude|gemini|deepseek|grok|perplexity); missing keys fall back to global config. This is a shared scale: adapters normalize unsupported literals to the selected model's documented enum (`ultra` becomes max on GPT-5.6, Kimi K3 via Perplexity and DeepSeek, and xhigh on Grok 4.6; older GPT-5 families use their own ceilings).

TDQS

A3.6/5.0
Behavior5/5

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

The description adds meaningful behavior beyond annotations: evidence is durably persisted and auto-transported without operator attachment, and execution hits real provider APIs unless CROSS_REVIEW_STUB=1. These side effects align with readOnlyHint=false and openWorldHint=true and are exactly what an agent needs to know before invoking.

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?

Three tight sentences: the action is front-loaded, then key evidence behavior, then runtime mode. Every sentence adds operational information, and nothing is wasted.

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, nested objects, no output schema, and a non-read-only side-effect profile, the description is too thin. It doesn't cover return format, async/poll behavior, failure modes, or how this relates to the surrounding session lifecycle tools.

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 30%, so the description needed to explain the remaining parameters. It only elaborates on evidence persistence and vaguely references 'selected peers', while task, draft, response_format, caller_status, and the nested reasoning_effort_overrides remain unexplained.

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 opens with a specific verb and resource ('Run a real API review round against selected peers'), which clearly states the tool's core action. It does not explicitly distinguish itself from siblings like session_start_round or probe_peers, so it falls 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 Guidelines3/5

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

It gives useful operational context: evidence is transported automatically and real provider APIs are the default, with stubs only under CROSS_REVIEW_STUB=1. However, it never says when to choose this tool over sibling session/round tools, leaving the choice to inference.

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

contest_verdictContest VerdictA

v2.14.0 — formally contest a final verdict and open a new deliberation cycle. The reason accepts at most 4,000 characters. Requires the verified capability token of the persisted session petitioner, or the dedicated operator token. Petitioner READY (acata) → notify the human operator so the dedicated console can finalize; petitioner NOT_READY (contesta) → contest_verdict. Stamps the original session's meta with a contestation record (timestamp + reason + original_outcome + new_session_id) and initializes a NEW session whose contests_session_id points back to the contested session, preserving the chain of custody append-only across sessions. The original session must be in a final state (converged/aborted/max-rounds); contesting an in-flight session throws cannot_contest_in_flight_session. Once contested, a session cannot be contested again (chain-of-custody invariant) — contest the LATEST session in the chain.

ParametersJSON Schema
NameRequiredDescriptionDefault
callerNooperator
reasonYes
new_taskYes
new_callerNo
session_idYes
response_formatNojson
new_initial_draftNo

TDQS

A4.7/5.0
Behavior5/5

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

Annotations only indicate not read-only, not destructive, not idempotent. The description goes far beyond: it details side effects (stamps a contestation record, initializes a new session, links via contests_session_id), auth requirements (capability token or operator token), and error conditions (cannot_contest_in_flight_session). This is thorough disclosure of behavioral traits, fully compensating for the sparse 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 dense but every sentence adds critical information: purpose, constraints, auth, conditional logic, side effects, preconditions, and invariants. It is front-loaded with the core purpose and follows a logical flow, making it efficient without redundancy.

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?

Given the tool's complexity (7 params, 3 required, no output schema, rich invariants), the description covers all essential aspects: prerequisites, side effects on the original and new sessions, chain-of-custody rules, and error cases. There is no mention of return value, but without an output schema and given the action-oriented nature, this is acceptable; the agent has enough to call it correctly.

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 0%, so the description must compensate. It explains the primary parameters—session_id (the contested session), reason (max 4000 chars, though this repeats schema), and new_task (implied as the task for the new session)—and mentions new_initial_draft implicitly by context. However, it does not explain new_caller, response_format, or caller, leaving those to inference from defaults and enums. Partial compensation, but gaps remain.

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 opens with 'formally contest a final verdict and open a new deliberation cycle,' a specific verb and resource that clearly distinguishes it from siblings like session_finalize or session_init. It unambiguously states the tool's function and scope, making its purpose immediately understandable.

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?

Provides explicit conditions: 'Petitioner READY (acata) → notify the human operator ...; petitioner NOT_READY (contesta) → contest_verdict.' It also states preconditions ('original session must be in a final state') and exclusions ('once contested, a session cannot be contested again'), and instructs to 'contest the LATEST session in the chain.' This gives clear when-to-use and when-not-to-use guidance relative to alternatives.

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

escalate_to_operatorEscalate To OperatorA

Record a durable operator escalation for sessions that require human judgment or external intervention. The reason accepts at most 1,000 characters.

ParametersJSON Schema
NameRequiredDescriptionDefault
callerNooperator
reasonYes
severityNowarning
session_idYes
response_formatNojson

TDQS

A3.6/5.0
Behavior2/5

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

All annotation hints are false, so the description carries the burden of behavioral disclosure. It says the escalation is 'durable,' implying a persistent side effect, but it does not mention whether the escalation is reversible, notifies external parties, or what the response looks like.

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 with the core purpose front-loaded and a relevant constraint right after. Every word earns its place and there is no 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?

The description is serviceable for a simple escalation record, but with no annotations, no output schema, and five parameters (three enums), it leaves severity meaning, response_format behavior, and post-call outcomes unexplained. An agent could call it correctly using defaults but would be guessing about semantics.

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 0%, so the description must compensate. The only parameter detail, 'the reason accepts at most 1,000 characters,' merely repeats the schema's maxLength. No semantics are added for session_id, severity, caller, or response_format.

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 and resource: 'Record a durable operator escalation.' It also gives the condition ('sessions that require human judgment or external intervention') and is clearly distinct from the sibling session_* management tools.

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 'for sessions that require human judgment or external intervention' provides a clear usage condition. However, it does not explicitly name alternative tools or state when not to use it, so it stops short of the top tier.

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

probe_peersProbe PeersA
Read-onlyIdempotent

Query official provider APIs to discover available models for the current API keys, select the highest-capability documented model, and verify provider reachability.

ParametersJSON Schema
NameRequiredDescriptionDefault
callerNooperator
response_formatNojson

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already cover the read-only, idempotent, open-world safety profile. The description adds value by revealing that the tool makes network calls to provider APIs, uses API keys, selects a model, and probes reachability—behavioral detail beyond 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 entire definition is one dense, front-loaded sentence that begins with the primary verb and packs three related behaviors without filler. Every clause earns its place.

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 is adequate for deciding to invoke the tool and understanding its general effect, but with no output schema it does not say what the tool returns or how providers/keys are identified in the output. A brief mention of the result shape or error behavior would complete the picture.

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 0%, so the description must compensate for the undocumented parameters, but it never explains caller or response_format. 'Current API keys' hints at credentials but does not map to the caller enum, and the JSON/markdown response switch is unmentioned.

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 names a specific action ('Query official provider APIs'), a resource ('available models for the current API keys'), and two follow-up outcomes (select highest-capability model, verify reachability). It is unambiguous about what the tool does, though it does not explicitly contrast itself with siblings such as ask_peers.

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?

It provides clear context for when to call it: when an agent needs to inventory models for the current API keys or confirm provider reachability. It does not state exclusions or explicitly name an alternative like ask_peers, so it misses the full when-vs-alternatives guidance.

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

regenerate_caller_tokensRegenerate Caller Tokens (F1)A
Destructive

Rotate the seven caller capability tokens (six peer identities plus a distinct operator). Requires the current dedicated operator token. The response exposes fingerprints only. Distribute each peer token only to its matching model host; keep the operator token exclusively in a separate human-console MCP host. Never place the operator token in Codex, Claude, Gemini, DeepSeek, Grok or Perplexity host configuration.

ParametersJSON Schema
NameRequiredDescriptionDefault
callerNooperator
response_formatNojson

TDQS

A4.5/5.0
Behavior5/5

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

Beyond the destructiveHint annotation, it explains that rotation produces only fingerprints in the response and that the operator token must be isolated in a separate human-console MCP host. These details add real security behavior knowledge that is not present in annotations or the schema.

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 front-loaded with the action, followed by the prerequisite, output constraint, and distribution rules. Every sentence earns its place; there is no fluff or redundant restatement of the title.

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 destructive security-sensitive operation, it names the prerequisite, describes the response limitation, and provides host-scope safety rules. Since the annotations already signal destructive behavior and there is no output schema, the description is complete enough for an agent to invoke the tool safely.

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 has 0% description coverage, so the description should compensate. It maps the 'caller' concept to 'six peer identities plus a distinct operator', which helps interpret the enum, but it never explicitly clarifies the response_format parameter or its default. The enum values are self-explanatory enough to avoid a lower score.

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 ('Rotate') and a specific resource ('the seven caller capability tokens'), and it clearly distinguishes this from the session and info tools listed among siblings. The noun phrasing could be tautological, but the enumeration of peer identities plus operator gives concrete scope.

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?

It provides strong contextual guidance: the prerequisite (requires current dedicated operator token), the operational handling of peer tokens vs the operator token, and explicit hosts where the operator token must never be placed. It does not explicitly compare to an alternative tool, but no sibling is a competing token-regeneration tool, so this context is sufficient.

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

runtime_capabilitiesRuntime CapabilitiesA
Read-onlyIdempotent

Return the stable cross-review runtime capability contract and active tool list.

ParametersJSON Schema
NameRequiredDescriptionDefault
callerNooperator
response_formatNojson

TDQS

A3.5/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, fully covering the safety profile. The description adds that the result is 'stable' and includes a 'capability contract' and 'active tool list', which provides some behavioral context but does not go beyond what annotations already imply.

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 key information: what is returned. There is no extraneous text.

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 read operation with no required parameters and good annotations, the description is largely adequate. However, it does not explain what the 'capability contract' or 'active tool list' contain, and omits parameter details. Slightly incomplete for a new agent.

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 0%, so the description must compensate. However, it does not mention the two optional parameters (caller, response_format) or their meaning. The agent gets no additional insight beyond the schema's enum names and defaults.

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 returns a 'stable cross-review runtime capability contract and active tool list'. The verb 'return' and specific resource 'runtime capabilities contract' make the purpose distinct. It differentiates well from siblings like server_info or session tools, which serve different purposes.

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. There is no mention of prerequisites, context, or when not to use it. Given the many sibling tools, usage guidelines would help the agent decide.

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

run_until_unanimousRun Until UnanimousA

Generate or revise a draft and continue real API peer-review rounds until unanimous READY or the configured max_rounds is reached. AI evidence supplied in evidence is persisted durably and transported automatically; no manual operator attachment is required. v2.11.0: when caller is set to a peer id (claude|codex|gemini|deepseek|grok|perplexity), the relator lottery activates: omit lead_peer to have the server randomly select a non-caller peer as relator (modeled on judicial colegiados), or supply an explicit lead_peer that is NOT the caller. An explicit lead_peer === caller is rejected at the server with caller_cannot_be_lead_peer — an agent never reviews itself (workspace HARD GATE).

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNoship
taskYes
peersNo
callerNooperator
evidenceNoRaw evidence from the authenticated AI caller. It is persisted automatically as durable, SHA-256-addressed caller_submitted_unverified material and transported to reviewers; no manual operator attachment is required. Do not call session_attach_evidence for this routine path.
lead_peerNo
max_roundsNoHard review-round ceiling unless allow_auto_extension is explicitly true.
max_cost_usdNo
review_focusNoOptional provider-neutral review scope anchor. This is not Claude Code's /focus UI command; it is injected as a front-loaded Review Focus prompt block for every selected peer, including OUT OF SCOPE handling for unrelated findings.
initial_draftNo
until_stoppedNo
response_formatNojson
allow_auto_extensionNoOpt in to at most two evidence-only auto-extensions. False keeps max_rounds rigid.
reasoning_effort_overridesNoOptional per-peer reasoning_effort overrides for this call. Keys are peer ids (codex|claude|gemini|deepseek|grok|perplexity); missing keys fall back to global config. This is a shared scale: adapters normalize unsupported literals to the selected model's documented enum (`ultra` becomes max on GPT-5.6, Kimi K3 via Perplexity and DeepSeek, and xhigh on Grok 4.6; older GPT-5 families use their own ceilings).

TDQS

A3.7/5.0
Behavior5/5

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

Beyond the annotations, the description discloses the termination condition, durable evidence persistence, automatic transport, relator lottery behavior, server rejection of lead_peer===caller with the exact error code, and the workspace hard gate. This substantially enriches what the structured annotations alone convey.

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 front-loaded with the core behavior, then adds evidence handling and versioned relator-lottery semantics. Every sentence carries unique behavioral information; the density is justified by the complexity of the tool.

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 14-parameter tool with no output schema, the description covers the core loop, evidence handling, and relator gate, which is strong. However it omits return/polling behavior, cost controls, mode/peer selection semantics, and terminal outcome representation, leaving gaps that an agent must resolve elsewhere.

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 only 36% schema description coverage, the tool text correctly explains the most consequential parameters (caller, lead_peer, evidence) but leaves mode, peers, max_cost_usd, initial_draft, until_stopped, response_format, and other parameters to be inferred from enums/defaults. It compensates for key protocol params but not for the full parameter set.

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 opens with a specific verb-resource statement: 'Generate or revise a draft and continue real API peer-review rounds until unanimous READY or the configured max_rounds is reached.' This clearly identifies the purpose, but it never names or contrasts sibling tools such as session_start_unanimous, so the agent must infer the differentiation.

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?

There is no explicit when-to-use or when-not-to-use guidance relative to the many session_* and ask_peers siblings. The nearest guidance is the conditional explanation of caller/lead_peer and the note that evidence needs no manual attachment, but that addresses parameter workflow rather than tool selection.

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

server_infoServer InfoB
Read-onlyIdempotent

Return runtime information for the API-only Cross Review MCP server, including version, data directory and active security mode.

ParametersJSON Schema
NameRequiredDescriptionDefault
callerNooperator
response_formatNojson

TDQS

B3.1/5.0
Behavior4/5

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

Annotations already declare read-only, idempotent, non-destructive behavior. The description adds specific context by naming the exact information returned (version, data directory, security mode) and specifying the server scope, which helps an agent understand the tool's output beyond what annotations convey.

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 single-sentence description is efficient in stating purpose but omits critical parameter usage. It is front-loaded with the main verb, but the lack of parameter context makes it less effective. Could be improved by briefly noting parameter options.

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 is simple with two optional parameters and no output schema, the description should at minimum indicate that caller and response_format customize the output. It does not address this, leaving a significant gap in understanding how to invoke the tool effectively.

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 0% (no parameter descriptions in schema) yet the description provides no explanation of the two parameters (caller and response_format). Both have enums and defaults, but an agent cannot know their purpose from either the schema or description. Description fails to compensate for the missing schema documentation.

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 tool returns runtime information for a specific server ('API-only Cross Review MCP server') and lists the included fields (version, data directory, active security mode). This distinctively separates it from sibling tools which are session-focused.

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 explicit guidance on when to use this tool versus alternatives. The description lacks context like 'Use this to check server status before performing actions' or any mention of prerequisites or exclusions.

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

session_attach_evidencePromote Operator Evidence (Optional)A

Optional operator-only authority promotion; AI callers must not use this tool. No human operator action is required for ordinary reviews: pass raw proof through the evidence field of ask_peers, session_start_round, run_until_unanimous, or session_start_unanimous, and the runtime persists it durably as caller_submitted_unverified material.

ParametersJSON Schema
NameRequiredDescriptionDefault
labelYes
callerNooperator
contentYes
extensionNotxt
session_idYes
content_typeNotext/plain
response_formatNojson

TDQS

A4.2/5.0
Behavior4/5

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

Annotations are minimal (destructiveHint=false, readOnlyHint=false). Description adds context: it's an optional operator promotion, no human operator action required for ordinary reviews, and runtime persists material durably. However, it does not fully explain side effects or permissions, but given the restricted use case, it's sufficient.

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, no fluff. Front-loaded with the warning and alternative instructions. Every part is necessary and well-structured.

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 7 parameters and no output schema, the description covers purpose and usage but lacks parameter details. Given that the tool is essentially restricted to operators and AI agents should not call it, the information is adequate but not fully complete.

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 0%, and the description does not explain any parameter meanings or usage. For example, it doesn't clarify what `label`, `content`, or `extension` represent. This leaves the agent without critical information for 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?

Description clearly states this is an operator-only tool for attaching evidence, explicitly distinguishing it from other tools by stating AI callers must not use it. Title 'Promote Operator Evidence (Optional)' reinforces purpose.

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 that AI callers must not use this tool and provides clear alternatives: pass evidence through the `evidence` field of other tools like `ask_peers`, `session_start_round`, etc. This gives unambiguous usage guidance.

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

session_cancel_jobCancel Session JobB
Idempotent

Request cancellation for running background jobs in a durable session. The reason accepts at most 300 characters. Requires the verified capability token of the persisted session petitioner, or the dedicated operator token; another peer cannot cancel the job. Provider calls receive AbortSignal where the provider client supports it.

ParametersJSON Schema
NameRequiredDescriptionDefault
callerNooperator
job_idNo
reasonNorequester_requested
session_idYes
response_formatNojson

TDQS

B3.3/5.0
Behavior4/5

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

The description adds behavioral context beyond annotations: it notes that cancellation is a request (not immediate), requires specific tokens, and mentions AbortSignal support. Annotations already indicate idempotentHint=true and destructiveHint=false; the description does not contradict them.

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-loads the purpose. It is not verbose, but the lack of parameter descriptions reduces structural clarity.

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 5 parameters, no output schema, and 0% schema coverage, the description is incomplete. It explains purpose and some constraints but omits parameter details, return values, and error handling, leaving agents underinformed.

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 0%, so the description must compensate. It only mentions reason's maxLength (300 chars). It does not explain session_id, job_id, caller, or response_format, leaving agents without crucial parameter semantics.

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 cancels running background jobs in a durable session. It uses a specific verb-resource pair ('request cancellation' + 'background jobs in a durable session'). It distinguishes from siblings because many session_ tools exist, but only this one targets cancellation.

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 specifies token requirements and restrictions (another peer cannot cancel), providing some usage context. However, it does not explicitly state when to use this tool versus alternatives like session_doctor or session_events, nor does it 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.

session_check_convergenceCheck ConvergenceA
Read-onlyIdempotent

Return the latest durable convergence state, health and scope for a saved session without calling providers.

ParametersJSON Schema
NameRequiredDescriptionDefault
session_idYes
response_formatNojson

TDQS

A3.5/5.0
Behavior4/5

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

Annotations already indicate readOnlyHint=true and idempotentHint=true, and the description adds behavioral context about not calling providers, which aligns with and supplements the annotations without contradiction.

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 key information (return value and behavior) with no unnecessary words.

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 only two parameters and no output schema, the description lacks parameter details, expected return format, and error states, and does not address how this tool fits among many sibling session tools.

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 0% and the tool description provides no information about the parameters (session_id pattern or response_format enum), leaving the agent with only the schema names and types.

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 returns 'the latest durable convergence state, health and scope for a saved session' and specifies it does so 'without calling providers,' distinguishing it from sibling tools like session_read that likely involve provider calls.

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 a lightweight check ('without calling providers') but does not explicitly state when to use this tool versus alternatives like session_read or probe_peers, nor does it provide exclusions or prerequisites.

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

session_doctorSession DoctorA
Idempotent

Operational audit across durable sessions: open/stale/blocked cases, legacy self-lead metadata, open evidence asks (with per-peer item type drill-down + chronic blockers since v2.22), Grok provider errors, and token-event noise. Read-only by default (does not modify sessions). Terminal max-rounds and terminal not_resurfaced history stay in totals but are not default operational findings; pass include_terminal_findings=true to enumerate that historical inventory. Pass include_legacy=true to enumerate per-session self_lead_metadata entries (hidden by default since v2.22 because pre-v2.16 sessions carry the legacy artifact at ~38% rate; totals.self_lead_metadata count is always visible). v3.6.0: pass repair=true (opt-in) to recompute convergence_health for sessions stuck in the contradictory outcome="converged"+health="blocked" state left by pre-v3.2.0 corruption — only that specific contradiction is touched, only when explicitly requested; the repaired array lists what was fixed.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
callerNooperator
repairNo
include_legacyNo
response_formatNojson
include_terminal_findingsNo

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 beyond annotations: read-only by default with opt-in modification via repair=true, specifics of repair (only touches specific contradiction state), legacy artifact handling, and terminal findings enumeration. This adds valuable context not present in annotations (which only hint at idempotency and non-destructiveness).

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 verbose and dense with technical details (e.g., 'v3.6.0', 'pre-v3.2.0 corruption', '~38% rate'). While every sentence adds value, the length and jargon may hinder quick comprehension. Structuring with bullet points or shorter sentences would improve conciseness.

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 complexity (6 parameters, multi-faceted audit), the description covers major behaviors: read-only default, repair mechanics, legacy enumeration, terminal findings. It lacks description of output format (beyond noting the 'repaired' array) but adequately addresses the core functionality. The absence of an output schema raises the burden, but the description meets most requirements.

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 0%, so the description bears full burden. It explains repair, include_legacy, and include_terminal_findings parameters with precise semantics. However, limit, caller, and response_format are not described, leaving gaps. The explanation for the explained parameters is clear and adds meaning beyond the schema enum/default values.

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 performs an 'operational audit' across durable sessions, enumerating specific categories like open/stale/blocked cases, legacy metadata, evidence asks, Grok errors, and token noise. This distinguishes it from sibling tools like session_list or session_read by being a comprehensive health check rather than a simple listing or retrieval.

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 auditing session health and troubleshooting, but does not explicitly state when to use this tool versus alternatives. It lacks direct comparisons or exclusions, though the detailed behavior (read-only default, repair opt-in) provides contextual guidance.

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

session_eventsRead Session EventsA
Read-onlyIdempotent

Read a bounded page of durable session events. Token-delta telemetry is excluded by default; opt in only for streaming forensics. Continue with next_seq while has_more is true.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
since_seqNo
session_idYes
response_formatNojson
include_token_deltasNo

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 and destructiveHint=false, so the agent knows this is a safe read operation. The description adds valuable context: that events are 'durable' (persisted), pagination is via 'next_seq' and 'has_more', and token-delta telemetry is excluded by default. This goes beyond annotations without contradicting them, providing practical behavioral expectations for the agent.

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 comprised of three concise sentences, each adding distinct value: the first defines the operation, the second clarifies a special parameter, and the third provides pagination guidance. It is front-loaded with the core purpose and has zero fluff. This is exemplary conciseness with high information density.

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 moderate complexity (5 parameters, pagination) and no output schema, the description covers the essential points: what events are read, the main optional parameter, and how to paginate. It does not explain the output format or the meaning of response_format, but the schema's enum and default handle that. The description is almost complete for effective usage, with only minor gaps in return value documentation.

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 0%, so the description must compensate for the undocumented parameters. The description mentions 'bounded page' (implying limit), 'next_seq' (since_seq parameter), and 'token-delta telemetry' (include_token_deltas). It also states the default exclusion of token deltas, which aligns with the default false. However, it does not describe response_format or the meaning of since_seq beyond pagination, but given the schema has defaults and clear types, this is a solid compensation.

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 'Read a bounded page of durable session events' which specifies the verb (Read), resource (session events), and key characteristic (bounded, durable). It distinguishes itself from siblings like session_list (list sessions) and session_metrics (aggregate metrics) by focusing on raw event logs. The mention of token-delta telemetry exclusion further clarifies its scope.

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 strong context: 'Continue with next_seq while has_more is true' gives explicit pagination guidance, and 'Token-delta telemetry is excluded by default; opt in only for streaming forensics' tells when to use the include_token_deltas parameter. However, it does not explicitly mention alternative tools for other event-related operations (e.g., session_metrics for aggregated data), which would strengthen the usage guidance.

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

session_evidence_checklist_updateUpdate Evidence Checklist Item StatusA

Operator workflow for the v2.7.0 Evidence Broker. Mark a checklist item as 'satisfied' (operator confirms the ask was answered), 'deferred' (out of scope for this session), 'rejected' (ask itself is unfounded), or 'open' (retract a prior terminal status). The 'addressed' status is reserved for runtime auto-promotion (resurfacing inference) and cannot be set via this tool. Every transition is appended to evidence_status_history with the operator's optional note.

ParametersJSON Schema
NameRequiredDescriptionDefault
noteNo
callerNooperator
statusYes
item_idYes
session_idYes
response_formatNojson

TDQS

A4.4/5.0
Behavior4/5

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

Beyond the annotations (all false), the description discloses the key behavioral trait: 'every transition is appended to evidence_status_history with the operator's optional note', which is consistent with idempotentHint=false since repeated calls create additional history entries. It also explains the runtime auto-promotion behavior that owns the 'addressed' status. This enriches context without contradicting the structured 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?

Each of four sentences earns its place moves forward: the role and version, the statuses with crisply scoped definitions, the 'addressed' exclusion, and the history side effect. Context is reasonably|null|. There is no filler or tautology — it reads as a spec, not boilerplate.

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 tool with no output schema, no parameter descriptions, and only negative annotations, the description covers the full decision surface: all four legal statuses, the forbidden status, and the side-effect of appending history entries. Remaining gaps are minor: what response_format returns and the exact provenance of item_id are not explained, but the operator workflow and status semantics are completely usable.

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?

Given 0% schema description coverage, this description carries the semantic weight for the most important parameter, 'status': it defines exactly what each enum value resolves when monitoring an operator action. It also clarifies that 'note' is the optional operator note appended to history. It does not explain session_id, item_id, caller, or response_format, but their schemas' patterns and enums already serve those adequately — the definition focuses its budget where ambiguity is highest.

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 and resource ('Mark a checklist item') and enumerates all four legal statuses with their operational meanings: satisfied, deferred, rejected, open. It clearly signals that 'addressed' is not settable through this tool, which is an additional scope boundary. The operator-workflow framing and status semantics distinguish it from evidence-attachment and judging siblings without needing to 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 Guidelines4/5

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

The description gives explicit when-to-use context: each status is mapped to the operator's workflow condition ('operator confirms the ask was answered', 'out of scope for this session', etc.). It also gives a crisp when-not-to-use rule: the 'addressed' status is réservé for runtime auto-promotion and cannot be set here. It does not name alternative sibling tools explicitly, but the exclusion and conditional semantics provide solid routing guidance.

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

session_evidence_judge_consensus_passRun Evidence Judge Consensus PassB

Operator-authorized multi-peer evidence judgment. Requires the dedicated operator capability token and at least two distinct enabled judge peers. A peer is forbidden from ruling on its own evidence ask; any self-judge member makes that item's consensus fail closed. Active mode promotes only unanimous verified-satisfied judgments with non-empty rationales and zero parser warnings; shadow mode never mutates state.

ParametersJSON Schema
NameRequiredDescriptionDefault
draftYes
roundNo
callerNooperator
item_idsNo
session_idYes
judge_peersYes
shadow_modeNo
review_focusNo
response_formatNojson

TDQS

B3.3/5.0
Behavior4/5

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

With all annotations false, the description carries the burden of disclosing behavior. It meaningfully explains that shadow mode never mutates state, active mode enforces unanimous verified-satisfied judgments with non-empty rationales and zero parser warnings, and self-judging causes fail-closed behavior. This goes well beyond the structured annotations, though it leaves the exact effects of 'promoting' somewhat vague.

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 compact and information-dense, consisting of two front-loaded sentences that establish purpose, prerequisites, mode differences, and key constraints. It has no filler, though the density of specialized terms like 'parser warnings' and 'promotes' could benefit from brief expansion.

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 tool with 9 parameters, no output schema, and sparse annotations, the description is insufficient. It leaves critical operational details undefined, such as what 'draft' contains, how item_ids are selected, what review_focus does, and what the tool returns. An agent would struggle to construct a correct call with only this description.

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 0%, and the description only clarifies judge_peers and shadow_mode. It does not explain the meaning or usage of session_id, draft, round, caller, item_ids, review_focus, or response_format, which are essential for correctly invoking this tool with 9 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 identifies the tool as an operator-authorized multi-peer evidence judgment process, with specific operational constraints. It distinguishes itself from sibling tools like session_evidence_judge_pass through the explicit 'consensus' focus, though it does not directly name any sibling.

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 necessary prerequisites (operator token, two distinct judge peers) and differentiates active vs shadow modes, giving some contextual use guidance. However, it does not explicitly state when to choose this tool over alternatives such as ask_peers, run_until_unanimous, or session_evidence_judge_pass, nor does it mention exclusions.

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

session_evidence_judge_passRun Evidence Judge PassA

Operator-authorized LLM satisfied-detection for the Evidence Broker. Requires the dedicated operator capability token. The configured judge peer reads each currently-open checklist item against the supplied draft and returns a structured judgment; a peer can never judge its own evidence ask. The runtime promotes only items where satisfied=true AND confidence='verified'; everything else stays open. Terminal operator statuses and already-addressed items are never touched. Optional shadow_mode records non-mutating decisions.

ParametersJSON Schema
NameRequiredDescriptionDefault
draftYes
roundNo
callerNooperator
item_idsNo
judge_peerYes
session_idYes
shadow_modeNo
review_focusNo
response_formatNojson

TDQS

A3.9/5.0
Behavior5/5

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

All annotations are false, so the description carries the full burden of behavioral disclosure. It discloses the token requirement, the judge peer's role, the 'cannot judge its own ask' constraint, the promotion rule (satisfied=true and confidence='verified'), that everything else stays open, that terminal statuses are untouched, and that shadow_mode is non-mutating. These details go well beyond a generic tool statement and make side effects predictable.

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 about four sentences and packs a lot of information without being overly verbose. The opening sentence establishes the purpose, and subsequent sentences detail behavior. There is minor redundancy (e.g., 'Operator-authorized' and 'Requires the dedicated operator capability token' could be merged), but overall it is efficiently structured and front-loads the core action.

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 9 parameters, no output schema, and zero param descriptions, the description covers the core process well (what items it operates on, promotion rules, exceptions) but omits parameter semantics for most fields and does not describe return structure. It gives enough for a basic invocation but not enough to use optional parameters like round, item_ids, review_focus, or response_format effectively. The complexity warrants more detail.

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 0%, so the description must compensate. It adds meaning only for 'draft' (the supplied text) and 'judge_peer' (the configured reader), with no explanation of the other 7 parameters (session_id, round, caller, item_ids, review_focus, response_format, shadow_mode). An agent would have to infer or guess the role of item_ids, review_focus, and response_format. This is a significant gap given 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 states a specific verb ('judge pass'), a specific resource ('Evidence Broker'), and what it does: runs an LLM satisfied-detection pass over open checklist items. It also names the sibling it is not (consensus pass) indirectly by calling itself a judge pass. The distinction from related tools is clear enough for an agent to route correctly.

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 clear context: it requires an operator token, operates on currently-open items, and promotes only satisfied+verified items. However, it does not explicitly state when to prefer this tool over the consensus pass or other sibling tools, nor does it mention exclusions beyond 'terminal operator statuses and already-addressed items.' No alternative is named, so 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.

session_finalizeFinalize SessionB
Idempotent

Operator-only: mark a durable session as converged, aborted or max-rounds with an optional reason of at most 200 characters. Requires the dedicated operator capability token from a separate human-console host.

ParametersJSON Schema
NameRequiredDescriptionDefault
callerNooperator
reasonNo
outcomeYes
session_idYes
response_formatNojson

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare the safety profile (readOnlyHint=false, destructiveHint=false, idempotentHint=true), and the description is consistent with these — no contradiction. The description adds useful context about the operator token and host requirement beyond the annotations. However, it misses the most agent-relevant behavioral details for a state-mutating operation: whether finalization is terminal, whether it can be resumed, what happens to in-flight rounds, and what the return looks like. Annotations lower the bar, but the description still leaves side effects undisclosed.

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?

Two sentences with every clause earning its place; the operator scope is front-loaded ahead of the action, and the token/host requirement is packed into the second sentence. The only minor waste is restating the 200-character reason limit that already exists in the schema's maxLength constraint. Otherwise remarkably tight for the amount of information conveyed.

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 moderate-complexity mutation tool with no output schema, the description covers the core operation and access model competently. However, with no output schema to document return values, the burden on the description rises, and it leaves unexplained: whether finalization is terminal, the return/confirmation format, and error behaviors (e.g., unknown session_id, finalizing an already-finalized session). The absence of any guidance on interaction with concurrent rounds is notable given siblings like session_recover_interrupted.

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 bears a heavy burden, but it adds almost nothing beyond restating the 200-character reason cap already present in the schema's maxLength. It offers no guidance on the semantics of choosing among 'converged' vs 'aborted' vs 'max-rounds', does not disambiguate the confusing 'caller' enum (listing model names with default 'operator'), and is silent on session_id state requirements and response_format. For a tool with low schema coverage, this is a significant gap that the description fails to compensate for.

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 provides a specific verb ('mark'), a resource ('a durable session'), and the exact set of outcome values ('converged, aborted or max-rounds'), leaving no ambiguity about what the tool does. The 'Operator-only' scoping and title align tightly with the name. However, it doesn't explicitly differentiate itself from the 28 siblings (e.g., session_cancel_job, session_start_round), even though such differentiation would be valuable, keeping it at a 4 rather than 5.

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 meaningful contextual constraints — 'Operator-only' and 'Requires the dedicated operator capability token from a separate human-console host' — which effectively tell the agent when it can and cannot call this tool. However, it provides no explicit routing to or exclusion from alternatives, which matters given the large sibling set. The usage guidance is implied through access prerequisites rather than stated as when-to-use vs. when-not-to-use guidance.

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

session_initInitialize SessionA

Create a durable cross-review session after probing provider availability and model selection. This does not call reviewer models yet. AI callers should submit raw proof through the evidence field of the subsequent review starter; the runtime will persist it automatically without session_attach_evidence or human intervention.

ParametersJSON Schema
NameRequiredDescriptionDefault
taskYesOriginal task or artifact being reviewed.
callerNooperator
review_focusNoOptional provider-neutral review scope anchor. This is not Claude Code's /focus UI command; it is injected as a front-loaded Review Focus prompt block for every selected peer, including OUT OF SCOPE handling for unrelated findings.
response_formatNojson

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already indicate this is a mutating, non-idempotent operation. The description adds valuable behavioral context beyond annotations: the session is durable, reviewer models are not invoked yet, and evidence submitted later is persisted automatically without human intervention or an attach step. This meaningfully clarifies side effects and workflow behavior.

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 with no filler. The core purpose is front-loaded, and the second sentence adds essential workflow context about evidence persistence and the absence of reviewer invocation. Every sentence 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 key workflow context: when to call it, what it does not do, and how evidence should be handled afterward. It does not name the specific 'subsequent review starter' tool or describe return values, but given the moderate complexity and the presence of sibling tools, this is a minor gap rather than a critical omission.

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%, and the description does not compensate for the undocumented caller and response_format parameters. It mentions the evidence field, but that is not a parameter of this tool. The description adds no meaning to task, caller, review_focus, or response_format beyond what the schema already 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 states a specific verb and resource: 'Create a durable cross-review session'. It also distinguishes itself from siblings by noting it runs 'after probing provider availability and model selection' and explicitly says 'This does not call reviewer models yet', separating it from ask_peers and session_start_round.

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 explicit sequencing guidance ('after probing provider availability and model selection'), clarifies what the tool does not do ('does not call reviewer models yet'), and tells callers to submit evidence via the subsequent review starter instead of using session_attach_evidence. This effectively provides when, when-not, and an alternative.

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

session_judgment_precision_reportJudgment Precision ReportA
Read-onlyIdempotent

v2.14.0 — compute precision/recall/F1 of the shadow judge against the empirical ground truth (whether peers raised the same ask in a subsequent round). Walks session.evidence_judge_pass.shadow_decision events across all sessions (or a single session via session_id, or filtered by judge peer / since timestamp), correlates each decision with the subsequent evidence_checklist resurfacing behavior, and returns per-peer TP/FP/TN/FN counts plus precision/recall/F1. Decisions whose item.last_round equals the judge round AND no later round exists are excluded as 'no ground truth' (we cannot tell if the ask would have come back). Operator uses this to decide whether to flip a peer from shadow to active mode (item 2 / v2.13).

ParametersJSON Schema
NameRequiredDescriptionDefault
peerNo
sinceNo
session_idNo
response_formatNojson

TDQS

A4.7/5.0
Behavior5/5

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

Goes well beyond the provided annotations (readOnlyHint, idempotentHint, destructiveHint) by disclosing a genuinely subtle behavioral trait: decisions whose item.last_round equals the judge round AND no later round exists are excluded as 'no ground truth,' with an explanation of why ('we cannot tell if the ask would have come back'). This is exactly the kind of non-obvious scoping an agent needs to interpret results. Also adds version context and result shape. 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?

Substantial but every sentence earns its place: version marker, function, inputs, algorithm, output, exclusion rule, and consumer decision. The most important behavioral detail (the no-ground-truth exclusion) is front-staged where it can't be missed, and the dangling operational references ('v2.14.0', 'item 2 / v2.13') add provenance without bloat.

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 complex analytical tool doing multi-session aggregation with a non-trivial ground-truth determination rule, this description is remarkably self-sufficient: it covers inputs, mechanism, output contract, edge-case exclusion, and the downstream decision it serves. The only marginal gap is the lack of a defined return schema, but no output schema exists and the prose already enumerates the return shape (per-peer TP/FP/TN/FN plus precision/recall/F1).

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?

With 0% schema description coverage, the description carries full weight, and it largely delivers: it adds meaning to three of the four parameters by embedding them in the algorithm ('via session_id, or filtered by judge peer / since timestamp'), clarifying that 'peer' means the judging peer and 'since' is a timestamp filter. response_format is left undiscussed, though its name and default make it self-explanatory. Strong compensation for the schema's silence, though not exhaustive.

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?

Opens with a specific verb+resource: 'compute precision/recall/F1 of the shadow judge against the empirical ground truth,' then details the exact event stream, correlation mechanism, and output shape. The extreme specificity of the resource ('session.evidence_judge_pass.shadow_decision' events vs. 'evidence_checklist resurfacing behavior') makes confusion with siblings like session_metrics or session_peer_reliability_report implausible, even without naming them explicitly.

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?

Provides a concrete 'when to use' statement: 'Operator uses this to decide whether to flip a peer from shadow to active mode (item 2 / v2.13),' which ties the tool to a real decision gate. However, it never names the overlapping alternatives (session_peer_reliability_report, session_metrics, session_doctor) nor states when NOT to use it, leaving the exclusion side implicit.

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

session_listList SessionsA
Read-onlyIdempotent

List durable sessions saved under the local data directory. The default response is paginated and summary-only to keep stdio transports bounded; use session_read for one full session or detail='full' for a bounded page of full metadata.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
detailNosummary
offsetNo
outcome_filterNoall
response_formatNojson

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, freeing the description from safety disclaimers. The description adds valuable behavioral context by explaining WHY the default is summary ('to keep stdio transports bounded') and that detail='full' returns a 'bounded page of full metadata.' This reveals the tool's internal rate-limiting rationale, which is genuinely useful behavior not evident from annotations alone.

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, zero fluff. The first sentence states the core purpose, the second explains behavior, rationale, and points to the alternative. Every clause contributes to the user's decision-making: what, why, and when-not. The most important information is front-loaded immediately.

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 5 parameters and no output schema, the description adequately covers the main usage decision (how to get full vs summary, and where to go for a single session). It could mention `outcome_filter` since that's a domain-specific filter, but the defaults and self-explanatory names reduce the ambiguity. The presence of annotations for read-only/idempotence fills the safety gap. Minor omissions prevent a 5, but the description is complete enough for an agent to use the tool correctly in most intended scenarios.

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 description coverage is 0%, so the description carries the burden of explaining parameters. It does explain the `detail` parameter's effect (summary vs full) and implies pagination via 'paginated,' which covers `limit` and `offset` conceptually. However, it leaves `outcome_filter` and `response_format` unexplained, and doesn't explicitly map the pagination wording to the parameter names. The description adds meaning for the most crucial parameters but still leaves the agent to infer the rest from names alone.

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 opens with a clear verb-resource-scope triplet: 'List durable sessions saved under the local data directory.' This precisely distinguishes it from siblings like session_metrics or session_read, and the contrast with session_read is explicitly stated. The purpose is immediately understandable and differentiates from other session_* tools.

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 explicitly routes the agent: 'use session_read for one full session or detail='full' for a bounded page of full metadata.' This names the alternative tool (session_read) and provides the selection condition, leaving no ambiguity about when to choose this tool versus the alternative.

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

session_metricsSession MetricsA
Read-onlyIdempotent

Return aggregate observability metrics across all sessions, or only one session when session_id is provided.

ParametersJSON Schema
NameRequiredDescriptionDefault
session_idNo
response_formatNojson

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false. The description adds that the tool returns metrics for all or one session, but does not disclose further behavioral traits (e.g., data freshness, pagination, or performance). With annotations covering safety, the description provides some 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 sentence that efficiently conveys the purpose and optional scoping. 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 tool with 2 parameters and no output schema, the description is brief. It does not explain the structure of the returned metrics or any usage constraints. While adequate for a simple read-only tool, more detail would improve completeness.

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 0%, so the description must add meaning. It does: explains that session_id is optional and scopes results to one session. However, it does not describe what 'aggregate observability metrics' includes or the meaning of response_format beyond the enum.

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 'Return' and the resource 'aggregate observability metrics', and specifies scope (all sessions or one with session_id). This distinguishes it from sibling tools which focus on session actions like cancel, attach evidence, etc.

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 explicit guidance on when to use this tool versus alternatives. The description does not mention prerequisites, exclusions, 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.

session_peer_reliability_reportPeer Reliability ReportA
Read-onlyIdempotent

Read-only per-peer reliability telemetry: READY/NEEDS_EVIDENCE/NOT_READY counts, parser warnings, provider errors, unresolved evidence asks, fabrication events, latency and cost. Observational only; does not change peer selection or mutate sessions.

ParametersJSON Schema
NameRequiredDescriptionDefault
session_idNo
response_formatNojson

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already provide readOnlyHint=true, idempotentHint=true, destructiveHint=false. The description adds that it is 'Observational only' and enumerates the telemetry fields, providing useful 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.

Conciseness4/5

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

The description is three sentences, front-loaded with the purpose, and lists data fields efficiently. Minor redundancy could be removed, but overall 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?

For a simple read-only tool with two optional parameters and good annotations, the description provides sufficient behavioral context. It explains what data is returned, though it lacks output format details.

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 0%. The description does not explain the two input parameters (session_id and response_format) at all, leaving the agent without guidance on how to invoke the tool.

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 specifies 'Read-only per-peer reliability telemetry' and lists the exact data fields, clearly defining the tool's function. It distinguishes from siblings as no other tool in the list explicitly provides similar reliability metrics.

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?

States 'Observational only; does not change peer selection or mutate sessions,' giving clear context on when to use. However, it does not mention when not to use this tool compared to alternatives like session_report.

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

session_pollPoll SessionA
Read-onlyIdempotent

Return durable session state and background job status without waiting for provider calls to finish. Default detail=summary keeps prior-round peer text/raw payloads out of polling responses; use detail=full or session_read only when full forensic data is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
detailNosummary
session_idYes
response_formatNojson

TDQS

A4.7/5.0
Behavior5/5

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

Discloses non-blocking behavior, default detail filtering, and persistence of state beyond annotations; no contradiction with readOnly, idempotent, destructive 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?

Two sentences efficiently covering purpose, behavior, and parameter guidance with no redundant content.

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?

Given annotations, schema, and sibling tools, the description provides sufficient context for an agent to correctly invoke the tool in a polling workflow.

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 0%, but description adds meaning for 'detail' parameter; however, does not explain 'response_format' parameter, leaving some semantic gap.

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 returns 'durable session state and background job status' and distinguishes from blocking operations and sibling session_read by mentioning polling behavior and when to use 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 when to use default detail=summary vs detail=full and recommends session_read for full forensic data, providing clear context for tool selection.

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

session_preflight_checkCheck Submission PreflightsA
Read-onlyIdempotent

Run the same enabled evidence and truthfulness gates used by a real review round, without calling providers. Peer-submitted inline/structured evidence is checked as review material and requires no manual operator attachment.

ParametersJSON Schema
NameRequiredDescriptionDefault
taskNo
draftNo
callerNooperator
evidenceNo
session_idYes
response_formatNojson

TDQS

A3.7/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 the description's burden is reduced. It adds value by stating that no providers are called and that peer-submitted evidence requires no manual attachment. This provides useful behavioral context beyond 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 extremely concise with two sentences, no redundancy, and no extraneous information. Every word contributes to the tool's core purpose and behavior.

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 no parameter descriptions, the description is inadequate. It does not explain what the tool returns, how to interpret results, or how to properly fill required fields like task and draft. The tool is simple but the description leaves significant 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 0%, so the description must compensate. It only indirectly mentions 'evidence' in the context of peer-submitted inline/structured evidence, but does not explain the purpose or usage of other parameters like task, draft, caller, session_id, or response_format. This leaves the agent with insufficient guidance.

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 runs the same evidence and truthfulness gates as a real review round, without calling providers. This specifies the verb ('Run'), the resource ('gates'), and distinguishes it from a full review round. The title 'Check Submission Preflights' further reinforces the 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 its use case (pre-checking evidence and truthfulness before a review round), but does not provide explicit guidance on when to use versus sibling tools like 'session_truthfulness_preflight_check'. No exclusion criteria or alternatives are mentioned.

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

session_readRead SessionA
Read-onlyIdempotent

Read a durable session meta.json by session_id.

ParametersJSON Schema
NameRequiredDescriptionDefault
session_idYes
response_formatNojson

TDQS

A3.7/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, so the safety profile is clear. The description adds the 'durable' aspect, suggesting persistent storage, but does not disclose error behavior, auth requirements, or rate limits. Given annotations cover the main behavioral aspects, a 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?

A single, front-loaded sentence with no filler. It efficiently communicates the core action and resource, earning its place with minimal verbosity.

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 read operation with annotations covering safety and a self-explanatory schema, the description is nearly complete. It lacks explicit mention of return structure, but the response_format parameter implies output formatting. The absence of an output schema means the description could state that the response contains the meta.json content, but this is minor given the tool's simplicity.

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 0%, so the description must compensate by explaining parameter meaning, but it does not mention either parameter. The schema itself provides clear semantics via the UUID pattern for session_id and enum for response_format, but the description adds no value for 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 states a specific verb ('Read') and resource ('durable session meta.json') keyed by session_id. This is distinct from sibling tools like session_list (for listing) or session_events (for event data), and the term 'meta.json' clarifies the exact artifact being read.

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 the raw meta.json content of a durable session, but it does not explicitly contrast with alternatives or state when not to use it. With many session-related siblings, explicit routing would be helpful, but the specificity provides some implied guidance.

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

session_recover_interruptedRecover Interrupted SessionsA
Idempotent

Mark unfinished sessions with stale in-flight rounds as recovered after a MCP host restart so they can be resumed explicitly.

ParametersJSON Schema
NameRequiredDescriptionDefault
callerNooperator
response_formatNojson

TDQS

A3.7/5.0
Behavior3/5

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

Annotations indicate idempotentHint=true and destructiveHint=false. The description adds the context of marking sessions as recovered after restart, which aligns. However, it does not elaborate on what 'stale' means or if there are side effects, but given the annotations, this is adequate.

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 that directly states the function. It is front-loaded and efficient, though slightly dense. It earns its place 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 absence of an output schema and the simple nature of the tool, the description provides the core context. However, it lacks details on what 'stale in-flight rounds' means and what the response looks like. It is minimally complete but could be better.

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 0% and the description does not explain the 'caller' or 'response_format' parameters. While both have enums and defaults, the description should clarify their role to help the agent select correct values. This is a clear gap.

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 purpose: to recover interrupted sessions after a restart by marking unfinished ones as recovered. The verb 'recover' and resource 'interrupted sessions' are specific, and the context of restart distinguishes it from other session management tools.

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 usage scenario (after a restart) and outcome (explicit resumption). It does not explicitly state when not to use or provide alternatives, but the purpose is clear enough for an agent to decide.

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

session_reportSession ReportC
Read-onlyIdempotent

Generate and save a Markdown report with convergence, peer decisions, failures, costs and latest events.

ParametersJSON Schema
NameRequiredDescriptionDefault
session_idYes
response_formatNojson

TDQS

C2.4/5.0
Behavior1/5

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

The description says 'save a Markdown report,' implying a write operation, but annotations set readOnlyHint=true, indicating it should not modify state. This is a direct contradiction.

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, concise and front-loaded with the main purpose. However, it sacrifices clarity for brevity, leading to ambiguity.

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 no output schema and two parameters, the description is incomplete. It does not describe the return value or parameter details, and the contradiction with annotations undermines completeness.

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 description does not explain any of the two parameters (session_id, response_format). Schema description coverage is 0%, so the description should compensate but fails to do so. Additionally, the description mentions Markdown but response_format defaults to json, causing further confusion.

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 it generates and saves a Markdown report listing specific contents (convergence, peer decisions, etc.), which provides a clear verb and resource. However, it does not distinguish from sibling tools like session_events or session_check_convergence, which might overlap.

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?

There is no guidance on when to use this tool versus alternatives. No context about prerequisites or typical use cases is provided.

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

session_start_roundStart Review RoundB

Start a real peer-review round in the background and return immediately with a session_id/job_id for polling. AI evidence supplied in evidence is persisted durably and transported automatically; no manual operator attachment is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
taskYes
draftYes
peersNo
callerNooperator
evidenceNoRaw evidence from the authenticated AI caller. It is persisted automatically as durable, SHA-256-addressed caller_submitted_unverified material and transported to reviewers; no manual operator attachment is required. Do not call session_attach_evidence for this routine path.
session_idNo
review_focusNoOptional provider-neutral review scope anchor. This is not Claude Code's /focus UI command; it is injected as a front-loaded Review Focus prompt block for every selected peer, including OUT OF SCOPE handling for unrelated findings.
caller_statusNoREADY
response_formatNojson
reasoning_effort_overridesNoOptional per-peer reasoning_effort overrides for this call. Keys are peer ids (codex|claude|gemini|deepseek|grok|perplexity); missing keys fall back to global config. This is a shared scale: adapters normalize unsupported literals to the selected model's documented enum (`ultra` becomes max on GPT-5.6, Kimi K3 via Perplexity and DeepSeek, and xhigh on Grok 4.6; older GPT-5 families use their own ceilings).

TDQS

B3.3/5.0
Behavior4/5

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

Annotations already signal a non-read-only, non-idempotent mutation, and the description adds useful context: the operation runs in the background, returns immediately, persists evidence durably, and transports it automatically. This goes beyond the structured hints without contradicting them.

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 short and front-loaded, with the action and return behavior in the first sentence. The second sentence reinforces evidence handling but partially duplicates the evidence parameter's own schema description, so it is not entirely additive.

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 10-parameter tool with nested objects, no output schema, and only 30% schema coverage, the description is too sparse. It omits required parameter semantics, the meaning of `peers`/`caller` enums, response format selection, and how the returned session_id/job_id should be polled in practice.

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 30%, and the main description only elaborates on `evidence`. Required parameters like `task` and `draft`, plus `peers`, `caller`, `session_id`, `caller_status`, and `response_format`, receive no semantic explanation in either the description or the schema. The description does not 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 names a specific verb and resource ('Start a real peer-review round') and adds the key async behavior: launch in background, return session_id/job_id for polling. It does not explicitly differentiate from sibling session_start_unanimous beyond the vague word 'real', 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 Guidelines3/5

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

The description conveys an async usage pattern (start and poll) and the evidence parameter explicitly says 'Do not call session_attach_evidence for this routine path', giving one clear exclusion. However, it never states when to prefer this over run_until_unanimous, session_start_unanimous, or ask_peers, so the guidance is mostly implied.

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

session_start_unanimousStart Until UnanimousA

Start real API generation/revision rounds in the background until unanimity, max_rounds or budget limit. AI evidence supplied in evidence is persisted durably and transported automatically; no manual operator attachment is required. v2.11.0: same caller + relator-lottery semantics as run_until_unanimous — see that tool for details.

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNoship
taskYes
peersNo
callerNooperator
evidenceNoRaw evidence from the authenticated AI caller. It is persisted automatically as durable, SHA-256-addressed caller_submitted_unverified material and transported to reviewers; no manual operator attachment is required. Do not call session_attach_evidence for this routine path.
lead_peerNo
max_roundsNoHard review-round ceiling unless allow_auto_extension is explicitly true.
session_idNo
max_cost_usdNo
review_focusNoOptional provider-neutral review scope anchor. This is not Claude Code's /focus UI command; it is injected as a front-loaded Review Focus prompt block for every selected peer, including OUT OF SCOPE handling for unrelated findings.
initial_draftNo
until_stoppedNo
response_formatNojson
allow_auto_extensionNoOpt in to at most two evidence-only auto-extensions. False keeps max_rounds rigid.
reasoning_effort_overridesNoOptional per-peer reasoning_effort overrides for this call. Keys are peer ids (codex|claude|gemini|deepseek|grok|perplexity); missing keys fall back to global config. This is a shared scale: adapters normalize unsupported literals to the selected model's documented enum (`ultra` becomes max on GPT-5.6, Kimi K3 via Perplexity and DeepSeek, and xhigh on Grok 4.6; older GPT-5 families use their own ceilings).

TDQS

A3.8/5.0
Behavior4/5

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

Annotations are thin (readOnly=false, idempotent=false, destructive=false), so the description carries real weight and delivers: background execution with concrete stop conditions, evidence that is 'persisted durably and transported automatically,' and version-pinned semantics referencing run_until_unanimous. It stops short of warning that 'real API' rounds incur real cost or telling the caller how results are later retrieved.

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 with the purpose and stop conditions front-loaded in the first sentence. Sentence 2 partially duplicates the evidence schema description, and sentence 3 defers substance via 'see that tool for details' rather than explaining it, but there is no outright 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?

A 15-parameter background-job starter with no output schema needs to state what it returns and how to monitor or cancel the job; the description mentions neither, forcing the agent to infer session_poll and session_cancel_job from sibling names. It is adequate for initiating the job but incomplete for the full lifecycle.

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 only 33% schema description coverage, the description should compensate for undocumented parameters, but it only addresses `evidence` (which the schema already describes in greater detail) and `caller` (deferred to run_until_unanimous). Ambiguous enums like mode ('ship' vs 'circular') and the roles of lead_peer, until_stopped, and max_cost_usd are left unexplained.

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 opens with a specific action — 'Start real API generation/revision rounds in the background' — and names the three termination conditions (unanimity, max_rounds, budget limit). The 'background' qualifier hints at the distinction from the synchronous run_until_unanimous, but it never names session_start_round as the single-round alternative, so sibling differentiation is incomplete.

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 positions this as the background variant and defers `caller` + relator-lottery semantics to run_until_unanimous, and the evidence parameter adds an explicit exclusion: 'Do not call session_attach_evidence for this routine path.' However, the tool never states when to prefer this over session_start_round or run_until_unanimous, leaving the when-to-use matrix partial.

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

session_sweepSweep Idle SessionsA
Idempotent

Finalize unfinished sessions whose metadata has been idle for at least 24 hours. The terminal reason accepts at most 200 characters. v3.7.5 (B1): opt-in prune_corrupt also removes stale entries from the corrupt_sessions/ quarantine directory.

ParametersJSON Schema
NameRequiredDescriptionDefault
callerNooperator
reasonNostale
outcomeNoaborted
idle_minutesNo
prune_corruptNo
response_formatNojson
corrupt_min_age_daysNo

TDQS

A3.8/5.0
Behavior3/5

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

The annotations declare readOnlyHint=false (so it's a state-changing operation), idempotentHint=true (safe to retry), and destructiveHint=false. The description adds useful context by noting the prune_corrupt option removes entries from quarantine, which is a subtle destructive-ish behavior not covered by annotations. However, it doesn't detail what 'finalize' does to the underlying session state beyond that, or whether there are side effects on related data. It adds some value but the bar is lower because annotations carry the safety profile.

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 extremely concise — three sentences total, and the first sentence is front-loaded with the core purpose. The version note and prune_corrupt detail are placed at the end, which is good structure. Every sentence adds value; no fluff or repetition of schema fields.

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 7 parameters and 0% parameter documentation, the description is notably incomplete. It covers the idle condition and the prune_corrupt feature, but doesn't explain the meaning of 'outcome', 'response_format', or 'corrupt_min_age_days' — these are critical for correct invocation. The lack of an output schema means the description must also hint at return values, which it doesn't. Overall, an agent could call it safely with defaults but can't make informed customizations without external knowledge.

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 0% — the description provides NO parameter-level explanation. With 7 parameters and 0% coverage, the description should compensate, but it doesn't. It only mentions the reason max length and the prune_corrupt option, leaving idle_minutes, outcome, response_format, corrupt_min_age_days, and caller completely undocumented. An agent cannot know the meaning or effect of most parameters without opening the schema, and even then the schema only shows types/enums, not semantics like when to change defaults.

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 ('Finalize'), a specific resource ('unfinished sessions'), and a precise triggering condition (idle ≥24 hours). It also mentions the terminal reason length limit and the optional prune_corrupt behavior, which adds specificity beyond just naming the action. This clarity distinguishes it from other session tools (which focus on other lifecycle steps like init, list, read).

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 this tool is for finalizing idle sessions — the idle condition (24 hours) and the mention of 'unfinished sessions' give the agent clear context on when to call it. It does not explicitly name sibling alternatives or exclusion conditions, but the context is strong enough that an agent can infer when this tool is appropriate versus session_init/session_read/session_finalize.

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

session_truthfulness_preflight_checkCheck Submission Preflights (Legacy Alias)C
Read-onlyIdempotent

Backward-compatible alias for session_preflight_check. Its top-level pass now reflects both enabled runtime gates, eliminating truthfulness-only false positives.

ParametersJSON Schema
NameRequiredDescriptionDefault
taskNo
draftNo
callerNooperator
evidenceNo
session_idYes
response_formatNojson

TDQS

C2.6/5.0
Behavior4/5

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

The description adds behavioral context beyond annotations by revealing that the top-level pass now reflects both enabled runtime gates, eliminating truthfulness-only false positives. Annotations already provide readOnlyHint and idempotentHint, so the bar is lower, but the description meaningfully extends transparency.

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 very short (two sentences) and front-loaded, but it omits critical information about parameters and usage. While concise, it sacrifices clarity and completeness, earning a middle score.

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 has 6 parameters (with 0% schema description coverage) and no output schema, the description is woefully incomplete. It does not explain what the tool returns, how to use inputs, or any prerequisites. Only the behavioral quirk is addressed.

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 0%, yet the description provides no information about any parameters (session_id, task, draft, evidence, caller, response_format). The description does not compensate at all, leaving the agent without guidance on parameter usage.

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 states it is a backward-compatible alias for session_preflight_check and explains a behavioral change, but does not clearly state the core function of checking submission preflights. The title helps, but the description is ambiguous for an agent unfamiliar with the original tool.

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 explicit guidance on when to use this tool versus alternatives (e.g., session_preflight_check). The description implies legacy use but does not provide practical usage context or exclusions.

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. 4 tool updatesv4.4.13
    • Changedask_peers1 field changed
      • changedInput schema / properties / reasoning_effort_overrides / description
        Previous value: -"Optional per-peer reasoning_effort overrides for this call. Keys are peer ids (codex|claude|gemini|deepseek|grok|perplexity); missing keys fall back to global config. This is a shared scale: adapters normalize unsupported literals to the selected model's documented enum (`ultra` becomes max on GPT-5.6 and high on Grok 4.5; older GPT-5 families use their own ceilings)."New value: +"Optional per-peer reasoning_effort overrides for this call. Keys are peer ids (codex|claude|gemini|deepseek|grok|perplexity); missing keys fall back to global config. This is a shared scale: adapters normalize unsupported literals to the selected model's documented enum (`ultra` becomes max on GPT-5.6, Kimi K3 via Perplexity and DeepSeek, and xhigh on Grok 4.6; older GPT-5 families use their own ceilings)."
    • Changedrun_until_unanimous1 field changed
      • changedInput schema / properties / reasoning_effort_overrides / description
        Previous value: -"Optional per-peer reasoning_effort overrides for this call. Keys are peer ids (codex|claude|gemini|deepseek|grok|perplexity); missing keys fall back to global config. This is a shared scale: adapters normalize unsupported literals to the selected model's documented enum (`ultra` becomes max on GPT-5.6 and high on Grok 4.5; older GPT-5 families use their own ceilings)."New value: +"Optional per-peer reasoning_effort overrides for this call. Keys are peer ids (codex|claude|gemini|deepseek|grok|perplexity); missing keys fall back to global config. This is a shared scale: adapters normalize unsupported literals to the selected model's documented enum (`ultra` becomes max on GPT-5.6, Kimi K3 via Perplexity and DeepSeek, and xhigh on Grok 4.6; older GPT-5 families use their own ceilings)."
    • Changedsession_start_round1 field changed
      • changedInput schema / properties / reasoning_effort_overrides / description
        Previous value: -"Optional per-peer reasoning_effort overrides for this call. Keys are peer ids (codex|claude|gemini|deepseek|grok|perplexity); missing keys fall back to global config. This is a shared scale: adapters normalize unsupported literals to the selected model's documented enum (`ultra` becomes max on GPT-5.6 and high on Grok 4.5; older GPT-5 families use their own ceilings)."New value: +"Optional per-peer reasoning_effort overrides for this call. Keys are peer ids (codex|claude|gemini|deepseek|grok|perplexity); missing keys fall back to global config. This is a shared scale: adapters normalize unsupported literals to the selected model's documented enum (`ultra` becomes max on GPT-5.6, Kimi K3 via Perplexity and DeepSeek, and xhigh on Grok 4.6; older GPT-5 families use their own ceilings)."
    • Changedsession_start_unanimous1 field changed
      • changedInput schema / properties / reasoning_effort_overrides / description
        Previous value: -"Optional per-peer reasoning_effort overrides for this call. Keys are peer ids (codex|claude|gemini|deepseek|grok|perplexity); missing keys fall back to global config. This is a shared scale: adapters normalize unsupported literals to the selected model's documented enum (`ultra` becomes max on GPT-5.6 and high on Grok 4.5; older GPT-5 families use their own ceilings)."New value: +"Optional per-peer reasoning_effort overrides for this call. Keys are peer ids (codex|claude|gemini|deepseek|grok|perplexity); missing keys fall back to global config. This is a shared scale: adapters normalize unsupported literals to the selected model's documented enum (`ultra` becomes max on GPT-5.6, Kimi K3 via Perplexity and DeepSeek, and xhigh on Grok 4.6; older GPT-5 families use their own ceilings)."
  2. 15 tool updatesv4.4.12
    • Addedask_peers
    • Addedcontest_verdict
    • Addedescalate_to_operator
    • Addedprobe_peers
    • Addedregenerate_caller_tokens
    • Changedsession_events2 fields changed
      • addedInput schema / properties / include_token_deltas
        Added value: +{
        +  "default": false,
        +  "type": "boolean"
        +}
      • addedInput schema / properties / limit
        Added value: +{
        +  "default": 200,
        +  "maximum": 1000,
        +  "minimum": 1,
        +  "type": "integer"
        +}
    • Addedsession_evidence_checklist_update
    • Addedsession_evidence_judge_consensus_pass
    • Addedsession_evidence_judge_pass
    • Addedsession_finalize
    • Addedsession_init
    • Addedsession_judgment_precision_report
    • Addedsession_list
    • Addedsession_read
    • Addedsession_sweep
  3. 14 tool updatesv4.4.11
    • Removedask_peers
    • Removedcontest_verdict
    • Removedescalate_to_operator
    • Removedprobe_peers
    • Removedregenerate_caller_tokens
    • Removedsession_evidence_checklist_update
    • Removedsession_evidence_judge_consensus_pass
    • Removedsession_evidence_judge_pass
    • Removedsession_finalize
    • Removedsession_init
    • Removedsession_judgment_precision_report
    • Removedsession_list
    • Removedsession_read
    • Removedsession_sweep
  4. 8 tool updatesv4.4.9
    • Changedask_peers8 fields changed
      • addedInput schema / properties / evidence
        Added value: +{
        +  "description": "Raw evidence from the authenticated AI caller. It is persisted automatically as durable, SHA-256-addressed caller_submitted_unverified material and transported to reviewers; no manual operator attachment is required. Do not call session_attach_evidence for this routine path.",
        +  "maxLength": 200000,
        +  "type": "string"
        +}
      • changedInput schema / properties / reasoning_effort_overrides / description
        Previous value: -"Optional per-peer reasoning_effort overrides for this call. Keys are peer ids (codex|claude|gemini|deepseek|grok|perplexity); missing keys fall back to global config. Useful to dial down expensive peers (e.g. Grok grok-4.20-multi-agent xhigh = 16 agents, or Perplexity sonar-deep-research that bills citation + reasoning + search queries separately) for routine reviews without editing the host MCP configs."New value: +"Optional per-peer reasoning_effort overrides for this call. Keys are peer ids (codex|claude|gemini|deepseek|grok|perplexity); missing keys fall back to global config. This is a shared scale: adapters normalize unsupported literals to the selected model's documented enum (`ultra` becomes max on GPT-5.6 and high on Grok 4.5; older GPT-5 families use their own ceilings)."
      • changedInput schema / properties / reasoning_effort_overrides / properties / claude / enum
        Previous value: -[
        -  "none",
        -  "minimal",
        -  "low",
        -  "medium",
        -  "high",
        -  "xhigh",
        -  "max"
        -]New value: +[
        +  "none",
        +  "minimal",
        +  "low",
        +  "medium",
        +  "high",
        +  "xhigh",
        +  "max",
        +  "ultra"
        +]
      • changedInput schema / properties / reasoning_effort_overrides / properties / codex / enum
        Previous value: -[
        -  "none",
        -  "minimal",
        -  "low",
        -  "medium",
        -  "high",
        -  "xhigh",
        -  "max"
        -]New value: +[
        +  "none",
        +  "minimal",
        +  "low",
        +  "medium",
        +  "high",
        +  "xhigh",
        +  "max",
        +  "ultra"
        +]
      • changedInput schema / properties / reasoning_effort_overrides / properties / deepseek / enum
        Previous value: -[
        -  "none",
        -  "minimal",
        -  "low",
        -  "medium",
        -  "high",
        -  "xhigh",
        -  "max"
        -]New value: +[
        +  "none",
        +  "minimal",
        +  "low",
        +  "medium",
        +  "high",
        +  "xhigh",
        +  "max",
        +  "ultra"
        +]
      • changedInput schema / properties / reasoning_effort_overrides / properties / gemini / enum
        Previous value: -[
        -  "none",
        -  "minimal",
        -  "low",
        -  "medium",
        -  "high",
        -  "xhigh",
        -  "max"
        -]New value: +[
        +  "none",
        +  "minimal",
        +  "low",
        +  "medium",
        +  "high",
        +  "xhigh",
        +  "max",
        +  "ultra"
        +]
      • changedInput schema / properties / reasoning_effort_overrides / properties / grok / enum
        Previous value: -[
        -  "none",
        -  "minimal",
        -  "low",
        -  "medium",
        -  "high",
        -  "xhigh",
        -  "max"
        -]New value: +[
        +  "none",
        +  "minimal",
        +  "low",
        +  "medium",
        +  "high",
        +  "xhigh",
        +  "max",
        +  "ultra"
        +]
      • changedInput schema / properties / reasoning_effort_overrides / properties / perplexity / enum
        Previous value: -[
        -  "none",
        -  "minimal",
        -  "low",
        -  "medium",
        -  "high",
        -  "xhigh",
        -  "max"
        -]New value: +[
        +  "none",
        +  "minimal",
        +  "low",
        +  "medium",
        +  "high",
        +  "xhigh",
        +  "max",
        +  "ultra"
        +]
    • Changedrun_until_unanimous10 fields changed
      • addedInput schema / properties / allow_auto_extension
        Added value: +{
        +  "default": false,
        +  "description": "Opt in to at most two evidence-only auto-extensions. False keeps max_rounds rigid.",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / evidence / description
        Added value: +"Raw evidence from the authenticated AI caller. It is persisted automatically as durable, SHA-256-addressed caller_submitted_unverified material and transported to reviewers; no manual operator attachment is required. Do not call session_attach_evidence for this routine path."
      • addedInput schema / properties / max_rounds / description
        Added value: +"Hard review-round ceiling unless allow_auto_extension is explicitly true."
      • changedInput schema / properties / reasoning_effort_overrides / description
        Previous value: -"Optional per-peer reasoning_effort overrides for this call. Keys are peer ids (codex|claude|gemini|deepseek|grok|perplexity); missing keys fall back to global config. Useful to dial down expensive peers (e.g. Grok grok-4.20-multi-agent xhigh = 16 agents, or Perplexity sonar-deep-research that bills citation + reasoning + search queries separately) for routine reviews without editing the host MCP configs."New value: +"Optional per-peer reasoning_effort overrides for this call. Keys are peer ids (codex|claude|gemini|deepseek|grok|perplexity); missing keys fall back to global config. This is a shared scale: adapters normalize unsupported literals to the selected model's documented enum (`ultra` becomes max on GPT-5.6 and high on Grok 4.5; older GPT-5 families use their own ceilings)."
      • changedInput schema / properties / reasoning_effort_overrides / properties / claude / enum
        Previous value: -[
        -  "none",
        -  "minimal",
        -  "low",
        -  "medium",
        -  "high",
        -  "xhigh",
        -  "max"
        -]New value: +[
        +  "none",
        +  "minimal",
        +  "low",
        +  "medium",
        +  "high",
        +  "xhigh",
        +  "max",
        +  "ultra"
        +]
      • changedInput schema / properties / reasoning_effort_overrides / properties / codex / enum
        Previous value: -[
        -  "none",
        -  "minimal",
        -  "low",
        -  "medium",
        -  "high",
        -  "xhigh",
        -  "max"
        -]New value: +[
        +  "none",
        +  "minimal",
        +  "low",
        +  "medium",
        +  "high",
        +  "xhigh",
        +  "max",
        +  "ultra"
        +]
      • changedInput schema / properties / reasoning_effort_overrides / properties / deepseek / enum
        Previous value: -[
        -  "none",
        -  "minimal",
        -  "low",
        -  "medium",
        -  "high",
        -  "xhigh",
        -  "max"
        -]New value: +[
        +  "none",
        +  "minimal",
        +  "low",
        +  "medium",
        +  "high",
        +  "xhigh",
        +  "max",
        +  "ultra"
        +]
      • changedInput schema / properties / reasoning_effort_overrides / properties / gemini / enum
        Previous value: -[
        -  "none",
        -  "minimal",
        -  "low",
        -  "medium",
        -  "high",
        -  "xhigh",
        -  "max"
        -]New value: +[
        +  "none",
        +  "minimal",
        +  "low",
        +  "medium",
        +  "high",
        +  "xhigh",
        +  "max",
        +  "ultra"
        +]
      • changedInput schema / properties / reasoning_effort_overrides / properties / grok / enum
        Previous value: -[
        -  "none",
        -  "minimal",
        -  "low",
        -  "medium",
        -  "high",
        -  "xhigh",
        -  "max"
        -]New value: +[
        +  "none",
        +  "minimal",
        +  "low",
        +  "medium",
        +  "high",
        +  "xhigh",
        +  "max",
        +  "ultra"
        +]
      • changedInput schema / properties / reasoning_effort_overrides / properties / perplexity / enum
        Previous value: -[
        -  "none",
        -  "minimal",
        -  "low",
        -  "medium",
        -  "high",
        -  "xhigh",
        -  "max"
        -]New value: +[
        +  "none",
        +  "minimal",
        +  "low",
        +  "medium",
        +  "high",
        +  "xhigh",
        +  "max",
        +  "ultra"
        +]
    • Changedsession_cancel_job1 field changed
      • changedInput schema / properties / reason / default
        Previous value: -"operator_requested"New value: +"requester_requested"
    • Changedsession_poll1 field changed
      • addedInput schema / properties / detail
        Added value: +{
        +  "default": "summary",
        +  "enum": [
        +    "summary",
        +    "full"
        +  ],
        +  "type": "string"
        +}
    • Addedsession_preflight_check
    • Changedsession_start_round8 fields changed
      • addedInput schema / properties / evidence
        Added value: +{
        +  "description": "Raw evidence from the authenticated AI caller. It is persisted automatically as durable, SHA-256-addressed caller_submitted_unverified material and transported to reviewers; no manual operator attachment is required. Do not call session_attach_evidence for this routine path.",
        +  "maxLength": 200000,
        +  "type": "string"
        +}
      • changedInput schema / properties / reasoning_effort_overrides / description
        Previous value: -"Optional per-peer reasoning_effort overrides for this call. Keys are peer ids (codex|claude|gemini|deepseek|grok|perplexity); missing keys fall back to global config. Useful to dial down expensive peers (e.g. Grok grok-4.20-multi-agent xhigh = 16 agents, or Perplexity sonar-deep-research that bills citation + reasoning + search queries separately) for routine reviews without editing the host MCP configs."New value: +"Optional per-peer reasoning_effort overrides for this call. Keys are peer ids (codex|claude|gemini|deepseek|grok|perplexity); missing keys fall back to global config. This is a shared scale: adapters normalize unsupported literals to the selected model's documented enum (`ultra` becomes max on GPT-5.6 and high on Grok 4.5; older GPT-5 families use their own ceilings)."
      • changedInput schema / properties / reasoning_effort_overrides / properties / claude / enum
        Previous value: -[
        -  "none",
        -  "minimal",
        -  "low",
        -  "medium",
        -  "high",
        -  "xhigh",
        -  "max"
        -]New value: +[
        +  "none",
        +  "minimal",
        +  "low",
        +  "medium",
        +  "high",
        +  "xhigh",
        +  "max",
        +  "ultra"
        +]
      • changedInput schema / properties / reasoning_effort_overrides / properties / codex / enum
        Previous value: -[
        -  "none",
        -  "minimal",
        -  "low",
        -  "medium",
        -  "high",
        -  "xhigh",
        -  "max"
        -]New value: +[
        +  "none",
        +  "minimal",
        +  "low",
        +  "medium",
        +  "high",
        +  "xhigh",
        +  "max",
        +  "ultra"
        +]
      • changedInput schema / properties / reasoning_effort_overrides / properties / deepseek / enum
        Previous value: -[
        -  "none",
        -  "minimal",
        -  "low",
        -  "medium",
        -  "high",
        -  "xhigh",
        -  "max"
        -]New value: +[
        +  "none",
        +  "minimal",
        +  "low",
        +  "medium",
        +  "high",
        +  "xhigh",
        +  "max",
        +  "ultra"
        +]
      • changedInput schema / properties / reasoning_effort_overrides / properties / gemini / enum
        Previous value: -[
        -  "none",
        -  "minimal",
        -  "low",
        -  "medium",
        -  "high",
        -  "xhigh",
        -  "max"
        -]New value: +[
        +  "none",
        +  "minimal",
        +  "low",
        +  "medium",
        +  "high",
        +  "xhigh",
        +  "max",
        +  "ultra"
        +]
      • changedInput schema / properties / reasoning_effort_overrides / properties / grok / enum
        Previous value: -[
        -  "none",
        -  "minimal",
        -  "low",
        -  "medium",
        -  "high",
        -  "xhigh",
        -  "max"
        -]New value: +[
        +  "none",
        +  "minimal",
        +  "low",
        +  "medium",
        +  "high",
        +  "xhigh",
        +  "max",
        +  "ultra"
        +]
      • changedInput schema / properties / reasoning_effort_overrides / properties / perplexity / enum
        Previous value: -[
        -  "none",
        -  "minimal",
        -  "low",
        -  "medium",
        -  "high",
        -  "xhigh",
        -  "max"
        -]New value: +[
        +  "none",
        +  "minimal",
        +  "low",
        +  "medium",
        +  "high",
        +  "xhigh",
        +  "max",
        +  "ultra"
        +]
    • Changedsession_start_unanimous10 fields changed
      • addedInput schema / properties / allow_auto_extension
        Added value: +{
        +  "default": false,
        +  "description": "Opt in to at most two evidence-only auto-extensions. False keeps max_rounds rigid.",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / evidence / description
        Added value: +"Raw evidence from the authenticated AI caller. It is persisted automatically as durable, SHA-256-addressed caller_submitted_unverified material and transported to reviewers; no manual operator attachment is required. Do not call session_attach_evidence for this routine path."
      • addedInput schema / properties / max_rounds / description
        Added value: +"Hard review-round ceiling unless allow_auto_extension is explicitly true."
      • changedInput schema / properties / reasoning_effort_overrides / description
        Previous value: -"Optional per-peer reasoning_effort overrides for this call. Keys are peer ids (codex|claude|gemini|deepseek|grok|perplexity); missing keys fall back to global config. Useful to dial down expensive peers (e.g. Grok grok-4.20-multi-agent xhigh = 16 agents, or Perplexity sonar-deep-research that bills citation + reasoning + search queries separately) for routine reviews without editing the host MCP configs."New value: +"Optional per-peer reasoning_effort overrides for this call. Keys are peer ids (codex|claude|gemini|deepseek|grok|perplexity); missing keys fall back to global config. This is a shared scale: adapters normalize unsupported literals to the selected model's documented enum (`ultra` becomes max on GPT-5.6 and high on Grok 4.5; older GPT-5 families use their own ceilings)."
      • changedInput schema / properties / reasoning_effort_overrides / properties / claude / enum
        Previous value: -[
        -  "none",
        -  "minimal",
        -  "low",
        -  "medium",
        -  "high",
        -  "xhigh",
        -  "max"
        -]New value: +[
        +  "none",
        +  "minimal",
        +  "low",
        +  "medium",
        +  "high",
        +  "xhigh",
        +  "max",
        +  "ultra"
        +]
      • changedInput schema / properties / reasoning_effort_overrides / properties / codex / enum
        Previous value: -[
        -  "none",
        -  "minimal",
        -  "low",
        -  "medium",
        -  "high",
        -  "xhigh",
        -  "max"
        -]New value: +[
        +  "none",
        +  "minimal",
        +  "low",
        +  "medium",
        +  "high",
        +  "xhigh",
        +  "max",
        +  "ultra"
        +]
      • changedInput schema / properties / reasoning_effort_overrides / properties / deepseek / enum
        Previous value: -[
        -  "none",
        -  "minimal",
        -  "low",
        -  "medium",
        -  "high",
        -  "xhigh",
        -  "max"
        -]New value: +[
        +  "none",
        +  "minimal",
        +  "low",
        +  "medium",
        +  "high",
        +  "xhigh",
        +  "max",
        +  "ultra"
        +]
      • changedInput schema / properties / reasoning_effort_overrides / properties / gemini / enum
        Previous value: -[
        -  "none",
        -  "minimal",
        -  "low",
        -  "medium",
        -  "high",
        -  "xhigh",
        -  "max"
        -]New value: +[
        +  "none",
        +  "minimal",
        +  "low",
        +  "medium",
        +  "high",
        +  "xhigh",
        +  "max",
        +  "ultra"
        +]
      • changedInput schema / properties / reasoning_effort_overrides / properties / grok / enum
        Previous value: -[
        -  "none",
        -  "minimal",
        -  "low",
        -  "medium",
        -  "high",
        -  "xhigh",
        -  "max"
        -]New value: +[
        +  "none",
        +  "minimal",
        +  "low",
        +  "medium",
        +  "high",
        +  "xhigh",
        +  "max",
        +  "ultra"
        +]
      • changedInput schema / properties / reasoning_effort_overrides / properties / perplexity / enum
        Previous value: -[
        -  "none",
        -  "minimal",
        -  "low",
        -  "medium",
        -  "high",
        -  "xhigh",
        -  "max"
        -]New value: +[
        +  "none",
        +  "minimal",
        +  "low",
        +  "medium",
        +  "high",
        +  "xhigh",
        +  "max",
        +  "ultra"
        +]
    • Changedsession_truthfulness_preflight_check1 field changed
      • addedInput schema / properties / caller
        Added value: +{
        +  "default": "operator",
        +  "enum": [
        +    "codex",
        +    "claude",
        +    "gemini",
        +    "deepseek",
        +    "grok",
        +    "perplexity",
        +    "operator"
        +  ],
        +  "type": "string"
        +}
  5. 30 tool updatesv4.4.8
    • First observedask_peers
    • First observedcontest_verdict
    • First observedescalate_to_operator
    • First observedprobe_peers
    • First observedregenerate_caller_tokens
    • First observedrun_until_unanimous
    • First observedruntime_capabilities
    • First observedserver_info
    • First observedsession_attach_evidence
    • First observedsession_cancel_job
    • First observedsession_check_convergence
    • First observedsession_doctor
    • First observedsession_events
    • First observedsession_evidence_checklist_update
    • First observedsession_evidence_judge_consensus_pass
    • First observedsession_evidence_judge_pass
    • First observedsession_finalize
    • First observedsession_init
    • First observedsession_judgment_precision_report
    • First observedsession_list
    • First observedsession_metrics
    • First observedsession_peer_reliability_report
    • First observedsession_poll
    • First observedsession_read
    • First observedsession_recover_interrupted
    • First observedsession_report
    • First observedsession_start_round
    • First observedsession_start_unanimous
    • First observedsession_sweep
    • First observedsession_truthfulness_preflight_check

TDQS

B3.3/5.0
Disambiguation3/5

Several tools overlap in function: session_init, session_start_round, ask_peers, run_until_unanimous, and session_start_unanimous all initiate or run review rounds with evidence handling. Distinct names help but the descriptions repeatedly impose the same evidence-persistence caveat, and session_preflight_check vs session_truthfulness_preflight_check are near-aliases despite the backward-compat note.

Naming Consistency4/5

Most tools follow a consistent session_* or ask_/run_/probe_/contest_/regenerate_/escalate_ verb-noun pattern. The few deviations like session_evidence_checklist_update, session_evidence_judge_pass, and session_judgment_precision_report are longer but still reasonably predictable. Minor inconsistency: some begin with 'session_' while others start directly with verbs, but the overall catalog feels coherent.

Tool Count3/5

With 31 tools, the server is on the heavier side but the domain (durable sessions, peer review, evidence broker, operator governance) is complex enough to justify many. Still, the count exceeds the typical 3-15 range, and several tools (e.g., session_truthfulness_preflight_check as an alias) could be merged or deprecated, pushing it toward the 'heavy' edge.

Completeness4/5

The surface covers the full session lifecycle: init, read, poll, start rounds, recover, cancel, finalize, sweep, plus evidence verification and judgment tools. Notable gaps: there's no tool to list or query evidence items directly (only checklist status updates), and no public tool to modify session metadata once created, but operators have finalize and recovery paths, so core workflows are largely complete.

Maintenance

ActivityActive
ResponsivenessResponsive

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

  • A
    license
    A
    quality
    A
    maintenance
    A multi-model AI orchestration MCP server for automated code review and LLM-powered analysis, integrating with Claude Code and OpenCode to orchestrate multiple AI models for code quality checks, security analysis, and multi-agent consensus.
    6
    36
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    MCP server that enables Claude Code to orchestrate multi-model AI consensus by querying GPT-5.2 and Gemini 3 Pro simultaneously, synthesizing high-confidence responses.
    8
    1
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Query GPT-5, Claude, Gemini, and Grok simultaneously through one MCP server for multi-model AI perspectives in your coding agents.
    338
    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/LCV-Ideas-Software/cross-review'

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