Add it to your Claude Code MCP config and restart Claude. (If the user turned the token
requirement off in Settings, the headers block is omitted and the server serves
unauthenticated — but on by default is the norm.)
Every tool returns text; every tool excludes sealed-and-not-unlocked content.
-
search_meetings — { query } — full-text search across meeting titles, transcripts,
notes, and imported documents. Returns matching meetings/documents with snippets and ids.
e.g. search_meetings({ "query": "pricing decision Q3" }).
-
search_semantic — { query } — meaning-based search fused with full-text; finds
relevant content even without the exact words. Falls back to keyword-only (and says so) when
semantic search is disabled in Murmur settings.
e.g. search_semantic({ "query": "who is unhappy about the roadmap" }).
-
get_meeting — { meetingId, transcriptFormat? } — a meeting's AI note plus its full
transcript, by id (from a meeting:… search hit). The transcript is structured by default
(one line per segment, [<start>–<end>] <Speaker>: <text>, Me/Others/Unknown); pass
transcriptFormat: "plain" for the flat text.
e.g. get_meeting({ "meetingId": "m-abc123" }).
-
get_document — { documentId } — the full body of one standalone note or imported
document, by id (from a document:… search hit). Use this, not get_meeting, for ids in a
search result's DOCUMENTS section.
e.g. get_document({ "documentId": "doc-xyz" }).
-
list_recent_meetings — { limit? } — the most recent meetings (title, date, status,
id). limit defaults to 20, clamped to 1–100.
e.g. list_recent_meetings({ "limit": 10 }).
-
get_open_commitments — { owner? } — rolls up every open action item (- [ ], not
done) across meetings, each with owner, due date, and source [[Title]]. Optional
case-insensitive owner filter. Answers "what's still open / what did I promise".
e.g. get_open_commitments({ "owner": "anna" }).
-
get_entity_dossier — { entity } — assembles a dossier on one person or project across
all meetings: a timeline of mentions, that entity's open commitments, and co-occurring
people/projects, each citing its source [[Title]]. Pass a name or id; you synthesize the
"state of X" from the returned gated material.
e.g. get_entity_dossier({ "entity": "Project Atlas" }).
-
query_database — { folder, filter? } — queries the typed properties of a
note-folder's notes as a small database (its Table/Board columns: status, owner, due, priority,
…). filter is key op value clauses joined by AND/OR, with op one of
= != > < >= <= contains; empty filter = every row.
e.g. query_database({ "folder": "Roadmap", "filter": "status=Open AND priority=High" }).
-
org_search — { query } — a fallback for when search_meetings / search_semantic
find nothing in the user's own vault and they've joined an org: searches the organization's
Shared Brain (notes colleagues explicitly shared, synced and decrypted locally — nothing
leaves the device). Results are attributed [org · <author>] and must be cited as coming from
that colleague. Returns nothing when no org is joined.
e.g. org_search({ "query": "onboarding checklist" }).