MCP Server for Okapi BM25 sparse lexical search with inverted indexing
Single tool 'search_bm25' has a basic schema with two parameters (query, top_k) but lacks critical quality markers. The tool description is minimal (10 chars: 'Search document index using Okapi BM25.') and does not explain WHEN to use it, WHAT it returns, or any prerequisites. Parameter 'query' has a description but 'top_k' lacks one entirely. No output schema is documented, the response structure is inferred from code (returns list of {id, score} objects) but not formally declared. No error handling guidance, no pagination support despite returning lists, and no indication of result limits. The implementation is functional but falls well short of production-grade tool definition standards.
Search document index using Okapi BM25.
Parameter 'top_k' lacks description. LLMs cannot infer what this parameter controls or its valid range.
Tool description is only 10 characters and does not explain WHEN to use this tool, WHAT it returns, or any prerequisites. Baseline for A+ tools is 50-200 chars with clear context.
Output schema is not documented. LLMs cannot plan downstream operations or extract required fields. Response structure (list of {id, score} objects) is inferred from code, not formally declared.
No pagination support or result limit enforcement. Tool returns all matching documents up to top_k, but no guidance on maximum result size or how to handle large result sets.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 41 | 2026-07-28+ | v2 |
No error handling guidance. If search fails or query is invalid, LLM receives no actionable recovery path. Error responses should guide the agent on what to do next.