Offline MCP server for local document search — semantic and keyword search over your PDFs, Markdown and text files, with no API keys, no cloud and no Docker.
Three tools with complete schemas and reasonable descriptions. Naming follows verb_noun convention (search_docs, semantic_search_docs, list_indexed). Descriptions are adequate (60-120 chars) but lack WHEN-to-use guidance and dependency hints. Parameters have types and descriptions, but lack constraints (enums, ranges, patterns). Output schemas are not documented, LLMs cannot predict response structure. Error handling is basic (generic JSON error wrapping). No tool annotations (readOnlyHint, idempotentHint). Pagination support is present but underdocumented.
List all indexed documents with chunk counts.
Search indexed documents by keyword. Returns matching chunks with file and page reference. Supports pagination.
Search indexed documents by semantic meaning (vector similarity). Useful for conceptual searches. Supports pagination.
Output schemas not documented. LLMs cannot predict response structure (fields, types, nesting). Forces trial-and-error parsing.
Numeric parameters (limit, offset, threshold) lack min/max constraints. LLMs can pass absurd values (limit=999999, threshold=1000).
Descriptions lack WHEN-to-use guidance. No hint that semantic_search_docs is for conceptual queries vs keyword search. LLMs may pick wrong tool.
No tool annotations (readOnlyHint, idempotentHint). All three tools are read-only and safe to retry, but LLM cannot infer this.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 67 | 2026-07-28+ | v2 |
Error responses are generic JSON wrapping. No recovery guidance (e.g., 'Try a simpler query' or 'Check file indexing status').