Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
GROK_API_KEYYesxAI Grok API key
GEMINI_API_KEYYesGoogle Gemini API key
OPENAI_API_KEYYesOpenAI API key for Codex/OpenAI peer
DEEPSEEK_API_KEYYesDeepSeek API key
ANTHROPIC_API_KEYYesAnthropic API key for Claude
CROSS_REVIEW_STUBNoSet to '1' for stub mode (smoke tests, no cost)0
PERPLEXITY_API_KEYYesPerplexity API key
CROSS_REVIEW_MAX_SESSION_COST_USDNoMaximum session cost in USD for paid calls
CROSS_REVIEW_UNTIL_STOPPED_MAX_COST_USDNoUntil-stopped max cost in USD for paid calls
CROSS_REVIEW_PREFLIGHT_MAX_ROUND_COST_USDNoPreflight max round cost in USD for paid calls

Capabilities

Features and capabilities supported by this server

CapabilityDetails
tools
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
server_infoB

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

runtime_capabilitiesA

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

probe_peersB

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

session_initA

Create a durable cross-review session after probing provider availability and model selection. This does not call reviewer models yet.

session_listA

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.

session_readB

Read a durable session meta.json by session_id.

ask_peersB

Run a real API review round against selected peers. Runtime default uses real provider APIs; stubs run only when CROSS_REVIEW_STUB=1.

session_start_roundC

Start a real peer-review round in the background and return immediately with a session_id/job_id for polling.

run_until_unanimousA

Generate or revise a draft and continue real API peer-review rounds until unanimous READY or the configured max_rounds is reached. v2.11.0: when caller is set to a peer id (claude|codex|gemini|deepseek|grok), 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).

session_start_unanimousC

Start real API generation/revision rounds in the background until unanimity, max_rounds or budget limit. v2.11.0: same caller + relator-lottery semantics as run_until_unanimous — see that tool for details.

session_cancel_jobC

Request cancellation for running background jobs in a durable session. Provider calls receive AbortSignal where the provider client supports it.

session_recover_interruptedA

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

session_pollB

Return durable session state and background job status without waiting for provider calls to finish.

session_metricsA

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

session_peer_reliability_reportA

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.

session_doctorA

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.

session_eventsA

Read durable session events from events.ndjson. Use since_seq to incrementally poll long-running sessions.

session_reportC

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

session_check_convergenceA

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

session_truthfulness_preflight_checkA

Re-run the local truthfulness preflight for a saved session without calling providers. Useful after attaching evidence to confirm whether a prior truthfulness_preflight abort is now supported.

session_attach_evidenceB

Persist a text evidence artifact under a durable session evidence directory and register it in session metadata.

session_evidence_checklist_updateA

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.

session_evidence_judge_passB

v2.9.0 LLM-based satisfied detection for the Evidence Broker. The configured judge peer reads each currently-open checklist item against the supplied draft and returns a structured judgment (satisfied + confidence + rationale). The runtime promotes only items where satisfied=true AND confidence='verified'; everything else stays open. Terminal operator statuses (satisfied/deferred/rejected) and items already addressed by resurfacing-inference are NEVER touched. Items per pass are capped via CROSS_REVIEW_EVIDENCE_JUDGE_MAX_ITEMS_PER_PASS (default 8). Optional item_ids filter narrows the pass to specific items; omit for all-open. The judge_peer is the LLM that performs the judgment — choose any peer with a configured API key. v2.10.0: optional shadow_mode (default false) routes the pass through a non-mutating path that emits session.evidence_judge_pass.shadow_decision events without touching checklist state — operators use it to collect empirical judgment-quality data before relying on active mutation.

session_evidence_judge_consensus_passA

v2.14.0 — multi-peer consensus judge pass. Fires judgeEvidenceAsk against ALL judge_peers in parallel for each open checklist item; promotes (active mode) ONLY when all peers return verified-satisfied with non-empty rationale and zero parser_warnings. Disagreement leaves the item open with reason=consensus_disagreement and per_peer details. Shadow mode emits session.evidence_judge_pass.shadow_decision events with consensus_peers so the precision report tool sees consensus runs in its corpus. Requires at least 2 judge_peers; single-peer callers should use session_evidence_judge_pass. All judge_peers must be enabled (CROSS_REVIEW_PEER_=on).

session_judgment_precision_reportA

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).

contest_verdictA

v2.14.0 — formally contest a final verdict and open a new deliberation cycle. Per the cross-review tribunal-colegiado model: caller READY (acata) → session_finalize as usual; caller 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.

regenerate_caller_tokensA

v2.18.0 / F1 (caller capability tokens). Rotate the per-host secret tokens used by the F1 identity gate. OVERWRITES the existing host-tokens.json file (default location: /host-tokens.json; override via CROSS_REVIEW_TOKENS_FILE env var) with freshly generated 256-bit hex secrets — one per agent (codex, claude, gemini, deepseek, grok, perplexity). The MCP response returns only token fingerprints, never plaintext secrets; read the local host-tokens.json file directly when redistributing CROSS_REVIEW_CALLER_TOKEN values. AFTER calling this tool, every MCP host carrying a stale token will start being rejected with identity_forgery_blocked: token does not match any known agent. The operator MUST redistribute the secrets and reload the affected hosts. Use cases: (a) initial deployment after first-boot generation; (b) suspected token leak; (c) periodic rotation.

escalate_to_operatorA

Record a durable operator escalation for sessions that require human judgment or external intervention.

session_sweepC

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

session_finalizeB

Mark a durable session as converged, aborted or max-rounds with an optional reason.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

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