MCP serverio.github.ajc3xc/meridian
Persistent memory, task coordination, and HITL queue for AI coding sessions.
Overview
Score?
UNRATED 0.622
of what a free look can see, on 24 looks
Looks
31
last 1 day ago
Tools
235
changed 7 days ago
More info
URL
usemeridian.us/mcp/sse
sse
Says it is
meridian 0.2.6
protocol 2025-03-26
In the record since
32 days ago
Among servers18,413 with a card
0median 0.606 · this server 0.622 · highest on record 0.8561
Toolsfrom sha256:338daf53a6…f68aab · +0 −0 7 days ago
| Tool | Schema |
|---|---|
| accept_handoff [SUPPORT] Read-only: (1bd5e810) Canonical receiver-side acceptance check for a handoff envelope — composes token verification, capability/tool availability, tool-manifest drift, an |
input · no output |
| acquire_docx_document_lease [MAINTENANCE] 6507e83a — Whole-document cross-process lease for .docx files, the counterpart claim_docx_region never provided (that tool hard-requires a specific element_id). Use t |
input · no output |
| 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 coll |
input · no output |
| 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 toda |
input · no output |
| 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 lifec |
input · no output |
| 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=strategi |
input · no output |
| add_proposal Capture an idea into a proposal — PROJECT-SCOPED BY DEFAULT (a8afd8f9). This is the preferred entry point going forward; add_workspace_proposal remains available as the explicit wo |
input · no output |
| add_proposal_gate [SUPPORT] Raise a typed, lane-blocking HITL gate for a materially ambiguous decision — legal/IP, product scope, destructive operations, production deployment, human acceptance of a |
input · no output |
| 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 |
input · no output |
| 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 comp |
input · no output |
| 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 se |
input · no output |
| 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. |
input · no output |
| 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 t |
input · no output |
| 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 execut |
input · no output |
| 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 |
input · no output |
| advance_proposal_status [SUPPORT] Transition a workspace proposal through its lifecycle. Enforced transitions: raw → investigating|rejected; investigating → promoted|rejected|raw; rejected → raw. 'promote |
input · no output |
| 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 mi |
input · no output |
| 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 |
input · no output |
| 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 outp |
input · no output |
| 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 disclosu |
input · no output |
| 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 |
input · no output |
| 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 - |
input · no output |
| 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 sha |
input · no output |
| 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) |
input · no output |
| 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- |
input · no output |
| 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 |
input · no output |
| 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_str |
input · no output |
| 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 |
input · no output |
| 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 tou |
input · no output |
| 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 la |
input · no output |
| 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 |
input · no output |
| 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 wit |
input · no output |
| compare_proposal_versions [SUPPORT] Read-only: structural diff between two proposals — most commonly two adjacent versions in a lineage chain, but works for any two existing proposal ids. Reports per-field |
input · no output |
| 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 — reject |
input · no output |
| complete_external_job [SUPPORT] Finalize an external job with an explicit terminal outcome. This never infers success from output files and never reopens a terminal record. It appends a final task-log e |
input · no output |
| complete_research_run [SUPPORT] a5343387 — finalize a research run with a compact, byte-bounded receipt (16KB cap; exceeding it is REJECTED, never silently truncated). disposition is explicit and REQUIR |
input · no output |
| 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 i |
input · no output |
| 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. |
input · no output |
| 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 projec |
input · no output |
| 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 /go |
input · no output |
| create_experiment [SUPPORT] 3f6b8715 — W1-M Experiment Registry: create a named experiment (a research question; many runs belong to one). Reuses the pre-existing experiments table (4376e655) additi |
input · no output |
| create_project [MAINTENANCE] Create a new Meridian project. Persistent-state disclosure: on hosted Meridian, supplied text and project/session metadata -- including task log entries, pinned decis |
input · no output |
| create_proposal_successor [SUPPORT] Create a NEW, distinct proposal that is a version/successor of an existing one, linked to it by an explicit typed relation (supersedes/refines/forks/continues/duplicates/ |
input · no output |
| 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} |
input · no output |
| delete_note [MAINTENANCE] Hard-delete a project note by id. Persistent-state disclosure: on hosted Meridian, supplied text and project/session metadata -- including task log entries, pinned de |
input · no output |
| 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). Idempotent: return |
input · no output |
| delete_watchlist_query [SUPPORT] Delete a saved research watchlist query. Scoped to project_id + the watchlist tag, so it never deletes an unrelated note. Persistent-state disclosure: on hosted Meridian, |
input · no output |
| 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 Merid |
input · no output |
| 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 validate |
input · no output |
| 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 t |
input · no output |
| 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 Executio |
input · no output |
| export_ai_log_otel [MAINTENANCE] R2-G — Run ONE bounded export pass of new ai_log_events to the configured OTel/Langfuse-compatible OTLP endpoint for a project, resuming from the durable watermark le |
input · no output |
| 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, de |
input · no output |
| 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_f |
input · no output |
| find_orphaned_docx_staged_files [MAINTENANCE] 6507e83a — Maintenance diagnostic: detect staged-DOCX temp files (.meridian-docx-stage-*.tmp) left behind by a process that crashed between STAGE and PROMOTE inside m |
input · no output |
| 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 |
input · no output |
| 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 s |
input · no output |
| 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 resu |
input · no output |
| 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 st |
input · no output |
| 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 norm |
input · no output |
| 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 |
input · no output |
| 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 nee |
input · no output |
| get_ai_log_export_status [MAINTENANCE] R2-G — Read-only: status/diagnostics for the OPTIONAL AI-log -> OTel/self-hosted-Langfuse export adapter (meridian.ai_log_otel_export). Attempts NO network call — onl |
input · no output |
| 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>). |
input · no output |
| 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 |
input · no output |
| 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/.d |
input · no output |
| 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: times |
input · no output |
| 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_conte |
input · no output |
| 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 us |
input · no output |
| 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 in |
input · no output |
| get_docx_document_lease [MAINTENANCE] 6507e83a — Read-only: the live whole-document lease on a .docx file, if any (who holds it). Use before acquire_docx_document_lease or a bulk rewrite to see whether th |
input · no output |
| 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 c |
input · no output |
| 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 -> |
input · no output |
| 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 -> se |
input · no output |
| get_experiment [SUPPORT] 3f6b8715 — read one project-scoped experiment by id. |
input · no output |
| get_experiment_events [SUPPORT] 3f6b8715 — list an experiment's events, oldest first. Optionally scoped to one run_id. Includes BOTH auto-skeleton writes (dead_end/pivot/breakthrough) and manually recor |
input · no output |
| get_experiment_run [SUPPORT] 3f6b8715 — read one project-scoped experiment run by id. |
input · no output |
| get_external_job [SUPPORT] Read one project-scoped external job and its durable observation history. Use this from a fresh session before taking any action on a live job. |
input · no output |
| 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 e |
input · no output |
| 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. Persisten |
input · no output |
| 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 f |
input · no output |
| 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 |
input · no output |
| 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 t |
input · no output |
| 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 r |
input · no output |
| 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. |
input · no output |
| 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. |
input · no output |
| 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 re |
input · no output |
| 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 |
input · no output |
| 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 satisfi |
input · no output |
| 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 e |
input · no output |
| 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 s |
input · no output |
| 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 pl |
input · no output |
| 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 -> s |
input · no output |
| 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 th |
input · no output |
| 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 pro |
input · no output |
| get_proposal_gates [SUPPORT] Read-only: list proposal HITL gates for a project, optionally filtered by category and/or (raw, stored) state. Pass sprint_item_id to instead list only the gates currentl |
input · no output |
| get_proposal_lineage [SUPPORT] Read-only: everything known about one proposal's place in its lineage graph in one call — raw relation edges touching it (either direction), its ancestor chain (walking p |
input · no output |
| get_remote_task_status [SUPPORT] 32d3d5de — Open a FRESH SSH connection (never the launching one) and determine a remote task's real status: completed (with the real exit code), still running (PID alive) |
input · no output |
| get_research_run [SUPPORT] a5343387 — read one project-scoped research run by id. |
input · no output |
| 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-leve |
input · no output |
| 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() / u |
input · no output |
| 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). Populat |
input · no output |
| 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_sess |
input · no output |
| 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 |
input · no output |
| get_session_recovery [SUPPORT] cdd0ef6c — Read-only: fetch one session's recovery record (by session_id or recovery_id) plus, by default, a continuation payload that RE-DERIVES the live sprint board an |
input · no output |
| 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_a |
input · no output |
| 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 |
input · no output |
| 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='th |
input · no output |
| 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, pe |
input · no output |
| get_symbol_claims [MAINTENANCE] Read-only: list symbol-level claims on a file (who owns which class/function/method line ranges). |
input · no output |
| get_symbol_hotspots [MAINTENANCE] Read-only: symbols claimed by 3+ distinct sessions within 14 days — a refactor/ownership smell. Optionally scope to one file. |
input · no output |
| get_tasks [SUPPORT] Read-only: Get recent tasks across all sessions. |
input · no output |
| 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- |
input · no output |
| get_workspace_decisions [MAINTENANCE] Read-only: List workspace-level pinned decisions (active only by default, newest first). |
input · no output |
| get_workspace_notes [MAINTENANCE] Read-only: List workspace-level notes (newest first). Optional ?tag substring filter. |
input · no output |
| 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 + |
input · no output |
| 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 singl |
input · no output |
| 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' fil |
input · no output |
| 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, whi |
input · no output |
| 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/mi |
input · no output |
| 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 wai |
input · no output |
| 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 do |
input · no output |
| 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 register |
input · no output |
| 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 |
input · no output |
| 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 fil |
input · no output |
| 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 |
input · no output |
| 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- |
input · no output |
| 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 proxim |
input · no output |
| 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) |
input · no output |
| 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 |
input · no output |
| link_proposal_lineage [SUPPORT] Record a typed lineage relation between two EXISTING proposals: from_proposal_id --relation_type--> to_proposal_id (to_proposal_id is the older/predecessor side). Idempot |
input · no output |
| 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 proximit |
input · no output |
| list_active_worktrees [SUPPORT] dffcde86 — Read-only: list active (not-removed) git worktrees registered for a project, newest first, each row including the owning session's name. Reads the same active_ |
input · no output |
| list_experiment_runs [SUPPORT] 3f6b8715 — list a project's experiment runs, newest-started first. Optionally scoped to one experiment_id and/or status. |
input · no output |
| list_experiments [SUPPORT] 3f6b8715 — list a project's experiments, newest first. |
input · no output |
| list_external_jobs [SUPPORT] Read the project's live external-job register. By default terminal jobs are omitted so a new session sees only work that may require observation or resumption. The respon |
input · no output |
| 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 cal |
input · no output |
| 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 fo |
input · no output |
| 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 |
input · no output |
| 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 disco |
input · no output |
| list_remote_tasks [SUPPORT] 32d3d5de — Read the project's persisted remote-task register (last-known status only — no live SSH check is made; call get_remote_task_status for that). By default termin |
input · no output |
| list_research_runs [SUPPORT] a5343387 — list a project's research runs, newest-started first. By default terminal runs (completed/failed/abandoned/expired) are omitted so a fresh session sees only ru |
input · no output |
| list_resumable_sessions [SUPPORT] cdd0ef6c — Read-only: list this project's session recovery registry, newest heartbeat first, each with a freshly computed liveness classification (resumable/stale/dead/un |
input · no output |
| 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. |
input · no output |
| list_watchlist_queries [SUPPORT] Read-only: list saved research watchlist queries for a project (optionally filtered by source_type), each with its watchlist_id, query, source_type, limit, and sort_by. |
input · no output |
| list_worktrees_pending_cleanup [SUPPORT] dffcde86 (a03c0eeb) — Read-only: list active_worktrees rows still marked active in the DB (removed_at IS NULL) whose owning sprint item has reached a terminal status (don |
input · no output |
| 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 |
input · no output |
| 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 hoste |
input · no output |
| 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 req |
input · no output |
| 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 Merid |
input · no output |
| move_workspace_note_to_project [MAINTENANCE] Reclassify a workspace-level note (visible across ALL projects) into a single project's notes: copies title/body/tags to a new project note then removes the workspace |
input · no output |
| paper_search [SUPPORT] Search academic papers — a REAL external lookup. Per the research-routing protocol, use this FIRST for academic/paper questions (cite the paper itself, not a secondary wr |
input · no output |
| 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: |
input · no output |
| 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 + hand |
input · no output |
| 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: ' |
input · no output |
| promote_docx_candidate [MAINTENANCE] W1-K — explicitly promote a status='candidate' docx derivative to be THE accepted derivative for its source_path, demoting whatever derivative previously held that ro |
input · no output |
| promote_experiment_run [SUPPORT] 3f6b8715 — explicitly promote a run whose stored disposition is already 'promote' (set at completion time via complete_experiment_run) — rejects with {error} otherwise. N |
input · no output |
| 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 |
input · no output |
| promote_research_run [SUPPORT] a5343387 — explicitly promote a completed, disposition='promote' research run into a durable, addressable project finding (kind='finding' note, discoverable via get_findi |
input · no output |
| 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 calle |
input · no output |
| 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.arti |
input · no output |
| 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 |
input · no output |
| 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. Persist |
input · no output |
| 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 |
input · no output |
| reconcile_stale_claims [MAINTENANCE] 56e9b3c7 — project/version-scoped, auditable stale-claim reconciliation sweep. The bulk counterpart to claim_sprint_item's own inline autonomous reconciliation (which |
input · no output |
| record_experiment_event [SUPPORT] 3f6b8715 — manually record an experiment_events row (dead_end|pivot|breakthrough|note|milestone). Separate from, and coexists freely alongside, the auto-skeleton events s |
input · no output |
| 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 |
input · no output |
| 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 handoff |
input · no output |
| 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 sche |
input · no output |
| register_docx_derivative [MAINTENANCE] W1-K — record that derivative_path (e.g. a rendered PDF/DOCX export) was generated FROM source_path at a known content state. source_content_hash is the CALLER-comput |
input · no output |
| register_external_job [SUPPORT] Create or reaffirm a project-scoped record for long-running external work such as RunPod, SSH, Slurm, or CI. Meridian records the opaque external identity and resumable s |
input · no output |
| register_run_artifact [SUPPORT] 3f6b8715 — register a project-RELATIVE artifact against a run. Rejects an absolute path (any shape capability_manifest recognizes, a bare leading '/', a drive letter, a U |
input · no output |
| 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 ca |
input · no output |
| register_session_recovery [SUPPORT] cdd0ef6c — Create or reaffirm (upsert + heartbeat) this session's entry in the cross-client session recovery registry, so another client/session can tell whether it is re |
input · no output |
| release_docx_document_lease [MAINTENANCE] 6507e83a — Release a session's whole-document lease on a .docx file, if held. Returns {released: <0 or 1>, session_id, file_path}. Persistent-state disclosure: on hos |
input · no output |
| 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. Wi |
input · no output |
| 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 -- inclu |
input · no output |
| release_sprint_item_claim [MAINTENANCE] W1-I — voluntarily release a LIVE in_progress claim on a sprint item back to pending. Distinct from reconcile_stale_claims: that tool is for a claim whose owning sess |
input · no output |
| relocate_sprint_item_pointer [SUPPORT] W1-J — atomically UPDATE an existing generic pointer's targets/source_type/label IN PLACE (a single UPDATE statement), replacing the delete_sprint_item_pointer + add_spri |
input · no output |
| 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/ |
input · no output |
| reopen_proposal_gate [SUPPORT] Invalidate a still-standing proposal gate decision (e.g. new evidence surfaced) so resolve_proposal_gate can be called again. Resets the lane to 'blocked' (fail-safe), sn |
input · no output |
| 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/au |
input · no output |
| 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 |
input · no output |
| 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 |
input · no output |
| 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 semanti |
input · no output |
| 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 |
input · no output |
| resolve_proposal_gate [SUPPORT] Record a human decision on a proposal gate: the lane's new state (blocked | quarantined | allowed), the free-text decision, and the actor who decided (decided_at is auto- |
input · no output |
| 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 resolv |
input · no output |
| 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. |
input · no output |
| 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, fa |
input · no output |
| run_watchlist_query [SUPPORT] b924fd7c — re-run a saved watchlist query and diff its results against everything already captured for it. Every newly-seen result (matched by a per-source stable id — ar |
input · no output |
| 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 |
input · no output |
| 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, Se |
input · no output |
| 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.FIE |
input · no output |
| save_watchlist_query [SUPPORT] b924fd7c — save a recurring research query so it can be re-run and diffed over time via run_watchlist_query. Persisted as a project note (no separate table); the returned |
input · no output |
| search_ai_log [MAINTENANCE] d26b9943 (R2-B) — Read-only: EXACT-MATCH scoped search over ai_log_events, bounded and cursor-paginated. Every filter is a plain SQL equality (session_id/tenant_id/co |
input · no output |
| 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 |
input · no output |
| 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/JavaS |
input · no output |
| 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 |
input · no output |
| 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 — u |
input · no output |
Verify it yourself
npx teppi-check https://usemeridian.us/mcp/ssecurl -s https://api.teppi.xyz/v1/trust/mcp/mcs_01M1FZ2E2E4H92CBN4ZN37XYAG