Design and simulate customer referral programs with viral coefficient and ROI projection.
This server exposes a single tool 'design' for referral program simulation. The tool has a well-structured implementation with solid business logic (K-factor calculation, ROI projection, growth simulation), but critical gaps in MCP tool interface quality reduce the score significantly. The tool name lacks an action verb (should be 'design_referral_program'), the description is adequate but generic, and while the schema is fully present with all parameter types and descriptions, several design patterns are not followed. The input schema uses dict types for reward objects without constraining their structure via JSON Schema, and the tool is missing error handling guidance, output schema documentation, and proper tool composition. No MCP protocol infrastructure is evident (unknown transport), and the server is a standalone Python SDK without MCP server bindings visible in the provided code.
Design and simulate a referral program. Calculates viral coefficient (K-factor), ROI, and month-by-month growth.
Tool name 'design' lacks action verb. Should be 'design_referral_program' to match LLM tool-selection patterns. Generic names cause LLMs to misunderstand intent.
Nested dict parameters (referrer_reward, referee_reward) lack JSON Schema constraints. Type is declared as 'dict' but structure is undocumented. Should use object schema with required properties {type: enum('cash'|'credit'|'discount'), value: number}.
Output schema is not documented. Callers cannot predict the structure of 'viral_coefficient', 'program_roi', 'growth_simulation', and 'recommendations' without reading source code. LLMs cannot plan downstream operations.
No error handling or recovery guidance. Tool does not document what happens if CAC is 0, if rewards are negative, if simulation_months > 1000, or if inputs are nonsensical (negative order value). No guidance on correcting invalid input.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 44 | 2026-07-28+ | v2 |
Tool description (101 chars) is generic and lacks context. Does not explain when to use this tool vs alternatives, prerequisites, or business impact. Should include: 'Use this to prototype and evaluate referral program economics. Outputs viral coefficient (K-factor), 12-month ROI projection, month-by-month growth forecast, and optimization recommendations.'
Numeric parameters (avg_order_value, customer_acquisition_cost, share_rate, conversion_rate, simulation_months) lack min/max bounds. LLMs could pass avg_order_value=999999 or simulation_months=10000, causing calculation errors or performance issues.
No MCP server transport or protocol detected. Code is a standalone Python SDK (ReferralProgramClient class), not an MCP server. For integration, this must be wrapped in an MCP server implementation (Python SDK, HTTP transport, or stdio). Cannot be evaluated for protocol readiness without visible MCP bindings.