MCP server for semantic search over markdown docs and meeting transcripts. Local embeddings via Ollama, ChromaDB vector store.
Recall MCP has well-structured tool definitions with complete schemas and descriptions for all 7 tools. Naming follows verb_noun convention (semantic_search, reindex_docs, index_*). Descriptions are substantive (100-200 chars typical), explaining WHAT each tool does and WHEN to use it. All parameters have type definitions and descriptions. However, output schemas are not documented, responses are wrapped in generic text content without specifying the structure of returned data. Error handling is minimal; no recovery guidance or actionable error messages visible in source. Some parameter descriptions could be more precise about constraints and expected formats.
Fetch the full transcript of a Granola meeting. Supports title + date search (e.g., "JT 1:1" + date "2026-03-02"), partial meeting IDs, and listing recent meetings.
Index Claude Code session dialogue (user + assistant text, no tool traffic) for semantic search. Additive and incremental; sessions active in the last hour are deferred.
Index Granola meeting transcripts for semantic search. By default additive - only indexes new meetings. Use clearExisting to rebuild from scratch.
Check the current status of the document index, including breakdown by source type.
Index Wispr Flow meeting transcripts (speaker-attributed) for semantic search. Additive - only indexes new meetings. Also exports new transcripts to markdown.
Rebuild the vector index for strategy documents. Only affects strategy docs, preserves any indexed transcripts.
Output schemas not documented. All tools return generic text content without specifying the structure of returned data (e.g., semantic_search returns search results but no schema for result objects, fields, or pagination).
No error handling or recovery guidance. Tools return text responses but no structured error classification (retryable vs fatal), actionable error messages, or guidance on what to do next if a call fails.
Parameter descriptions lack precision on constraints. E.g., 'limit' in semantic_search says 'default: 5, max: 20' but does not explain what happens if results are fewer than requested, or whether pagination is supported.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 60 | 2026-07-28+ | v2 |
Search strategy docs and Granola meeting transcripts by meaning, not just keywords. Finds relevant content based on concepts and topics.
Mutually exclusive parameters not documented. get_transcript accepts meetingId, searchTitle, date, and listRecent, but descriptions do not clarify which combinations are valid or what happens if multiple are provided.
No idempotency guarantees documented. Indexing tools (index_granola_transcripts, index_wispr_transcripts, index_claude_sessions) are marked additive/incremental, but no explicit idempotency guarantee or deduplication strategy is stated.