Skip to main content
Glama
Hardik-Singh

Invariance MCP

Official
by Hardik-Singh

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
INVARIANCE_API_KEYYesYour Invariance API key
INVARIANCE_TIMEOUTNoRequest timeout in milliseconds30000
INVARIANCE_BASE_URLNoAPI base URLhttps://api.invariance.ai
INVARIANCE_MCP_PORTNoPort for SSE/HTTP transport3000
INVARIANCE_MCP_TRANSPORTNoTransport mode: stdio or ssestdio

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
invariance_run_startA

Start a new Invariance run (the container for a sequence of nodes). The returned run is in status "open" — you must close it later with invariance_run_finish (success) or invariance_run_fail (error).

invariance_run_getA

Get details of an Invariance run (status, metadata, aggregate counts, timestamps).

invariance_run_listB

List runs visible to the calling agent in reverse-chronological order (paginated).

invariance_run_finishA

Close a run successfully — sets status to "completed". Use this when the agent finished its work without errors. For failures, use invariance_run_fail instead.

invariance_run_failA

Close a run with failure — sets status to "failed" and stores the optional error string in metadata.error. Use this when the agent aborted due to an exception or unrecoverable error. For successful completion, use invariance_run_finish.

invariance_run_verifyA

Verify the cryptographic proof chain for a run — recomputes node hashes and Ed25519 signatures end-to-end. Returns {valid, node_count, head_hash, first_invalid_node_id, reason}.

invariance_run_metricsB

Aggregate metrics for a run: total_input_tokens, total_output_tokens, total_cache_read/write, total_cost_usd, llm_call_count, tool_call_count, error_count, total_latency_ms.

invariance_node_writeA

Append a single node (one unit of work) to an open Invariance run. Use this to record tool calls, LLM calls, logs, context attachments, or handoffs as they happen.

invariance_node_listB

List nodes for a run in append order (paginated).

invariance_monitor_createA

Create a monitor that evaluates an event-shaped predicate against nodes/runs and optionally emits signals, findings, or reviews when matched.

invariance_monitor_listA

List monitors visible to the calling agent (paginated).

invariance_monitor_getB

Get a monitor by ID

invariance_monitor_updateA

Patch an existing monitor (partial update; only included fields change).

invariance_monitor_pauseA

Disable a monitor so it stops firing (preserves the spec; use invariance_monitor_resume to re-enable).

invariance_monitor_resumeA

Re-enable a paused monitor so it begins firing again.

invariance_monitor_evaluateA

Manually evaluate a monitor right now against an explicit input scope (returns the resulting execution plus any signals/findings/reviews produced).

invariance_monitor_executionsC

List past evaluation executions for a monitor (each has status, trigger, matched_node_ids, timing).

invariance_monitor_findingsA

List findings produced by a monitor across all of its executions.

invariance_monitor_preview_targetA

Dry-run a monitor target against history to see which runs/nodes it would inspect. Writes nothing. Returns {run_ids, node_ids, counts:{runs,nodes}, truncated}.

invariance_monitor_preview_evaluatorA

Dry-run a monitor evaluator against history to see which nodes it would match and why. Writes nothing. Returns {sampled, matched, matches:[{run_id,node_id,matched,reason,observed_value?}]}.

invariance_signal_emitA

Emit a manual signal (alert/notification) — typically attached to a run/node and used to flag noteworthy events for review or downstream automation. severity defaults to "info" if omitted. run_id/node_id auto-fill from INVARIANCE_RUN_ID/INVARIANCE_NODE_ID env vars when present.

invariance_signal_listA

List signals visible to the calling agent (paginated, newest first).

invariance_signal_getB

Get a signal by ID.

invariance_signal_acknowledgeA

Acknowledge a signal — moves status from "open" to "acknowledged" (someone has seen it). Use invariance_signal_resolve to mark fully resolved.

invariance_signal_resolveA

Resolve a signal — moves status to "resolved" (the underlying issue has been addressed).

invariance_finding_listB

List findings (durable, structured issues raised by monitors or agents) visible to the caller, paginated.

invariance_finding_getA

Get a finding by ID.

invariance_finding_updateA

Transition a finding to a new status: "open" (active), "review_requested" (escalated to a human/agent reviewer), "resolved" (fixed), or "dismissed" (intentionally ignored / false positive).

invariance_review_listA

List reviews (work items requesting agent/human adjudication of a finding or run) in the queue, paginated.

invariance_review_getA

Get a review by ID.

