Woolworths MCP Server
This MCP server enables automated interaction with Woolworths Australia's online shopping platform through browser automation and API integration.
Session Management:
Open and control a browser instance (non-headless by default for manual login)
Navigate to specific URLs on the Woolworths site
Capture and maintain session cookies for authenticated API requests
Close the browser while preserving session state for subsequent API use
Product Discovery:
Search products with customizable filters, sorting (relevance, price, name), and pagination
Browse products by category and retrieve the complete list of available categories
View current specials and promotional deals with optional category filtering
Get detailed product information using stockcodes
Shopping Cart Management:
Add items to cart with specified quantities
View cart contents
Update quantities of existing items
Remove items from cart
Typical Workflow: Open browser → log in manually → capture cookies → close browser → use authenticated API tools throughout the server's runtime
Provides comprehensive shopping automation for Woolworths Australia, including product search, browsing specials and categories, viewing detailed product information, and complete shopping cart management with add, remove, and quantity update capabilities.
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., "@Woolworths MCP Serversearch for milk and show me the top 5 results"
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.
Woolworths MCP Server
A Model Context Protocol (MCP) server for interacting with Woolworths Australia's online shopping platform. This server provides tools for browsing products, searching items, viewing specials, and more.
Features
Browser Automation: Uses Puppeteer to open a browser, navigate to Woolworths, and capture session cookies
Session Management: Maintains session cookies for authenticated API requests
Product Search: Search for products across the Woolworths catalog with filtering and sorting
Product Details: Get detailed information about specific products
Specials & Deals: Browse current specials and promotional offers
Category Browsing: Explore product categories
Shopping Cart: Add items to cart, view cart contents, update quantities, and remove items
Related MCP server: Instacart MCP Server
Installation
Install dependencies:
npm installBuild the TypeScript code:
npm run buildUsage
Running the Server
The MCP server runs on stdio and is designed to be used with MCP-compatible clients (like Claude Desktop, Cline, or other AI assistants).
npm startConfiguration for Claude Desktop
Add this to your Claude Desktop configuration file:
Windows: %APPDATA%\Claude\claude_desktop_config.json
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
{
"mcpServers": {
"woolworths": {
"command": "node",
"args": ["C:\\Users\\eglass\\Projects\\Woolworths\\dist\\index.js"]
}
}
}Make sure to update the path to match your installation directory.
Available Tools
1. woolworths_open_browser
Opens a browser and navigates to the Woolworths website. This is typically the first step to establish a session.
Parameters:
headless(boolean, optional): Whether to run in headless mode (default: false)
Example:
{
"headless": false
}2. woolworths_navigate
Navigate to a specific URL on the Woolworths website.
Parameters:
url(string, required): The URL to navigate to
3. woolworths_get_cookies
Retrieves and stores session cookies from the current browser session. Run this after logging in or when you have an active session.
Parameters: None
4. woolworths_close_browser
Closes the browser instance while preserving the captured session cookies.
Parameters: None
5. woolworths_search_products
Search for products on Woolworths.
Parameters:
searchTerm(string, required): The product search termpageSize(number, optional): Number of results to return (default: 20)
Example:
{
"searchTerm": "milk",
"pageSize": 20
}6. woolworths_get_product_details
Get detailed information about a specific product by its stockcode.
Parameters:
stockcode(string, required): The product stockcode/ID
7. woolworths_get_specials
Get current specials and deals from Woolworths.
Parameters:
category(string, optional): Category filter (e.g., 'fruit-veg', 'meat-seafood')pageSize(number, optional): Number of results to return (default: 20)
8. woolworths_get_categories
Get the list of available product categories.
Parameters: None
9. woolworths_add_to_cart
Add a product to the shopping cart/trolley.
Parameters:
stockcode(number, required): The product stockcode/IDquantity(number, optional): Quantity to add (default: 1)
Example:
{
"stockcode": 123456,
"quantity": 2
}10. woolworths_get_cart
Get the current contents of the shopping cart/trolley.
Parameters: None
11. woolworths_remove_from_cart
Remove a product from the shopping cart/trolley.
Parameters:
stockcode(number, required): The product stockcode/ID to remove
12. woolworths_update_cart_quantity
Update the quantity of a product in the shopping cart/trolley.
Parameters:
stockcode(number, required): The product stockcode/IDquantity(number, required): New quantity
Typical Workflow
Open Browser: Use
woolworths_open_browserto launch a browser windowLog In (if needed): The browser will open in non-headless mode by default, allowing you to manually log in to your Woolworths account if required
Capture Cookies: Use
woolworths_get_cookiesto capture session cookiesClose Browser: Use
woolworths_close_browserto close the browser (cookies are preserved)Use API Tools: Now you can use any of the API tools (search, get product details, etc.)
Example Usage Scenario
1. User: "Open the Woolworths browser"
→ Calls: woolworths_open_browser
2. User manually logs in on the opened browser (if needed)
3. User: "Get the session cookies"
→ Calls: woolworths_get_cookies
4. User: "Close the browser"
→ Calls: woolworths_close_browser
5. User: "Search for bananas"
→ Calls: woolworths_search_products with searchTerm="bananas"
6. User: "What are the current specials?"
→ Calls: woolworths_get_specials
7. User: "Add product 123456 to my cart"
→ Calls: woolworths_add_to_cart with stockcode=123456
8. User: "Show me my cart"
→ Calls: woolworths_get_cartTechnical Details
Browser Automation
The server uses Puppeteer to:
Launch a Chromium browser instance
Navigate to Woolworths website
Capture cookies from the browser session
Maintain user agent and browser fingerprint
API Integration
Once cookies are captured, the server makes authenticated requests to Woolworths' internal APIs:
Search API:
/apis/ui/Search/products(POST)Product Detail API:
/apis/ui/product/detail/{stockcode}Browse/Category API:
/apis/ui/browse/categoryCategories API:
/apis/ui/PiesCategoriesWithSpecialsShopping Cart API:
/apis/ui/Trolley/*(AddItem, RemoveItem, UpdateItem, Get)
Session Management
Session cookies are stored in memory for the duration of the server process. If the server restarts, you'll need to recapture cookies by opening the browser again.
Development
Watch Mode
For development with auto-recompilation:
npm run devBuilding
npm run buildRequirements
Node.js 18 or higher
npm or yarn
Chromium/Chrome (automatically installed by Puppeteer)
Notes
The browser opens in non-headless mode by default to allow for manual login
Session cookies are stored in memory and persist until the server is restarted
API endpoints are based on Woolworths' public web interface and may change
Always respect Woolworths' Terms of Service when using this tool
Troubleshooting
Browser won't open
Check that Puppeteer installed correctly
Try running with headless: true if display issues occur
API requests fail
Ensure you've captured cookies with
woolworths_get_cookiesCheck that the session hasn't expired (you may need to re-open browser and capture new cookies)
Verify the API endpoints are still valid
Connection issues
Ensure you have a stable internet connection
Check that Woolworths website is accessible from your location
License
MIT
Disclaimer
This is an unofficial tool and is not affiliated with or endorsed by Woolworths Group Limited. Use at your own risk and ensure compliance with Woolworths' Terms of Service.
Available Tools
12 toolswoolworths_add_to_cartC
Add a product to the shopping cart/trolley
| Name | Required | Description | Default |
|---|---|---|---|
| stockcode | Yes | The product stockcode/ID to add | |
| 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 states the action but fails to mention critical details such as whether this requires authentication, if it modifies server-side state, potential error conditions (e.g., invalid stockcode), or side effects. This leaves the agent with insufficient information to predict tool behavior safely.
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, direct sentence that efficiently conveys the core functionality without unnecessary words. It is front-loaded with the essential action, making it easy for an agent to parse quickly. Every word earns its place, achieving optimal 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?
Given the lack of annotations and output schema, the description is incomplete for a mutation tool. It does not cover behavioral aspects like authentication needs, error handling, or response format, which are crucial for an agent to use the tool effectively. The high schema coverage mitigates some gaps but not enough for a complex operation like adding to a cart.
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 clear documentation for both parameters (stockcode and quantity). The description adds no additional semantic context beyond what the schema provides, such as examples of valid stockcodes or constraints on quantity. This meets the baseline for adequate parameter documentation but does not enhance understanding.
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 ('Add') and the target ('product to the shopping cart/trolley'), making the purpose immediately understandable. However, it does not differentiate this tool from its sibling 'woolworths_update_cart_quantity', which could also modify cart contents, leaving room for ambiguity in tool selection.
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 like 'woolworths_update_cart_quantity' or 'woolworths_remove_from_cart'. It lacks context about prerequisites (e.g., needing an active session) or typical workflows, leaving the agent to infer usage from the tool name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
woolworths_close_browserB
Closes the browser instance
| 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 full burden for behavioral disclosure. 'Closes the browser instance' implies a destructive action that terminates a session, but it doesn't specify what happens to any open pages, cookies, or state. It also doesn't mention whether this requires an existing browser instance to be open or what happens if called multiple times.
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, clear sentence with no wasted words. It's perfectly front-loaded with the essential information and doesn't contain any unnecessary elaboration. This is an excellent example of conciseness for a simple operation.
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 zero-parameter tool with no output schema, the description adequately states what the tool does. However, as a potentially destructive operation with no annotations, it should ideally mention behavioral implications like what gets cleaned up or whether this affects other tools. The completeness is minimal but sufficient for the basic 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 tool has zero parameters, and schema description coverage is 100%, so there are no parameters to document. The description appropriately doesn't mention parameters since none exist, which is correct for this case. A baseline of 4 is appropriate 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 action ('Closes') and the resource ('the browser instance'), making the purpose immediately understandable. It doesn't explicitly differentiate from sibling tools, but given the tool name 'close_browser' and sibling 'open_browser', the distinction is somewhat implied through naming conventions.
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 or what context it should be used in. While it might be obvious from the name that this is for closing a browser after other operations, there's no explicit mention of prerequisites, sequencing, or relationship to sibling tools like 'open_browser'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
woolworths_get_cartB
Get the contents of the shopping cart/trolley
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
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 states the action ('Get') but doesn't disclose behavioral traits such as whether this requires authentication, if it's a read-only operation, what format the cart contents are returned in, or if there are any rate limits. The description is minimal and lacks essential context for safe and effective use.
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, clear sentence that directly states the tool's purpose without any unnecessary words. It's front-loaded and efficiently communicates the core function, making it easy to understand at a glance.
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 cart operations in e-commerce and the lack of annotations and output schema, the description is incomplete. It doesn't explain what the return value includes (e.g., items, quantities, prices) or any dependencies like needing an active session. For a tool that likely interacts with user data, 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 the schema description coverage is 100%, so there are no parameters to document. The description doesn't need to add parameter semantics, and it appropriately doesn't mention any. This meets the baseline for a parameterless tool.
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 ('contents of the shopping cart/trolley'), making the purpose immediately understandable. However, it doesn't explicitly differentiate from sibling tools like 'woolworths_update_cart_quantity' or 'woolworths_remove_from_cart', which also involve cart operations but with different actions.
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. For example, it doesn't clarify if this should be used to check cart contents before modifying it with 'woolworths_add_to_cart' or 'woolworths_remove_from_cart', or if it's for monitoring changes. There's no mention of prerequisites like requiring an open browser session.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
woolworths_get_categoriesB
Get the list of available product categories
| 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 states what the tool does but doesn't reveal any behavioral traits—such as whether it's a read-only operation, requires authentication, has rate limits, or returns structured data. For a tool with zero annotation coverage, this is a significant gap in transparency.
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, clear sentence that efficiently conveys the core function without any wasted words. It's front-loaded with the essential action and resource, making it easy for an agent to parse quickly. Every word earns its place.
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 lack of annotations and output schema, the description is incomplete for effective tool use. It doesn't explain what the return value looks like (e.g., a list of category names, IDs, or nested structures), nor does it address potential errors or dependencies. For a tool with no structured metadata, more context is needed.
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 zero parameters, and the input schema has 100% description coverage (though empty). The description doesn't need to add parameter semantics, as there are none to explain. It appropriately focuses on the tool's purpose without unnecessary detail, meeting the baseline 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 tool's purpose with a specific verb ('Get') and resource ('list of available product categories'), making it immediately understandable. However, it doesn't explicitly differentiate from sibling tools like 'woolworths_get_specials' or 'woolworths_get_product_details', which might also retrieve category-related information in different contexts.
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., whether a browser session must be open), nor does it compare to siblings like 'woolworths_search_products' or 'woolworths_get_specials' that might involve categories. This leaves the agent to infer usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
woolworths_get_cookiesA
Retrieves session cookies from the current browser session. Run this after logging in or establishing a session.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
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 mentions retrieving cookies from 'the current browser session,' implying it's read-only and session-dependent, which adds useful behavioral context. However, it lacks details on permissions, data format, or potential errors, leaving gaps for a tool that accesses sensitive session 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 two sentences, front-loaded with the core purpose and followed by usage timing. Every word earns its place with no redundancy or fluff, making it efficient and easy for an agent to parse 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 no annotations and no output schema, the description provides basic purpose and usage but lacks details on return values, error handling, or security implications. For a tool that retrieves session cookies—a sensitive operation—more context on output format or limitations would improve completeness, though the concise description is adequate for minimal functionality.
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?
There are 0 parameters, and schema description coverage is 100%, so no parameter documentation is needed. The description doesn't add param info, which is appropriate. A baseline of 4 is applied as per rules for zero parameters, since the tool's purpose is clear without parameter elaboration.
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 'Retrieves session cookies from the current browser session,' specifying both the action (retrieves) and resource (session cookies). It distinguishes from siblings by focusing on session data rather than browsing, cart operations, or product queries. However, it doesn't explicitly contrast with tools like woolworths_close_browser that might also involve session handling.
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 clear context for when to use it: 'Run this after logging in or establishing a session.' This gives practical timing guidance. It doesn't specify when not to use it or name alternatives, but the context implies it's for post-authentication scenarios, which is helpful for agent decision-making.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
woolworths_get_product_detailsC
Get detailed information about a specific product by its stockcode
| Name | Required | Description | Default |
|---|---|---|---|
| stockcode | Yes | The product stockcode/ID |
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. It states it 'Get[s] detailed information', implying a read-only operation, but doesn't clarify aspects like whether it requires authentication, rate limits, error handling, or what format the information is returned in. For a tool with no annotations, this is a significant gap in transparency.
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, clear sentence that directly states the tool's purpose without any unnecessary words. It is front-loaded with the core action and resource, making it highly efficient and easy to parse.
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 complexity (a read operation with one parameter) and the absence of annotations and output schema, the description is incomplete. It doesn't explain what 'detailed information' entails, how results are structured, or any behavioral traits like error cases. For a tool with no structured output, more descriptive context is needed to be fully helpful.
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 'stockcode' documented as 'The product stockcode/ID'. The description adds no additional semantic context beyond this, such as examples or format details. According to the rules, with high schema coverage (>80%), the baseline score is 3, which is appropriate here.
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 the resource 'detailed information about a specific product', making the purpose explicit. It distinguishes from siblings like 'woolworths_search_products' by focusing on a single product via stockcode rather than searching. However, it doesn't specify what 'detailed information' includes, which slightly limits differentiation.
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 when to use it over 'woolworths_search_products' or other siblings, nor does it specify prerequisites like requiring a stockcode from another operation. This leaves usage context unclear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
woolworths_get_specialsC
Get current specials and deals from Woolworths
| Name | Required | Description | Default |
|---|---|---|---|
| category | No | Optional category filter (e.g., 'fruit-veg', 'meat-seafood') | |
| pageSize | No | Number of results to return (default: 20) |
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 what the tool does but doesn't describe how it behaves—such as whether it requires authentication, has rate limits, returns real-time or cached data, or what format the results come in. This leaves significant gaps for an agent to understand the tool's operational characteristics.
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, direct sentence that efficiently conveys the core purpose without any unnecessary words. It's front-loaded with the essential information, making it easy to parse 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 lack of annotations and output schema, the description is incomplete for a tool that retrieves data. It doesn't explain what the return values look like (e.g., list of products with prices), potential limitations (e.g., pagination, availability), or how it integrates with other tools like cart operations. This leaves the agent with insufficient context to use the tool effectively.
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, clearly documenting both optional parameters ('category' and 'pageSize') with their purposes and defaults. The description adds no additional parameter information beyond what the schema provides, so it meets the baseline for adequate but not exceptional 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 verb ('Get') and resource ('current specials and deals from Woolworths'), making the purpose immediately understandable. However, it doesn't explicitly distinguish this tool from sibling tools like 'woolworths_search_products' or 'woolworths_get_categories', which could also retrieve product-related information.
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 whether this is for browsing deals versus searching for specific products, nor does it reference sibling tools like 'woolworths_search_products' for more targeted queries.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
woolworths_open_browserA
Opens a browser and navigates to Woolworths website. This is the first step to establish a session.
| Name | Required | Description | Default |
|---|---|---|---|
| headless | No | Whether to run browser in headless mode (default: false for easier login) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It mentions establishing a session, which implies this tool may create browser state or cookies needed for subsequent operations. However, it doesn't disclose behavioral traits like whether it requires authentication, potential side effects (e.g., opening visible browser windows), or error handling. The description adds some context but lacks depth for a tool with session implications.
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?
Two sentences that are front-loaded with the core action and followed by usage context. Every word earns its place: the first sentence states what it does, the second explains why/when to use it. No redundancy 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?
Given the tool's low complexity (1 optional parameter, no output schema, no annotations), the description is reasonably complete. It covers purpose and usage guidelines well. However, for a session-establishing tool, it could benefit from more behavioral details (e.g., what 'establish a session' entails, error cases). The absence of output schema isn't critical here as the action is straightforward.
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 fully documents the single parameter 'headless'. The description doesn't add any parameter-specific information beyond what's in the schema, but with 0 required parameters and high schema coverage, the baseline is 3. It gets a 4 because the description implicitly supports the parameter's purpose by mentioning 'easier login' in the context of session establishment, though this is not explicit in the description text itself.
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 ('Opens a browser and navigates to Woolworths website') and distinguishes it from siblings by emphasizing it's 'the first step to establish a session', unlike tools like woolworths_navigate which presumably navigates within an existing session. It uses precise verbs and identifies the target resource.
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?
Explicitly states when to use this tool: 'This is the first step to establish a session.' This provides clear context for usage relative to other tools like woolworths_close_browser (for ending sessions) or woolworths_navigate (for subsequent navigation). It effectively guides the agent on sequencing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
woolworths_remove_from_cartC
Remove a product from the shopping cart/trolley
| Name | Required | Description | Default |
|---|---|---|---|
| stockcode | Yes | The product stockcode/ID to remove |
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 disclosure. It states the action but doesn't cover important aspects like whether removal is permanent, if it requires authentication, what happens on success/failure, or any rate limits. This is particularly problematic for a mutation tool with zero annotation coverage.
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, clear sentence that efficiently communicates the core function without unnecessary words. It's appropriately sized for a simple tool with one parameter and gets straight to the point with 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 mutation tool with no annotations and no output schema, the description is insufficient. It doesn't explain what happens after removal (e.g., success confirmation, error cases, or what the cart state becomes). Given the complexity of modifying shopping cart state and the lack of structured safety information, more behavioral context is needed.
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 description doesn't add any parameter information beyond what's already in the schema (which has 100% coverage). The schema clearly documents the single 'stockcode' parameter as 'The product stockcode/ID to remove.' Since schema coverage is complete, the baseline score of 3 is appropriate - the description doesn't compensate but doesn't need to.
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 ('Remove') and target ('a product from the shopping cart/trolley'), making the purpose immediately understandable. However, it doesn't differentiate from sibling tools like 'woolworths_update_cart_quantity' which could also modify cart contents, leaving room for potential confusion about when to choose one over the other.
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. For example, it doesn't specify if this is for complete removal versus quantity adjustment (which 'woolworths_update_cart_quantity' might handle) or mention prerequisites like having items in the cart. The description only states what it does, not when to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
woolworths_search_productsA
Search for products on Woolworths. Requires session cookies to be obtained first.
| Name | Required | Description | Default |
|---|---|---|---|
| searchTerm | Yes | The product search term | |
| pageNumber | No | Page number for pagination (default: 1) | |
| pageSize | No | Number of results to return (default: 36) | |
| sortType | No | Sort order: TraderRelevance, PriceAsc, PriceDesc, Name (default: TraderRelevance) | TraderRelevance |
| isSpecial | No | Filter for special offers only (default: false) |
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. It mentions the requirement for session cookies, which is useful context about authentication needs. However, it doesn't describe other behavioral traits such as whether this is a read-only operation, potential rate limits, error handling, or the format of search results. For a search tool with zero annotation coverage, this is a significant gap in transparency.
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 sentences, front-loaded with the core purpose followed by a prerequisite. Every sentence earns its place by providing essential information without waste. It is appropriately sized and 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 the complexity (a search tool with 5 parameters), no annotations, and no output schema, the description is incomplete. It covers the purpose and a key prerequisite but lacks details on behavioral traits, result format, or error handling. The schema handles parameters well, but without annotations or output schema, the description should do more to compensate, making it only adequate with clear 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?
Schema description coverage is 100%, meaning all parameters are documented in the input schema with descriptions and defaults. The description adds no additional parameter semantics beyond what the schema provides. According to the rules, with high schema coverage (>80%), the baseline score is 3 even with no param info in the description, which applies here.
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 ('Search for products') and the resource ('on Woolworths'), providing a specific verb+resource combination. However, it doesn't explicitly differentiate this tool from sibling tools like 'woolworths_get_product_details' or 'woolworths_get_specials', which might also retrieve product information. The purpose is clear but lacks 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?
The description provides explicit context for usage with 'Requires session cookies to be obtained first', indicating a prerequisite. This helps the agent understand when to use this tool (after authentication). However, it doesn't specify when to use this tool versus alternatives like 'woolworths_get_specials' for special offers or 'woolworths_get_product_details' for detailed product info, so it lacks full alternative guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
woolworths_update_cart_quantityC
Update the quantity of a product in the shopping cart/trolley
| Name | Required | Description | Default |
|---|---|---|---|
| stockcode | Yes | The product stockcode/ID | |
| quantity | Yes | New quantity |
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 tool updates quantity but doesn't mention critical aspects like whether this requires authentication, if it's idempotent, what happens with invalid stockcodes or quantities, or if there are rate limits. For a mutation tool with zero annotation coverage, this is a significant gap in transparency.
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 directly states the tool's function without any fluff. It's front-loaded with the core action and resource, making it easy to parse quickly. Every word earns its place, achieving optimal 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?
Given the tool modifies cart state (a mutation) with no annotations and no output schema, the description is incomplete. It doesn't cover behavioral traits like side effects, error handling, or response format, which are crucial for safe invocation. For a 2-parameter mutation tool in a sibling-rich context, this leaves too many unknowns.
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 clear parameter definitions ('stockcode' as product ID, 'quantity' as new quantity). The description adds no additional semantic context beyond what's in the schema (e.g., it doesn't explain format constraints or valid ranges). This meets the baseline for high schema coverage but doesn't enhance understanding.
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 the quantity') and target resource ('of a product in the shopping cart/trolley'), making the purpose immediately understandable. However, it doesn't explicitly differentiate from sibling tools like 'woolworths_add_to_cart' or 'woolworths_remove_from_cart', which also modify cart contents, so it falls short of 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 no guidance on when to use this tool versus alternatives. For example, it doesn't specify if this is for existing items only (vs. 'woolworths_add_to_cart' for new items) or clarify edge cases like setting quantity to zero (which might overlap with 'woolworths_remove_from_cart'). This lack of context leaves the agent to infer usage from tool names alone.
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.
12 tool updates
v1.0.0- First observed
woolworths_add_to_cart - First observed
woolworths_close_browser - First observed
woolworths_get_cart - First observed
woolworths_get_categories - First observed
woolworths_get_cookies - First observed
woolworths_get_product_details - First observed
woolworths_get_specials - First observed
woolworths_navigate - First observed
woolworths_open_browser - First observed
woolworths_remove_from_cart - First observed
woolworths_search_products - First observed
woolworths_update_cart_quantity
TDQS
Every tool has a clearly distinct purpose with no ambiguity. Each tool targets a specific action on a specific resource (e.g., cart operations, product search, browser management), and the descriptions reinforce these distinctions. There is no overlap that would cause misselection.
All tools follow a consistent 'woolworths_verb_noun' pattern throughout, using snake_case and starting with the server name prefix. This predictable naming scheme makes it easy to identify and understand each tool's function at a glance.
With 12 tools, the count is well-scoped for an e-commerce shopping assistant server. Each tool earns its place by covering essential operations like browsing, searching, cart management, and session handling, without being excessive or too sparse.
The tool surface provides complete CRUD/lifecycle coverage for the Woolworths shopping domain. It includes session setup (open/close browser, get cookies), product discovery (categories, search, specials, details), and full cart management (add, remove, update, get), with no obvious gaps that would hinder agent 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
Live Australian grocery prices from Woolworths, Coles, Aldi and Harris Farm.
Agentic commerce gateway: discovery, search, checkout across Shopify/Woo/Odoo/PrestaShop.
Send quick greetings, scrape website content, and generate text or images on demand. Perform web s…
AI-powered product search, affiliate links, and price negotiation for e-commerce platforms
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceProvides grocery price and nutritional information search capabilities, allowing AI agents to search for food products, compare prices, and analyze nutritional content across different grocery stores.1-
- AlicenseAqualityCmaintenanceEnables AI agents to search for products, manage shopping carts, and place grocery orders on Instacart using browser automation. It includes comprehensive tools for store discovery, product searching, and secure checkout with explicit user confirmation.11739MIT
- AlicenseAqualityDmaintenanceEnables AI assistants to shop on frisco.pl, Poland's online grocery store, with secure manual authentication. Supports product search, cart management, and checkout preparation via browser automation without storing login credentials.107MIT
- AlicenseBqualityFmaintenanceEnables AI agents to search products, manage cart, and track orders on Walmart.com via browser automation.12893MIT
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/elijah-g/Woolworths-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server