A comprehensive multi-agent MCP server system for supply chain management with 11 specialized agents covering shipping, inventory, freight, warehouse, investigation, recommendations, and continuous improvement across supply chain operations.
This server has 25 tools with inconsistent quality. Most tools have descriptions (good), but parameter schemas are sparse or missing entirely. Many tools lack input validation guidance, enum constraints, and output schema documentation. Tool names follow verb_noun convention (positive), but descriptions vary widely in clarity and actionability. No tool annotations (readOnlyHint/destructiveHint) despite clear risk classifications. Error handling is minimal, no recovery guidance or actionable error messages visible in the code. The server exposes internal database paths and configuration details in descriptions, which is a security concern.
Approve a recommendation (creates action item)
Use this tool when the user wants to see ALL orders that require immediate manager escalation — in one unified list. An order qualifies for escalation when it is in NEED_ACTION status, meaning it is more than 5 days past its scheduled pick date and has not yet shipped. For each escalated order, this tool runs the full investigation engine and recommendation engine, then sorts results by priority score.
Scans all orders for multi-domain problems
Complete list of all 12 agents, tools, and status
Use this tool when the user wants to see all items currently on backorder from suppliers.
Use this tool when the user wants a morning briefing or daily summary across the entire supply chain. This is the single most useful tool to start any conversation with. It scans all four operational domains — shipping delays, inventory health, freight status, and warehouse picks — and returns counts, a top root cause, and a plain-English briefing paragraph.
Missing input schemas for 16 of 25 tools. Tools like get_pending_recommendations, get_improvement_summary, get_lessons_learned, get_weekly_report, get_system_status, get_daily_brief, get_agent_roster, get_freight_holds, get_missed_pickups, get_inventory_summary, get_backordered_items, find_orders_at_risk, get_root_cause_summary, and get_daily_risk_report have empty {} input but no documented output schema. LLMs cannot plan downstream calls without knowing what fields are returned.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint) despite clear risk classifications. Tools marked WRITE (approve_recommendation, reject_recommendation, log_outcome) should have destructiveHint=true. All READ_ONLY tools should have readOnlyHint=true. This prevents agents from accidentally treating read-only tools as safe to retry or write tools as idempotent.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 44 | 2026-07-28+ | v2 |
Morning briefing combining all four agents
Use this tool when the user wants to see all shipments currently on freight hold — orders that are physically blocked from moving. Returns all ON_HOLD freight records sorted by hold severity (HIGH first). Each result includes the hold reason, carrier, and recommendation.
Use this tool when the user asks about the freight or carrier status for a specific sales order. Returns full freight details for that order. Input: sales_order_no — the exact order number (for example: SO-1003). Returns: carrier name, pickup scheduled date, actual pickup date, freight status, hold flag, hold reason, pickup delay days, and recommendation.
High-level dashboard of CI Agent performance
Use this tool when the user asks about a specific inventory item by its item number. Returns full stock details for that item. Input: item_no — the exact item number (for example: ITEM-001). Returns: qty on hand, qty allocated, qty available, reorder point, safety stock, backorder flag, inventory status, and recommendation.
Use this tool when the user wants to see all inventory items that match a specific stock status. Input: status — must be one of: HEALTHY, LOW, CRITICAL, OUT_OF_STOCK, ON_BACKORDER.
Use this tool when the user wants a high-level overview of current inventory health across all items and warehouses. Returns counts of items in each status category and a list of all items that are on backorder, out of stock, or critical.
See what the agent has learned so far
Use this tool when the user wants to see all orders where the carrier missed the scheduled pickup and has not yet collected the shipment. Returns all PICKUP_MISSED records sorted by days overdue (worst first).
Use this tool when the user wants a COMPLETE picture of one specific order. This is the most powerful single-order tool in the system. It pulls data from all four operational domains simultaneously — shipping, inventory, freight, and warehouse — and also runs the investigation and recommendation engines on top of that data. One call replaces what would otherwise require 5 separate agent calls.
See recommendations waiting for your decision
Aggregate breakdown of root causes across all orders
Use this tool when the user wants to know if all agents are working correctly. Health-checks all 11 live agents by verifying their core modules can be imported and their key functions exist. Returns HEALTHY or DEGRADED per agent. Overall health is HEALTHY only if every single agent passes. If any agent is DEGRADED, the overall status is DEGRADED.
Full weekly improvement briefing
Use this tool when the user wants a complete root cause investigation for a specific delayed order. This is the most powerful single tool in the entire system — it combines data from all four agents. Input: sales_order_no — the exact order number (for example: SO-1003). Returns a full investigation report including: Delay status and how many days overdue, Overall severity rating (CRITICAL, HIGH, MEDIUM, LOW), Confirmed root cause with explanation, List of all contributing factors found across agents, The single most important first action to take right now, Raw signals from every agent for transparency.
Record what happened after implementation
Reject a recommendation (saves lesson)
Use this tool as the FIRST CHOICE when the user asks any supply chain question and you are not sure which agent to call. This tool reads the question, identifies what domain it belongs to, calls the right function(s), and returns a unified answer. It also returns a 'routed_to' field explaining which function was called and a 'routing_reason' field explaining why.
Use this tool to run a full Continuous Improvement scan across all supply chain domains. The agent will: 1. Scan all shipment, inventory, freight, and warehouse data 2. Detect patterns, anomalies, and improvement opportunities 3. Generate specific, actionable recommendations 4. Save everything to the database 5. Return a summary of what was found
Parameter descriptions lack constraint details. 'recommendation_id' and 'sales_order_no' parameters have minimal descriptions (e.g., 'The ID of the recommendation to approve'). No format guidance (e.g., 'Must start with REC-, 8 alphanumeric chars'), no examples of valid values, no enum constraints. This forces LLMs to guess valid formats and risks malformed calls.
No error handling or recovery guidance visible in tool implementations. The code shows basic try-catch blocks that log warnings but do not return actionable error messages to the LLM. E.g., if a recommendation_id is not found, the tool should return 'Recommendation REC-12345 not found. Available recommendations: [list]' instead of a silent failure or generic error.
STDIO-only transport. This server uses STDIO exclusively and cannot be accessed by hosted MCP clients or remote agents. It is limited to local Claude Desktop use and cannot scale to multi-agent or cloud deployments. Migrate to HTTP+SSE or Streamable HTTP for production readiness.