An inventory demand forecasting system that provides SKU-based sales history analysis and recommended reorder calculations
This server has critical structural deficiencies. The single tool 'forecast_demand' lacks a proper MCP server implementation, there is no evidence of MCP protocol integration (no Server class, no resource/tool registration via the MCP SDK). The tool definition is present in Python source but is not registered as an MCP tool with proper metadata. The input schema is minimal with no type definitions or validation. The description is vague and under-specified. No output schema is documented. Error handling is absent. The implementation appears to be a standalone Python client, not an MCP server.
Forecasts demand for a given SKU based on sales history
No MCP server implementation detected. Source shows only a standalone Python client class, not an MCP Server with tool registration. Cannot verify if this integrates with MCP protocol at all.
Input schema lacks proper type definitions. 'sales_history' is declared as type 'list' with no itemType specification. Parameters must declare item types, minimum/maximum lengths, and detailed constraints.
Output schema is completely undocumented. The tool returns a dict with 'recommended_reorder' key, but the response structure, field types, ranges, and semantics are never declared. LLMs cannot reason about downstream usage without this.
Tool description is generic and under-specified (24 characters). Does not explain WHEN to use this tool, what 'sales_history' format is expected (list of numbers? list of dicts with date+quantity?), what the output range means, or what assumptions the forecast makes. Violates the 50-200 char baseline for LLM-optimized descriptions.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 27 | 2026-07-28+ | v2 |
Parameter descriptions are absent or trivial. 'sales_history' description is just 'Historical sales data for the SKU', it does not specify format (list of floats? list of dicts?), required length, expected time period, or whether data must be sorted. This forces LLMs to guess.
No error handling. The implementation shows a hardcoded return value (recommended_reorder: 45). No validation of inputs, no error responses, no guidance for the LLM on what to do if the SKU is invalid or sales_history is malformed.
Tool implementation is a stub. The forecast_demand method returns a hardcoded value (45) regardless of input. This is not a functional forecasting engine, it's placeholder code. No actual demand prediction logic is present.
No pagination or result limits documented. If sales_history can be arbitrarily large, there is no guidance on maximum list size. No limit is stated for the response.
Parameter 'sku' accepts any string with no validation hints. No description of expected format (e.g., 'alphanumeric, 2-20 characters, often prefix-number format'). LLMs will pass malformed SKUs without constraint checking.
Output field naming and semantics unclear. 'recommended_reorder' returns 45, but 45 what? Units? Days? Quantity? No units or context provided. LLMs cannot interpret or act on ambiguous output.