MCP server for RAG (Retrieval-Augmented Generation) research using RAGAnything library with support for multimodal document processing (PDFs, images, tables, equations) and corpus querying
Two tools with basic descriptions and schemas, but significant gaps in parameter documentation, error handling, and output schema clarity. index_corpus has a detailed description (good), but ask_corpus is minimal (27 chars). Neither tool documents return structure or error recovery paths. Parameters lack validation constraints (e.g., path format, question length). No error handling guidance for LLM recovery. Schemas present but incomplete, ask_corpus has no output schema documented. Tool composition is reasonable (separate index/query), but missing idempotency guarantees and rate-limit guidance.
Ask a question over the already indexed corpus. Example: - "Summarize the key conclusions from all reports in the corpus."
Index all supported documents in the folder at `path`. Args: path: Path to folder containing documents (empty = use default storage) background: If True (default), index in background and return immediately. If False, wait for completion (may timeout for large folders). Typical use from Claude: - "Index my research folder at /Users/chris/docs/rag_papers" - Leave path empty to use default storage location Returns immediately with job status. Indexing continues in background.
ask_corpus description is 27 characters, below 20-char hard floor. Provides no context for when/why to call it vs. index_corpus. LLM cannot determine tool selection criteria.
No output schemas documented for either tool. ask_corpus returns a dict but structure is opaque, LLM cannot plan downstream calls or extract fields reliably.
Parameters lack validation constraints. 'path' accepts any string (no format/pattern); 'question' has no length limits or examples. LLM may pass invalid paths or extremely long questions.
No error handling guidance. If indexing fails, if corpus is empty, or if question is unanswerable, tool returns no recovery hints. LLM cannot self-correct.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 47 | 2026-07-28+ | v2 |
index_corpus background mode returns job_id but no polling mechanism documented. LLM cannot check indexing progress or know when to call ask_corpus safely.