MCP server for ShopBot, an online clothing store customer support system. Provides tools for checking order status and searching a knowledge base via RAG pipeline.
Two tools with minimal documentation. check_order_status has a basic description (56 chars) and simple schema with one integer parameter. search_knowledge_base has a longer description (168 chars) but vague parameter guidance. Neither tool documents output schema, error handling, or recovery paths. No parameter constraints, enums, or validation guidance. Descriptions lack WHEN/WHY context. No tool annotations (readOnlyHint present in metadata but not declared in schema). Both tools are READ_ONLY but this is not surfaced to the LLM via schema hints.
Check order history and status by order ID
Search the knowledge base using RAG pipeline to answer questions about store policies, shipping, returns, products, and other store-related topics
No output schema documented for either tool. LLMs cannot plan downstream calls or extract structured data. check_order_status returns a formatted string; search_knowledge_base returns RAG chain output (type unknown).
Parameter descriptions are minimal. 'question' param in search_knowledge_base lacks format/length guidance. 'order_id' param lacks validation range or error handling for invalid IDs.
No error handling guidance. check_order_status returns 'No order found' as a string, not a structured error. No guidance on what to do if database connection fails or order_id is negative.
Tool annotations missing from schema. Both tools are READ_ONLY (stated in metadata) but readOnlyHint is not declared in the input schema, so LLMs cannot see this at tool selection time.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 54 | 2026-07-28+ | v2 |
search_knowledge_base description is vague about what 'RAG pipeline' returns. Does it return a single answer, multiple results, confidence scores, sources? LLM cannot reason about output structure.