New Your team’s decisions, in one playbook every coding agent works from. Never answer your agent twice

complete_experiment_run

[SUPPORT] 3f6b8715 — finalize a run as status='completed' (default) or status='abandoned'. outcome_summary and disposition (keep|discard|promote) are explicit and REQUIRED — rejected with {error} when missing/empty, even on a retry against an already-terminal run. result_receipt is bounded to 32K...

SERVERMeridian SOURCE@meridianmcp/mcp
Medium RISK CLASS
Category Write
Parameters 84 required
Recommended Rate-limitedsee the rule below
Registry record Grade D, identity unverified Pull the record →

This record as markdown: /tools/io-github-ajc3xc-meridian/complete-experiment-run.md

What complete_experiment_run does on Meridian

AI agents use complete_experiment_run to create or update resources in Meridian, usually the action step of a workflow, after the agent has gathered context. Every call changes real data in your Meridian environment.

ParameterTypeRequiredDescription
run_id string Yes
status string — Terminal status this call produces (default 'completed'). 'expired' is expire_stale_runs' exclusive path, not settable here.
project_id string —
session_id string Yes
disposition string Yes Explicit, never inferred. 'promote' makes this run eligible for promote_experiment_run.
project_name string — Project name — an alternative to project_id; resolved to the id internally. project_id wins if both are given.
result_receipt object — Bounded (32KB) JSON-serializable receipt — rejected, never truncated, past the cap.
outcome_summary string Yes Required, non-empty. Bounded to 4000 characters.

Parameters from the server's own tool schema.

Why complete_experiment_run is rated Medium

An AI agent can call complete_experiment_run faster than any human can review: one bad instruction and it creates or modifies resources in Meridian by the hundred, each call as confident as the last.

Questions about complete_experiment_run

What does the complete_experiment_run tool do? +

[SUPPORT] 3f6b8715 — finalize a run as status='completed' (default) or status='abandoned'. outcome_summary and disposition (keep|discard|promote) are explicit and REQUIRED — rejected with {error} when missing/empty, even on a retry against an already-terminal run. result_receipt is bounded to 32KB; past that cap it is spilled to durable object storage (local content-addressed storage today, transparently upgrading to Tigris when configured) and replaced with a small pointer — never truncated, and rejected outright only if the spill itself fails. HARD INVARIANT: this call always writes an experiment_events row when the run newly reaches a terminal state here — status='abandoned' or an outcome_summary containing 'dead end'/'failed' (case-insensitive) auto-writes {event_type:'dead_end'}. Persistent-state disclosure: on hosted Meridian, supplied text and project/session metadata -- including task log entries, pinned decisions, sprint items, notes, handoff/goal state, and HITL queue items -- are sent to and stored in Meridian's service, in an isolated per-tenant Postgres database (Neon); self-hosted deployments keep the same categories in the configured local SQLite/Postgres database. This data is visible in the dashboard and API, and may resurface in later project context or handoffs. Notes and pinned decisions can be deleted individually; task log entries and sprint items can be deleted via the dashboard/API (not exposed as an agent-facing tool); HITL queue items and handoff state have no per-record delete. Full removal of any of this data is available via project or account deletion, using the documented controls. Do not include secrets. It is categorised as a Write tool in the Meridian MCP Server, which means it can create or modify data. Consider rate limits to prevent runaway writes.

What parameters does complete_experiment_run accept? +

complete_experiment_run accepts 8 parameters: run_id, status, project_id, session_id, disposition, project_name, result_receipt, outcome_summary. Required: run_id, session_id, disposition, outcome_summary. The full parameter table on this page comes from the server's own tool schema.

How do I enforce a policy on complete_experiment_run? +

Register the Meridian MCP server in PolicyLayer and add a rule for complete_experiment_run: allow, deny, rate-limit, or require approval. Point your MCP client at the PolicyLayer proxy URL and the rule is enforced on every call, before it reaches Meridian. Nothing to install.

What risk level is complete_experiment_run? +

complete_experiment_run is a Write tool with medium risk. Write tools should be rate-limited to prevent accidental bulk modifications.

Can I rate-limit complete_experiment_run? +

Yes. Add a rate_limit block to the complete_experiment_run rule in your PolicyLayer policy. For example, setting max: 10 and window: 60 limits the tool to 10 calls per minute. Rate limits are tracked per agent session and reset automatically.

How do I block complete_experiment_run completely? +

Set action: deny in the PolicyLayer policy for complete_experiment_run. The AI agent will receive a policy violation error and cannot call the tool. You can also include a reason field to explain why the tool is blocked.

What MCP server provides complete_experiment_run? +

complete_experiment_run is provided by the Meridian MCP server (@meridianmcp/mcp). PolicyLayer sits as a proxy in front of this server to enforce policies before tool calls reach the server.

More on Meridian, and thousands of servers like it.

Across the catalogue

// THE MCP REGISTRY

PolicyLayer tracks 44,603 MCP servers and 515,000+ tools.

Every server has a live record: who publishes it, whether it answers without auth, its risk grade, every tool classified, the recommended policy. This page is one line of Meridian's. Pull the full record:

Teams ship this data inside their own products. See what a licence covers →

// GET IN TOUCH

Have a question or want to learn more? Send us a message.

Message sent.

We'll get back to you soon.