Skip to content

MCP reference

Run the server with loof mcp. It uses the MCP 2024-11-05 protocol over stdio. Tools do not change vault content. Every search, list, and resource-list request refreshes the shared local cache, including while the server stays running. Detail tools and resource reads use the current vault files. Startup automatically builds a missing or incompatible cache, reporting progress on stderr before the MCP connection is established. For corruption, run loof --json init to repair the cache.

ParameterTypeDefaultNotes
querystringNoneDesktop full-text matching; query results use relevance order.
limitinteger20Clamped to 1..200.
offsetinteger0Number of results to skip.
tagsarrayNoneOnly meetings carrying every one of these tags (case-insensitive).
untaggedbooleanfalseOnly meetings without any tags. Cannot be combined with tags.

Each returned meeting includes its normalized tags, its author (null when the vault owner wrote the note; otherwise the name of the agent or other writer that created it), and its skill (null unless a skill was used to produce the note).

Search uses desktop word, quoted-phrase, and trailing-prefix matching. It returns one relevance-ranked result per session; equal scores use session ID order. speaker and kinds are no longer accepted.

ParameterTypeDefaultNotes
querystringrequiredNonempty full-text query.
limitinteger20Clamped to 1..50.
offsetinteger0Number of sessions to skip.

Hits contain session_id, title, created_at (epoch milliseconds), score, and plain-text title_snippet/content_snippet. Pagination includes the total. Fetch transcript details with get_meeting_transcript.

Accepts required string meeting_id. Returns meeting metadata, including its normalized tags, its author (null for the vault owner’s own notes), and its skill (null unless a skill produced the note), plus the canonical note, summaries, and action items. Transcript words are intentionally separate.

ParameterTypeDefaultNotes
meeting_idstringrequiredA returned Loofah meeting ID.

Returns meeting_id and text. The text uses one [HH:MM:SS] Speaker: ... line per speaker turn, timed from the start of the meeting. Speaker names come from the people registry, and unknown voices fall back to Speaker N. Word-level detail, including IDs, timestamps, and channels, is available through loof sessions export --format json.

URIMIME typeContent
loofah://meetings/{meeting_id}text/markdownMeeting detail without transcript text.
loofah://meetings/{meeting_id}/transcripttext/plainThe full speaker-labeled transcript.

Resource listing returns recent meeting resources in pages of 20. Its cursor is a numeric result offset.

Previously issued fmtr://meetings/... resource URIs remain readable for client compatibility; new resource listings use loofah://.