Knowledge graph + MCP tool server for LLM agents — 3rd-gen retrieval, graph-aware multi-turn exploration, structured data tools, DB→ontology one-liner.
Synaptic Memory has solid tool naming and comprehensive parameter schemas, but descriptions lack LLM-optimization depth and output schemas are not explicitly documented. All 13 tools are properly registered with names, descriptions, and input parameter schemas visible in source. However, most descriptions are under 100 characters and lack the actionable guidance (WHEN to use, WHAT to expect, dependencies) that production-grade tools require. Parameter descriptions are present but minimal (10-50 chars typical). No tool explicitly documents its return schema or pagination behavior, forcing LLMs to infer structure. Error handling and recovery guidance are absent from all tool definitions.
Group nodes by a property and compute structural metrics (count, min, max, avg).
Decompose a multi-topic query and search each in parallel. Splits queries containing 'and' / 'vs' style connectors into sub-queries, searches each with category filtering, and merges results. Solves cross-document queries in 1 turn instead of 4-6.
Structural count without fetching nodes.
One-turn deep search: search → expand → read documents. Chains three v1 primitives internally: search with the query (+ optional category filter), expand the top hit to discover neighbours, get_document on the top-k results with query-aware chunking. Returns a single consolidated result: evidence list + expanded neighbours + document excerpts — all in one turn instead of 3-5.
1-hop graph expansion around a specific node.
Filter nodes by a typed property value. Queries properties_json. Supports numeric comparison (>=, <=, >, <, ==), text containment, date ranges, and prefix matching.
Tool descriptions lack LLM-optimization. Most are 40-80 characters, below the 50-200 char production baseline. None explain WHEN to use vs similar tools or what the LLM should expect in the response structure.
Output schemas not documented. No tool explicitly describes the shape of its return value. LLMs cannot plan downstream tool calls or field extraction without knowing what fields (node_id, title, score, etc.) to expect.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 61 | 2026-07-28+ | v2 |
Walk one edge type from a starting node.
Fetch a full document by id.
Join structured tables on foreign keys (e.g., products.product_code → reviews.product_code).
Search the knowledge graph for lessons, decisions, patterns, and past outcomes. Use this to find relevant company knowledge before starting a task. Supports Korean and English queries with synonym expansion. Routes through EvidenceSearch (the same engine that backs agent_search / agent_deep_search) so semantic queries that share no surface words with the source documents still surface relevant hits.
Enumerate category nodes.
Literal substring match for IDs/codes.
FTS-seeded hybrid search, returns evidence.
Parameter descriptions are minimal and lack constraint clarity. E.g., 'limit' params lack min/max bounds, 'op' in filter_nodes_tool lists operators but doesn't explain when each applies (numeric vs text filtering logic).
No error handling or recovery guidance in any tool definition. LLMs have no instruction on what to do if a search returns empty, a node_id is invalid, or a join fails. No 'try X tool next' hints.
Pagination not explicitly specified. filter_nodes_tool accepts cursor but no other tool mentions how to handle large result sets. No documentation of total_count, next_cursor, or result limits.
Dependency relationships between tools not documented. E.g., get_document_tool accepts optional query for 'query-aware chunking', no guidance on whether search_tool + get_document_tool is the canonical pattern or if deep_search_tool should always be used instead.
Semantic overlap not addressed: search_tool, deep_search_tool, compare_search_tool, and knowledge_search all perform search but with different strategies. Descriptions don't guide LLMs on which to use when.