merge_project
[MAINTENANCE] d6bd60e0 — merge a phantom-duplicate project INTO another. Re-parents EVERY child row of the source project (sprint items, tasks, decisions, insights, notes, HITL requests, sessions, handoffs, pointers, …) to the target project via pure UPDATEs — NO row is ever deleted. By default t...
This record as markdown: /tools/io-github-ajc3xc-meridian/merge-project.md
What merge_project does on Meridian
AI agents use merge_project 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.
| Parameter | Type | Required | Description |
|---|---|---|---|
archive_source | boolean | — | Default true — soft-archive the emptied source project (status='archived', name prefixed '[merged] '). Set false to leave the source project row untouched. The |
source_project_id | string | Yes | The id of the project to merge FROM (its rows are re-parented; it is archived unless archive_source=false). |
target_project_id | string | Yes | The id of the project to merge INTO (receives all of the source's rows). |
Parameters from the server's own tool schema.
Why merge_project is rated Medium
This tool performs mass UPDATE operations that modify the state of multiple rows across several tables (sprint items, tasks, decisions, insights, notes, etc.) by re-parenting them to a different project and soft-archiving the source project. While no data is permanently deleted, the bulk transformation of project relationships and status changes is irreversible in practical terms and affects many dependent records.
From the tool's definition 'merge a phantom-duplicate project INTO another. Re-parents EVERY child row of the source project... via pure UPDATEs' and 'the now-empty source project is soft-archived (status=\'archived\', name prefixed with \'[merged] \')' — modifies data across multiple…
Risk signalsBulk/mass operation — affects multiple targets
Attacks that exploit this kind of access
The rule that runs merge_project safely
PolicyLayer is an MCP gateway: it sits between your AI agents and Meridian, and checks every tool call against a rule you set before the call runs. Nothing changes on the server itself. For merge_project, this is the rule to start with:
merge_project stays usable, but capped: an agent stuck in a loop can't make hundreds of changes a minute. Everything else on the server is denied unless you say otherwise.
The button opens the PolicyLayer dashboard: create your workspace, connect Meridian, apply this rule, and every merge_project call is checked against it from then on.
Questions about merge_project
[MAINTENANCE] d6bd60e0 — merge a phantom-duplicate project INTO another. Re-parents EVERY child row of the source project (sprint items, tasks, decisions, insights, notes, HITL requests, sessions, handoffs, pointers, …) to the target project via pure UPDATEs — NO row is ever deleted. By default the now-empty source project is soft-archived (status='archived', name prefixed with '[merged] '), never hard-deleted; pass archive_source=false to leave it untouched. Returns {source_project_id, target_project_id, moved: {table: count}, source_archived}. Returns {error} if source==target or either project does not exist. 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.
merge_project accepts 3 parameters: archive_source, source_project_id, target_project_id. Required: source_project_id, target_project_id. The full parameter table on this page comes from the server's own tool schema.
Register the Meridian MCP server in PolicyLayer and add a rule for merge_project: 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.
merge_project is a Write tool with medium risk. Write tools should be rate-limited to prevent accidental bulk modifications.
Yes. Add a rate_limit block to the merge_project 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.
Set action: deny in the PolicyLayer policy for merge_project. 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.
merge_project 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.
This server
Across the catalogue