MCP server providing tools for timezone-aware time retrieval, contact database search, and product catalog search with support for multiple transport mechanisms (STDIO and SSE).
Critical issues: 4 tools are exact duplicates (get_current_time appears 3x, search_contacts appears 2x, search_products appears 2x), indicating poor tool registration or data quality. Unique tools: get_current_time, search_contacts, search_products. Descriptions are present but generic (avg 120 chars, below 194-char baseline). Parameters lack descriptions in several variants (tools 7-8 have bare 'query' and 'category' with no descriptions). Schemas are present but inconsistent across duplicates. No error handling guidance, no output schema documentation, no tool annotations. STDIO transport caps score at 50 maximum; combined with definition gaps, score is 32.
Returns the current date and time in a specified timezone.
Returns the current date and time in a specified timezone.
Returns current date and time in a specified timezone.
Searches contacts by name, company, role, or email.
Searches the contact database by name, company, role, or email.
Searches a contact database by name, company, role, or email. Returns all matching contacts.
Searches the product/service catalog.
Searches the product catalog by name, category, or description. Use this to answer questions about services and pricing.
Duplicate tool definitions: get_current_time registered 3 times, search_contacts 2 times, search_products 2 times. This creates ambiguity for LLM tool selection and indicates poor tool registry management.
Parameter descriptions missing or incomplete: tools 7-8 have 'query' and 'category' parameters with no descriptions (or only trivial ones). LLMs cannot infer parameter meaning from names alone.
No output schema documentation. Tools return JSON but LLMs have no formal schema for expected fields, types, or structure. Agents cannot plan downstream calls or extract data reliably.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 51 | 2026-07-28+ | v2 |
No error handling guidance. Error responses (e.g., 'Unknown timezone', 'Query cannot be empty') are bare messages with no recovery hints. LLMs cannot determine if errors are retryable or what to do next.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). All tools are read-only but this is not declared in the schema, forcing LLMs to infer safety from descriptions.