MCP Server for LightRAG with smart document upsert capabilities
Server has 13 tools with consistent naming (verb_noun pattern) and descriptions present for all. However, parameter descriptions are generic and lack actionable constraints. Output schemas are not documented. Error handling is minimal, the format_output decorator catches exceptions but returns only success/failure without recovery guidance. No tool annotations (readOnlyHint/destructiveHint) despite clear risk stratification. Descriptions average ~120 chars (within baseline 194), but lack WHEN-to-use context and dependency hints. Parameters like 'search_mode' enumerate valid values in description text rather than as formal enums, forcing LLMs to parse prose. No pagination guidance for list_all_docs despite warning it 'can be slow'. Missing output schema documentation for all tools.
Check the current status of the document processing pipeline (idle or busy).
Manually insert specific entities into the knowledge graph.
Check if a document exists by its filename or path. Returns a dictionary with detailed status: 'id', 'status' (processed/failed/pending), 'created_at', 'updated_at', 'content_length', 'chunks_count', and 'error_msg' if any.
Retrieve schema information about the knowledge graph, including available node labels and relationship types.
Get a paginated list of the most recently updated documents. Useful for monitoring ingestion progress.
Recursively index all files in a directory that match specific patterns.
No output schemas documented. Tools return OperationResult wrapper with success/failure, but LLMs cannot see what fields to expect in the result object. Breaks downstream tool chaining and forces LLMs to guess field names.
Parameter constraints (e.g., search_mode values, limit ranges) embedded in description text rather than formal enums or JSON Schema constraints. LLMs parse prose inconsistently and may hallucinate invalid values.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint) despite clear risk stratification (READ_ONLY, WRITE, REVERSIBLE). Agents cannot distinguish safe from destructive operations without reading descriptions.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 61 | <=2025-11-25 | v2 |
Index a specific local file from the file system. The file must be accessible by the running server.
Index raw text content directly into the knowledge graph. Useful for small snippets or dynamic data.
List ALL documents currently in the system. WARNING: Can be slow if there are many documents. Use get_latest_documents for better performance.
Search the knowledge graph for information using various strategies. Ideal for answering questions based on indexed data.
Upload a file to the LightRAG server's input directory and trigger indexing. Handles file transfer if the server is remote.
Intelligently upload a document: if it doesn't exist, creates it; if it exists and is identical (same content length), skips upload; if it exists but was modified, deletes the old version and re-uploads.
Check if the LightRAG server is reachable and healthy.
Error handling is generic. format_output decorator catches all exceptions and returns OperationResult.failure(str(e)), but provides no recovery guidance, error classification, or actionable next steps for LLMs.
list_all_docs warns 'Can be slow if there are many documents' but provides no pagination parameters (limit, offset, cursor). Large result sets will blow context windows and degrade LLM reasoning.