Shoppingate MCP Server
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Shoppingate MCP Serverrecommend products for a gift under 200 SAR"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Shoppingate MCP Server (TypeScript)
Model Context Protocol (MCP) Server for the Shoppingate AI Platform — powering both Merchant & Customer Super-App capabilities across Claude Desktop, ChatGPT, Claude.ai, and the Shoppingate AI Gateway.
🛠️ Complete Feature & Tool Coverage
1. Merchant Tools (src/tools/merchantTools.ts)
search_products: Search catalog with keyword, category, price range, and stock status filters.get_product_details: Fetch product specs, images, pricing, and stock levels by ID.update_product_stock: Update inventory quantity and stock availability.list_merchant_orders: Filter customer orders by status (pending,processing,shipped,delivered,cancelled).get_order_details: Retrieve full order line items, customer details, and shipping address.update_order_status: Change order fulfillment status with tracking notes.list_promotions: View active store deals and promotional offers.create_coupon: Create percentage or fixed SAR discount coupon codes.
2. Customer Super-App Tools (src/tools/customerTools.ts)
customer_search_products: Natural language product search for end-customers by budget, category, or brand.get_recommendations: Fetch personalized recommendation rails (Recommended for You, Trending, New Arrivals).get_similar_products: Semantic similarity search for Product Detail Pages (PDP).track_customer_order: Live order tracking and delivery status.check_visa_guidance: Query visa requirements and packages for travel destinations.search_travel_insurance: Query travel insurance plans by destination & trip duration.
3. MCP Resources & Prompts
Resources:
shoppingate://catalog/summary&shoppingate://orders/summary.Prompts:
merchant_daily_briefing&product_copywriter(Bilingual English/Arabic PDP copywriting).
Related MCP server: Universal Shopping Agent MCP Server
⚙️ Transport Modes
Stdio Mode (
npm run start:stdio): Native integration with Claude Desktop.HTTP / SSE Mode (
npm run start:sse): Express server listening onhttp://localhost:3005for ChatGPT, Claude.ai, & AI Gateway.
🚀 Quick Start
cd Backend/MCP-SERVER
# Install dependencies
npm install
# Compile TypeScript
npm run build
# Start in SSE / Browser Playground Mode (Port 3005)
npm run start:sse
# Start in Stdio Mode (For Claude Desktop CLI)
npm run start:stdio🌐 Browser Playground
Open http://localhost:3005 in Chrome to test both Merchant and Customer tools visually.
Playground UI:
http://localhost:3005Health Check:
http://localhost:3005/health-checkOpenAPI Schema:
http://localhost:3005/openapi.jsonSSE Stream:
http://localhost:3005/sse
💡 Claude Desktop Setup
Config file location: %APPDATA%\Claude\claude_desktop_config.json (or Microsoft Store AppData path):
{
"mcpServers": {
"shoppingate-merchant": {
"command": "C:\\Program Files\\nodejs\\node.exe",
"args": [
"C:\\Repository\\Shoppingate\\Backend\\MCP-SERVER\\dist\\index.js"
],
"env": {
"TRANSPORT_MODE": "stdio",
"ECOM_SERVICE_URL": "https://microservices.shoppinggate.app/ecom",
"SERVICE_API_KEY": "O5Xpb9Lho$NooI@7@Q>ztCpGVCQ"
}
}
}
}Available Tools
14 toolscheck_visa_guidanceA
Check visa requirements and package guidance for travel destinations in Shoppingate.
| Name | Required | Description | Default |
|---|---|---|---|
| nationality | No | Customer nationality | Saudi Arabia |
| destinationCountry | Yes | Destination country (e.g. Turkey, UAE, UK, Schengen) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It states the tool 'checks' information, implying a read-only operation, but does not disclose any other behavioral traits such as data sources, output format, or whether 'package guidance' is a separate feature.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence with no redundant information. It is front-loaded with the action and resource.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter tool without an output schema, the description provides the core purpose but leaves 'package guidance' ambiguous. It does not explain what the output will look like or what 'package guidance' entails, which could be necessary for correct usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage for both parameters, including a default for nationality and examples for destinationCountry. The description adds no additional parameter semantics beyond what the schema already provides, so it meets the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the specific verb 'Check' and clearly identifies the resource: visa requirements and package guidance for travel destinations. It distinguishes from sibling tools like search_products and search_travel_insurance by focusing on visa guidance.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for visa-related queries but provides no explicit guidance on when to use this tool versus alternatives. It does not mention exclusions or alternative tools, though sibling names like search_travel_insurance suggest different purposes.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_couponB
Create a new promotional discount coupon code for store customers.
| Name | Required | Description | Default |
|---|---|---|---|
| code | Yes | Coupon code (e.g. SUMMER20, WELCOME100) | |
| endDate | No | Coupon expiration date (YYYY-MM-DD) | |
| startDate | No | Coupon valid start date (YYYY-MM-DD) | |
| usageLimit | No | Total usage limit count | |
| discountType | Yes | Discount type: percentage off or fixed SAR amount | |
| discountValue | Yes | Discount value (e.g. 15 for 15% or 50 for 50 SAR) | |
| minOrderAmount | No | Minimum required order total to use coupon | |
| maxDiscountAmount | No | Maximum cap on discount amount for percentage coupons |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It implies a write operation via 'Create' but does not disclose potential side effects, idempotency, duplicate handling, required permissions, or any edge-case behavior. The description is too thin to be transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no unnecessary words. It conveys the essential purpose directly and efficiently, achieving maximum conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having 8 parameters and no output schema, the description provides only the basic purpose. It does not explain expected return values, validation rules, or behavior in edge cases like duplicate codes or inactive date ranges. The description is too sparse for the tool's complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, so the schema already explains all parameters. The description adds no parameter-specific information, leaving the semantics to be fully derived from the schema. This aligns with the baseline of 3 for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Create') and a clear resource ('promotional discount coupon code'), which makes the tool's purpose immediately understandable. It is distinct from sibling tools like list_promotions or update_product_stock, and the phrase 'for store customers' adds useful audience context.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives, nor does it mention any prerequisites, limitations, or exclusions. It is a bare statement of function with no usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
customer_search_productsC
Search products for Shoppingate customers by title, category, budget, or brand.
| Name | Required | Description | Default |
|---|---|---|---|
| lang | No | Customer language choice (en or ar) | en |
| limit | No | Number of recommendations to return | |
| query | Yes | Customer search term or product name (e.g. black Nike shoes, iPhone 15 case) | |
| maxPrice | No | Maximum budget in SAR | |
| minPrice | No | Minimum budget in SAR |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral transparency. It only states what the tool does but does not disclose language handling, limit behavior, price range semantics, or return format. There is no mention of how the 'query' relates to category/brand, nor any output details.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, concise and to the point. It avoids redundancy, but its brevity comes at the cost of missing important contextual details. Still, it earns a 4 for being compact and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given there are 5 parameters, no annotations, and no output schema, the description is incomplete. It does not explain the meaning of the min/max price, the lang behavior, or what the response contains. It also introduces ambiguity with 'category' and 'brand' that is not resolved. For a tool with this complexity, the description is insufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
While the schema has 100% parameter descriptions, the tool description adds confusion by listing 'category' and 'brand' as search dimensions, which are not separate parameters in the schema. The description does not clarify how query maps to these dimensions, and it fails to mention the lang and limit parameters that are documented in the schema. This reduces clarity rather than adding value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'search', the resource 'products', and the intended audience 'Shoppingate customers'. It also lists search dimensions (title, category, budget, brand). However, it does not differentiate from the sibling tool 'search_products', and the mention of 'category' and 'brand' is not reflected in the schema, causing slight ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives like 'search_products'. The phrase 'for Shoppingate customers' suggests a customer-facing context but is not explicitly contrasted with other search tools. No exclusions or alternative recommendations are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_order_detailsA
Fetch full order details including line items, prices, shipping address, and payment status.
| Name | Required | Description | Default |
|---|---|---|---|
| orderId | Yes | Order ID or order number |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. The verb 'Fetch' implies a read-only operation, and the listed fields give some context about the response content. However, it does not disclose potential errors, permission requirements, or any conditions under which the operation might fail, leaving behavioral aspects only partially transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, unambiguous sentence that front-loads the action ('Fetch full order details') and immediately provides the key fields expected. No unnecessary words or fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple fetch tool with one parameter and no output schema, the description adequately specifies what will be returned (line items, prices, shipping, payment status). It lacks any mention of error handling or edge cases, but given the tool's simplicity, it is nearly complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already provides a complete description of orderId as 'Order ID or order number' with types specified, achieving 100% coverage. The description adds no additional meaning beyond the schema, so per the baseline for high coverage, it scores a 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states 'Fetch full order details' with a clear verb and resource, and lists specific fields (line items, prices, shipping address, payment status). This distinguishes it from sibling tools like get_product_details or list_merchant_orders, making its purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when full order details are needed, but it does not explicitly state when to use this tool versus alternatives like list_merchant_orders or track_customer_order. It lacks exclusion criteria or mention of alternative tools, so guidance is only implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_product_detailsA
Get full product details including images, inventory stock, brand, category, and pricing.
| Name | Required | Description | Default |
|---|---|---|---|
| lang | No | Language for product names and descriptions | en |
| productId | Yes | Numeric ID of the product |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden for behavioral disclosure. It clearly indicates the returned fields (images, stock, brand, etc.) and the 'Get' verb implies a read-only operation, which is transparent for a simple retrieval tool. It does not discuss edge cases or side effects, but for a non-mutating getter this is sufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that lists the key return contents without extra filler. Every phrase earns its place, and it is immediately scannable and understandable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple with only two parameters, a required productId and an optional lang, and no output schema exists. The description adequately covers the main return fields, while the schema covers parameter details. It is complete enough for an agent to know the tool's scope, though it could optionally mention dynamic behavior like language-specific names.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, with both productId and lang fully described in the input schema. The description adds no additional parameter semantics beyond what the schema already provides; it lists outputs but does not explain parameter usage or format beyond the schema's own descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'Get' with a clear resource 'full product details' and enumerates concrete contents: images, inventory stock, brand, category, and pricing. This clearly differentiates from sibling tools like search_products (search vs. details) and update_product_stock (update vs. read).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when a product's detailed information is needed, likely by ID, but it does not explicitly state when to use this tool over alternatives or any prerequisites. It mentions no exclusions or when-not-to-use scenarios, leaving guidance at an implied level rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_recommendationsA
Get personalized product recommendations for a customer (Recommended for You, Trending, New Arrivals).
| Name | Required | Description | Default |
|---|---|---|---|
| lang | No | Preferred response language | en |
| userId | No | Customer user ID or guest session token |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full responsibility for behavioral disclosure. It only states the action and provides no context about behavior for invalid/missing userId, authentication requirements, pagination, or response shape. The 'Get' verb implies a read operation but doesn't confirm non-destructiveness or edge cases.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that front-loads the core purpose and includes useful examples in parentheses. No wasted words or redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with two optional parameters and no output schema, the description is adequate but leaves gaps around response format, what 'personalized' means operationally, and behavior when no userId is provided. It covers the primary purpose but lacks depth needed for full self-service understanding.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already fully describes both parameters (lang and userId) with 100% coverage. The description adds only a minor implication that userId drives personalization, but doesn't provide any additional syntax, format, or edge-case semantics beyond what the schema states. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Get') and clearly identifies the resource ('personalized product recommendations'), with parenthetical examples ('Recommended for You, Trending, New Arrivals') that further clarify scope. This distinguishes it from siblings like search_products (search vs recommend) and get_similar_products (product-based vs customer-based).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'for a customer' and the category examples imply this tool is for recommendation surfaces, but there is no explicit guidance on when to use it versus alternatives like search_products or customer_search_products. No when-not or exclusion conditions are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_similar_productsA
Find products similar to a given product ID for PDP recommendations.
| Name | Required | Description | Default |
|---|---|---|---|
| lang | No | Language choice | en |
| limit | No | Number of similar items | |
| productId | Yes | Anchor product ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden for behavioral disclosure. It only says 'Find products similar' without describing what the output contains (e.g., list of IDs vs full details), whether it's read-only, or any edge cases like empty results. This is insufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that communicates the core purpose without any fluff. It earns its place fully.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given there is no output schema, the description should explain what the tool returns. It does not. An agent is left guessing whether the response is a list of product IDs, full product objects, or something else. The schema covers inputs but not outputs, so the description remains incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all three parameters. The description adds no extra parameter semantics beyond identifying productId as the anchor, which is present in the schema. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb 'Find' with a precise resource 'products similar to a given product ID' and a clear context 'for PDP recommendations'. This clearly distinguishes from siblings like get_product_details (single product) and search_products (query-based search).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'for PDP recommendations' gives clear context for when the tool is appropriate. However, it does not explicitly state when not to use it or name alternative tools, so it stops short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_merchant_ordersA
List merchant store orders with optional status, date range, or search filtering.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number | |
| limit | No | Number of orders per page | |
| search | No | Search query (order ID, customer name, email) | |
| status | No | Order status filter | |
| toDate | No | Filter orders up to date (YYYY-MM-DD) | |
| fromDate | No | Filter orders starting from date (YYYY-MM-DD) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden for behavioral disclosure. It only states the tool 'lists' orders without explicitly confirming it is read-only or disclosing pagination behavior, rate limits, or side effects. This is a notable gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no redundant wording. Every clause adds meaning, making it highly concise and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a list tool with a complete parameter schema, the description is adequate for basic invocation. However, it lacks notes on filter combination constraints, pagination defaults, or return format, which would enhance completeness given no output schema exists.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema provides descriptions for all 6 parameters, giving the description minimal additional value. It merely groups them conceptually as 'status, date range, or search filtering,' which aligns with the baseline for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('List') and the resource ('merchant store orders'), and enumerates specific filtering options. This distinguishes it from sibling tools like get_order_details, which implies a single-order fetch.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description specifies what the tool does but offers no explicit guidance on when to use it versus alternatives. Usage context is implied by the verb 'list,' but no when-to-use or when-not-to-use scenarios are described.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_promotionsB
List active promotions, deals, and discount coupons available in the store.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| limit | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It only discloses that the list filters to 'active' promotions, but does not mention pagination behavior, return format, permissions, or any side effects. For a listing tool this is a moderate gap, as the description does not explicitly confirm it is read-only or describe what fields are returned.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that conveys the core function without unnecessary words. It uses clear, direct language and avoids redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple listing tool with pagination, the description provides the essential purpose and the 'active' filter. However, without an output schema, it lacks details about the return structure, ordering, or whether any other filters (e.g., by type) are available. It is minimally viable but not rich in context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate for parameter explanation. It does not mention page or limit at all, though the schema includes defaults and ranges. The parameter names are self-explanatory, and the schema provides full type constraints, so this is acceptable but not ideal. Minimal compensation is provided by the description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists active promotions, deals, and discount coupons in the store. It uses a specific verb (list) and resource (promotions), and distinguishes from siblings like create_coupon (which creates) and search_products (which searches). No ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when the user wants to view promotions, but it does not explicitly mention when not to use it or point to alternatives. There is no exclusion of expired promotions or cross-reference to create_coupon for creation, so guidance is minimal yet not misleading.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_productsC
Search the Shoppingate product catalog with keywords, category filters, and price ranges.
| Name | Required | Description | Default |
|---|---|---|---|
| lang | No | Preferred response language (en or ar) | en |
| page | No | Page number for pagination | |
| limit | No | Number of items per page | |
| query | No | Keyword or title search query | |
| maxPrice | No | Maximum price threshold in SAR | |
| minPrice | No | Minimum price threshold in SAR | |
| categoryId | No | Filter by category ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden, but it only says 'Search', implying read-only without explicit disclosure. It does not mention pagination, language behavior, result format, or any side effects, leaving significant behavioral gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, focused sentence with no filler. It is appropriately concise and front-loaded with the core purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 7 parameters, no annotations, and no output schema, the description is too sparse. It omits details about pagination, language options, filtering behavior, and return values, leaving the agent with incomplete context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with all parameters described, so the baseline is 3. The description adds minimal value by mentioning 'keywords, category filters, and price ranges' but does not provide syntax or semantics beyond what the schema already covers.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: searching the Shoppingate product catalog with keywords, category filters, and price ranges. The verb 'search' and resource 'product catalog' are specific, but it does not differentiate from the sibling 'customer_search_products', so it loses a point for missing sibling distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like 'customer_search_products' or 'get_recommendations'. The description only explains what it does, not the appropriate context or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_travel_insuranceB
Search travel insurance coverage plans for upcoming trips.
| Name | Required | Description | Default |
|---|---|---|---|
| destination | Yes | Trip destination or region | |
| tripDurationDays | No | Duration of travel in days |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full burden. It only restates the search action, with no mention of return format, filtering behavior, or read-only nature. 'Search' implies non-mutating but adds no extra behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence that is front-loaded with the verb and resource. No filler or redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple and the schema covers parameters, but there is no output schema or annotations to fall back on. The description does not explicitly state what is returned (e.g., matching plans) and fails to mention the optional duration parameter in context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already provides 100% coverage with descriptions for destination and tripDurationDays, including a default value. The description adds no additional parameter semantics, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Uses a specific verb ('Search') and a clear resource ('travel insurance coverage plans') with a temporal scope ('upcoming trips'). This clearly distinguishes it from sibling tools like search_products and check_visa_guidance.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives. The phrase 'upcoming trips' provides mild context but no prerequisites, exclusions, or mention of sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
track_customer_orderB
Track the delivery status and shipping updates for a customer order.
| Name | Required | Description | Default |
|---|---|---|---|
| orderId | Yes | Customer order ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations available, the description carries the full burden for behavioral disclosure. It only restates the core function without mentioning read-only nature, response format, authentication requirements, or error behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, well-structured sentence that immediately conveys the tool's purpose without any wasted words. It is appropriately front-loaded and concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple with one well-described parameter, and the description states its primary purpose adequately. However, there is no output schema and the description omits return format or usage contexts, leaving minor gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single parameter orderId is fully described in the schema with 100% coverage, so the baseline is 3. The description adds no additional meaning beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the specific verb 'track' with resource 'customer order' and specifies the scope as 'delivery status and shipping updates.' This clearly differentiates it from more general order tools like get_order_details, though it does not explicitly name alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus siblings such as get_order_details or update_order_status. The description implies usage for tracking deliveries but lacks explicit context, prerequisites, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_order_statusC
Update order status (e.g., mark as processing, shipped, delivered, or cancelled).
| Name | Required | Description | Default |
|---|---|---|---|
| notes | No | Optional internal note or shipping tracking number | |
| status | Yes | New order status | |
| orderId | Yes | Order ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry the burden of behavioral disclosure. It only states 'Update order status' without mentioning side effects, permissions, transition restrictions, or whether the change is reversible. This is insufficient for a mutating operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that is efficient and easy to parse. It includes concrete examples, but lacks the structural richness of a top-tier description. Still, it earns a 4 for being appropriately minimal without waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a write tool with no annotations, no output schema, and only a minimal description. The agent is left unsure about response format, error handling, or operational consequences (e.g., does updating to 'cancelled' send notifications?). The description is incomplete for making fully informed invocations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already provides full descriptions for all three parameters, including an enum for status. The description adds no additional meaning beyond restating that the status changes, so it meets the baseline of 3 for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Update order status') and the specific resource, making it distinct from siblings like get_order_details or update_product_stock. It also lists example status values, which reinforces the purpose. However, it does not explicitly differentiate from other update tools or mention scope (e.g., merchant-only), so it falls short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It does not mention who should use it (e.g., merchant) or exclusions (e.g., customer tracking uses track_customer_order). No context for decision-making is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_product_stockB
Update inventory stock level or availability status for a merchant product.
| Name | Required | Description | Default |
|---|---|---|---|
| stock | Yes | New stock quantity available | |
| inStock | No | Explicit flag indicating if product is in stock | |
| productId | Yes | Numeric ID of the product |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description is the only source for behavioral disclosure. It implies mutation ('Update') but does not state side effects, permission requirements, whether stock changes automatically affect availability, or whether updates are partial or full replacements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that states the action and object with no wasted words. It is compact and directly to the point.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no annotations and no output schema, the description is too sparse. It omits important context such as whether stock and inStock are independent, what happens on validation failure, or any return value. The schema covers parameters, but the behavioral operation is under-specified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so each parameter (stock, inStock, productId) is already documented. The description adds no extra meaning beyond mapping 'stock level' to stock and 'availability status' to inStock, which is already evident from the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Update') and names the resource ('inventory stock level or availability status') for a merchant product, clearly distinguishing it from sibling tools that search/read or handle other merchant operations like orders/coupons.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus alternatives, nor any exclusions or prerequisites. The reader must infer from the tool name alone that it is for stock updates, as the description merely restates the function without contextual cues.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
14 tool updates
v1.0.0- First observed
check_visa_guidance - First observed
create_coupon - First observed
customer_search_products - First observed
get_order_details - First observed
get_product_details - First observed
get_recommendations - First observed
get_similar_products - First observed
list_merchant_orders - First observed
list_promotions - First observed
search_products - First observed
search_travel_insurance - First observed
track_customer_order - First observed
update_order_status - First observed
update_product_stock
TDQS
Scored across 14 tools
search_products and customer_search_products are nearly identical in purpose, differing only by implied audience, which creates ambiguity. Other tools are distinct and clearly separated by resource/action.
Most tools follow a verb_noun pattern (search_products, get_product_details, list_merchant_orders, etc.). customer_search_products breaks this by prepending a noun, and a couple of verbs vary, but the overall convention is mostly consistent.
14 tools is within the ideal range and each shopping-related tool serves a clear purpose. However, the inclusion of travel-specific tools (visa guidance, insurance) dilutes the focus and makes the set slightly less cohesive.
The shopping surface covers search, details, stock update, orders, and promotions, but lacks product creation/deletion and order placement. Coupon management is partial (create/list only), and travel tools are advisory with no booking flow, leaving notable gaps.
Maintenance
Related MCP Connectors
AI shopping gateway for product search, inventory, carts, and merchant-hosted checkout.
Manage your Savanto store from your AI: catalog, content, prompts, and analytics, by chat.
AI-agent product catalog: search, lookup & purchase routing over verified merchant data.
Build, edit, stock, and publish Social AI websites and storefronts via AI chat.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables customer support across e-commerce platforms by providing order management, product guidance, and account assistance tools through natural language queries.5MIT
- FlicenseAqualityDmaintenanceEnables AI-powered shopping assistance by analyzing natural language shopping queries and automating product searches on multiple e-commerce platforms.13-
- FlicenseAqualityDmaintenanceEnables store operations including inventory and sales queries and automated replenishment ordering through natural language.3-
- FlicenseNot gradedqualityDmaintenanceEnables customer support interactions including answering FAQs, checking order status, and maintaining customer memory across sessions.-