MCP server exposing a knowledge graph built from ingested research papers as queryable tools. Supports entity/claim extraction, contradiction detection, and semantic search via ChromaDB.
Server defines 5 tools with complete schemas and descriptions. All tools are READ_ONLY and follow verb_noun naming (query_, get_, list_). Descriptions are present (avg 140 chars) and explain what each tool does. However, parameter descriptions are minimal or absent for several tools (e.g., get_contradictions and get_graph_stats have empty properties with no descriptions). Output schemas are not documented, callers cannot predict response structure. Error handling is basic (returns text responses without recovery guidance). No tool annotations (readOnlyHint, idempotentHint) despite all being read-only. Missing pagination support on list_entities despite potentially returning large result sets.
Returns all detected contradictions and refinements in the knowledge graph with source documents cited.
Returns all claims about a specific entity with source attribution and confidence levels.
Returns summary statistics of the knowledge graph: entity count, claim count, relationship count, contradiction count.
Returns all entity names in the knowledge graph.
Query the belief graph built from ingested research papers. Returns answer with source citations. Says 'I don't know' when the graph has no relevant coverage.
No output schemas documented. Callers cannot predict response structure (fields, types, nesting). LLMs must infer output format from unstructured text responses.
Tools with empty inputSchema properties (get_contradictions, get_graph_stats) lack parameter descriptions. Even though they accept no parameters, the schema should be explicit and documented.
No tool annotations (readOnlyHint, idempotentHint, destructiveHint). All 5 tools are read-only and idempotent, annotating them enables agent optimization and safety checks.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 52 | 2026-07-28+ | v2 |
list_entities returns all entities without pagination. If the knowledge graph contains thousands of entities, response will be huge and blow context windows. No limit or offset parameters.
Error handling returns plain text without recovery guidance. E.g., 'No claims found for entity' suggests alternatives but does not guide the LLM on next steps (e.g., 'Try list_entities to discover valid entity names').