invariance_review_claimA

Claim a pending review for the calling agent — sets status to "claimed" so other agents do not pick it up. Pair with invariance_review_resolve when done, or invariance_review_unclaim to release.

invariance_review_unclaimA

Release a previously-claimed review back to "pending" so another agent can pick it up. Does not record a decision — use invariance_review_resolve for that.

invariance_review_resolveA

Close a review by recording a decision: "passed" (looks good, no action), "failed" (issue confirmed, should not ship), or "needs_fix" (issue confirmed, fix-and-retry).

invariance_agent_meA

Show the agent identity and API key associated with the current credentials. Useful for confirming which agent context the MCP server is operating as.

invariance_agent_set_keyA

Register or rotate the calling agent's Ed25519 public key. Once set, every node written by this agent must be signed with the matching private key (the server uses this key to verify signatures during invariance_run_verify).

invariance_agent_createA

Create a new agent inside one of the caller's projects. Requires a user-session JWT bearer (not an agent API key) — see invariance-cli inv auth signup / inv auth signin to obtain one.

invariance_agent_listA

List agents inside one of the caller's projects. Requires a user-session JWT bearer.

invariance_agent_getA

Fetch a single agent by ID. Requires a user-session JWT bearer.

invariance_narrative_getA

Fetch (or regenerate) the LLM-synthesized narrative for a run

invariance_askB

Ask a question against the agent's runs / knowledge base (turn-based session)

invariance_kb_pages_listC

List knowledge-base pages

invariance_kb_page_getB

Get a knowledge-base page by ID

invariance_kb_page_createA

Create a knowledge-base page

invariance_kb_page_updateC

Update fields on a knowledge-base page

invariance_kb_page_deleteC

Delete a knowledge-base page

invariance_kb_session_createB

Create a multi-turn ask session for the agent KB

invariance_kb_session_deleteB

Delete a KB ask session

invariance_kb_session_list_messagesA

List all messages in a KB ask session in order

invariance_kb_session_append_messageC

Append a message to a KB ask session

invariance_run_operational_graphB

Get the operational graph for a run — entities, edges, findings, a completeness score (business_object_linked, policy_context_found, owner_found, approval_context_found, downstream_state_change_found), and a missing_evidence list naming the unsupported dimensions.

invariance_run_llm_callsA

List LLM calls for a run in append order (paginated). Each entry includes model, tokens, cost, latency, and the underlying node_id.

invariance_run_node_typesA

List the typed-node kinds present in a run (one row per registered type with a count). Pair with invariance_run_node_type_metrics for per-type aggregates.

invariance_run_node_type_metricsA

Aggregate metrics for a single typed-node kind within a run (counts, latency stats, custom-field roll-ups).

invariance_run_forkA

Fork a run from a specific node — creates a new run that branches off the parent at from_node_id. Useful for "what-if" replays during agent debugging.

invariance_metrics_overviewA

Cross-run rollup over a time window: total runs, nodes, errors, cost, latency, etc. Use this to ground "what is happening across my agents" questions.

invariance_metrics_agentsA

Per-agent usage rollup over a time window: run counts, node counts, cost. Useful for agent-by-agent comparison.

invariance_run_inspectA

Composite triage view for a run — fetches run, metrics, narrative, recent nodes, and open findings in parallel and returns {run, metrics, narrative, recent_nodes, open_findings}. Mirrors inv run inspect. Best first call when an agent is asked to debug a run.

invariance_memory_readA

Record a memory read by an agent against a subject (customer/account/policy/...) and return the current MemoryRecord (if any). Use this whenever an agent consults a remembered belief — it produces an auditable MemoryAccess event tying that belief to a node in the run, which the divergence detectors use to flag stale or unsupported memory.

invariance_memory_writeA

Record a memory write by an agent: set or update a belief (claim) about a subject. Returns the new MemoryAccess + MemoryRecord. Defaults: source="agent_write", confidence=1.0. Provide provenance (EvidenceRef[] as JSON) when the claim is derived from authoritative records (CRM/ticket/policy doc) so downstream divergence checks can verify it.

invariance_eval_dataset_createB

Create a reusable eval dataset (a named collection of input/expected example rows used to drive experiments).

invariance_eval_dataset_listA

List eval datasets visible to the calling agent (paginated).

invariance_eval_dataset_getA

Get a single eval dataset by ID.

invariance_eval_dataset_append_exampleA

Append a single example row (input + expected output) to an existing dataset.

invariance_eval_dataset_examples_listB

