MCP server for FlowRAG - expose your knowledge base to AI assistants via Model Context Protocol
FlowRAG MCP exposes 7 tools with a consistent verb_noun naming pattern (flowrag_*). All tools have descriptions and visible input schemas. However, several tools lack detailed parameter constraints, error handling guidance is missing, output schemas are not documented, and there are no tool annotations (readOnlyHint/destructiveHint). The server targets a knowledge graph RAG domain and implements readable/write operations with appropriate risk marking, but falls short of production-grade quality in parameter validation, output documentation, and error recovery patterns.
List or filter entities in the knowledge graph
Index documents into the knowledge base
Find the shortest path between two entities
Get relations for a specific entity
Search the knowledge base with dual retrieval (vector + graph)
Semantic search for entities in the knowledge graph by description similarity
Trace data flow upstream or downstream from an entity
Output schemas not documented. Tools return structured data but LLMs cannot infer response field names, types, or nesting. Forces agents to guess at downstream usage.
Parameter descriptions are minimal (avg 20-30 chars). Lack context on valid ranges, formats, mutual exclusivity, and error conditions. E.g., 'Search mode' doesn't explain when to use hybrid vs naive; 'Max results' lacks min/max bounds.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). While tools are marked READ_ONLY or WRITE in metadata, MCP tool annotations are absent, blocking agent optimization.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | C | 60 | <=2025-11-25 | v2 |
| 2026-03-09 | F | 0 | - | v1 |
No error handling or recovery guidance. Tools lack descriptions of failure modes (e.g., 'entity not found', 'invalid mode'), actionable error messages, or next steps for agents.
Vague tool names and descriptions conflate operations. 'flowrag_entities' (list or filter?) and 'flowrag_search_entities' (semantic search?) lack clarity. LLMs may select the wrong tool.
No pagination guidance. Tools accepting 'limit' lack documentation of defaults, bounds, or how to iterate (offset? cursor?). Large result sets risk context window exhaustion.
String parameters (entity, query, mode) accept unbounded freeform input. No validation constraints documented. LLMs may pass values the backend rejects.