# Meridian MCP server

Agent View of the PolicyLayer registry record for Meridian: identity, probed posture, risk grade, and all 175 tools classified. HTML page: https://policylayer.com/tools/io-github-ajc3xc-meridian

## Facts

- Server id: `@meridianmcp/mcp`
- Install: `npx -y @meridianmcp/mcp`
- Homepage: https://github.com/meridianmcp/Meridian
- Registry record: grade F, identity unverified
- Lifecycle: active
- Auth posture: open
- CORS policy: *
- Rate-limited: no
- Tools: 175 (171 with introspected schema)
- Tool categories present: Destructive, Execute, Financial, Read, Write
- Context-window cost: 67711 tokens per request — https://policylayer.com/token-cost/io-github-ajc3xc-meridian
- Tags: io github ajc3xc meridian, payments, admin, automation
- Record last modified: 2026-08-10T11:20:20.221Z

## Tools (175)

| Tool | Category | Risk | Record |
| --- | --- | --- | --- |
| `archive_decision` | Destructive | Critical | https://policylayer.com/tools/io-github-ajc3xc-meridian/archive-decision.md |
| `batch_mutate` | Destructive | Critical | https://policylayer.com/tools/io-github-ajc3xc-meridian/batch-mutate.md |
| `claim_sprint_item` | Destructive | Critical | https://policylayer.com/tools/io-github-ajc3xc-meridian/claim-sprint-item.md |
| `clear_capability_profile` | Destructive | Critical | https://policylayer.com/tools/io-github-ajc3xc-meridian/clear-capability-profile.md |
| `clone_profile_layer` | Destructive | Critical | https://policylayer.com/tools/io-github-ajc3xc-meridian/clone-profile-layer.md |
| `delete_custom_hook` | Destructive | Critical | https://policylayer.com/tools/io-github-ajc3xc-meridian/delete-custom-hook.md |
| `delete_note` | Destructive | Critical | https://policylayer.com/tools/io-github-ajc3xc-meridian/delete-note.md |
| `delete_sprint_item_pointer` | Destructive | Critical | https://policylayer.com/tools/io-github-ajc3xc-meridian/delete-sprint-item-pointer.md |
| `fan_out_sprint_items` | Destructive | Critical | https://policylayer.com/tools/io-github-ajc3xc-meridian/fan-out-sprint-items.md |
| `purge_ai_log` | Destructive | Critical | https://policylayer.com/tools/io-github-ajc3xc-meridian/purge-ai-log.md |
| `record_handoff_correction` | Destructive | Critical | https://policylayer.com/tools/io-github-ajc3xc-meridian/record-handoff-correction.md |
| `release_docx_region_claims` | Destructive | Critical | https://policylayer.com/tools/io-github-ajc3xc-meridian/release-docx-region-claims.md |
| `request_hitl` | Destructive | Critical | https://policylayer.com/tools/io-github-ajc3xc-meridian/request-hitl.md |
| `reset_plugin_override` | Destructive | Critical | https://policylayer.com/tools/io-github-ajc3xc-meridian/reset-plugin-override.md |
| `reset_profile_layer` | Destructive | Critical | https://policylayer.com/tools/io-github-ajc3xc-meridian/reset-profile-layer.md |
| `complete_wave_gate` | Execute | High | https://policylayer.com/tools/io-github-ajc3xc-meridian/complete-wave-gate.md |
| `execute_batch` | Execute | High | https://policylayer.com/tools/io-github-ajc3xc-meridian/execute-batch.md |
| `prospect_symbol` | Execute | High | https://policylayer.com/tools/io-github-ajc3xc-meridian/prospect-symbol.md |
| `run_verification` | Execute | High | https://policylayer.com/tools/io-github-ajc3xc-meridian/run-verification.md |
| `start_session` | Execute | High | https://policylayer.com/tools/io-github-ajc3xc-meridian/start-session.md |
| `analyze_model_efficiency` | Read | Low | https://policylayer.com/tools/io-github-ajc3xc-meridian/analyze-model-efficiency.md |
| `analyze_sprint` | Read | Low | https://policylayer.com/tools/io-github-ajc3xc-meridian/analyze-sprint.md |
| `batch_read` | Read | Low | https://policylayer.com/tools/io-github-ajc3xc-meridian/batch-read.md |
| `find_outputs_by_source` | Read | Low | https://policylayer.com/tools/io-github-ajc3xc-meridian/find-outputs-by-source.md |
| `find_similar_equation` | Read | Low | https://policylayer.com/tools/io-github-ajc3xc-meridian/find-similar-equation.md |
| `find_similar_figure` | Read | Low | https://policylayer.com/tools/io-github-ajc3xc-meridian/find-similar-figure.md |
| `find_similar_table` | Read | Low | https://policylayer.com/tools/io-github-ajc3xc-meridian/find-similar-table.md |
| `find_symbol_usages` | Read | Low | https://policylayer.com/tools/io-github-ajc3xc-meridian/find-symbol-usages.md |
| `get_agent_instructions` | Read | Low | https://policylayer.com/tools/io-github-ajc3xc-meridian/get-agent-instructions.md |
| `get_blog_posts` | Read | Low | https://policylayer.com/tools/io-github-ajc3xc-meridian/get-blog-posts.md |
| `get_capability_manifest` | Read | Low | https://policylayer.com/tools/io-github-ajc3xc-meridian/get-capability-manifest.md |
| `get_citation_edges` | Read | Low | https://policylayer.com/tools/io-github-ajc3xc-meridian/get-citation-edges.md |
| `get_connection_log` | Read | Low | https://policylayer.com/tools/io-github-ajc3xc-meridian/get-connection-log.md |
| `get_context_block` | Read | Low | https://policylayer.com/tools/io-github-ajc3xc-meridian/get-context-block.md |
| `get_custom_hooks` | Read | Low | https://policylayer.com/tools/io-github-ajc3xc-meridian/get-custom-hooks.md |
| `get_document_structure` | Read | Low | https://policylayer.com/tools/io-github-ajc3xc-meridian/get-document-structure.md |
| `get_docx_region_claims` | Read | Low | https://policylayer.com/tools/io-github-ajc3xc-meridian/get-docx-region-claims.md |
| `get_effective_capability_profile` | Read | Low | https://policylayer.com/tools/io-github-ajc3xc-meridian/get-effective-capability-profile.md |
| `get_effective_profile` | Read | Low | https://policylayer.com/tools/io-github-ajc3xc-meridian/get-effective-profile.md |
| `get_file_claims` | Read | Low | https://policylayer.com/tools/io-github-ajc3xc-meridian/get-file-claims.md |
| `get_findings` | Read | Low | https://policylayer.com/tools/io-github-ajc3xc-meridian/get-findings.md |
| `get_flag_drift` | Read | Low | https://policylayer.com/tools/io-github-ajc3xc-meridian/get-flag-drift.md |
| `get_flag_registry` | Read | Low | https://policylayer.com/tools/io-github-ajc3xc-meridian/get-flag-registry.md |
| `get_goal` | Read | Low | https://policylayer.com/tools/io-github-ajc3xc-meridian/get-goal.md |
| `get_graph_diff` | Read | Low | https://policylayer.com/tools/io-github-ajc3xc-meridian/get-graph-diff.md |
| `get_hitl_request` | Read | Low | https://policylayer.com/tools/io-github-ajc3xc-meridian/get-hitl-request.md |
| `get_insights` | Read | Low | https://policylayer.com/tools/io-github-ajc3xc-meridian/get-insights.md |
| `get_latex_structure` | Read | Low | https://policylayer.com/tools/io-github-ajc3xc-meridian/get-latex-structure.md |
| `get_notes` | Read | Low | https://policylayer.com/tools/io-github-ajc3xc-meridian/get-notes.md |
| `get_parallelizable_groups` | Read | Low | https://policylayer.com/tools/io-github-ajc3xc-meridian/get-parallelizable-groups.md |
| `get_pinned_decisions` | Read | Low | https://policylayer.com/tools/io-github-ajc3xc-meridian/get-pinned-decisions.md |
| `get_planning_brief` | Read | Low | https://policylayer.com/tools/io-github-ajc3xc-meridian/get-planning-brief.md |
| `get_plugin_details` | Read | Low | https://policylayer.com/tools/io-github-ajc3xc-meridian/get-plugin-details.md |
| `get_profile_layer` | Read | Low | https://policylayer.com/tools/io-github-ajc3xc-meridian/get-profile-layer.md |
| `get_profile_layer_revisions` | Read | Low | https://policylayer.com/tools/io-github-ajc3xc-meridian/get-profile-layer-revisions.md |
| `get_project_by_name` | Read | Low | https://policylayer.com/tools/io-github-ajc3xc-meridian/get-project-by-name.md |
| `get_server_log_checkpoint` | Read | Low | https://policylayer.com/tools/io-github-ajc3xc-meridian/get-server-log-checkpoint.md |
| `get_server_logs` | Read | Low | https://policylayer.com/tools/io-github-ajc3xc-meridian/get-server-logs.md |
| `get_session_activity` | Read | Low | https://policylayer.com/tools/io-github-ajc3xc-meridian/get-session-activity.md |
| `get_session_brief` | Read | Low | https://policylayer.com/tools/io-github-ajc3xc-meridian/get-session-brief.md |
| `get_session_log` | Read | Low | https://policylayer.com/tools/io-github-ajc3xc-meridian/get-session-log.md |
| `get_sprint_item_pointers` | Read | Low | https://policylayer.com/tools/io-github-ajc3xc-meridian/get-sprint-item-pointers.md |
| `get_sprint_items` | Read | Low | https://policylayer.com/tools/io-github-ajc3xc-meridian/get-sprint-items.md |
| `get_sprint_notes` | Read | Low | https://policylayer.com/tools/io-github-ajc3xc-meridian/get-sprint-notes.md |
| `get_sprint_progress` | Read | Low | https://policylayer.com/tools/io-github-ajc3xc-meridian/get-sprint-progress.md |
| `get_symbol_claims` | Read | Low | https://policylayer.com/tools/io-github-ajc3xc-meridian/get-symbol-claims.md |
| `get_symbol_hotspots` | Read | Low | https://policylayer.com/tools/io-github-ajc3xc-meridian/get-symbol-hotspots.md |
| `get_tasks` | Read | Low | https://policylayer.com/tools/io-github-ajc3xc-meridian/get-tasks.md |
| `get_tunnel_diagnostics` | Read | Low | https://policylayer.com/tools/io-github-ajc3xc-meridian/get-tunnel-diagnostics.md |
| `get_workspace_decisions` | Read | Low | https://policylayer.com/tools/io-github-ajc3xc-meridian/get-workspace-decisions.md |
| `get_workspace_notes` | Read | Low | https://policylayer.com/tools/io-github-ajc3xc-meridian/get-workspace-notes.md |
| `get_workspace_proposals` | Read | Low | https://policylayer.com/tools/io-github-ajc3xc-meridian/get-workspace-proposals.md |
| `get_workspace_settings` | Read | Low | https://policylayer.com/tools/io-github-ajc3xc-meridian/get-workspace-settings.md |
| `get_workspace_sprint_items` | Read | Low | https://policylayer.com/tools/io-github-ajc3xc-meridian/get-workspace-sprint-items.md |
| `github_search` | Read | Low | https://policylayer.com/tools/io-github-ajc3xc-meridian/github-search.md |
| `idle_until_all_done` | Read | Low | https://policylayer.com/tools/io-github-ajc3xc-meridian/idle-until-all-done.md |
| `idle_until_session_done` | Read | Low | https://policylayer.com/tools/io-github-ajc3xc-meridian/idle-until-session-done.md |
| `list_hitl_requests` | Read | Low | https://policylayer.com/tools/io-github-ajc3xc-meridian/list-hitl-requests.md |
| `list_plugins` | Read | Low | https://policylayer.com/tools/io-github-ajc3xc-meridian/list-plugins.md |
| `list_profile_layers` | Read | Low | https://policylayer.com/tools/io-github-ajc3xc-meridian/list-profile-layers.md |
| `list_projects` | Read | Low | https://policylayer.com/tools/io-github-ajc3xc-meridian/list-projects.md |
| `list_sessions` | Read | Low | https://policylayer.com/tools/io-github-ajc3xc-meridian/list-sessions.md |
| `load_handoff` | Read | Low | https://policylayer.com/tools/io-github-ajc3xc-meridian/load-handoff.md |
| `paper_search` | Read | Low | https://policylayer.com/tools/io-github-ajc3xc-meridian/paper-search.md |
| `preview_proposal_promotion` | Read | Low | https://policylayer.com/tools/io-github-ajc3xc-meridian/preview-proposal-promotion.md |
| `read_note` | Read | Low | https://policylayer.com/tools/io-github-ajc3xc-meridian/read-note.md |
| `receive_messages` | Read | Low | https://policylayer.com/tools/io-github-ajc3xc-meridian/receive-messages.md |
| `reconcile_sprint_drift` | Read | Low | https://policylayer.com/tools/io-github-ajc3xc-meridian/reconcile-sprint-drift.md |
| `refresh_context` | Read | Low | https://policylayer.com/tools/io-github-ajc3xc-meridian/refresh-context.md |
| `refresh_tool_manifest` | Read | Low | https://policylayer.com/tools/io-github-ajc3xc-meridian/refresh-tool-manifest.md |
| `resume_wave` | Read | Low | https://policylayer.com/tools/io-github-ajc3xc-meridian/resume-wave.md |
| `search_all` | Read | Low | https://policylayer.com/tools/io-github-ajc3xc-meridian/search-all.md |
| `search_code_semantic` | Read | Low | https://policylayer.com/tools/io-github-ajc3xc-meridian/search-code-semantic.md |
| `search_outputs` | Read | Low | https://policylayer.com/tools/io-github-ajc3xc-meridian/search-outputs.md |
| `search_server_logs` | Read | Low | https://policylayer.com/tools/io-github-ajc3xc-meridian/search-server-logs.md |
| `search_synthesis` | Read | Low | https://policylayer.com/tools/io-github-ajc3xc-meridian/search-synthesis.md |
| `search_tasks` | Read | Low | https://policylayer.com/tools/io-github-ajc3xc-meridian/search-tasks.md |
| `social_search` | Read | Low | https://policylayer.com/tools/io-github-ajc3xc-meridian/social-search.md |
| `verify_handoff_token` | Read | Low | https://policylayer.com/tools/io-github-ajc3xc-meridian/verify-handoff-token.md |
| `activate_profile_layer` | Write | Medium | https://policylayer.com/tools/io-github-ajc3xc-meridian/activate-profile-layer.md |
| `add_custom_hook` | Write | Medium | https://policylayer.com/tools/io-github-ajc3xc-meridian/add-custom-hook.md |
| `add_insight` | Write | Medium | https://policylayer.com/tools/io-github-ajc3xc-meridian/add-insight.md |
| `add_note` | Write | Medium | https://policylayer.com/tools/io-github-ajc3xc-meridian/add-note.md |
| `add_sprint_item` | Write | Medium | https://policylayer.com/tools/io-github-ajc3xc-meridian/add-sprint-item.md |
| `add_sprint_item_pointer` | Write | Medium | https://policylayer.com/tools/io-github-ajc3xc-meridian/add-sprint-item-pointer.md |
| `add_sprint_note` | Write | Medium | https://policylayer.com/tools/io-github-ajc3xc-meridian/add-sprint-note.md |
| `add_subtask` | Write | Medium | https://policylayer.com/tools/io-github-ajc3xc-meridian/add-subtask.md |
| `add_workspace_note` | Write | Medium | https://policylayer.com/tools/io-github-ajc3xc-meridian/add-workspace-note.md |
| `add_workspace_proposal` | Write | Medium | https://policylayer.com/tools/io-github-ajc3xc-meridian/add-workspace-proposal.md |
| `add_workspace_sprint_item` | Write | Medium | https://policylayer.com/tools/io-github-ajc3xc-meridian/add-workspace-sprint-item.md |
| `advance_proposal_status` | Write | Medium | https://policylayer.com/tools/io-github-ajc3xc-meridian/advance-proposal-status.md |
| `annotate_outputs` | Write | Medium | https://policylayer.com/tools/io-github-ajc3xc-meridian/annotate-outputs.md |
| `answer_hitl` | Write | Medium | https://policylayer.com/tools/io-github-ajc3xc-meridian/answer-hitl.md |
| `assign_sprint_waves` | Write | Medium | https://policylayer.com/tools/io-github-ajc3xc-meridian/assign-sprint-waves.md |
| `capture_research_finding` | Write | Medium | https://policylayer.com/tools/io-github-ajc3xc-meridian/capture-research-finding.md |
| `checkpoint` | Write | Medium | https://policylayer.com/tools/io-github-ajc3xc-meridian/checkpoint.md |
| `claim_docx_region` | Write | Medium | https://policylayer.com/tools/io-github-ajc3xc-meridian/claim-docx-region.md |
| `claim_file` | Write | Medium | https://policylayer.com/tools/io-github-ajc3xc-meridian/claim-file.md |
| `commit_proposal_promotion` | Write | Medium | https://policylayer.com/tools/io-github-ajc3xc-meridian/commit-proposal-promotion.md |
| `complete_sprint_item` | Write | Medium | https://policylayer.com/tools/io-github-ajc3xc-meridian/complete-sprint-item.md |
| `complete_workspace_sprint_item` | Write | Medium | https://policylayer.com/tools/io-github-ajc3xc-meridian/complete-workspace-sprint-item.md |
| `configure_wave_gate` | Write | Medium | https://policylayer.com/tools/io-github-ajc3xc-meridian/configure-wave-gate.md |
| `create_project` | Write | Medium | https://policylayer.com/tools/io-github-ajc3xc-meridian/create-project.md |
| `dismiss_hitl` | Write | Medium | https://policylayer.com/tools/io-github-ajc3xc-meridian/dismiss-hitl.md |
| `export_ai_log` | Write | Medium | https://policylayer.com/tools/io-github-ajc3xc-meridian/export-ai-log.md |
| `export_ai_log_artifacts` | Write | Medium | https://policylayer.com/tools/io-github-ajc3xc-meridian/export-ai-log-artifacts.md |
| `finalize_wave_run` | Write | Medium | https://policylayer.com/tools/io-github-ajc3xc-meridian/finalize-wave-run.md |
| `generate_handoff` | Write | Medium | https://policylayer.com/tools/io-github-ajc3xc-meridian/generate-handoff.md |
| `index_equation` | Write | Medium | https://policylayer.com/tools/io-github-ajc3xc-meridian/index-equation.md |
| `index_figure` | Write | Medium | https://policylayer.com/tools/io-github-ajc3xc-meridian/index-figure.md |
| `index_table` | Write | Medium | https://policylayer.com/tools/io-github-ajc3xc-meridian/index-table.md |
| `ingest_document` | Write | Medium | https://policylayer.com/tools/io-github-ajc3xc-meridian/ingest-document.md |
| `ingest_document_structure` | Write | Medium | https://policylayer.com/tools/io-github-ajc3xc-meridian/ingest-document-structure.md |
| `insert_equation` | Write | Medium | https://policylayer.com/tools/io-github-ajc3xc-meridian/insert-equation.md |
| `link_figure_caption` | Write | Medium | https://policylayer.com/tools/io-github-ajc3xc-meridian/link-figure-caption.md |
| `link_flag_to_section` | Write | Medium | https://policylayer.com/tools/io-github-ajc3xc-meridian/link-flag-to-section.md |
| `link_manual_github_issue` | Write | Medium | https://policylayer.com/tools/io-github-ajc3xc-meridian/link-manual-github-issue.md |
| `link_table_caption` | Write | Medium | https://policylayer.com/tools/io-github-ajc3xc-meridian/link-table-caption.md |
| `log_task` | Write | Medium | https://policylayer.com/tools/io-github-ajc3xc-meridian/log-task.md |
| `merge_project` | Write | Medium | https://policylayer.com/tools/io-github-ajc3xc-meridian/merge-project.md |
| `merge_sprint_items` | Write | Medium | https://policylayer.com/tools/io-github-ajc3xc-meridian/merge-sprint-items.md |
| `pin_decision` | Write | Medium | https://policylayer.com/tools/io-github-ajc3xc-meridian/pin-decision.md |
| `pin_workspace_decision` | Write | Medium | https://policylayer.com/tools/io-github-ajc3xc-meridian/pin-workspace-decision.md |
| `promote_proposal` | Write | Medium | https://policylayer.com/tools/io-github-ajc3xc-meridian/promote-proposal.md |
| `register_session` | Write | Medium | https://policylayer.com/tools/io-github-ajc3xc-meridian/register-session.md |
| `release_file` | Write | Medium | https://policylayer.com/tools/io-github-ajc3xc-meridian/release-file.md |
| `rename_project` | Write | Medium | https://policylayer.com/tools/io-github-ajc3xc-meridian/rename-project.md |
| `request_manual_issue_screening_toggle` | Write | Medium | https://policylayer.com/tools/io-github-ajc3xc-meridian/request-manual-issue-screening-toggle.md |
| `resolve_citations` | Write | Medium | https://policylayer.com/tools/io-github-ajc3xc-meridian/resolve-citations.md |
| `resolve_sprint_item_pointers` | Write | Medium | https://policylayer.com/tools/io-github-ajc3xc-meridian/resolve-sprint-item-pointers.md |
| `save_blog_post` | Write | Medium | https://policylayer.com/tools/io-github-ajc3xc-meridian/save-blog-post.md |
| `save_finding` | Write | Medium | https://policylayer.com/tools/io-github-ajc3xc-meridian/save-finding.md |
| `save_profile_layer` | Write | Medium | https://policylayer.com/tools/io-github-ajc3xc-meridian/save-profile-layer.md |
| `send_message` | Write | Medium | https://policylayer.com/tools/io-github-ajc3xc-meridian/send-message.md |
| `set_active_repo` | Write | Medium | https://policylayer.com/tools/io-github-ajc3xc-meridian/set-active-repo.md |
| `set_agent_instructions` | Write | Medium | https://policylayer.com/tools/io-github-ajc3xc-meridian/set-agent-instructions.md |
| `set_capability_manifest` | Write | Medium | https://policylayer.com/tools/io-github-ajc3xc-meridian/set-capability-manifest.md |
| `set_capability_profile` | Write | Medium | https://policylayer.com/tools/io-github-ajc3xc-meridian/set-capability-profile.md |
| `set_executor_config` | Write | Medium | https://policylayer.com/tools/io-github-ajc3xc-meridian/set-executor-config.md |
| `set_goal` | Write | Medium | https://policylayer.com/tools/io-github-ajc3xc-meridian/set-goal.md |
| `set_north_star` | Write | Medium | https://policylayer.com/tools/io-github-ajc3xc-meridian/set-north-star.md |
| `set_parent_project` | Write | Medium | https://policylayer.com/tools/io-github-ajc3xc-meridian/set-parent-project.md |
| `set_sprint` | Write | Medium | https://policylayer.com/tools/io-github-ajc3xc-meridian/set-sprint.md |
| `snapshot_graph_metrics` | Write | Medium | https://policylayer.com/tools/io-github-ajc3xc-meridian/snapshot-graph-metrics.md |
| `split_sprint_item` | Write | Medium | https://policylayer.com/tools/io-github-ajc3xc-meridian/split-sprint-item.md |
| `start_wave_run` | Write | Medium | https://policylayer.com/tools/io-github-ajc3xc-meridian/start-wave-run.md |
| `store_finding` | Write | Medium | https://policylayer.com/tools/io-github-ajc3xc-meridian/store-finding.md |
| `update_custom_hook` | Write | Medium | https://policylayer.com/tools/io-github-ajc3xc-meridian/update-custom-hook.md |
| `update_decision` | Write | Medium | https://policylayer.com/tools/io-github-ajc3xc-meridian/update-decision.md |
| `update_md_section` | Write | Medium | https://policylayer.com/tools/io-github-ajc3xc-meridian/update-md-section.md |
| `update_paragraph` | Write | Medium | https://policylayer.com/tools/io-github-ajc3xc-meridian/update-paragraph.md |
| `update_sprint_item` | Write | Medium | https://policylayer.com/tools/io-github-ajc3xc-meridian/update-sprint-item.md |
| `update_workspace_settings` | Write | Medium | https://policylayer.com/tools/io-github-ajc3xc-meridian/update-workspace-settings.md |
| `update_workspace_sprint_item` | Write | Medium | https://policylayer.com/tools/io-github-ajc3xc-meridian/update-workspace-sprint-item.md |
| `validate_assumption` | Write | Medium | https://policylayer.com/tools/io-github-ajc3xc-meridian/validate-assumption.md |

