Groups raw feedback ratings to evaluate customer health and product CSAT metrics
This MCP server has critical quality gaps across multiple dimensions. The single tool 'calculate_nps' has a reasonable name and adequate description, but the implementation lacks any MCP protocol structure. The code shows a plain Python class with no evidence of MCP server registration, tool schema formalization, or protocol implementation. The input parameter is documented in an informal way (only visible in the example, not in a formal schema definition visible to MCP clients). No output schema documentation exists. There is no error handling guidance, no input validation framework, and no evidence that this is even a functioning MCP server rather than a standalone Python utility. The rubric requires that tool definitions be explicitly visible in the source with proper MCP registration, here, only a plain Python class is present.
Calculate Net Promoter Score (NPS) from a list of satisfaction scores
No MCP server implementation visible. The code is a plain Python class, not an MCP server. No evidence of tool registration, protocol handlers, or MCP schema definitions.
Input schema not formally defined or registered. The parameter 'scores' is documented only in example usage, not in a machine-readable JSON Schema that an MCP client can parse.
Output schema completely undocumented. The calculate_nps() method returns a dict with fields (nps_score, percentage_promoters, percentage_detractors, percentage_passives, total_responses), but no formal schema is published for MCP clients.
No parameter validation or error handling. Edge cases like empty list (total=0) return a default response, but invalid input types (non-integers, negative scores, scores >10) are not validated. No error messages guide recovery.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 33 | 2026-07-28+ | v2 |
Parameter descriptions incomplete. The 'scores' parameter is described as 'List of NPS scores (0-10 scale)', but does not specify: required array length, whether empty arrays are allowed, what happens with out-of-range values.
No tool composition. The server exposes only one isolated tool with no supporting discovery or utility tools. For a production survey system, this is incomplete.
No idempotency declaration. The calculate_nps tool is read-only (no side effects), but this is not formally annotated in the schema.