An MCP server for semantic documentation search and retrieval using vector databases to augment LLM capabilities.
mcp-ragdocs has 14 tools with mostly complete schemas and descriptions, but exhibits several quality gaps. Tool naming is verb-forward and appropriate (search_, add_, list_, remove_, extract_, run_, clear_, get_, watch_, update_). All tools have descriptions ranging from 100-300 chars, meeting the 10-1024 baseline. However, parameter descriptions are inconsistent: some parameters like 'query' in search_documentation have good context ('The text to search for in the documentation. Can be a natural language query, specific terms, or code snippets'), while others like 'name' in remove_repository are generic ('The name of the repository to remove'). Input schemas are well-formed with proper JSON Schema types and required fields. Output schemas are not explicitly documented in the source code, responses are formatResponse() calls that wrap results in text/json, which is suboptimal for LLM parsing of structured data. Error handling exists but is minimal (handleError() returns plain text error, no recovery guidance). No tool annotations (readOnlyHint/destructiveHint) are visible despite risk classifications. The server lacks idempotency guarantees for destructive operations and does not validate or constrain numeric parameters (e.g., 'limit' in search_documentation accepts 1-20 per description but no schema enforcement visible).
Add new documentation to the system by providing a URL. The tool will fetch the content, process it into chunks, and store it in the vector database for future searches. Supports various web page formats and automatically extracts relevant content.
Add a local code repository to the documentation system. This tool indexes all files in the repository according to the specified configuration, processes them into searchable chunks, and stores them in the vector database for future searches.
Remove all pending URLs from the documentation processing queue. Use this to reset the queue when you want to start fresh, remove unwanted URLs, or cancel pending processing. This operation is immediate and permanent - URLs will need to be re-added if you want to process them later. Returns the number of URLs that were cleared from the queue.
Extract and analyze all URLs from a given web page. This tool crawls the specified webpage, identifies all hyperlinks, and optionally adds them to the processing queue. Useful for discovering related documentation pages, API references, or building a documentation graph. Handles various URL formats and validates links before extraction.
Output schemas not documented; responses use plain text wrapping instead of structured JSON. Prevents LLMs from reliably parsing tool results for downstream tool chaining.
Tool annotations (readOnlyHint, destructiveHint, idempotentHint) are absent despite clear risk classifications (READ_ONLY, WRITE, DESTRUCTIVE). LLMs cannot determine which tools are safe to retry.
Repository name and generic parameters (remove_repository, update_repository, watch_repository) lack descriptive context. LLMs cannot distinguish these from alternatives without extra reasoning.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | D | 57 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 40 | - | v1 |
Get the current indexing status of a repository or all repositories.
List all URLs currently waiting in the documentation processing queue. Shows pending documentation sources that will be processed when run_queue is called. Use this to monitor queue status, verify URLs were added correctly, or check processing backlog. Returns URLs in the order they will be processed.
List all code repositories currently registered in the documentation system. Shows repository names, paths, and indexing status.
List all documentation sources currently stored in the system. Returns a comprehensive list of all indexed documentation including source URLs, titles, and last update times. Use this to understand what documentation is available for searching or to verify if specific sources have been indexed.
Remove specific documentation sources from the system by their URLs. Use this tool to clean up outdated documentation, remove incorrect sources, or manage the documentation collection. The removal is permanent and will affect future search results. Supports removing multiple URLs in a single operation.
Remove a code repository and its indexed content from the system.
Process and index all URLs currently in the documentation queue. Each URL is processed sequentially, with proper error handling and retry logic. Progress updates are provided as processing occurs. Use this after adding new URLs to ensure all documentation is indexed and searchable. Long-running operations will process until the queue is empty or an unrecoverable error occurs.
Search through stored documentation using natural language queries. Use this tool to find relevant information across all stored documentation sources. Returns matching excerpts with context, ranked by relevance. Useful for finding specific information, code examples, or related documentation.
Update the configuration of an existing repository.
Enable or disable file watching for a repository to automatically index changes.
No input validation or error recovery guidance. Error responses are plain text ('Error: <message>'); LLMs have no guidance on what to retry or what next steps are available.
Numeric parameter 'limit' in search_documentation claims range 1-20 in description, but no JSON Schema min/max enforcement visible. LLMs may pass invalid values.