MCP server that provides hybrid search (KNN + BM25) over a local ARDF (Agents, Resources, and Data Format) index, with resource descriptors and prompts
Single tool 'search_resources' has well-structured input schema with comprehensive parameters and clear Zod type definitions. Description is action-oriented and specific to domain (hybrid search KNN+BM25). Output schema is documented with proper typing. However, parameter descriptions in the schema are terse (often just 1-2 phrases), below the baseline average of 72 chars. The tool follows verb_noun naming and includes proper enums for allowedTypes. Risk classification is present (READ_ONLY). Overall quality is good but descriptions could be more LLM-optimized per pattern:tool-description baseline (10-1024 chars, ideally 50-200 for param annotations).
Búsqueda híbrida (KNN + BM25) sobre el índice local ARDF
Parameter descriptions are minimal and lack actionable guidance. E.g., 'Optional filter by resource types' for allowedTypes is clear enough, but 'Optional domain filter', 'Optional tag filter', etc. are vague and do not explain when/why an agent would use them or what values are typical.
Numeric parameters k (number of results) and offset lack explicit min/max constraints in descriptions. Schema shows z.number().int().positive() and z.number().int().min(0), but LLMs cannot reliably parse JSON Schema constraints, they depend on description text. Should state 'k: positive integer (e.g., 10-100 results)' and 'offset: minimum 0'.
Hybrid search weight parameters (wSim, wBm25) lack guidance on their relationship. Schema shows both min(0) max(1), but descriptions do not explain: do they sum to 1? What if user omits both? What are sensible defaults? This undocumented dependency could cause silent misuse per review:param-relationships.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | C | 62 | 2025-06-18+ | v2 |
| 2026-03-09 | D | 54 | - | v1 |
Output response includes both human-readable summary text and structuredContent. However, the 'counts' object (knn, fts sub-counts) may be opaque to the agent, descriptions do not explain when the agent would care about the split or what it signifies.