EnreachVoice API MCP server for querying contact center queues and directory information
Single tool with verbose description but NO input schema visible. Tool name 'get_queues' is appropriately verb-prefixed and clear. Description is 600+ chars (exceeds 1024 baseline max) and reads like API documentation rather than LLM-optimized guidance. No parameter descriptions, no output schema documentation, no error handling guidance. Tool is read-only but lacks idempotentHint annotation. Code shows dataclass Queue with fields but no formal JSON Schema declaration in tool registration.
Get all queues from the EnreachVoice system. Use this to retrieve information of all contact center queues in the Enreach Voice system. This function uses the EnreachVoice API to get the queues and their status. It returns a list of Queue objects, which contain the following information: - id: The ID of the queue - name: The name of the queue - type: The type of the queue (e.g. ServiceQueue, IvrQueue, etc.) - description: The description of the queue - number: The first number of the queue - openstatus: The open status of the queue (e.g. Open, Closed, etc.) - maxwaittime: The maximum wait time for the queue - queuelength: The length of the queue - ongoingcalls: The number of ongoing calls in the queue - agentsonwrapup: The number of agents on wrap up in the queue - freeagents: The number of free agents in the queue - servingagents: The number of serving agents in the queue
No input schema visible in tool registration. FastMCP @mcp.tool decorator shows empty Input: {} but no formal JSON Schema with types/descriptions.
Description is 600+ characters (exceeds 1024 max baseline) and reads as API documentation. Lacks LLM-optimized structure: no WHAT/WHEN/WHY, no dependency hints, no recovery guidance on failure.
Output schema not documented. Code returns List[Queue] dataclass but LLM has no visibility into Queue field types, optionality, or ranges (e.g., is queuelength an int? can it be null?).
No error handling guidance. Code catches Exception and logs but returns None silently. LLM cannot distinguish between 'no queues' and 'API call failed', no recovery path offered.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 42 | <=2025-11-25 | v2 |
Tool lacks idempotentHint annotation. Read-only operation should declare @idempotent to signal safe retry behavior to agents.