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

annotate_outputs

[SUPPORT] 9e02e448 — capture a human annotation for a path inside an outputs tree WITHOUT touching the filesystem. Upserts a row into the annotations layer of the local DuckDB outputs index for outputs_dir. Two tiers, same mechanism: Tier 1 = pass outputs_dir as path to annotate the whole tree ('...

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

This record as markdown: /tools/io-github-ajc3xc-meridian/annotate-outputs.md

What annotate_outputs does on Meridian

AI agents use annotate_outputs 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
note string Yes The annotation text (e.g. 'PCA on, BFS off — results from run on 2026-07-12 with lr=0.001').
path string Yes The path to annotate — either the outputs_dir root (Tier 1, tree-level annotation) or any file/subdirectory path within the tree (Tier 2, per-run or per-file an
run_params object Optional free-form key-value dict of run parameters to log alongside the note (e.g. {"lr": 0.001, "epochs": 100}).
outputs_dir string Yes Absolute path to the outputs directory tree root (same value you pass to search_outputs).

Parameters from the server's own tool schema.

Why annotate_outputs is rated Medium

This is a metadata annotation tool that creates or modifies records in a local DuckDB index. It is a Write operation because it performs upserts (insert/update) on database rows. It is not Destructive because upserts are reversible—subsequent calls can overwrite previous annotations.

From the tool's definition Tool description states it "Upserts a row into the annotations layer" of a local database index. Upsert is a write operation (insert or update).

Risk signalsAccepts file system path (path)

Questions about annotate_outputs

What does the annotate_outputs tool do? +

[SUPPORT] 9e02e448 — capture a human annotation for a path inside an outputs tree WITHOUT touching the filesystem. Upserts a row into the annotations layer of the local DuckDB outputs index for outputs_dir. Two tiers, same mechanism: Tier 1 = pass outputs_dir as path to annotate the whole tree ('what this experiment tree is about'); Tier 2 = pass any sub-path (file or directory) to annotate a specific run, file, or subdirectory ('PCA on, BFS off, overwritten 5x'). run_params is an optional free-form dict of parameters logged alongside the note (e.g. {"lr": 0.001, "batch_size": 32}). Annotations are automatically surfaced in search_outputs results — any hit's path (or its nearest ancestor directory) that has an annotation will have it included in the hit's 'annotations' field without a second tool call. A MERIDIAN_NOTES.md file placed anywhere in the tree is also auto-ingested into the same table on every rebuild, keyed to its containing directory. Returns the stored annotation as a dict. Persistent-state disclosure: on hosted Meridian, supplied text and project/session metadata are sent to and stored in Meridian's service; self-hosted deployments keep them in the configured local SQLite/Postgres database. This data is visible in the dashboard/API and later project context or handoffs. Delete individual tasks, notes, or decisions where supported, or delete the project/account 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 annotate_outputs accept? +

annotate_outputs accepts 4 parameters: note, path, run_params, outputs_dir. Required: note, path, outputs_dir. The full parameter table on this page comes from the server's own tool schema.

How do I enforce a policy on annotate_outputs? +

Register the Meridian MCP server in PolicyLayer and add a rule for annotate_outputs: 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 annotate_outputs? +

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

Can I rate-limit annotate_outputs? +

Yes. Add a rate_limit block to the annotate_outputs 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 annotate_outputs completely? +

Set action: deny in the PolicyLayer policy for annotate_outputs. 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 annotate_outputs? +

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