Model Context Protocol server providing citation-faithful retrieval tools over a unified message store for natural-language questions about message archives
msgbrowse provides 7 well-named, read-only tools with clear descriptions (avg 156 chars, within 10-1024 baseline). All tools follow verb_noun naming (list_, get_, search_, semantic_search). Input schemas are present with typed parameters and descriptions. However, output schemas are not documented, LLMs cannot predict response structure for planning. Parameter descriptions lack format constraints (e.g., date format YYYY-MM-DD is mentioned but not formalized). No error handling guidance, no recovery hints, and no pagination metadata (total count, next_cursor) documented for list tools. Security is sound (read-only, no secrets), but composition could be tighter, search_messages and semantic_search overlap significantly without clear differentiation.
Return the messages surrounding a given message_id (window on each side) for assembling RAG context around a search hit.
Retrieve a conversation's transcript in chronological order, optionally bounded by a date range. Use list_conversations to discover names.
List every conversation (person or group) with message counts and date ranges.
List deduplicated links, optionally filtered by domain, conversation, and source.
List image or file attachments, optionally filtered by conversation and source.
Hybrid keyword + semantic search across all messages. Returns ranked snippets with exact provenance (conversation, sender, timestamp, message_id). Filterable by conversation, sender, source, and date range.
Output schemas not documented. LLMs cannot predict response structure (fields, types, pagination metadata) for planning downstream calls or extracting data.
Pagination not documented. list_conversations, list_media, list_links accept 'limit' but no 'offset', 'page', or 'next_cursor' parameters. No total count or continuation token in response schema.
search_messages and semantic_search overlap significantly. Both search across messages; descriptions do not clearly explain when to use keyword vs semantic. LLMs will waste reasoning cycles choosing between them.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 65 | 2026-07-28+ | v2 |
Pure vector (meaning-based) search over message embeddings. Returns the k most semantically similar messages with provenance and a similarity score.
Date format constraints mentioned in descriptions ('YYYY-MM-DD') but not formalized in schema. LLMs cannot parse informal constraints reliably, use JSON Schema format:'date' or pattern validation.
No error handling guidance. Tools do not document what happens on invalid input (e.g., malformed date, conversation not found, limit > max). LLMs have no recovery path.