MCP server for MindGraph — connect Claude Desktop, Claude Code, and any MCP client to your knowledge graph
Five tools with comprehensive schemas and detailed descriptions. All tools have explicit input schemas with typed parameters and enums. Descriptions are domain-specific and lengthy (200-400+ chars), explaining actions, prerequisites, and use cases. Tool annotations present (readOnlyHint, destructiveHint, idempotentHint). However, output schemas are not documented, LLMs cannot predict response structure. Error handling is minimal; no recovery guidance or actionable error messages visible in tool definitions. Parameter descriptions are thorough but some lack format constraints (e.g., 'agent_id' has no validation rules). No batch variants despite tools accepting arrays.
Capture knowledge into the graph. Use 'entity' for people/orgs/places/events/nations/concepts (auto-deduplicates — safe to call even if already exists), 'observation' for factual statements, 'source' for documents/URLs, 'snippet' for quotes from a source, and 'concept' for abstract ideas. Use 'journal' for quick personal notes, 'lesson' for a durable learning, and 'skill' for a reusable procedure authored from completed work. Skill capture always creates a candidate requiring admin review; it never publishes. Skill names must be 1-64 lowercase a-z, digits, or hyphens, with no leading/trailing/consecutive hyphens and no 'anthropic' or 'claude'. Provide at least one provenance field and write instructions, not a transcript dump.
Resolve typed code references through the local codegraph index and join them to persistent MindGraph memory/work. anchor creates exact repository/code anchors; recall reads attached graph context; expand reads callers/callees; affected reads impact for a code ref or Task/Execution. Ambiguous refs return candidates without writing. Refs with a path route to the repository defining that file (nearest declared root in .mindgraph/workspace.json); bare symbols resolve against the current repository only — pass path or repo to target a sibling.
Read the portable MindGraph memory surface. Use action='context' with mode='resume' or 'continuity' for authoritative task-first work state, and mode='topic' with a short keyword query for prior knowledge relevant to the user's request. Use action='status' to inspect integration capabilities and limitations. This tool never writes; durable capture and correction use the existing typed MindGraph write tools.
Output schemas not documented. LLMs cannot predict response structure or plan downstream tool calls. mindgraph_code returns EntityResponse + anchors array; mindgraph_memory returns context objects; mindgraph_capture returns node UIDs, none are formally specified in tool definitions.
Error handling lacks recovery guidance. Code in src/code-tool.ts shows err() returns {error, code, details} but no actionable next steps. E.g., 'missing_code_refs' error does not suggest 'pass code_refs array' or 'use mindgraph_memory to find prior anchors'.
Parameter 'agent_id' appears in all tools but lacks validation rules, format constraints, or examples. Description is missing entirely in most tools. LLMs cannot infer whether to pass 'claude', 'user-123', or a UUID.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 62 | 2025-06-18+ | v2 |
Record reasoning, claims, and open questions. Use 'claim' when the user states something as true/false with reasoning — creates interconnected Claim + Evidence + Warrant nodes. Set confidence by evidence: 0.9+ for well-sourced, 0.5-0.8 for plausible, <0.5 for speculation. Use 'open_question' for questions worth tracking, 'hypothesis' for testable predictions, 'theory' for explanatory frameworks, 'anomaly' for things that don't fit, 'assumption' for unstated beliefs. Prefer 'claim' when evidence exists, other actions when it doesn't yet.
Transactional one-way project memory-file sync. scan/status are reads; begin/record/finalize/abandon are writes. Discovery and hashing are automatic; semantic assertions are deliberately supplied through record. This never writes graph state back to files.
mindgraph_capture 'name' parameter (skill identifier) has regex pattern but description does not explain the constraint in plain language. LLMs cannot read JSON Schema patterns, they rely on description text. Current description only states 'lowercase a-z, digits, hyphens' but omits 'no leading/trailing/consecutive hyphens' and 'no anthropic/claude prefix'.
No batch operation guidance. mindgraph_code accepts code_refs array (maxItems 50) but tool description does not explain whether to pass 50 refs in one call or split into multiple calls. mindgraph_capture does not offer batch entity/observation capture.