Local hybrid code search (tree-sitter + BM25 + MiniLM) as an MCP server — Claudinio Code's code intelligence for Claude Code, Cursor and GitHub Copilot
Server exposes 7 code-intelligence tools with reasonable naming (verb_noun pattern: semantic_search, code_search, symbol_lookup, file_outline, find_callers, index_status, open_workspace). All tools have descriptions and input schemas visible in main.rs. However, descriptions are terse (10-50 chars), parameter descriptions lack detail on constraints/formats, and output schemas are not documented. No error handling guidance, no tool annotations (readOnlyHint/destructiveHint), and no pagination support despite search tools returning potentially large result sets. Schemas present but minimal, parameters lack examples, ranges, or validation rules.
Search term (identifier, partial name or signature fragment).
Path to the file, absolute or relative to the workspace root.
Name of the called symbol.
Report on workspace indexing status and phase.
Absolute path of the directory to index.
Natural-language description of the code's functionality, in English (the index is English-only — translate first).
Exact symbol name (case-insensitive).
Parameter descriptions lack actionable constraints. 'Maximum results (default 15)' does not specify minimum, maximum bounds, or when to use which limit. LLMs cannot infer valid ranges.
Tool descriptions are under 50 characters for most tools (e.g., 'Exact symbol name (case-insensitive)' for symbol_lookup). Descriptions lack WHEN to use, WHAT it returns, and dependencies on other tools.
No output schemas documented. LLMs cannot plan downstream tool calls or extract required fields (e.g., does semantic_search return file paths, line numbers, confidence scores?). Breaks tool composition.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 53 | <=2025-11-25 | v2 |
Search tools (semantic_search, code_search) lack pagination support. No offset/page parameters or next_cursor. Large codebases could return hundreds of results, exhausting context window.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). open_workspace is marked WRITE but lacks destructiveHint. Agents cannot infer safety/reversibility of operations.