Nordstrom MCP Server
Click on "Install 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., "@Nordstrom MCP Serverfind some black ankle boots from Sam Edelman"
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.
@striderlabs/mcp-nordstrom
Model Context Protocol (MCP) connector for Nordstrom retail. Browse products, manage your shopping bag, wishlist, and orders through any MCP-compatible AI client.
Features
Tool | Description | Auth Required |
| Search merchandise by keyword, category, or brand | No |
| Get full product details, sizes, and images | No |
| Add an item to your shopping bag | Yes |
| View shopping bag contents and totals | Yes |
| Remove an item from bag | Yes |
| View saved/favorited items | Yes |
| Save an item to your wishlist | Yes |
| Check store availability near a ZIP code | No |
| View order history | Yes |
| Track a shipment | Yes |
Related MCP server: Kroger MCP Server
Installation
npm install @striderlabs/mcp-nordstromAuthentication
Authenticated tools (bag, wishlist, orders) require Nordstrom account credentials. Set them as environment variables:
export NORDSTROM_EMAIL="you@example.com"
export NORDSTROM_PASSWORD="yourpassword"Alternatively, save credentials to ~/.nordstrom-mcp/credentials.json:
{
"email": "you@example.com",
"password": "yourpassword"
}The file is stored with 600 permissions (owner read/write only).
Usage with Claude Desktop
Add to your claude_desktop_config.json:
{
"mcpServers": {
"nordstrom": {
"command": "npx",
"args": ["-y", "@striderlabs/mcp-nordstrom"],
"env": {
"NORDSTROM_EMAIL": "you@example.com",
"NORDSTROM_PASSWORD": "yourpassword"
}
}
}
}Tool Reference
search_products
{
"query": "black ankle boots",
"category": "women",
"brand": "Sam Edelman"
}get_product
{
"product_id": "7654321"
}product_id can be a Nordstrom numeric style ID or a full product URL.
add_to_bag
{
"product_id": "7654321",
"sku_id": "sku-9876",
"quantity": 1
}get_bag
No parameters required.
remove_from_bag
{
"item_id": "bag-item-id-from-get_bag"
}get_wishlist
No parameters required.
add_to_wishlist
{
"product_id": "7654321"
}check_inventory
{
"product_id": "7654321",
"size": "M",
"zip": "98101"
}get_orders
{
"limit": 5
}track_order
{
"order_number": "12345678"
}Development
# Install dependencies
npm install
# Build
npm run build
# Run in dev mode
npm run dev
# Pack for distribution
npm packNotes
Uses Playwright for browser automation against nordstrom.com.
Stealth mode enabled to reduce bot detection.
Some actions (add to bag, wishlist) may be blocked if Nordstrom adds additional CAPTCHA challenges.
This connector is for personal use only; respect Nordstrom's Terms of Service.
Available Tools
10 toolsadd_to_bagA
Add an item to the Nordstrom shopping bag. Requires authentication via NORDSTROM_EMAIL and NORDSTROM_PASSWORD environment variables.
| Name | Required | Description | Default |
|---|---|---|---|
| product_id | Yes | Product ID or full product URL | |
| sku_id | No | SKU ID for a specific size/color variant | |
| quantity | No | Quantity to add, default 1 |
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 adds value by specifying authentication needs, which is crucial context. However, it lacks details on other behavioral traits such as rate limits, error handling, or what happens on success/failure.
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 front-loaded with the core purpose and efficiently includes essential authentication details in a single, clear sentence. There is no wasted text, 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?
Given the tool's moderate complexity (3 parameters, no output schema, no annotations), the description is adequate but incomplete. It covers authentication and purpose but lacks details on behavioral aspects like response format or error conditions, which would enhance completeness.
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 description coverage is 100%, so the input schema already documents all parameters thoroughly. The description does not add any additional meaning or context about the parameters beyond what the schema provides, meeting 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 specific action ('Add an item') and target resource ('to the Nordstrom shopping bag'), distinguishing it from siblings like 'add_to_wishlist' or 'remove_from_bag'. It precisely communicates the tool's function without redundancy.
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 explicitly states when to use this tool by specifying authentication requirements ('Requires authentication via NORDSTROM_EMAIL and NORDSTROM_PASSWORD environment variables'), providing clear context for its use. However, it does not mention when not to use it or direct alternatives among siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_to_wishlistB
Save an item to the Nordstrom wishlist / Favorites. Requires authentication.
| Name | Required | Description | Default |
|---|---|---|---|
| product_id | Yes | Product ID or full product URL to save |
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 mentions authentication but lacks details on permissions, rate limits, error handling, or whether the operation is idempotent. This is insufficient for a mutation tool, as users need more context about its 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?
The description is concise and front-loaded, consisting of two sentences that directly state the tool's purpose and a key requirement. There is no unnecessary information, making it efficient, though it could be slightly more structured for clarity.
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 that this is a mutation tool with no annotations and no output schema, the description is incomplete. It lacks details on behavioral traits, error cases, and what the tool returns, which are critical for understanding its usage in context with sibling tools.
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, with the parameter 'product_id' documented as accepting 'Product ID or full product URL'. The description does not add any additional meaning beyond this, so it meets the baseline score of 3, as the schema adequately covers parameter semantics.
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 ('Save an item') and the target resource ('Nordstrom wishlist / Favorites'), making the purpose specific and understandable. However, it does not explicitly differentiate this tool from its sibling 'get_wishlist', which might cause confusion about when to use each.
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 some guidance by stating 'Requires authentication', which implies a prerequisite for usage. However, it does not specify when to use this tool versus alternatives like 'add_to_bag' or 'get_wishlist', leaving the context for selection unclear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_inventoryB
Check product availability at Nordstrom stores near a given ZIP code, for a specific size.
| Name | Required | Description | Default |
|---|---|---|---|
| product_id | Yes | Product ID or full product URL | |
| size | No | Size to check (e.g. 'M', '10', '32x32') | |
| zip | No | ZIP code to find nearby stores |
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 of behavioral disclosure. While it states the tool checks availability, it doesn't describe what the output looks like (e.g., list of stores with stock status), whether it requires authentication, rate limits, or error handling. This leaves significant gaps for an agent to understand how to interpret results.
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, efficient sentence that front-loads the core purpose without unnecessary words. Every element ('Check product availability', 'at Nordstrom stores', 'near a given ZIP code', 'for a specific size') contributes directly to understanding the tool's function.
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 the complexity of an inventory check tool with no annotations and no output schema, the description is incomplete. It doesn't explain return values (e.g., what data structure or format to expect), error conditions, or behavioral nuances like whether it checks real-time stock or cached data. For a tool that likely returns structured store/availability data, this is a significant gap.
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 (product_id, size, zip) with clear descriptions. The description adds minimal value beyond implying that 'size' and 'zip' are required for the inventory check, but doesn't provide additional syntax or format details. Baseline 3 is appropriate when the schema does the heavy lifting.
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 specific action ('Check product availability'), resource ('at Nordstrom stores'), and scope ('near a given ZIP code, for a specific size'). It distinguishes itself from siblings like get_product (general product info) or search_products (product search) by focusing on localized inventory checking.
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 doesn't mention prerequisites (e.g., needing a valid product ID), nor does it differentiate from similar tools like get_product (which might provide product details without inventory) or track_order (which tracks shipments rather than store availability).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_bagA
View the current Nordstrom shopping bag contents, subtotal, and estimated total. Requires authentication.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
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 adds valuable context by specifying the authentication requirement, which is not obvious from the tool name or schema. It also implies a read-only operation ('View'), though it could be more explicit about safety traits like non-destructive 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?
The description is front-loaded with the core purpose in the first clause and adds essential context (authentication) in a second, concise sentence. Every word earns its place, with no redundancy or unnecessary details, making it highly efficient.
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 the tool's simplicity (0 parameters, no output schema, no annotations), the description is largely complete, covering purpose and authentication. However, it could enhance completeness by briefly mentioning the return format (e.g., structured data vs. text) or error handling, though this is not critical for a basic read operation.
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 0 parameters with 100% coverage, so no parameter documentation is needed. The description appropriately does not discuss parameters, focusing instead on the tool's purpose and constraints, which aligns with the baseline expectation for zero-parameter tools.
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 specific action ('View') and resource ('current Nordstrom shopping bag contents, subtotal, and estimated total'), distinguishing it from siblings like 'get_orders' or 'get_wishlist' that access different data. It precisely defines what the tool retrieves without 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 explicitly states 'Requires authentication,' providing clear context for when to use this tool (i.e., only when authenticated). However, it does not specify when not to use it or name alternatives, such as clarifying that it shows the current bag vs. historical orders from 'get_orders'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_ordersC
View Nordstrom order history including order number, date, status, and items. Requires authentication.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max number of orders to return, default 10 |
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 mentions 'Requires authentication,' which is a useful behavioral trait, but it lacks other critical details such as whether this is a read-only operation (implied by 'View' but not explicit), rate limits, pagination behavior (beyond the 'limit' parameter), or error handling. For a tool with zero annotation coverage, 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 concise and front-loaded, consisting of two sentences that efficiently convey the tool's purpose and a key requirement. There's no wasted language, and it gets straight to the point. However, it could be slightly improved by integrating the authentication note more seamlessly, but it's still highly efficient.
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 the tool's moderate complexity (retrieving order history with one optional parameter) and the absence of both annotations and an output schema, the description is minimally adequate. It covers the basic purpose and authentication need but lacks details on return format, error cases, or how it differs from sibling tools. This leaves gaps that could hinder an agent's effective use.
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, with the 'limit' parameter documented as 'Max number of orders to return, default 10.' The description doesn't add any parameter-specific information beyond what the schema provides, such as explaining how 'limit' interacts with order history retrieval. Since the schema coverage is high, the baseline score of 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 clearly states the tool's purpose: 'View Nordstrom order history including order number, date, status, and items.' It specifies the verb ('View') and resource ('Nordstrom order history') with concrete details about what information is included. However, it doesn't explicitly differentiate this tool from sibling tools like 'track_order' or 'get_product', which prevents a perfect score.
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 minimal usage guidance: 'Requires authentication' indicates a prerequisite, but it doesn't explain when to use this tool versus alternatives like 'track_order' (which might provide real-time status updates) or 'search_products' (for product details). There's no explicit when-to-use or when-not-to-use context, leaving the agent to infer usage scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_productA
Get full product details including description, features, available sizes, images, and pricing for a specific Nordstrom item.
| Name | Required | Description | Default |
|---|---|---|---|
| product_id | Yes | Product ID from search results or full Nordstrom product URL |
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 describes the tool's function and output fields, but does not disclose behavioral traits such as whether it's read-only (implied by 'Get'), error handling, rate limits, authentication needs, or response format. The description adds value by specifying the scope of details, but lacks operational 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?
The description is a single, efficient sentence that front-loads the purpose and lists key details without redundancy. Every element (verb, resource, fields, target) earns its place, making it easy to scan and understand quickly.
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 the tool's low complexity (single parameter, no output schema, no annotations), the description is reasonably complete. It specifies what data is retrieved, aiding the agent in understanding the tool's value. However, it lacks details on behavioral aspects like error handling or output structure, which could be beneficial for a read operation.
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%, with the schema fully documenting the single parameter 'product_id'. The description does not add meaning beyond the schema, as it only implies parameter usage ('for a specific Nordstrom item') without detailing syntax or format. Baseline 3 is appropriate since the schema handles parameter documentation.
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 ('Get') and resource ('full product details'), specifying exactly what information is retrieved (description, features, sizes, images, pricing) and for what target ('a specific Nordstrom item'). It distinguishes this from sibling tools like search_products (which finds items) or check_inventory (which checks stock).
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 context by specifying 'for a specific Nordstrom item' and listing detailed fields, suggesting it's for retrieving comprehensive data after an item is identified. However, it does not explicitly state when to use this versus alternatives like search_products (for finding items) or check_inventory (for stock info), nor does it mention prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_wishlistB
View saved items in the Nordstrom wishlist. Requires authentication.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
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 mentions authentication but lacks details on rate limits, response format, error handling, or whether it's read-only (implied by 'View' but not explicit). This leaves significant gaps for a tool that likely returns user data.
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 very concise with two short sentences that are front-loaded with the core purpose. There's no wasted text, but it could be slightly more structured by separating usage notes, though this is minor.
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 the tool's simplicity (0 parameters, no output schema), the description is incomplete. It lacks details on what 'saved items' includes (e.g., product details, quantities), authentication specifics, or behavioral traits like pagination. Without annotations or output schema, more context is needed for effective use.
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 tool has 0 parameters, and schema description coverage is 100%, so there's no need for parameter explanation in the description. The baseline for such cases is 4, as the description appropriately avoids redundant information and focuses on other aspects.
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 ('View saved items') and resource ('Nordstrom wishlist'), making the purpose immediately understandable. However, it doesn't differentiate from sibling tools like 'get_bag' or 'get_orders' beyond specifying the wishlist resource, which prevents a perfect score.
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 minimal guidance with 'Requires authentication,' which is a basic prerequisite but doesn't explain when to use this tool versus alternatives like 'get_bag' or 'get_orders.' No context on timing, alternatives, or exclusions is given, leaving usage unclear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
remove_from_bagA
Remove an item from the Nordstrom shopping bag by item ID. Requires authentication.
| Name | Required | Description | Default |
|---|---|---|---|
| item_id | Yes | Bag item ID from get_bag results |
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 states the authentication requirement, which is valuable context. However, it doesn't describe what happens after removal (e.g., whether the bag is updated immediately, if confirmation is returned, or if there are rate limits). The description adds some behavioral insight but leaves gaps for a mutation tool.
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 two concise sentences with zero waste. The first sentence states the purpose clearly, and the second adds essential context (authentication). Every word earns its place, making it easy to parse and understand quickly.
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 adequate but has clear gaps. It covers the basic action and authentication need, but lacks details on behavioral outcomes (e.g., what is returned, error conditions) and doesn't fully compensate for the missing structured data. It meets minimum viability but could be more 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?
Schema description coverage is 100%, so the schema already documents the item_id parameter fully. The description adds marginal value by referencing 'get_bag results' to clarify the parameter's source, but doesn't provide additional syntax or format details beyond what the schema provides. With 0 parameters beyond the documented one, a baseline of 4 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 clearly states the specific action ('Remove an item'), target resource ('from the Nordstrom shopping bag'), and mechanism ('by item ID'), distinguishing it from siblings like add_to_bag or get_bag. It uses precise language that leaves no ambiguity about what the tool does.
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 context by mentioning 'Requires authentication' and referencing 'get_bag results' for the item_id parameter, suggesting it should be used after retrieving bag contents. However, it doesn't explicitly state when to use this tool versus alternatives (e.g., when to remove versus add items) or provide clear exclusion criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_productsA
Search Nordstrom merchandise by keyword, category, or brand. Returns a list of products with pricing, availability, and direct URLs.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Search query (e.g. 'black dress', 'running shoes') | |
| category | No | Category filter (e.g. 'women', 'men', 'shoes') | |
| brand | No | Brand filter (e.g. 'Nike', 'Nordstrom') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden but lacks critical behavioral details. It mentions the return format but doesn't disclose pagination, rate limits, authentication needs, error conditions, or whether it's read-only (implied but not stated). For a search tool with zero annotation coverage, this leaves significant gaps in understanding operational constraints.
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, well-structured sentence that efficiently conveys purpose, input scope, and output format without redundancy. Every element (search dimensions, return content) serves a clear purpose, making it front-loaded and zero-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?
For a search tool with 3 parameters, 100% schema coverage, and no output schema, the description is adequate but incomplete. It covers the core functionality but misses behavioral context (e.g., pagination, errors) and usage differentiation from siblings. Without annotations or output schema, more detail on operational aspects would improve completeness.
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 parameters are fully documented in the schema. The description adds marginal value by listing the search dimensions (keyword, category, brand) but doesn't provide additional syntax, format details, or interaction rules beyond what the schema already specifies. Baseline 3 is appropriate when schema does the heavy lifting.
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 purpose with specific verbs ('Search Nordstrom merchandise') and resources ('products'), distinguishing it from siblings like 'get_product' (singular retrieval) or inventory/order tools. It specifies the search dimensions (keyword, category, brand) and the return content (list with pricing, availability, URLs).
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 searching products broadly, but provides no explicit guidance on when to use this versus alternatives like 'get_product' (for specific product lookup) or 'check_inventory' (for stock queries). It mentions search dimensions but doesn't clarify prerequisites or exclusions (e.g., if it requires authentication).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
track_orderA
Track a Nordstrom shipment by order number. Returns status, carrier, tracking number, estimated delivery, and tracking events. Requires authentication.
| Name | Required | Description | Default |
|---|---|---|---|
| order_number | Yes | Nordstrom order number |
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 discloses key behavioral traits: it returns specific data (status, carrier, etc.), requires authentication, and implies it's a read-only operation (tracking, not modifying). However, it lacks details on error handling, rate limits, or data freshness.
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 front-loaded with the core purpose in the first sentence, followed by return details and authentication requirement in the second. Every sentence adds value without redundancy, making it efficient 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 single-parameter tool with no annotations and no output schema, the description is reasonably complete: it specifies the action, input, return data, and authentication need. It could improve by detailing output format or error cases, but it covers the essentials given the tool's simplicity.
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 description coverage is 100%, with the parameter 'order_number' fully documented in the schema as 'Nordstrom order number'. The description adds no additional parameter details beyond what the schema provides, so it meets 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 specific action ('track'), the resource ('Nordstrom shipment'), and the key identifier ('by order number'), distinguishing it from siblings like 'get_orders' or 'check_inventory' by focusing on shipment tracking rather than order retrieval or inventory checks.
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 tracking a shipment, but it does not explicitly state when to use this tool versus alternatives like 'get_orders' (which might list orders without tracking details) or provide exclusions. It mentions authentication as a prerequisite, offering some context.
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. Dates show when Glama detected each change.
10 tool updates
v1.0.0- First observed
add_to_bag - First observed
add_to_wishlist - First observed
check_inventory - First observed
get_bag - First observed
get_orders - First observed
get_product - First observed
get_wishlist - First observed
remove_from_bag - First observed
search_products - First observed
track_order
TDQS
Each tool has a clearly distinct purpose targeting specific e-commerce functions: shopping bag management (add, get, remove), wishlist management (add, get), product operations (search, get details), inventory checking, order history, and order tracking. No ambiguity exists between tools as they cover non-overlapping workflows.
All tools follow a consistent verb_noun pattern using snake_case: add_to_bag, get_product, search_products, etc. The naming convention is perfectly uniform throughout the set, making it predictable and easy to understand.
With 10 tools, the server is well-scoped for an e-commerce domain, covering core operations like product discovery, shopping cart management, wishlisting, inventory checks, and order tracking. Each tool earns its place without redundancy or bloat.
The toolset provides complete coverage for the Nordstrom shopping domain: full CRUD for the shopping bag (add, get, remove), wishlist management (add, get), product search and details, inventory checks, order history, and order tracking. No obvious gaps exist for typical user workflows.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
AI-agent product catalog: search, lookup & purchase routing over verified merchant data.
AI shopping gateway for product search, inventory, carts, and merchant-hosted checkout.
Routes natural-language shopping queries to merchant storefronts, returns normalized results.
AI-powered product search, affiliate links, and price negotiation for e-commerce platforms
Related MCP Servers
- AlicenseCqualityCmaintenanceA Model Context Protocol server enabling product searches across e-commerce platforms, price history tracking, and product specification-based searches using natural language prompts.219MIT
- AlicenseNot gradedqualityDmaintenanceAllows Large Language Models to interact with Kroger's grocery services, enabling product search, store lookup, and cart management through the Model Context Protocol.3MIT
- AlicenseNot gradedqualityDmaintenanceA Chrome extension-based Model Context Protocol server that enables AI assistants to control your browser, leveraging your existing configurations and login states for complex automation, content analysis, and semantic search.12,363MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI agents to automate web browsers using local Ollama models via the Model Context Protocol, supporting tasks like web search, data extraction, and e-commerce analysis through natural language commands.4MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/markswendsen-code/mcp-nordstrom'
If you have feedback or need assistance with the MCP directory API, please join our Discord server