Skip to main content
Glama
Jacques-Murray

WooCommerce MCP Server

List WooCommerce Products

woocommerce_list_products
Read-onlyIdempotent

Search and filter WooCommerce products by name, SKU, status, type, price, stock, and more. Returns paginated list with key details.

Instructions

Search and list products in the WooCommerce store catalog.

Supports filtering by search term, SKU, status, type, category, tag, stock status, sale status, and price range. Does NOT return product variations for variable products - use woocommerce_list_product_variations for those.

Args:

  • search (string, optional): Match against name/SKU/description

  • sku (string, optional): Exact SKU match

  • status ('any'|'draft'|'pending'|'private'|'publish'): default 'any'

  • type ('simple'|'grouped'|'external'|'variable'): optional

  • category (string, optional): category ID(s), comma-separated

  • tag (string, optional): tag ID(s), comma-separated

  • stock_status ('instock'|'outofstock'|'onbackorder'): optional

  • featured (boolean, optional)

  • on_sale (boolean, optional)

  • min_price / max_price (string, optional): numeric string bounds

  • orderby / order: sorting controls

  • page / per_page: pagination (default page=1, per_page=20, max 100)

  • response_format ('markdown'|'json'): default 'markdown'

Returns: paginated list of products with id, name, sku, type, status, pricing, stock, and categories.

Examples:

  • Use when: "find all out of stock products" -> stock_status="outofstock"

  • Use when: "show products under $20 on sale" -> on_sale=true, max_price="20.00"

  • Don't use when: you need details of one known product ID (use woocommerce_get_product)

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
skuNoFilter by an exact SKU
tagNoFilter by tag ID (comma-separated for multiple)
pageNoPage number to retrieve, 1-based (default: 1)
typeNoFilter by product type
orderNoSort direction (default: desc)desc
searchNoSearch term to match against product name/SKU/description
statusNoFilter by product status (default: any)any
on_saleNoFilter to only products currently on sale
orderbyNoField to sort results by (default: date)date
categoryNoFilter by category ID (comma-separated for multiple)
featuredNoFilter to only featured (true) or non-featured (false) products
per_pageNoNumber of results per page, 1-100 (default: 20)
max_priceNoMaximum price filter (numeric string, e.g. '99.99')
min_priceNoMinimum price filter (numeric string, e.g. '10.00')
stock_statusNoFilter by stock status
response_formatNoOutput format: 'markdown' for human-readable text or 'json' for machine-readable structured datamarkdown
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnlyHint=true, destructiveHint=false, and idempotentHint=true. The description adds value by detailing output structure (paginated list with specific fields), response_format options, and limitations (no variations coverage). No contradictions with annotations.

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 well-organized into sections: overview, exclusion note, parameter list with inline explanations, return value summary, and usage examples. It is concise yet comprehensive, with no wasted sentences.

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

Completeness5/5

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

Given 16 parameters, 100% schema coverage, and no output schema, the description fully compensates by explaining return structure, providing examples, and referencing sibling tools. It is complete and actionable for an agent.

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

Parameters5/5

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

Schema coverage is 100%, but the description adds significant meaning by grouping parameters, providing explanation of how each is used in context (e.g., 'Match against name/SKU/description' for search), and including practical examples that clarify parameter combinations (e.g., on_sale and max_price).

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 tool searches and lists products in the WooCommerce store catalog. It distinguishes itself by noting it does not return variations, directing users to woocommerce_list_product_variations for that purpose, and differentiates from woocommerce_get_product for single product retrieval.

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?

Explicit usage guidance is provided, including when to use (e.g., 'find all out of stock products'), when not to use (e.g., needing details of a known product ID), and alternative tools to use instead (woocommerce_get_product, woocommerce_list_product_variations).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Install Server

Other Tools

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/Jacques-Murray/woocommerce-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server