Code intelligence MCP server with tree-sitter and LSP backends. Provides symbol-level code navigation, definitions, references, diagnostics, impact analysis, and repo-understanding exports.
Rhizome provides 20 well-structured tools with complete JSON schemas and descriptions. Naming follows verb_noun convention (replace_symbol_body, insert_after_symbol, get_diagnostics). All tools have descriptions (avg ~120 chars) and input schemas with typed parameters. However, output schemas are not documented, LLMs cannot predict return structure. Error handling is minimal; tools lack recovery guidance. Parameter descriptions are present but generic (e.g., 'Path to the source file' repeated 20 times). No tool annotations (readOnlyHint/destructiveHint) despite clear risk levels. LSP-dependent tools lack prerequisite documentation.
Copy a symbol's full source block to a position before or after another symbol. Safe MVP: text-preserving, tree-sitter-located symbol movement.
Create a new file with content. Creates parent directories automatically. Refuses to overwrite unless overwrite=true.
Delete a range of lines from a file. Line numbers are 1-based and inclusive.
Get available code actions (quick fixes, refactors) for a range (requires LSP). Filters to CodeAction objects only.
Get completion items at a position (requires LSP). Returns at most 50 items.
Get compiler diagnostics (errors, warnings) for a file
Output schemas not documented. LLMs cannot predict return structure for any tool, forcing them to guess what fields are available for downstream chaining.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). Tools like delete_lines and move_symbol are marked DESTRUCTIVE/WRITE in metadata but lack schema annotations to guide LLM caution.
LSP-dependent tools (rename_symbol, get_hover, go_to_implementation, etc.) lack prerequisite documentation. No guidance on when LSP is unavailable or how to handle failures.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 62 | <=2025-11-25 | v2 |
Get hover documentation for a symbol at a position (requires LSP)
Get callers of a function from a call hierarchy item (requires LSP).
Get functions called by a function from a call hierarchy item (requires LSP).
Get parameter information for a function call at a position (requires LSP)
Find implementations of an interface or abstract method (requires LSP)
Jump to the type definition of a symbol (requires LSP)
Insert content after a symbol (function, struct, class, etc.). A blank line is added for separation.
Insert content at a specific line number. Existing content at that line is pushed down. Line number is 1-based.
Insert content before a symbol (function, struct, class, etc.). A blank line is added for separation.
Move a symbol's full source block to a position before or after another symbol in a different file. Same-file moves are rejected in this MVP.
Prepare call hierarchy items at a position. Use the returned items with get_incoming_calls or get_outgoing_calls (requires LSP).
Rename a symbol across the project (requires LSP)
Replace a range of lines in a file with new content. Line numbers are 1-based and inclusive.
Replace the entire body of a symbol (function, struct, class, etc.) with new content. Uses tree-sitter to locate the symbol precisely.
Parameter descriptions are generic and repetitive ('Path to the source file' appears 20+ times). No guidance on format, constraints, or when to use relative vs absolute paths.
No error handling guidance. Tools return errors but do not explain recovery steps (e.g., 'Symbol not found, try get_completions to discover available symbols').