Skip to main content
Glama

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

  1. Install dependencies:

npm install
  1. Build the TypeScript code:

npm run build

Usage

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 start

Configuration 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 term

  • pageSize (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/ID

  • quantity (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/ID

  • quantity (number, required): New quantity

Typical Workflow

  1. Open Browser: Use woolworths_open_browser to launch a browser window

  2. Log 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

  3. Capture Cookies: Use woolworths_get_cookies to capture session cookies

  4. Close Browser: Use woolworths_close_browser to close the browser (cookies are preserved)

  5. 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_cart

Technical 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/category

  • Categories API: /apis/ui/PiesCategoriesWithSpecials

  • Shopping 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 dev

Building

npm run build

Requirements

  • 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_cookies

  • Check 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 tools
woolworths_add_to_cartC

Add a product to the shopping cart/trolley

ParametersJSON Schema
NameRequiredDescriptionDefault
stockcodeYesThe product stockcode/ID to add
quantityNoQuantity to add (default: 1)

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.2/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters4/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.1/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters4/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.1/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters4/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.8/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters4/5

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.

Purpose4/5

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.

Usage Guidelines4/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
stockcodeYesThe product stockcode/ID

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
categoryNoOptional category filter (e.g., 'fruit-veg', 'meat-seafood')
pageSizeNoNumber of results to return (default: 20)

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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_navigateC

Navigate to a specific URL on the Woolworths website

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesThe URL to navigate to

TDQS

C2.9/5.0
Behavior2/5

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 but offers minimal insight. It states the action but doesn't describe what 'navigate' entails (e.g., page loading, potential errors, session persistence, or interaction with other tools). For a navigation tool in a web automation context, this lack of detail on behavior is a significant gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, direct sentence that efficiently conveys the core action without unnecessary words. It is front-loaded with the key verb and resource, making it easy to parse quickly, which is ideal for conciseness in a tool definition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity of web navigation (which can involve errors, loading states, or session dependencies) and the absence of both annotations and an output schema, the description is incomplete. It doesn't address what happens after navigation (e.g., success indicators, returned page content, or error handling), leaving critical context gaps for the agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% description coverage, with the 'url' parameter clearly documented. The description adds no additional meaning beyond what the schema provides (e.g., no constraints on URL format or domain specificity). According to the rules, with high schema coverage, the baseline is 3 even without param info in the description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Navigate to') and target resource ('a specific URL on the Woolworths website'), making the purpose immediately understandable. However, it doesn't explicitly differentiate from sibling tools like 'woolworths_open_browser' or 'woolworths_get_categories' that might involve navigation implicitly, 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.

Usage Guidelines2/5

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 the browser must be open first using 'woolworths_open_browser'), nor does it clarify use cases like navigating to product pages versus category pages, leaving the agent to infer context from sibling tool names alone.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
headlessNoWhether to run browser in headless mode (default: false for easier login)

TDQS

A4.4/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
stockcodeYesThe product stockcode/ID to remove

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
searchTermYesThe product search term
pageNumberNoPage number for pagination (default: 1)
pageSizeNoNumber of results to return (default: 36)
sortTypeNoSort order: TraderRelevance, PriceAsc, PriceDesc, Name (default: TraderRelevance)TraderRelevance
isSpecialNoFilter for special offers only (default: false)

TDQS

A3.5/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines4/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
stockcodeYesThe product stockcode/ID
quantityYesNew quantity

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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.

  1. 12 tool updatesv1.0.0
    • First observedwoolworths_add_to_cart
    • First observedwoolworths_close_browser
    • First observedwoolworths_get_cart
    • First observedwoolworths_get_categories
    • First observedwoolworths_get_cookies
    • First observedwoolworths_get_product_details
    • First observedwoolworths_get_specials
    • First observedwoolworths_navigate
    • First observedwoolworths_open_browser
    • First observedwoolworths_remove_from_cart
    • First observedwoolworths_search_products
    • First observedwoolworths_update_cart_quantity

TDQS

A3.7/5.0
Disambiguation5/5

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.

Naming Consistency5/5

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.

Tool Count5/5

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.

Completeness5/5

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

ActivityInactive
ResponsivenessSyncing

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

Related MCP Servers

Latest Blog Posts

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