Intelligent code indexing MCP server. Tree-sitter AST extraction, hybrid search (FTS5 + vector), call graphs, 10 languages, incremental indexing. Save 99% of tokens.
TokenNuke has well-structured tool definitions with clear naming (verb_noun pattern) and comprehensive parameter schemas. All 12 tools have descriptions and input schemas with types. However, descriptions are verbose (200-400 chars, above the 50-200 baseline for LLM optimization) and lack actionable guidance on when to use each tool vs. alternatives. Parameter descriptions are present but generic; many lack constraints (e.g., limit ranges, format specs). Output schemas are not documented, LLMs cannot predict response structure. Error handling is absent from tool definitions. The server demonstrates solid foundational quality but lacks the polish and LLM-optimization of A-grade tools.
Clear the index for a repository (delete the database). Warning: This is irreversible. All indexed data will be deleted.
Get the call graph for a symbol — what it calls and what calls it. Traverses the call graph up to a specified depth. Useful for understanding dependencies and impact analysis.
Get the source code content of a file, optionally with line range. Useful for viewing code context around a symbol.
Get all symbols defined in a specific file. Returns symbols in source order with full metadata.
Get the list of supported programming languages. Returns language names, file extensions, and AST node type mappings.
Get statistics about an indexed repository. Returns counts of files, symbols, languages, and indexing status.
Get detailed information about a specific symbol by its qualified name. Returns full metadata: signature, docstring, decorators, file location, and call graph edges.
Output schemas not documented. LLMs cannot predict response structure for any tool. Downstream tool chaining requires guessing field names.
Descriptions are verbose (200-400 chars) and lack LLM-optimization. Missing 'when to use' guidance and differentiation from similar tools (e.g., search_symbols vs semantic_search).
Parameter constraints missing. 'limit' parameters lack min/max bounds (e.g., list_symbols limit=50 default, but no stated max). 'depth' in get_call_graph states max=5 but no min. No regex patterns or format specs for string params.
Inferred effective spec: 2026-07-28+.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 50 | 2026-07-28+ | v2 |
Index a local directory. Extracts symbols from source files using tree-sitter AST parsing. Supports 10 languages: Python, JavaScript, TypeScript, Go, Rust, Java, C, C++, C#, Ruby. Uses incremental indexing — only re-parses files that changed (SHA-256 comparison). Generates vector embeddings for semantic search.
Index a GitHub or GitLab repository by downloading its tarball. No git binary needed. Downloads the repo archive, extracts, and indexes. Subsequent calls use a cache — only re-downloads if new commits exist.
List all symbols in a repository, optionally filtered by kind or language. Useful for browsing the codebase structure. Returns paginated results.
Full-text search for symbols by name, signature, or docstring. Uses FTS5 for fast keyword matching. Returns matching symbols with file location and metadata.
Semantic search for symbols using vector embeddings. Embeds the query and finds similar symbols using cosine distance in the vector space. Great for finding related code even if keywords don't match exactly.
clear_index is destructive but lacks confirmation/dry-run pattern. Description warns 'irreversible' but tool definition offers no safety mechanism.
No error handling guidance in tool definitions. Tools return dicts with 'error' keys (e.g., index_folder returns {'error': '...'}) but LLMs are not told how to recover or what to try next.