MCP server providing hybrid semantic + keyword search across indexed API documentation with multi-query expansion and cross-encoder reranking
Strong parameter documentation and helpful server-level instructions. Both tools have clear, actionable descriptions (194 - 250 chars, well above the 10 - 1024 baseline). Input schemas are properly typed with descriptions for all parameters. Error messages provide recovery guidance. However, output schemas are documented only in prose, not in structured form; tool annotations (readOnlyHint, destructiveHint, idempotentHint) are absent; and no explicit composition or chaining documentation exists. Tools follow single-responsibility naming (search_docs, list_collections) and match the 'verb_noun' convention. Enum constraints are present for 'collection' parameter. Parameter defaults are safe (expand_query=True, rerank=True, num_results=5). No security issues detected (no secrets in params). Minor gaps prevent a higher score.
List all available documentation collections with their document counts. Use this to discover what documentation sources are indexed and available for searching. Returns: Markdown list of collections with: - Collection name (use this in search_docs) - Number of indexed document chunks - Brief description of the documentation source
Search indexed documentation using hybrid semantic + keyword search. This combines vector similarity (semantic understanding) with keyword matching to find the most relevant documentation chunks. Args: query: Natural language search query. Examples: - "how to use function calling" - "rate limits and pricing" - "streaming responses" - "error handling best practices" collection: Which documentation to search (default: "gemini"). Options: gemini, fastmcp, claudecode, svelte, nextjs, stripe, betterauth, drizzle, shadcn, resend, reactemail, nextintl num_results: Number of results to return (1-20, default: 5). Use more results for broad topics, fewer for specific questions. expand_query: If True, generate query variations for better recall (default: True). Uses LLM to create alternative phrasings. Slower but may find more relevant results. rerank: If True, use cross-encoder reranking for improved relevance (default: True). Requires sentence-transformers. Slower but more accurate ranking. Returns: Formatted markdown with search results, each containing: - Relevance score (higher = more relevant) - Source URL (original documentation page) - Section title - Full content chunk
Output schemas documented in prose only, not as structured JSON Schema. Tools return markdown strings without declaring field structure, making it harder for agents to extract and chain data.
Tool annotations (readOnlyHint, destructiveHint, idempotentHint) are absent. Both tools are read-only, but this is not explicitly declared in the schema.
No pagination support for search_docs despite potentially large result sets. The tool caps results at 20 and returns a flat markdown list; agents cannot easily extract structured data or request additional pages.
Error messages return human-readable text but lack structured error codes or categories (retryable, user-fixable, fatal). Agents cannot programmatically classify failures.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | C | 60 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 6 | - | v1 |