DocSift as a local MCP server for document conversion and search. Runs on the user's own machine and calls the library in process: no service, no network, no hosting. Documents never leave the machine.
DocSift provides two well-named, verb-prefixed tools (search_document, convert_document) with detailed descriptions (200+ chars each) and complete input schemas. However, output schemas are not documented in the source code, and parameter descriptions lack specificity around constraints (e.g., no min/max for limit/max_tokens, no format guidance for path). Error handling and recovery guidance are absent. The tools follow single-responsibility principle and accept human-friendly file paths, but lack structured output documentation and actionable error messages.
Convert a local document (PDF, Word, PowerPoint, Excel, HTML, CSV, ...) to Markdown and index it for searching. Returns a summary -- document id, page count, token estimate, chunk count -- not the text itself, because a whole document does not belong in the context window. Use search_document to get the parts that answer a question.
Answer a question about a local document without reading the whole thing. Converts the file if it has not been seen before (cached afterwards, so repeat calls are cheap), then returns only the passages matching the query, each with its page numbers and section heading for citation. Prefer this over converting and reading a document in full: it is what keeps a long PDF from consuming the context window. Search is lexical, so use words that would literally appear in the text rather than paraphrases.
Output schemas not documented. LLMs cannot plan downstream calls or extract fields from search_document results (passages, page numbers, section headings) or convert_document summary (document_id, page_count, token_estimate, chunk_count). Responses are inferred from descriptions only.
Parameter constraints missing. 'limit' (default 5) and 'max_tokens' (default 5000) lack min/max bounds. 'context' (default 0) has no range. LLMs may pass absurd values (limit=999999, max_tokens=1000000) causing performance issues or API failures.
No error handling or recovery guidance. If a file is not found, unsupported format, or conversion fails, the tool provides no actionable error message. LLMs cannot self-correct or suggest alternatives.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 62 | 2026-07-28+ | v2 |
Parameter 'path' accepts any string with no validation guidance. No mention of absolute vs relative paths, supported file types for convert_document, or path traversal prevention. LLMs may pass invalid paths or trigger security issues.
Engine parameter in convert_document lacks enum constraint. Description says 'auto, docling, or markitdown' but no formal enum in schema. LLMs may hallucinate invalid engine names.