A multi-language MCP server implementation providing AI-powered search with hybrid BM25 and vector search capabilities, ANEL protocol compliance, and code analysis tools
ANEL exhibits significant definition quality gaps across all dimensions. Tool descriptions are present but generic (10-50 chars, well below the 50-200 char LLM-optimized baseline). Input schemas are partially visible but lack consistency: search/vsearch/query have proper JSON Schema with typed properties and descriptions, but anel_analyze, anel_fix, anel_analyze_dir, anel_verify, and anel_explain show only partial schema visibility in source. The 'status' tool has NO visible input schema. Parameter descriptions are sparse or missing entirely (e.g., anel_fix's 'rules' param lacks detail on what rules are available). No output schemas are documented. Error handling is not evident in the provided code. Tool naming follows verb_noun convention (search, get, analyze, fix) but lacks clarity on distinctions, three search variants (search, vsearch, query) risk LLM confusion without clear differentiation in descriptions. The anel_* tools appear to be code analysis/compliance helpers, but their relationship to the core search functionality is undocumented. Composition is weak: no evidence that tool outputs chain properly (e.g., does search return IDs that get accepts?). Security: anel_fix accepts a 'dryRun' parameter and can write files, but no permission gates or audit logging are visible in the snippet.
Analyze code for ANEL protocol compliance
Batch analyze all code files in a directory for ANEL compliance
Explain ANEL protocol requirements
Automatically fix code to comply with ANEL protocol
Verify ANEL protocol implementation at runtime
Get document content
Hybrid search with reranking
Three search tools (search, vsearch, query) lack clear differentiation. Descriptions are too short (10-50 chars) to guide LLM selection. 'BM25 full-text search' vs 'Vector semantic search' vs 'Hybrid search with reranking' are terse; LLMs cannot infer when to use each without longer, context-rich descriptions (target 50-200 chars).
status tool has NO visible input schema in source code. Tool description is also missing (only 'Show index status' visible, <20 chars). This tool is non-functional for LLM planning.
anel_* tools (analyze, fix, analyze_dir, verify, explain) have incomplete schema visibility. anel_fix accepts 'rules' array but no description of what rules are available or how to specify them. anel_verify's 'command' parameter lacks format/constraint documentation. Output schemas are not documented for any tool.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 40 | <=2025-11-25 | v2 |
BM25 full-text search
Show index status
Vector semantic search
anel_fix is a destructive tool (WRITE risk, modifies files) but has no confirmation/dry-run guidance in description. The 'dryRun' parameter exists but is not highlighted as a safety mechanism. No error handling or recovery guidance visible.
No output schemas documented for any tool. LLMs cannot plan downstream calls or extract required fields (e.g., does search return document IDs that get() accepts?). Tool chaining is broken by missing response documentation.