Generate product bundle recommendations using co-occurrence analysis and margin optimization
This server presents a single tool 'recommend' with a well-structured input schema but critical gaps in MCP transport implementation and tool quality patterns. The tool has a clear name and adequate description, but the server lacks any MCP protocol transport layer, it is a standalone Python SDK with no evidence of HTTP, SSE, or STDIO MCP transport. The tool itself is defined in client.py as a method, not as an MCP tool registration. Without proper MCP protocol binding, this cannot function as an MCP server. The input schema is present and typed, but the output schema is not documented in the tool definition. Error handling and validation are minimal. This is fundamentally a Python library masquerading as an MCP server, it has no transport, no protocol bindings, and no MCP-compliant tool registration.
Generate bundle recommendations. Uses purchase co-occurrence frequency and margin analysis to identify high-value, high-affinity product combinations.
No MCP transport detected, server is a standalone Python SDK with no HTTP, SSE, or STDIO bindings. Cannot function as an MCP server.
Tool is defined as a Python method in a class, not registered via MCP protocol. No explicit MCP tool definition/registration visible in source.
Output schema not documented. The tool returns a dict with 'bundles', 'top_bundle', 'strategy', 'total_candidates_evaluated' but LLM has no formal specification of return type structure.
No error handling or recovery guidance. Tool has no try-catch, validation messages, or actionable error responses. LLM cannot know how to handle failures.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 30 | 2026-07-28+ | v2 |
Input validation is loose. 'bundle_size' is clamped but no error returned if invalid. 'products' and 'order_history' have no format validation or helpful rejection messages.
Output structure is not paginated. If co-occurrence analysis produces thousands of candidate bundles, all are ranked and returned without pagination. Large results risk context overflow.