MCP Server exposing Zentria Flow supply chain and e-commerce tools to AI agents (Claude, GPT-4, etc.). Provides order management, product catalog, inventory tracking, supply chain analysis, landed cost calculation, and webhook management.
Server has 11 tools with complete input schemas and descriptions. Naming follows verb_noun convention (get_, list_, calculate_, lookup_, analyze_, register_). Descriptions are present and contextual (avg ~120 chars), meeting baseline minimums. However, output schemas are entirely undocumented, no response structure is defined anywhere in the code. Parameters lack granular constraints (enums, ranges, patterns). Error handling is minimal: _err() returns generic 'ERROR: {msg}' with no recovery guidance or error classification. No tool annotations (readOnlyHint/destructiveHint). API key exposure as a required parameter on every tool violates secret-injection pattern. Missing parameter descriptions for optional fields (e.g., 'sku', 'category', 'monthly_sales' in analyze_product have no guidance on format or impact). Pagination is present (limit/offset) but no total_count or next_cursor documented in output.
AI-powered supply chain analysis for a product or SKU. Returns demand forecast, reorder point, safety stock, and recommended order quantity.
Calculate total landed cost for an imported product including duty, freight, and insurance. Returns per-unit breakdown.
Get info about the authenticated Zentria Flow user (account, plan, scopes).
Get a single order by order ID or external order ID.
Get products that are below the low-stock threshold.
List orders from all connected e-commerce platforms (Shopify, WooCommerce, İkas).
API key exposed as required parameter on all 11 tools. Violates secret-injection pattern, credentials in tool params leak into agent logs and prompt history. Should use server-side injection via environment variables or vault.
No output schemas documented. LLMs cannot plan downstream calls or extract required fields. Response structure is entirely opaque, no field names, types, or nesting documented anywhere.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 65 | <=2025-11-25 | v2 |
List products from connected stores.
List registered API webhooks for the authenticated user.
Look up the Harmonized System (HS) tariff code for a product. Useful for customs classification and duty calculation.
Register a webhook to receive Zentria Flow events. Valid events: order.created, order.updated, order.cancelled, inventory.low_stock, inventory.out_of_stock, supply_chain.risk_detected, billing.subscription_created, billing.subscription_cancelled.
Get a supply chain health overview: connected platforms, total orders, pending orders, and low-stock item count.
Error handling is generic and non-actionable. _err() returns 'ERROR: {msg}' with no recovery guidance, error classification (retryable/user-fixable/fatal), or suggestions for next steps. Violates recovery-guide pattern.
Optional parameters lack descriptions. 'sku', 'category', 'monthly_sales' in analyze_product; 'origin_country', 'destination_country' in lookup_hs_code have no guidance on format, constraints, or impact. LLMs cannot infer when to use them.
No tool annotations (readOnlyHint/destructiveHint/idempotentHint). register_webhook is a WRITE operation but unmarked. Agents cannot distinguish safe-to-retry tools from destructive ones.