Model Context Protocol server for Review Guru — query Sri Lankan businesses, doctors, and reviews from any MCP-aware AI agent.
Two tools with clear verb-noun naming (list_businesses, get_business) and reasonable descriptions (100-150 chars). Both have documented input schemas with types and descriptions. However, output schemas are not explicitly documented in the code, the tool docstrings describe what is returned in prose but do not provide a formal schema structure. Parameter descriptions are present but lack detail on constraints (e.g., 'sort' accepts three specific values but they are not enumerated; 'limit' range is stated in prose but not as min/max schema constraints). No error handling guidance, no recovery hints, and no tool annotations (readOnlyHint, idempotentHint). The server is read-only and stateless, which is good, but the definitions lack the rigor expected of production tools.
Get full details of a single business by slug, including location, contact info, categories, and the top 10 recent reviews.
List Sri Lankan businesses with optional filters.
Output schemas not formally documented. Tool docstrings describe return values in prose ('list of dicts', 'full details including location, contact info, categories, and top 10 recent reviews') but do not provide a structured JSON Schema or field-level type definitions. LLMs cannot reliably extract or chain results without explicit output schemas.
Parameter constraints not formalized as enums or schema constraints. 'sort' parameter accepts 'top', 'most-reviewed', or 'newest' but is defined as a free-form string with description only. LLMs may hallucinate invalid values. 'limit' range (1-100) is stated in prose but not as minItems/maxItems in schema.
No error handling guidance. Tools do not document what happens on invalid city/category slugs, network failures, or rate limits. No recovery hints (e.g., 'Call list_cities() to discover valid slugs'). Agents cannot self-correct on failures.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 57 | 2026-07-28+ | v2 |
No tool annotations. Tools lack readOnlyHint, idempotentHint, or destructiveHint. Although both tools are read-only and safe to retry, this is not formally declared in the schema, forcing LLMs to infer safety from descriptions.
Pagination not explicitly supported. list_businesses accepts 'limit' but no 'offset' or 'cursor' parameter. If results exceed limit, agents cannot fetch the next page. No 'total_count' or 'has_more' field documented in output.