Production-grade query auto-suggest and semantic expansion client that performs prefix dictionary filtering and maps synonyms to maximize matching indexes.
This MCP server has a single tool (get_suggestions) with moderate definition quality issues. The tool has a valid name and description, but critical gaps exist in schema completeness, parameter documentation, output schema specification, and error handling. The implementation is a mock/demo service without proper MCP integration, making this unsuitable for production use.
Calculates suggestions matching the search prefix and returns expanded query terms.
Output schema not documented. The tool returns a complex nested object with 'suggestions', 'query_expansion', 'original_query', and 'expanded_terms' fields, but no schema definition is provided. LLMs cannot plan downstream operations or extract structured data without knowing the response shape.
Missing output examples and constraints. The tool description states it 'returns expanded query terms' but does not specify: What is the maximum number of suggestions? What format are they in? What is the structure of query_expansion? Will it always return both suggestions and query_expansion, or are they optional?
Parameter 'prefix' description is minimal (15 chars: 'The search prefix to autocomplete'). No mention of: minimum/maximum length, character restrictions, case sensitivity, or expected format (single word vs phrase).
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 50 | 2026-07-28+ | v2 |
No error handling or recovery guidance. The mock implementation returns hardcoded data without validating inputs, handling edge cases, or returning actionable error messages. What happens if prefix is empty? If limit is 0 or negative? If prefix contains special characters? No error responses guide the LLM on recovery.
No MCP protocol integration visible. The source code shows a standalone Python class (SearchSuggestClient) with no evidence of MCP server registration, transport (STDIO/HTTP/SSE), or protocol message handling. The tool exists as a Python method, not as a registered MCP tool with schema metadata.
Pagination not supported. The tool accepts a 'limit' parameter but returns a flat list with no cursor, offset, or total_count. If suggestions exceed the limit, the LLM has no way to fetch additional results.
Mock data hardcoded in production code. The search_index array is hardcoded in the method, making this unsuitable for real deployments. No indication of how to connect to an actual search engine or database. This is a reference implementation, not production-grade.
No rate limiting or timeout handling. The tool does not declare timeout expectations, rate limits, or guidance on how many suggestions are reasonable per request. An agent in a loop could generate unbounded calls.