## Tool descriptions

- `archive_decision` — [SUPPORT] Archive a pinned decision by id. Soft-deletes to preserve the audit trail. Use when something was filed by mistake or is a duplicate. For retiring a valid but superseded decision, prefer update_decision(status=superseded). Pers…
- `batch_mutate` — [SUPPORT] 133bfff6 — run a batch of TRANSACTIONAL mutation entries in ONE call, mixing entry kinds selected per-entry via 'kind': 'sprint_item_pointer' (attach a pointer — same shape as add_sprint_item_pointer: sprint_item_id, source_typ…
- `claim_sprint_item` — Claim a pending sprint item: sets status to in_progress and records claimed_at + actor. Read-only: false. Rejects if the item is already in_progress, done, failed, skipped, its touches_files overlap active file claims from another live s…
- `clear_capability_profile` — [SUPPORT] 02038afe — Delete a scope's ENTIRE capability profile row (both its capabilities and its disabled_capability_ids) so it reverts to purely inheriting from less specific layers. Distinct from disabling individual capability ids v…
- `clone_profile_layer` — [SUPPORT] 0bec79a7 (PROFILE-5) — Copy one layer's fields/reset_fields/provenance onto another scope, going through the exact same validation/hashing path as save_profile_layer (not a raw copy) — the target scope's allowed_layers may diff…
- `delete_custom_hook` — [MAINTENANCE] 273287cb — delete a user-defined hook by id (the id returned by add_custom_hook / get_custom_hooks). Idempotent: deleting an already-gone hook returns {deleted:false} rather than erroring, matching delete_sprint_item_pointe…
- `delete_note` — [MAINTENANCE] Hard-delete a project note by id. 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…
- `delete_sprint_item_pointer` — [MAINTENANCE] 2976e168 — delete ONE generic pointer from a sprint item by its pointer id (the id returned by add_sprint_item_pointer / get_sprint_item_pointers). A stored pointer is immutable, so 'editing' one is delete-then-re-add. Idem…
- `fan_out_sprint_items` — [SUPPORT] Bulk-insert sprint items from a single orchestrator call — decompose a goal into parallel work items without N sequential add_sprint_item calls. Pass a list of {title, description?, group?, version?} dicts; returns the list of …
- `purge_ai_log` — [MAINTENANCE] c0168425 — Project-scoped, cutoff-based retention sweep spanning BOTH ai_log_events (meridian.db.ai_log.purge_events_before) and their stored artifacts (meridian.artifact_store.purge_artifacts_before) in one call, with a si…
- `record_handoff_correction` — [MAINTENANCE] 3af86d28 — record a corrective handoff when a blocked executor session reaches a wall after receiving a handoff (its evidence/scope no longer holds, a pointer stopped resolving, a required capability went away, etc.). Links…
- `release_docx_region_claims` — [MAINTENANCE] f7ee1ba7 — Release scoped docx-region claims held by a session. Without element_id releases all claims on the file; with element_id releases only that one element. Without file_path releases ALL region claims held by the se…
- `request_hitl` — Surface a question to the human-in-the-loop queue. ALWAYS use this to ask the human a question — never just ask in chat, which is invisible to the dashboard and to an unattended/autonomous run. IMPORTANT: when the project's HITL auto-ans…
- `reset_plugin_override` — [MAINTENANCE] Clear a tenant's stored command/config override for one plugin slot, resetting it back to the built-in default. Fixes the gap where stale_override detection (surfaced by list_plugins/get_plugin_details) could flag a stale p…
- `reset_profile_layer` — [SUPPORT] 0bec79a7 (PROFILE-5) — Delete a scope's ENTIRE profile-layer row so it reverts to purely inheriting from less-specific layers — mirrors clear_capability_profile's semantics for the profile-layers contract. Idempotent: resetting…
- `complete_wave_gate` — [SUPPORT] d2430713 — EXECUTOR GATE: call this AFTER you have actually run a wave's gate action list (push, deploy, wait, run_verification) to unblock the next wave's sprint items. You MUST pass the REAL structured result from run_verific…
- `execute_batch` — [SUPPORT] 627187b8 — run a HOMOGENEOUS batch of management writes (all entries the SAME operation) with real atomic-or-independent semantics. Every entry in entries is validated and reported individually — no guessing whether a partial w…
- `prospect_symbol` — [SUPPORT] 2ce5bc76 — ROBUST symbol prospecting with a three-rung fallback chain: tries codebase__search_graph FIRST (fast, graph-indexed); when it returns zero results OR the caller flags a mismatch (stale_graph=true), automatically retr…
- `run_verification` — [SUPPORT] 0e973e52 — run the project's stored test_cmd on YOUR local machine via the tunnel and return a REAL, structured result — not self-reported. Fields: {exit_code, passed, failed, stdout_tail, stderr_tail, status, timed_out}. Retur…
- `start_session` — Register a session and return orientation. Compact by default (session_id, sprint focus + status counts, 3 recent tasks, board_change count) to keep an executor's context small. Pass compact=false for the full block (goal XML, decisions,…
- `analyze_model_efficiency` — [MAINTENANCE] 0fba4cb6 — MECHANICAL (zero-token) model-tier suggestion for a task or sprint item. Deterministic, rule/heuristic classifier: NO model call, NO DB, NO network — it mirrors how the ultracode orchestration script spends zero …
- `analyze_sprint` — [MAINTENANCE] PLANNING: Read-only synthesis of the current sprint into one structured brief — parallelizability (conflict-free groups + max fan-out), dependency chains (depends_on walked to the root), resource/file conflicts (items shari…
- `batch_read` — [SUPPORT] 133bfff6 — run a batch of DOMAIN-AWARE, CONCURRENT read requests in ONE call. Each request names an 'adapter' + 'operation' + 'args'; independent requests (no depends_on) execute concurrently via asyncio.gather — this is pure i…
- `find_outputs_by_source` — [SUPPORT] 2ae25966 — READ-ONLY reverse provenance lookup over a run's OUTPUTS tree: the mirror image of resolve_figure_output's forward direction (figure -> source). Given a script or data file's source_path, scans the same local DuckDB …
- `find_similar_equation` — [MAINTENANCE] 06df6ab3 — fuzzy-match a LaTeX string against every equation already indexed (via index_equation) for one stored document, best match first. Each result carries the stored equation row PLUS a difflib similarity score (0..1)…
- `find_similar_figure` — [MAINTENANCE] c623e648 — fuzzy-match a free-text description OR a file path against every figure already indexed (index_figure) for one stored document, best match first. Each result carries the stored figure row PLUS a difflib similarit…
- `find_similar_table` — [MAINTENANCE] 2622182d — fuzzy-match a free-text description against every table already indexed (index_table) for one stored document, best match first. Each result carries the stored table row PLUS a difflib similarity score (0..1) aga…
- `find_symbol_usages` — [MAINTENANCE] 9605edb0 — READ-ONLY cross-reference tracking: given a document and EITHER a doc_equations row id OR a symbol / normalized-LaTeX string, resolve it to ONE target normalized-LaTeX (an equation id uses that row's stored latex…
- `get_agent_instructions` — [MAINTENANCE] Read-only: Return the custom agent_instructions for a project. These are injected automatically by start_session so every session picks them up. Use this when you need to read or display the current instructions.
- `get_blog_posts` — [MAINTENANCE] Read-only: List workspace-scoped blog posts, newest first. Optional 'status' filter (draft|published|archived). Each post includes a 'url' (/blog/<slug>).
- `get_capability_manifest` — [SUPPORT] 649e095f — Read-only: return a project's structured capability manifest (id/purpose/required_tools/fallback_chain/provenance/availability_policy/verification_command per capability), plus its schema version and a stable content…
- `get_citation_edges` — [MAINTENANCE] fefb596a — read the CITATION GRAPH of a project's ingested documents. Returns every in-text citation marker (a kind='citation' element parsed from an ingested .tex/.docx) together with its resolved edges: • bibentry edges —…
- `get_connection_log` — [MAINTENANCE] Read-only: Return the recent /mcp connection-event log for this tenant (newest first, up to 200 entries). Every HTTP /mcp request Meridian receives is recorded: timestamp, MCP method (initialize/tools/list/tools/call/...), …
- `get_context_block` — [SUPPORT] Read-only: Return a compact project context block (north star, sprint, pending sprint items, recent tasks, recent decisions, active sessions) wrapped in a <meridian_context project_id="..." mode="..."> XML envelope for structur…
- `get_custom_hooks` — [MAINTENANCE] 273287cb — list a project's user-defined hooks (newest first). Optional event filter and enabled_only flag. Each entry includes the derived slug (the filename stem used when written to .claude/hooks/) alongside the stored f…
- `get_document_structure` — [SUPPORT] 13462df2 — return the heading outline of a Word .docx WITHOUT ingesting it as a note. Meridian parses the .docx server-side (stdlib only, no python-docx, no persistent index) and returns paragraph_count, heading_count, and an o…
- `get_docx_region_claims` — [MAINTENANCE] f7ee1ba7 — Read-only: list active scoped docx-region claims on a file (who owns which element_ids). Use before update_paragraph to see whether the target element is claimed. Persistent-state disclosure: on hosted Meridian, …
- `get_effective_capability_profile` — [SUPPORT] 02038afe — Read-only: resolve and return the MERGED capability profile for a project (optionally narrowed to one sprint item) across every applicable layer — workspace -> user -> project -> sprint_version -> item, least to most…
- `get_effective_profile` — [SUPPORT] 0bec79a7 (PROFILE-5) — Read-only: resolve and return the MERGED profile for a project across every applicable layer — hosted_default -> workspace -> user -> project -> session, least to most specific (see meridian.db.profile_la…
- `get_file_claims` — [SUPPORT] Read-only: show active claims on a file — the whole-file lock (with the holder's session name, if any) plus any symbol-level claims. Use to check who owns a file before editing it. Pass project_id (and optional symbol) to also …
- `get_findings` — [MAINTENANCE] Read-only (c35370cc): read stored session_findings for a project (newest first), optionally scoped by key and/or session_id. The read side of store_finding. Persistent-state disclosure: on hosted Meridian, supplied text and…
- `get_flag_drift` — [MAINTENANCE] 8ca89e8f — read side of link_flag_to_section: for every recorded flag link (optionally scoped to one doc / element_id / flag_name — pass flag_name alone with no doc for the REVERSE query 'flag X changed, which sections does…
- `get_flag_registry` — [SUPPORT] 45802b67 — scan a source tree for os.environ.get(...) / os.getenv(...) call sites (AST-based, not regex) and return a flat inventory of every config flag the codebase reads: {flag_name, file, line, default}. Only call sites whe…
- `get_goal` — [SUPPORT] Read-only: Fine-grained — return just the goal fields (north_star, sprint, version_goal) in isolation. Use start_session or get_session_brief for full context including tasks and decisions. Use get_goal when you only need the r…
- `get_graph_diff` — [MAINTENANCE] Read-only: compare the latest code-graph snapshots of two sessions — returns delta in node_count, hotspot_count, and file_churn. Use snapshot_graph_metrics first to record each session's current state.
- `get_hitl_request` — [SUPPORT] Read-only: Poll a HITL request for the human's answer. Returns the row including status ('pending'|'answered'|'dismissed') and answer text.
- `get_insights` — [SUPPORT] Read-only: List a project's strategic insights (newest first), optionally filtered by horizon (permanent|year|quarter). Review accumulated understanding before planning. permanent insights also appear automatically in get_plann…
- `get_latex_structure` — [SUPPORT] 106118cd — parse a LaTeX (.tex) source's structure WITHOUT a PDF intermediary. Meridian parses the .tex server-side with pylatexenc (pure-Python, no LaTeX install) and returns heading_count, an ordered headings outline and a ne…
- `get_notes` — [SUPPORT] Read-only: List project notes (newest first), LIGHTWEIGHT by default — each item is id/slug/title/tags/kind/priority/timestamps with NO body, so the list never overflows context. This is the pull model: scan the list, then call…
- `get_parallelizable_groups` — [MAINTENANCE] Read-only: Return clusters of pending sprint items that are safe to run simultaneously. Filters pending/todo items (optionally by version) whose depends_on is satisfied, then greedily partitions them into groups where no tw…
- `get_pinned_decisions` — [SUPPORT] Read-only: List pinned decisions, highest priority first (urgent → normal → low, then newest-first). Active only by default. Each row includes its priority and a parsed edit_log array of prior bodies ({body, ts}) recorded on ev…
- `get_planning_brief` — PLANNING SESSIONS: CALL THIS FIRST before anything else. Read-only: Return a compact planning context — sprint, north star, pending items, in-progress items, recent tasks, active sessions, recent decisions, unvalidated assumptions, the l…
- `get_plugin_details` — [MAINTENANCE] Read-only: Full schema for one named plugin (all tool definitions, description overrides, and stored skill guide if available). Use list_plugins first to see which plugins are active, then call get_plugin_details(name) to l…
- `get_profile_layer` — [SUPPORT] 0bec79a7 (PROFILE-5) — Read-only: return the raw, single-layer profile for one (scope_type, scope_id) — one row of the hosted_default -> workspace -> user -> project -> session contract, with no merging against any other layer.…
- `get_profile_layer_revisions` — [SUPPORT] 0bec79a7 (PROFILE-5) — Read-only: the hosted_default revision/audit history for one scope_id, newest first — the rollback/audit trail the profile contract requires for the one layer that is 'immutable once published'. Only host…
- `get_project_by_name` — [MAINTENANCE] Read-only: Find a project by name — look up, search, or resolve a project's project_id from its name (case-insensitive substring match). Use when the user names a project but you need its id. Returns the first hit with id, …
- `get_server_log_checkpoint` — [MAINTENANCE] b241a437 -- Read-only: Return the positional/checkpoint index for the server_logs ring-buffer. The checkpoint is a lightweight 'table of contents' mapping minute-level timestamp buckets to the first/last row id and row coun…
- `get_server_logs` — [MAINTENANCE] Read-only: Return recent application-level WARNING/ERROR/EXCEPTION log records (newest first, up to 500 entries). Captures any logging.warning() / logging.error() / unhandled-exception records emitted anywhere in the Meridi…
- `get_session_activity` — [MAINTENANCE] Read-only: Return the raw MCP-tool-call heartbeat feed for the given executor session — a ring-buffer of the last tool calls (newest first, up to 50 entries). Populated automatically by the MCP dispatcher on every executor …
- `get_session_brief` — [SUPPORT] Read-only: Call this FIRST for project summaries or to see what a session did — returns session, tasks, decisions, and recent commits in one call. Replaces the start_session + get_context_block two-call pattern for worker/autom…
- `get_session_log` — [MAINTENANCE] Read-only: Return the full task log for the given session. Returns every log_task description logged during the session (transcript/task_count) PLUS a recent_activity ring-buffer of the last tool calls the executor made — e…
- `get_sprint_item_pointers` — [SUPPORT] 2976e168 — list the GENERIC POINTERS attached to a sprint item (oldest first). Each pointer is {id, source_type, targets:[{uri, selector, subSelector?}], label, created_at} — the stored shape with its JSON targets deserialized.…
- `get_sprint_items` — Read-only: List sprint items for a project. Optional status filter (todo|pending|in_progress|provisional_complete|done|failed|skipped|pushed|indeterminate). Cold sessions read this to know what's still owed. By default, items sharing a p…
- `get_sprint_notes` — [SUPPORT] Read-only: Get all ephemeral scratch-pad notes for the current session. Shown at the top of session briefs so every cold start sees active constraints. Pass note_kind='thinking' to fetch only thinking_sync scratchpad notes, or …
- `get_sprint_progress` — [SUPPORT] Read-only: Return a SUMMARY of sprint items by status (pending/in_progress/done/failed) optionally filtered by version or item_group. Returns total, done, in_progress, pending, failed, percent_complete, and by_status (counts on…
- `get_symbol_claims` — [MAINTENANCE] Read-only: list symbol-level claims on a file (who owns which class/function/method line ranges).
- `get_symbol_hotspots` — [MAINTENANCE] Read-only: symbols claimed by 3+ distinct sessions within 14 days — a refactor/ownership smell. Optionally scope to one file.
- `get_tasks` — [SUPPORT] Read-only: Get recent tasks across all sessions.
- `get_tunnel_diagnostics` — [MAINTENANCE] f1e0df55 — Read-only: ONE layered diagnostic snapshot of your tunnel/connectors, separating what's SAVED in the dashboard from what's ACTUALLY running so a saved-but-not-yet-applied setting is never reported as active. Per …
- `get_workspace_decisions` — [MAINTENANCE] Read-only: List workspace-level pinned decisions (active only by default, newest first).
- `get_workspace_notes` — [MAINTENANCE] Read-only: List workspace-level notes (newest first). Optional ?tag substring filter.
- `get_workspace_proposals` — [SUPPORT] Read-only: List a bounded page of workspace proposals (human-authored flashes of insight), newest first. When status is omitted, defaults to 'live' proposals only (raw + investigating) — terminal proposals (promoted/rejected) a…
- `get_workspace_settings` — [MAINTENANCE] Read-only: Read workspace-global default settings (applies across ALL projects in this workspace): hitl_auto_answer_default and sprint_name_default. Returns the singleton settings row.
- `get_workspace_sprint_items` — [MAINTENANCE] Read-only: List workspace personal-backlog items (grouped by 'group', then position). Optional 'status' (todo/pending/in_progress/done/skipped/failed) and 'group' filters. Persistent-state disclosure: on hosted Meridian, su…
- `github_search` — [SUPPORT] Search GitHub — a REAL external lookup (keyless), sibling to paper_search/social_search for external prior-art / competitive-repo research. Distinct from search_code, which only searches the CALLING project's own connected repo…
- `idle_until_all_done` — [MAINTENANCE] PARALLEL COORDINATION (d3a3a01d): non-blocking barrier check across sibling sessions. Returns {all_done, pending, statuses}; a session is done when closed/archived/missing. The server can't block, so poll until all_done is …
- `idle_until_session_done` — [MAINTENANCE] Read-only: Poll every 30 seconds until another session is closed or archived. Use this when you need to wait before editing a locked file. 6f9503a9 — BOUNDED: the wait times out after timeout_seconds (default 1800s / 30 min…
- `list_hitl_requests` — [SUPPORT] Read-only: List HITL requests without needing UUIDs. OMIT project_id to list pending HITLs across ALL your projects (matches the dashboard) — planning sessions should call it this way so HITLs filed under another project aren't…
- `list_plugins` — [MAINTENANCE] Read-only: Lightweight index of active tunnel plugins — name, description, enabled state, and tool_count. Does NOT return full tool schemas (use get_plugin_details for that). Dramatically reduces context bloat vs. dumping a…
- `list_profile_layers` — [SUPPORT] 0bec79a7 (PROFILE-5) — Read-only: enumerate every persisted profile_layers row across the 5-layer hosted_default -> workspace -> user -> project -> session contract (see meridian.profile_contract / meridian.db.profile_layers fo…
- `list_projects` — [MAINTENANCE] Read-only: List all projects — find, browse, or look up your projects and their IDs. Call this first when you have a project name but need its project_id, or to discover which projects exist. Returns [{id, name, sprint, cre…
- `list_sessions` — [MAINTENANCE] Read-only: List active sessions for a project. Useful for planning chat to see what's currently running before filing new sprint items.
- `load_handoff` — [MAINTENANCE] Read-only: Return the latest stored handoff for a project as an MCP tool result — a trusted-channel alternative to a copy-pasted /goal. Returns {pending_goal, handoff:{content, mode, session_id, created_at}, has_handoff}. I…
- `paper_search` — [SUPPORT] Search academic papers — a REAL external lookup (keyless). Per the research-routing protocol, use this FIRST for academic/paper questions (cite the paper itself, not a secondary write-up), then capture_research_finding to save …
- `preview_proposal_promotion` — [SUPPORT] Read-only (ce4883f3): preview what commit_proposal_promotion would do for a proposal at a given depth, WITHOUT writing anything. Depths are cumulative, shallow to deep: 'proposal' (intake/scope only) -> 'investigation' (+ raw->…
- `read_note` — [SUPPORT] Read-only: Fetch one project note's full body by its per-project slug (the slug field from get_notes). The pull half of the list→read model — get_notes returns slugs without bodies, read_note pulls a single body when you need it.
- `receive_messages` — [MAINTENANCE] PARALLEL COORDINATION (d3a3a01d): fetch unread messages addressed to a session (oldest first) and mark them read by default. The receive side of send_message. Persistent-state disclosure: on hosted Meridian, supplied text a…
- `reconcile_sprint_drift` — [MAINTENANCE] Read-only: Cross-reference pending sprint items against recent git commits and return items that may already be done. Uses keyword matching — confidence 'high' means 3+ keywords overlap (safe to mark done), 'medium' means 1…
- `refresh_context` — [SUPPORT] Single-call post-compaction recovery for planning chats. Returns a COMPACT snapshot — current sprint + progress, next pending items, the active session id, recent handoffs, high-priority (urgent) decisions, unvalidated assumpti…
- `refresh_tool_manifest` — [MAINTENANCE] Read-only: return the authoritative, compact manifest of ALL built-in Meridian MCP tools (name + one-line summary). Call this when you suspect your client's tool schema went stale ('I nuked the schema', a tool you expected …
- `resume_wave` — [SUPPORT] efaa918a — STALE-MANIFEST GATING: check whether a wave run opened by start_wave_run is still safe to resume against the LIVE board before you act on its pinned manifest. Re-queries the board across ALL non-done statuses (pendin…
- `search_all` — [SUPPORT] Read-only: Universal search across all project content: tasks, notes, pinned decisions, and sprint items. Uses LIKE matching (SQLite) or ILIKE (Postgres). Returns grouped results: {tasks, notes, decisions, sprint_items, total}.…
- `search_code_semantic` — [SUPPORT] 93fce816 — Cursor-style LOCAL semantic code search over a source tree, entirely in a DuckDB sidecar (no cloud round-trip). Parses Python (stdlib ast) and TypeScript/JavaScript (tree-sitter) into SEMANTIC CHUNKS at function/clas…
- `search_outputs` — [SUPPORT] a0e9133e — READ-ONLY full-text search over a run's OUTPUTS tree (numeric/tabular/array artifacts), backed by DuckDB native FTS (Okapi BM25). Walks outputs_dir recursively and builds a persistent index: each .csv/.json contribut…
- `search_server_logs` — [MAINTENANCE] 222d54f8 — BM25 full-text search over the server_logs ring-buffer. Complements get_server_logs (which filters by level/module/since) with keyword-ranked retrieval — useful when you know WHAT went wrong but not exactly WHEN …
- `search_synthesis` — [SUPPORT] Read-only: Natural-language search that returns a short, CITED answer (which notes/items it drew from) synthesized over the same retrieval as search_all — not just a list of matches. Uses a cheap Haiku call when ANTHROPIC_API_K…
- `search_tasks` — [SUPPORT] Read-only: Search tasks by keyword or natural-language query. Uses trigram similarity on Postgres, LIKE on SQLite. Returns top matches with similarity score.
- `social_search` — [SUPPORT] Search public social-media / discussion content — a REAL external lookup (keyless), sibling to paper_search but for social discussion rather than academic papers. Currently one keyless source via the 'source' param: 'hn' (defau…
- `verify_handoff_token` — [MAINTENANCE] Read-only: Verify a handoff provenance token (dd07ece0). When a /goal block is copy-pasted into chat rather than delivered via the trusted MCP channel (start_session pending_goal / load_handoff), a receiving session can cal…
- `activate_profile_layer` — [SUPPORT] 0bec79a7 (PROFILE-5) — Advance a hosted_default layer's lifecycle to 'active' — the single 'publish' operation for the hosted_default floor (fae6e882 pinned decision collapsed 'publish' and 'activate' into this one tool: a host…
- `add_custom_hook` — [MAINTENANCE] 273287cb — define a user-creatable Claude Code hook (PreToolUse | PostToolUse | Stop), generalizing past sprint_guard.sh/.ps1 (the only hook Meridian auto-writes today). Written into the repo's .claude/hooks/<slug>.sh / .ps…
- `add_insight` — [SUPPORT] Record a durable STRATEGIC INSIGHT — accumulated understanding that generates future decisions. A first-class knowledge type SEPARATE from decisions (choices with a lifecycle) and notes (reference). horizon sets its shelf-life:…
- `add_note` — [SUPPORT] Add a per-project wiki note (setup, gotcha, howto, env, ...). Free-form title/body; comma-separated tags optional. Optional kind (wiki=gotcha/rule/howto, insight=strategic/product analysis, reference=external/one-off docs, code…
- `add_sprint_item` — ALWAYS call get_sprint_items first to check for existing pending items before adding. Append a todo item to the project's sprint checklist. Use when starting work on a new version so the next session sees what's in flight. Optional: grou…
- `add_sprint_item_pointer` — [SUPPORT] 2976e168 — attach a GENERIC POINTER to a sprint item: a portable, composable reference to a thing-in-a-source, grounded in LSP Location + W3C Web Annotation Selector composition. targets is an ARRAY of {uri, selector, subSelect…
- `add_sprint_note` — [SUPPORT] Add an ephemeral note to the current session's scratch pad. Use for constraints, blockers, working assumptions valid only this session. Notes are auto-deleted when the session closes. Pass note_kind='thinking' for a thinking_sy…
- `add_subtask` — [SUPPORT] Add a child sprint item under an existing parent item. Inherits the parent's version. Status starts as pending. Rejects if the parent is already done, failed, or skipped. Pass owner='human' or owner='ai' to build a mixed-owners…
- `add_workspace_note` — [MAINTENANCE] Add a workspace-level wiki note that applies across ALL projects in this workspace (onboarding, cross-cutting conventions, shared infra). Unlike add_note, it is not tied to a project and is injected at the top of every proj…
- `add_workspace_proposal` — Capture a workspace-level flash of insight into the 'drawer of inspiration' — cross-project ideas that don't belong to any one project yet. Unlike sprint items these are NOT executor-claimable; they require a human to review and promote …
- `add_workspace_sprint_item` — [MAINTENANCE] Add an item to the workspace-level personal backlog — a cross-project board NOT tied to any single project (track thesis + Meridian + personal goals in one view). Use the per-project add_sprint_item for project work instead…
- `advance_proposal_status` — [SUPPORT] Transition a workspace proposal through its lifecycle. Enforced transitions: raw → investigating|rejected; investigating → promoted|rejected|raw; rejected → raw. 'promoted' is a terminal status reachable only via promote_propos…
- `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: Tie…
- `answer_hitl` — [SUPPORT] Answer a pending HITL request programmatically. Marks it answered so the waiting session can resume. Use list_hitl_requests to find request IDs. Persistent-state disclosure: on hosted Meridian, supplied text and project/session…
- `assign_sprint_waves` — [MAINTENANCE] 58a45b92 — PERSIST the parallel grouping: writes the conflict-free batches get_parallelizable_groups computes onto each eligible item's stored wave field (group i -> 'wave-{i+1}'), so parallelism becomes deterministic and i…
- `capture_research_finding` — [SUPPORT] Inline capture for web/paper research during planning: save a finding from a URL as an addressable note with the source link, optionally linked to a decision. A research-shaped wrapper over save_finding — arXiv URLs are tagged …
- `checkpoint` — [SUPPORT] Save progress mid-session. Runs auto_capture (buckets done tasks into a note), generates a delta handoff, and returns a compact summary with what was done, what's pending, and the suggested next /goal string. Call before contex…
- `claim_docx_region` — [MAINTENANCE] f7ee1ba7 — Model B scoped-region claiming for .docx files. Claim a specific paragraph/element by its durable element_id (the w14:paraId surfaced by get_document_structure / update_paragraph) so another session cannot overwr…
- `claim_file` — [SUPPORT] Claim edit rights on a file for this session. Whole-file by default (auto-expires after 2 hours). For symbol-level claims — so two sessions can edit the same file if they own different classes/functions — also pass symbol (e.g.…
- `commit_proposal_promotion` — [SUPPORT] Commit a proposal's promotion through 'depth' (ce4883f3), cumulative over every shallower depth. Requires 'preview_hash' from a just-called preview_proposal_promotion with the SAME arguments — a mismatch (proposal or target pro…
- `complete_sprint_item` — Mark a sprint item done. Pass task_id to link the task that shipped it. Pass session_id to get a board_change field (items injected mid-run) and an active-worktree merge reminder in the response. If the item is flagged required_notes, yo…
- `complete_workspace_sprint_item` — [MAINTENANCE] Mark a workspace personal-backlog item done (stamps completed_at). Returns the updated item. Persistent-state disclosure: on hosted Meridian, supplied text and project/session metadata are sent to and stored in Meridian's s…
- `configure_wave_gate` — [SUPPORT] 74a8f420 — PLANNING: configure (or on-the-fly reconfigure) a deterministic action pipeline attached to a wave or wave-range, ENFORCED STRUCTURALLY — not just advisory /goal prose. Once set, claim_sprint_item refuses (WAVE_GATE_…
- `create_project` — [MAINTENANCE] Create a new Meridian project. 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 lo…
- `dismiss_hitl` — [SUPPORT] Dismiss a HITL request (won't-answer / no longer relevant). Stays in audit trail. Use list_hitl_requests to find request IDs. Persistent-state disclosure: on hosted Meridian, supplied text and project/session metadata are sent …
- `export_ai_log` — [MAINTENANCE] c0168425 — Read-only: project-scoped, receipted export of ai_log_events (meridian.db.ai_log — the append-only ExecutionEvent log). Nothing captures events into this table automatically yet (see meridian.ai_log's module docs…
- `export_ai_log_artifacts` — [MAINTENANCE] c0168425 — Read-only: project-scoped, receipted export of stored ai_log artifacts (meridian.artifact_store — the local-first, content-addressed blob store an ExecutionEvent payload can point to via artifact_ref instead of i…
- `finalize_wave_run` — [SUPPORT] 2a654cb0 — IDEMPOTENT FINALIZATION: close a wave run opened by start_wave_run. Safe to retry: if the run is already merged this returns the ORIGINAL result with already_finalized=true, writes no row and appends no event (event_…
- `generate_handoff` — EXECUTOR SESSIONS: MANDATORY - call at end of every session before disconnect. Never write markdown manually. Read-only: Generate a context handoff. mode='full' writes the complete L0/L1/L2 handoff; mode='delta' returns a compact session…
- `index_equation` — [MAINTENANCE] 06df6ab3 — index ONE Word equation (OMML) against a document already stored in the doc-structure store — populated by ingest_document (which registers a docx/latex document's structure here in addition to storing the flat n…
- `index_figure` — [MAINTENANCE] c623e648 — index ONE figure into the SEMANTIC figure index against a document already stored in the doc-structure store — populated by ingest_document (which registers a docx/latex document's structure here in addition to s…
- `index_table` — [MAINTENANCE] 2622182d — index ONE table into the SEMANTIC table index against a document already stored in the doc-structure store — populated by ingest_document (which registers a docx/latex document's structure here in addition to sto…
- `ingest_document` — [SUPPORT] Turn a Word/PDF/text document into a queryable kind='document' note with a source link — a report, thesis chapter, or spec doc becomes searchable project memory. Pass file_path OR content (one is required): • file_path → Meridi…
- `ingest_document_structure` — [MAINTENANCE] db42acce — persist pre-parsed structural data (headings/figures/tables) into the doc-structure store, keyed on the SAME source as ingest_document(content=...) so find_similar_figure / index_figure / index_table / index_equa…
- `insert_equation` — [MAINTENANCE] 51a595e7 — write an OMML equation DIRECTLY into a stored document's source .docx (real OOXML write-back), collapsing the manual resolve->open->parse->splice->rewrite->reindex flow into one call. The document must already be…
- `link_figure_caption` — [MAINTENANCE] 0ff8b982 — DURABLY link an already-indexed figure (doc_figures row) to its caption paragraph (a doc_elements id), by stable structural id rather than paragraph proximity. Use this to confirm an advisory suggested_caption_el…
- `link_flag_to_section` — [MAINTENANCE] 8ca89e8f — DURABLY link a docx section/paragraph/figure/table (any doc_elements id — the same id space index_figure/index_table/link_figure_caption already anchor to) to the config-flag state that produced its underlying nu…
- `link_manual_github_issue` — [SUPPORT] 5dfe34b2 — attempt to link a manually-filed GitHub issue (one Meridian did NOT create) to a sprint item, extending fdaa5b55's automated comment/propose flow to it. No-ops safely (action='skipped') unless manual_issue_screening_…
- `link_table_caption` — [MAINTENANCE] 42d398a5 — DURABLY link an already-indexed table (doc_tables row) to its caption paragraph (a doc_elements id), by stable structural id rather than paragraph proximity. The table analogue of link_figure_caption. Use this to…
- `log_task` — [SUPPORT] Log a task this session completed or is working on. Valid statuses: pending, in_progress, done, failed, backlog, future, backburner. Persistent-state disclosure: on hosted Meridian, supplied text and project/session metadata ar…
- `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 pro…
- `merge_sprint_items` — [SUPPORT] Merge multiple sprint items into one. Source items are closed (skipped, merged_into=survivor). Returns the new survivor item. Persistent-state disclosure: on hosted Meridian, supplied text and project/session metadata are sent …
- `pin_decision` — [SUPPORT] Create a pinned decision (editable constitution row). Use for the current authoritative truth that supersedes earlier statements. category is free-text; suggested values: STRATEGIC, COMPETITIVE, TECHNICAL, TACTICAL, BUSINESS, P…
- `pin_workspace_decision` — [MAINTENANCE] Pin a workspace-level decision that applies across ALL projects (shared architecture, org-wide standards). Injected at the top of every project's context block + handoff. category is free-text (STRATEGIC, TECHNICAL, ARCHITE…
- `promote_proposal` — Promote a workspace proposal into a real sprint item, creating the link between them. The proposal must be in 'raw' or 'investigating' state. Creates a sprint item under the given project and sets the proposal's status to 'promoted' with…
- `register_session` — [MAINTENANCE] Low-level: register this session without loading goal context. Use start_session instead for executor/human sessions — it registers AND returns goal + tasks in one call. Use register_session when you only need a session ID …
- `release_file` — [SUPPORT] Release a file lock (and any symbol claims this session holds on it). Persistent-state disclosure: on hosted Meridian, supplied text and project/session metadata are sent to and stored in Meridian's service; self-hosted deploym…
- `rename_project` — [MAINTENANCE] 7acb8563 — rename a project. Returns the updated project, or {error} if it does not exist. Persistent-state disclosure: on hosted Meridian, supplied text and project/session metadata are sent to and stored in Meridian's ser…
- `request_manual_issue_screening_toggle` — [SUPPORT] 5dfe34b2 — request enabling/disabling the OFF-by-default opt-in extension that lets the automated GitHub-issue comment/propose flow (never auto-close) also act on issues Meridian did not itself create, gated behind hardcoded co…
- `resolve_citations` — [MAINTENANCE] fefb596a — resolve this project's in-text citation markers to canonical Zotero items via Zotero's LOCAL API and materialise the cross-document 'cites' -> zotero_item edges (keyed on DOI). An OPT-IN, network-making pass — de…
- `resolve_sprint_item_pointers` — [SUPPORT] 2976e168 — resolve EVERY generic pointer on a sprint item to its concrete location, dispatching by selector.type. A range target returns its location as-is; symbol resolves the qualified_name against the SAME live three-rung ch…
- `save_blog_post` — [MAINTENANCE] Create or update a workspace-scoped blog post (draft|published|archived lifecycle). Posts belong to the whole workspace, not a single project, and are served publicly at /blog/<slug> once status='published'. Pass 'id' to up…
- `save_finding` — [SUPPORT] Phase-agnostic capture primitive: turn a finding into a durable, addressable note with provenance — works with ANY source (Claude's built-in web search, the arXiv MCP, Serena, a teammate). Decoupled from search so capture survi…
- `save_profile_layer` — [SUPPORT] 0bec79a7 (PROFILE-5) — Validate and persist ONE layer of the hosted_default -> workspace -> user -> project -> session profile contract (see meridian.profile_contract.FIELD_REGISTRY for the full field list and per-field allowed…
- `send_message` — [MAINTENANCE] PARALLEL COORDINATION (d3a3a01d): enqueue an actor-model message to another session (session_messages table). 'Done with X, you do Y' between parallel agents. The recipient reads with receive_messages. A2A-compatible. Persi…
- `set_active_repo` — [MAINTENANCE] Update the tunnel's active Serena repo at runtime. When a planning session switches to a different codebase, call this so subsequent Serena requests (find_symbol, find_referencing_symbols, etc.) route to the new repo withou…
- `set_agent_instructions` — [MAINTENANCE] Set or update the custom agent_instructions for a project. Instructions are injected into every start_session response so AI sessions see them automatically — no need to repeat in every session. Pass null or empty string to…
- `set_capability_manifest` — [SUPPORT] 649e095f — Persist a project's structured capability manifest: a list of capability declarations, each with id, purpose, required_tools (non-empty list of tool/server names), optional fallback_chain, optional provenance (string…
- `set_capability_profile` — [SUPPORT] 02038afe — Persist ONE layer of the capability-inheritance chain: workspace -> user -> project -> sprint_version -> item (least to most specific). scope_type selects the layer; scope_id is that layer's key (a tenant/workspace i…
- `set_executor_config` — [MAINTENANCE] Store per-project executor defaults (repo_path, env_file, test_cmd, test_min, deploy_cmd, shell_type, branch). Merges onto the existing config — other keys (hostnames, filesystem_roots, …) are preserved. Pass repo_paths as …
- `set_goal` — [MAINTENANCE] Set or update the goal state. 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 loc…
- `set_north_star` — [MAINTENANCE] Update only the north star — the long-lived product vision that rarely changes. Distinct from the version goal (set_goal). Any team member can call this. Persistent-state disclosure: on hosted Meridian, supplied text and pr…
- `set_parent_project` — [MAINTENANCE] 7acb8563 — set, change, or clear a project's parent AFTER creation (create_project only accepted parent_project_id at creation time). Use this to retroactively nest a project under another, or to detach it. Enforces the one…
- `set_sprint` — [MAINTENANCE] Update only the sprint — the short-term focus that changes each session or week. Any team member can call this; no ownership check. If pending items from the current sprint were never started, returns a WARNING block listin…
- `snapshot_graph_metrics` — [MAINTENANCE] Record a code-graph snapshot for a session (node count, edge count, hotspot count, file churn). Call at session start and end to enable get_graph_diff comparisons. Persistent-state disclosure: on hosted Meridian, supplied t…
- `split_sprint_item` — [SUPPORT] Split a sprint item into multiple smaller items. The original is closed (skipped) and N new items are created with split_from referencing the original. Returns list of new items. Persistent-state disclosure: on hosted Meridian,…
- `start_wave_run` — [SUPPORT] 2a654cb0 — DURABLE WAVE STATE: open a wave run before dispatching a parallel wave. Returns an immutable wave_run_id pinned to the canonical expanded board snapshot (revision_hash + monotonic revision_counter) the wave was plann…
- `store_finding` — [MAINTENANCE] PARALLEL COORDINATION (c35370cc): persist a per-task intermediate result to the session_findings table so it survives session boundaries. Parallel reader agents write findings; an orchestrator or writer agent reads them via…
- `update_custom_hook` — [MAINTENANCE] b4f4627f — the previously-missing generic enable/disable/edit path for a user-defined hook (id returned by add_custom_hook / get_custom_hooks): patches name, event, matcher, script_sh, script_ps1, blocking, and/or enabled w…
- `update_decision` — [SUPPORT] Patch a pinned decision. Pass new_title + new_body to atomically supersede (creates a new active row, marks old as superseded with back-link). Otherwise patches body/title/category/status/priority in place. Editing the body app…
- `update_md_section` — [MAINTENANCE] Propose a replacement for an anchored section of an agent template doc (CLAUDE.md or AGENTS.md). Does NOT write the file directly — it creates a human-in-the-loop request carrying a diff preview. A human approves it in the …
- `update_paragraph` — [MAINTENANCE] f978e588 — ID-addressable docx WRITE (the write counterpart of the get_element_by_id / paraId read primitive). Targets ONE paragraph in a stored .docx by its w14:paraId (the 'p{index}' fallback Word writes for an unlabelled…
- `update_sprint_item` — [SUPPORT] Edit fields on an existing sprint item: title, version, notes, human_id (assignee), group, deferred_until (enforced deferral), track, or depends_on (dependency ordering). Only the fields you pass are changed; omitted fields are…
- `update_workspace_settings` — [MAINTENANCE] Update workspace-global default settings. Pass only the fields you want to change. hitl_auto_answer_default (bool) seeds new projects' HITL auto-answer behaviour; sprint_name_default (string) is the default sprint name; han…
- `update_workspace_sprint_item` — [MAINTENANCE] Edit a workspace personal-backlog item: title, status, group, or human_id (assignee). Only the fields you pass are changed. Pass an empty string for group/human_id to clear it. Setting status to done/skipped/failed stamps c…
- `validate_assumption` — [SUPPORT] Confirm or invalidate the assumption a pinned decision rests on, in one call — no phase switching. Stamps the decision's assumption_status (confirmed|invalidated), saves a code-anchored note with your finding, and when confirme…

## Related servers

- Delx Mcp A2a (1076 tools) — https://policylayer.com/tools/io-github-davidmosiah-delx-mcp-a2a.md
- Delx MCP Server (740 tools) — https://policylayer.com/tools/io-github-davidmosiah-delx-mcp-server.md
- Binance MCP Server (734 tools) — https://policylayer.com/tools/nirholas-binance-mcp.md
- GoCreative Agent API (647 tools) — https://policylayer.com/tools/io-github-colinhughes2121-gocreative-agent-api.md
- Yaver (645 tools) — https://policylayer.com/tools/io-github-kivanccakmak-yaver.md
- GoHighLevel MCP Server (559 tools) — https://policylayer.com/tools/busybee3333-go-high-level-mcp-2026-complete.md
- Allmcp (501 tools) — https://policylayer.com/tools/allmcp.md
- Claude Flow (496 tools) — https://policylayer.com/tools/io-github-ruvnet-claude-flow.md

## For agents

This record is a snapshot. Live verdicts and the full registry:

- Check every server in your MCP config at once: `npx -y policylayer stack`
- Vet a server before you add it: install the mcp-precheck skill — `npx skills add https://policylayer.com` (skill text: https://policylayer.com/skill.md)
- Query the registry over MCP: endpoint `https://api.policylayer.com/mcp` — tools `check_mcp_server`, `check_mcp_stack`, `check_tool`, `search_registry`, `get_change_events`

---

Source: the PolicyLayer MCP registry — one continuously verified record per MCP server. Full record: https://policylayer.com/registry?q=io-github-ajc3xc-meridian · API: https://policylayer.com/registry/api · Recommended policies for every tool: https://policylayer.com/policies/io-github-ajc3xc-meridian
