MCP server providing enterprise customer service tools for retrieving customer information and sending internal alerts
This server exhibits foundational tool definitions with clear naming and descriptions, but lacks critical schema completeness, parameter validation details, and error handling guidance. Both tools have adequate descriptions (100+ chars), but input schemas are incomplete: the 'priority' parameter in send_internal_alert lacks an enum constraint despite the description mandating specific values ('HIGH', 'MEDIUM', 'LOW'). No output schemas are documented. Parameter descriptions are minimal, customer_id lacks type clarification and message parameter lacks guidance on format/length. Error responses are generic (e.g., 'Customer not found', 'Invalid priority level') and do not guide recovery. The server follows basic verb_noun naming (get_customer_info_tool, send_internal_alert) but tool composition mixes READ_ONLY and WRITE operations without permission gating or audit trail. No security measures visible for the alert tool, which performs state modification. The codebase shows implementation but not production-grade definition rigor.
Retrieves a customer's personal information (name, email, and address) from the internal CRM system using their unique integer ID. Use this tool when the user asks for contact details.
Sends a high-priority alert to the internal operations team's dashboard. The priority must be 'HIGH', 'MEDIUM', or 'LOW'. The message should summarize the user's request for action.
Missing enum constraint on 'priority' parameter in send_internal_alert. Description mandates 'HIGH', 'MEDIUM', 'LOW' but schema does not enforce this.
No output schemas documented for either tool. LLMs cannot plan downstream calls or extract the correct response fields.
Generic error messages do not guide recovery. 'Customer not found' and 'Invalid priority level provided.' tell the LLM nothing actionable.
Parameter descriptions lack detail on constraints, formats, and ranges. 'customer_id' has no guidance on valid range; 'message' has no length limits.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | D | 54 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 46 | - | v1 |
send_internal_alert is a destructive (WRITE) tool with no permission gating, audit logging, or confirmation pattern. An agent could spam alerts to the ops team.
No idempotency guarantees documented. If an agent retries send_internal_alert on a transient timeout, duplicate alerts may be sent.
Tool names include redundant '_tool' suffix (get_customer_info_tool). MCP convention is to use the action name alone (get_customer_info).