N3MO is a structural code intelligence layer that provides MCP tools for code analysis, impact analysis, and symbol search. It uses tree-sitter AST parsing and PostgreSQL to enable deterministic blast radius analysis and code graph queries.
N3MO provides 5 tools with complete input schemas and descriptions. Naming follows verb_noun convention (n3mo_index, n3mo_search_symbol, etc.). However, descriptions are minimal (34-72 chars, below the 50-200 char LLM-optimized baseline), lack WHEN/WHY context, and omit output schema documentation. Parameters have types and descriptions, but lack constraints (enums, ranges, patterns). No error handling guidance, no recovery paths, and no documentation of side effects or prerequisites. Tool composition is sound (each does one thing), but descriptions don't guide LLM selection or explain dependencies between tools.
Query the impact analysis / blast radius of a code symbol (class or function).
Find all external symbols that a given symbol calls (the forward-dependency graph).
List all symbols (classes/functions) defined inside a specific file.
Trigger N3MO to crawl and index the active workspace folder.
Search the indexed codebase for the exact location and definition of a symbol (class or function).
Descriptions are too brief (34-72 chars) and lack LLM-optimized context. Missing WHEN to use, WHAT it returns, and dependencies on other tools. Baseline for A+ tools is 50-200 chars with explicit guidance.
No output schema documentation. LLMs cannot plan downstream calls or extract required fields without knowing what each tool returns. All 5 tools lack return type specifications.
No error handling guidance. Tools lack recovery hints (e.g., 'If symbol not found, try search_symbol with partial name'). No categorization of errors as retryable, user-fixable, or fatal.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 58 | <=2025-11-25 | v2 |
Parameters lack constraints. 'depth' has a default but no min/max bounds. 'project_path' and 'symbol_name' accept free-form strings with no validation hints, format specs, or length limits.
n3mo_index is a write operation but lacks confirmation/dry-run pattern. Indexing a workspace is irreversible and could trigger long-running processes. No guidance on when to call or what side effects occur.