MCP server for tracking fresh seafood from catch port through cold chain to retail, monitoring temperature, spoilage risk, and pricing
Single tool 'execute_skill_action' has a reasonable name starting with a verb, but the implementation is severely deficient. The tool description is only 47 characters, below the 10-1024 character guideline and lacks context on WHEN to use it or WHAT it returns. Input schema is present with three parameters (catch_port, fish_species, weight_kg) all with descriptions, but the schema lacks critical constraints: no enums for catch_port or fish_species (both accept free-form strings inviting hallucination), no min/max for weight_kg, and no format validation. Output schema is completely undocumented, the mcp_server.py only prints a status message; the actual response structure (lot_id, origin_port, sub_zero_temperature_celsius, etc.) is inferred from client.py and never formally declared to the MCP protocol. No error handling, no recovery guidance, no idempotency hints. The tool is READ_ONLY but the description does not state what it returns or how to use the response.
Execute seafood cold chain tracking skill action
Output schema completely undocumented. mcp_server.py does not declare what execute_skill_action returns; response structure is inferred from client.py (lot_id, origin_port, sub_zero_temperature_celsius, histamine_spoilage_risk, farm_to_retail_harvest_hours, b2b_buyer_auction_price_per_kg_inr). LLMs cannot plan downstream calls or extract data without a formal schema.
Tool description is only 47 characters ('Execute seafood cold chain tracking skill action'). Lacks WHAT it does, WHEN to use it, and prerequisites. Below the 10-1024 character guideline; does not answer: what does it return? When should the LLM call it instead of a similar tool?
Input parameters lack constraints. catch_port and fish_species accept free-form strings with no enum or validation, LLMs will hallucinate invalid values like 'Random Harbor' or 'Imaginary Fish'. weight_kg has no min/max bounds (unbounded numeric parameters let LLMs pass absurd values).
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 30 | 2026-07-28+ | v2 |
No error handling or recovery guidance. If catch_port is invalid or weight_kg is negative, the tool provides no actionable error message. LLM cannot self-correct or know what to try next.
mcp_server.py does not implement MCP protocol correctly. It prints a static JSON status message and exits, does not listen for tool calls, does not accept input parameters, does not return structured responses. The server is non-functional as an MCP server.