MCP server for searching Hacker News stories using hybrid text and vector search with MongoDB and OpenAI embeddings.
Single tool 'search' has a well-structured schema with all parameters typed and described. Tool name starts with action verb 'search' and clearly describes hybrid text/vector search. Input schema includes proper validation (minimum=1, maximum=100 for limit). Output is structured via SearchResults Pydantic model. However, descriptions are generic without LLM-optimized guidance on WHEN to use the tool or what makes it preferable to alternatives. No error handling patterns visible in tool definition. Tool annotations are present (ToolAnnotations imported and registered) but underutilized. Missing guidance on rate limits, API failures, or retry behavior.
Search Hacker News stories using hybrid text and vector search.
Tool description lacks actionable guidance on when to use search vs direct browsing. LLMs need WHEN clauses to select appropriately. Currently reads as 'does hybrid search' without explaining use cases, prerequisites, or advantages.
No error handling or recovery guidance in tool definition or visible in execute() method. Tool will fail on invalid query, API errors, or MongoDB connection issues with no guidance to LLM on what to do next.
from_time and to_time parameters accept datetime strings but description says 'Example: 2024-01-01T00:00:00Z', LLMs may treat this as the ONLY valid format. Format constraint should be explicit in description or parameter schema format declaration.
Tool description does not document what 'hybrid text and vector search' means to users or how results are ranked. This is domain-specific behavior that should be explained for LLM reasoning.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | C | 61 | <=2025-11-25 | v2 |
| 2026-03-09 | D | 54 | - | v1 |
Output schema (SearchResults) returns all fields from HackerNewsStory without documented field list. LLMs cannot plan downstream operations if output schema is not declared in tool definition.