This is a Rust CLI tool, not an MCP server. The 4 tools (get_node, neighbors, resolve, resolve_strict) are graph traversal functions with READ_ONLY semantics. Tool definitions are inferred from source code comments and function signatures, not from explicit MCP tool registration. Input schemas are partially visible but lack proper JSON Schema structure with type constraints. Descriptions exist but are terse (10-50 chars) and lack LLM-optimized guidance on when/why to use each tool. No output schemas documented. No error handling patterns visible.
base graph get-node <node> — full detail for one node plus its direct edges.
base graph neighbors <node> [-d N] — the n-hop neighborhood as EDGE lines.
Resolve a user string to a node id. Tries, in order: the input as a record slug under any kind, exact label (case-insensitive), then unique substring.
The prompt-time resolver: slug, then exact label, and nothing else. Returns the id and how many records of the chosen kind answered to the name.
Not an MCP server, this is a Rust CLI tool. No MCP protocol implementation visible. Tools are CLI subcommands, not MCP-registered tools with proper schemas.
Tool definitions are inferred from source code, not explicitly registered. No MCP tool registration (e.g., via tools/list response) visible.
Input schemas lack proper JSON Schema structure. Parameters like 'ns' (NamespaceConfig) and 'adj' (Adjacency) are complex types without field-level schema definitions or constraints.
Descriptions are terse (10-50 chars) and lack LLM-optimized guidance. 'Resolve a user string to a node id' does not explain WHEN to use resolve vs resolve_strict, or what happens on ambiguity.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 33 | 2026-07-28+ | v2 |
No output schemas documented. Callers cannot predict return types (e.g., does get_node return a Node object, a string, or structured JSON?). No pagination or result limits specified.