List example rows for a dataset (paginated).

invariance_eval_dataset_seed_suiteA

One-call eval setup for agents: create a dataset, append rows, create a linked suite, create one case per row, and optionally start the eval run. This is the preferred MCP path for turning JSON examples into runnable evals.

invariance_eval_scorer_createA

Register a scorer (named scoring rule that maps an output+expected pair to a 0..1 score). Built-in scorer kinds: exact_match, contains, numeric_tolerance, json_match, levenshtein.

invariance_eval_scorer_listA

List scorers visible to the calling agent (paginated).

invariance_eval_suite_createA

Create an eval suite (the legacy grouping for cases + runs). New work should generally prefer datasets; suites remain for back-compat and curated case sets.

invariance_eval_suite_listB

List eval suites visible to the calling agent (paginated).

invariance_eval_suite_getC

Get an eval suite by ID.

invariance_eval_case_createC

Add a case (input + expected) to an eval suite.

invariance_eval_case_create_from_runA

Snapshot an existing production run as a new eval case in a suite (captures the run's input + output as expected).

invariance_eval_case_listB

List cases for an eval suite (paginated).

invariance_eval_suite_runA

Kick off an eval run: executes every case in the suite against a target (agent / recipe / inline override) and stores per-case results.

invariance_eval_run_getB

Get an eval run by ID (status, aggregate counts, timestamps, scorer specs).

invariance_eval_run_resultsA

List per-case results for an eval run (paginated). Each result has output, expected, scores (per-scorer 0..1), and pass/fail.

invariance_eval_scorers_list_builtinA

List the built-in scorer kinds available on the platform (name + config schema). Use this to discover what you can pass in scorer_specs to invariance_eval_experiment_run.

invariance_eval_experiment_runA

Execute an experiment against an existing eval run: applies a list of scorer specs to every case result and (optionally) records a baseline run for later compare. Populates eval_results.scores. Built-in scorer names: exact_match, contains, numeric_tolerance (config.tolerance: number), json_match, levenshtein.

invariance_eval_experiment_compareA

Compare two scored eval runs case-by-case (CompareResponse: per-case ScoreDelta entries + aggregate deltas per scorer). Use to surface regressions vs. a baseline.

invariance_operator_meA

Show the operator identity associated with the current credentials. An "operator" is the unified actor model — every Claude Code session, autonomous agent, AND human teammate is an operator. Use this to confirm which operator context the MCP server is acting as (e.g. before recording session events, attaching runs, or writing notes to the company brain).

invariance_operator_createA

Create a new operator in one of the caller's projects. Operators are the actors whose work shows up in the company brain — create operator_type='agent' for an autonomous worker (Claude Code, a scripted agent, a coding bot) and operator_type='human' for a teammate whose screen recordings, microphone capture, meetings, and Granola notes you want to ingest. Requires a user-session JWT bearer.

invariance_operator_listA

List operators inside one of the caller's projects. Filter by operator_type to find all human teammates or all autonomous agents. Requires a user-session JWT bearer.

invariance_operator_getA

Fetch a single operator by ID. Requires a user-session JWT bearer.

invariance_session_createA

Open a new agent-session — the canonical container for an operator's bounded chunk of work in the company brain. CALL THIS at the START of: a new Claude Code task (source='api'), a screen recording for a teammate (source='screen_recording'), a mic capture session (source='microphone'), a meeting (source='meeting'), ingestion of a Granola note (source='granola_note'), or a manual note-taking session (source='manual_note'). Events (transcript chunks, tool calls, screenshots, notes) are appended to this session via invariance_session_append_note or the events sub-route. Link a session to a run via agent_id+run_id (or call invariance_session_attach_run later).

invariance_session_listA

List agent-sessions, optionally filtered by source, agent, run, or status. Use this to find all Claude Code work for an agent (source="api"), all meetings ingested today (source="meeting"), or all screen recordings for a human teammate.

invariance_session_getA

Fetch a single agent-session by ID, including its source, timestamps, attached run/agent, and metadata.

invariance_session_append_noteA

Append a freeform text note to an existing session as a custom event with payload {text}. USE THIS WHEN: jotting a thought during a Claude Code task ("trying approach X next"), capturing a meeting takeaway, annotating a screen recording, or recording a partial transcript chunk from microphone capture. The note becomes part of the company brain timeline for that session.

invariance_session_attach_runA

Attach an existing run to an existing agent-session (PATCH). USE THIS when a Claude Code task that started a session later starts producing a run — call this to link the run's graph back to the session timeline so the brain can correlate transcript/notes with operational nodes.

invariance_session_record_summary_to_kbA

Persist a summary of an agent-session as a knowledge-base page (so it becomes searchable, durable company brain content beyond the raw session timeline). USE THIS at the END of a Claude Code task, after a meeting wraps, or once a screen-recording has been reviewed — to capture the takeaways. The KB page is created under path 'sessions/' by default.

invariance_case_createA

Create a workflow-instance Case. A case owns many runs across time, agents, and humans (one loan, one audit, one claim). Returns the case; use its id when starting runs with invariance_run_start to link them.

invariance_case_getA

Get a case by id, including its linked runs (newest first, capped at 100). Use to inspect status, outcome, owner, custom_attrs, and the runs the case has accumulated.

invariance_case_evidenceA

Show normalized evidence for a case: the case, linked runs, nodes, workflow events, actors, and outcome. Use this when you need the full workflow execution record instead of only the case row.

invariance_case_events_listA

List semantic workflow events attached to one case. These are the queryable facts over the run/node evidence layer.

invariance_case_event_createA

Attach a semantic workflow event to a case, e.g. "support.customer.escalated", "approval.granted", or "docs.received". Prefer this for meaningful workflow facts; keep raw execution trace data in runs/nodes.

invariance_case_listA

List cases visible to the calling agent (paginated). Filter by tenant_id, end_user_id, workflow_key, status ("open" | "closed"), outcome, or tags.

invariance_case_updateA

Update a case: change owner, merge custom_attrs (shallow), or transition status. Use invariance_case_close for the common "set outcome + close" path.

invariance_case_closeA

Close a case with an outcome — the common path. Equivalent to invariance_case_update with status="closed" + outcome + outcome_value_usd.

invariance_workflow_listA

List workflow definitions: typed fields, expected steps, allowed outcomes, and custom metrics.

invariance_workflow_getA

Get one workflow definition by workflow key.

invariance_workflow_createB

Create a workflow definition with typed fields, expected steps, allowed outcomes, and custom metrics.

invariance_workflow_updateA

Patch a workflow definition. Existing cases/runs/events keep their workflow_key.

invariance_workflow_deleteA

Delete a workflow definition. Existing cases/runs/events are retained.

invariance_workflow_event_listB

List semantic workflow events across cases. Filter by case, workflow, tenant, actor, type, or time window.

invariance_workflow_event_createA

Record a semantic workflow event on a case (e.g. "refund.issued", "approval.approved", "human.handoff"). Links case/run/node evidence + external refs and is bridged into DNA. Pass idempotency_key to make external retries safe.

invariance_capture_createA

Create a Capture — a standalone evidence record (session, conversation, trace). Captures don't need an execution upfront; link a capture to a run later with invariance_capture_link. Returns the capture session.

invariance_capture_listA

List captures (paginated). Captures are standalone evidence; they don't need an execution upfront. Filter by project_id, operator_id, session_type, source, run_id, or tags.

invariance_capture_getA

Get a capture by id. Captures are standalone evidence; they don't need an execution upfront; link a capture to a run later with invariance_capture_link.

invariance_capture_updateA

Update a capture: change status, reassign run_id, or merge metadata. Captures are standalone evidence; they don't need an execution upfront; link a capture to a run later with invariance_capture_link.

invariance_capture_linkA

Link a capture to an evidence-graph target (run/case/workflow_event/node). With only run_id this sets the capture's run_id (legacy, equivalent to invariance_capture_update). With target_id it creates a richer capture link; target_type defaults to "run". Captures are standalone evidence and don't need an execution upfront.

invariance_capture_linksA

List every evidence link on a capture (case/run/workflow_event/node), returning { links }. Captures are standalone evidence; link a capture to a target with invariance_capture_link.

invariance_capture_unlinkA

Detach a capture link. With link_id, deletes that specific evidence link. Without link_id, clears the capture's run_id (legacy). Captures are standalone evidence; they don't need an execution upfront.

invariance_doctorA

Run a health check on this MCP server: verifies API key auth, API reachability, and reports server name/version. Mirrors inv doctor --json from the CLI. Returns {checks: [{name, status, message}], summary: {pass, fail, warn}}.

cortex_run_jobA

Enqueue a generic Cortex job (evals, counterfactuals, experiments, attributions). The actor is resolved server-side from the API key (a key bound to an agent_id runs as that agent; otherwise as the api_key actor). The platform ACL-filters input_refs and target access before prompt construction. Returns {job_id, status} plus, when a synchronous MVP runner completes the job inline, the validated result.

cortex_run_evalB

Convenience wrapper around cortex_run_job for job_kind="workflow_eval": checks whether a run/case/workflow met its criteria (e.g. SLA, policy compliance, action-item ownership). Returns the same job shape as cortex_run_job.

cortex_run_counterfactualA

Convenience wrapper around cortex_run_job for job_kind="counterfactual_eval": estimates what MIGHT have happened under a hypothetical change. Result is a HYPOTHESIS, not fact — it carries assumptions, evidence_refs, confidence, and uncertainty. question is required.

cortex_get_jobA

Get a Cortex job's metadata and status (no artifacts). Returns the same safe-field projection as cortex_run_job: ids, status, target, actor, criteria, timestamps, error. Use cortex_get_result to fetch the structured result body.

cortex_get_resultA

Get a Cortex job's structured result. Returns {job_id, status, result?}. The result is validated against the known per-kind schemas (workflow_eval / counterfactual_eval / outcome_attribution / complex_query / divergence_error_tracking). Raw artifacts (prompt input, raw model output) are NOT returned by this tool — they remain private on the platform.

cortex_askA

Ask the READ-ONLY Cortex analyst (complex_query) an operational question and get a cited answer. Use this for questions like "Were refund SLAs met last week?", "Why did this run diverge?", "Which agents touched case_123?". The analyst is governed and EVIDENCE-CITED: every id in evidence_refs / affected_entities was observed through a read tool, and the runtime FAILS CLOSED against fabricated or cross-project ids (no answer is invented and no other tenant's data can leak). It only reads — it never mutates state. Returns the validated ComplexQueryResult {short_answer, reasoning_plan, evidence_refs, affected_entities, confidence, restricted_evidence_count, recommended_action, follow_up_questions}. mode="sync" (default) blocks for the answer; mode="async" enqueues then polls until the job is terminal. Note: the analyst only executes when the platform CORTEX_TOOL_RUNTIME_ENABLED flag is on.

cortex_launchA

Launch a Cortex job through the GOVERNED launcher (POST /v1/cortex/jobs/launch) — the preferred path for the read-only complex_query analyst and divergence_error_tracking. The actor is resolved server-side from the API key and all evidence is ACL-filtered before prompt construction (fails closed against cross-project leak). mode="sync" runs now and embeds result/error; mode="async" enqueues — poll with cortex_get_result or cortex_job_runs. Returns {job_id, status, mode, deduplicated, result?, error?}. Idempotent when idempotency_key is supplied.

cortex_list_jobsA

List Cortex jobs across accessible projects, newest first. Filter by status and/or kind. Read-only. Returns {data: CortexJob[], next_cursor}. Pass next_cursor back as cursor to page.

cortex_retry_jobA

Re-queue a failed or dead Cortex job for one more attempt (POST /v1/cortex/jobs/:id/retry). Returns {job_id, status}.

cortex_job_runsA

List the attempt history (audit-trail runs) for a Cortex job — one row per execution attempt, with status, model, metrics, timings, and any error. Read-only. Raw prompt/model artifacts are NOT included. Returns {runs: CortexJobRun[]}.

invariance_dna_list_objectsB

List Company DNA objects — the canonical operational entities in a project's DNA graph (e.g. tickets, services, policies). Filter by kind or a free-text query q. Output: {data: DnaObject[], next_cursor}.

invariance_dna_list_object_mentionsA

List Company DNA object mentions — extracted references (in events or chunks) that may resolve to a DNA object. Filter by event_id, chunk_id, object_id, or mention_type. Output: {data: DnaObjectMention[], next_cursor}.

invariance_dna_list_edgesA

List durable Company DNA edges — relationships between objects, e.g. the operational graph derived from a run (refund -[REQUIRED]-> policy). Filter by run_id, kind, or entity_id. Output: {data: DnaEdge[], next_cursor}.

invariance_dna_list_edge_candidatesA

List Company DNA edge candidates — discovered relationships between objects awaiting review. Filter by status (proposed/accepted/rejected/expired/promoted), object_id, or relation_kind. Output: {data: DnaEdgeCandidate[], next_cursor}.

invariance_dna_accept_edge_candidateA

Accept a proposed DNA edge candidate, making it eligible for promotion into a durable semantic link.

invariance_dna_reject_edge_candidateA

Reject a DNA edge candidate so it is never promoted.

invariance_dna_promote_edge_candidateA

Promote an accepted DNA edge candidate into a durable semantic link. The candidate must be accepted, carry a semantic_similarity signal, and have at least two evidence chunks (otherwise the API returns 422). Idempotent: re-promoting returns the existing link with already_promoted=true. Set dry_run=true to preview the would-be link without writing.

invariance_workflow_observability_listA

List workflow observability rollups (per workflow_key: execution/open/closed counts, evidence mix, cost & token totals).

invariance_workflow_observability_getB

Get the observability rollup for one workflow by key.

invariance_workflow_observability_executionsA

List per-execution health for a workflow (status, stale flag, health, reasons, evidence mix, cost/tokens).

invariance_divergence_listB

List divergences (expected-vs-observed gaps) visible to the caller. Filter by run, kind, severity, status.

invariance_divergence_getB

Get a divergence by ID.

invariance_divergence_updateB

Transition a divergence status: open | accepted | dismissed | converted_to_monitor.

invariance_saved_view_listA

List saved query views (name, source, spec, viz, visibility).

invariance_saved_view_getA

Get a saved view by ID.

invariance_saved_view_createC

Create a saved query view over executions/events/runs/nodes/captures.

invariance_saved_view_updateB

Patch a saved view (partial; only included fields change).

invariance_saved_view_runA

Run a query and return the result. Pass EITHER saved_view_id OR source+spec (exactly one).

invariance_saved_view_deleteB

Delete a saved view by ID.

invariance_receipt_createA

Record one external receipt (proof an external action happened). Requires an AGENT API key (operator tokens get 403).

invariance_receipt_batchB

Record many external receipts in one call. Requires an AGENT API key (operator tokens get 403).

invariance_receipt_listB

List external receipts. Filter by run, node, source, kind, external_id, business object.

invariance_receipt_getB

Get an external receipt by ID.

invariance_guardrail_listA

List per-agent guardrails. Filter by status or recipe_id.

invariance_guardrail_getA

Get a guardrail by ID.

invariance_guardrail_createB

Create a guardrail (from a recipe or finding). Required: title. Optional: recipe_id, finding_id, rule, mode, status.

invariance_guardrail_updateC

Patch a guardrail (mode, status, monitor_id).

invariance_guardrail_promoteA

Promote a guardrail to a new lifecycle status: suggested → accepted → shadow → active_monitor → rejected.

invariance_recipe_listA

List built-in operational-check recipes (registry of controls). Promote one into a guardrail via invariance_guardrail_create.

invariance_recipe_getA

Get a recipe by ID or slug.

invariance_recipe_updateB

Patch a recipe (enabled, default_mode).

invariance_create_runD

Alias of invariance_run_start

invariance_get_runC

Alias of invariance_run_get

invariance_list_runsC

Alias of invariance_run_list

invariance_write_nodeD

Alias of invariance_node_write

invariance_list_nodesD

Alias of invariance_node_list

invariance_verify_runD

Alias of invariance_run_verify

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

C2.5/5.0

Scored across 159 tools

Disambiguation2/5

Several tools are explicit aliases (list_runs/run_list, create_run/run_start, write_node/node_write) and others intentionally overlap (capture_link vs capture_update, cortex_run_job vs cortex_run_eval/counterfactual, case_event_create vs workflow_event_create). These duplicates make it genuinely hard to know which tool to select despite mostly clear resource boundaries.

Naming Consistency3/5

The dominant invariance_<resource>_<action> pattern is readable and mostly snake_case, but there are many deviations: aliases invert the order (list_runs vs run_list), noun-phrase names appear (invariance_monitor_findings, invariance_run_node_types), and the cortex_* family follows its own conventions. It is consistent enough to guess, but not predictable across a 159-tool surface.

Tool Count1/5

159 tools is far beyond a well-scoped MCP server; the calibration guidance treats 50+ as an extreme mismatch. The count is inflated by aliases, overlapping wrappers, and many near-duplicate subdomain endpoints, making the toolset unwieldy regardless of individual tool quality.

Completeness3/5

Coverage is broad across runs, monitors, cases, evals, sessions, DNA, Cortex, and more, so core workflows exist. However, several subdomains have lifecycle dead ends: eval datasets/scorers/suites have create/read/append but no update/delete, agents/operators/captures lack update or delete paths, and monitors cannot be deleted. These are workable gaps but noticeable in a 159-tool API.

Maintenance

ActivityInactive
ResponsivenessNo issues