# WooCommerce MCP tools: 104 tools for AI agents | Respira

> Products, variations, categories, tags, orders, stock, and sales reporting. WooCommerce intelligence for storefront automation through AI. Duplicate-first safety on every write.

Source: https://www.respira.press/tools/woocommerce

---

The WooCommerce MCP tools catalog

# WooCommerce MCP tools for AI agents

Products, variations, categories, tags, orders, stock, and sales reporting. WooCommerce intelligence for storefront automation through AI. Duplicate-first safety on every write.

104tools

1category

100%writes snapshot-backed

[Browse the full 234-tool catalog](https://www.respira.press/tools) [Install the CLI](https://www.respira.press/cli) 

## WooCommerce(104)

Products, variations, categories, tags, orders, stock, and sales reporting. WooCommerce intelligence for storefront automation through AI.

`woocommerce_list_products`

List WooCommerce products with status/search/pagination filters.

read maker needs woocommerce 

`woocommerce_get_product`

Get detailed information for a single WooCommerce product.

read maker needs woocommerce 

`woocommerce_create_product`

Create a WooCommerce product.

write maker needs woocommerce 

`woocommerce_update_product`

Update an existing WooCommerce product. A draft or pending product is edited in place. A live product (published, scheduled or private) is copied to a draft duplicate and the edit lands there (duplicate\_created, duplicate\_id in the result); it goes live when the person approves it with approve\_duplicate. A status change on a live product is refused unless the site owner turned on direct editing. Needs add-on 4.1.6+ for the duplicate step; older add-ons write live.

write maker needs woocommerce 

`woocommerce_duplicate_product`

Duplicate a WooCommerce product to a draft copy.

write maker needs woocommerce 

`woocommerce_list_categories`

List WooCommerce product categories.

read maker needs woocommerce 

`woocommerce_get_category`

Get detailed information for a single WooCommerce product category.

read maker needs woocommerce 

`woocommerce_create_category`

Create a WooCommerce product category.

write maker needs woocommerce 

`woocommerce_update_category`

Update a WooCommerce product category.

write maker needs woocommerce 

`woocommerce_delete_category`

Delete a WooCommerce product category.

destructive maker needs woocommerce 

`woocommerce_list_tags`

List WooCommerce product tags.

read maker needs woocommerce 

`woocommerce_get_tag`

Get detailed information for a single WooCommerce product tag.

read maker needs woocommerce 

`woocommerce_create_tag`

Create a WooCommerce product tag.

write maker needs woocommerce 

`woocommerce_update_tag`

Update a WooCommerce product tag.

write maker needs woocommerce 

`woocommerce_delete_tag`

Delete a WooCommerce product tag.

destructive maker needs woocommerce 

`woocommerce_list_orders`

List WooCommerce orders. Every order carries date\_paid (same format and store timezone as date\_created, null while unpaid) and payment\_method\_title for payment reconciliation, plus customer\_ip\_address and customer\_user\_agent (the request fingerprint WooCommerce recorded, null when it recorded nothing) and meta\_data as a key/value list, so a card-testing run can be triaged from one call. Meta keys whose name matches a credential pattern (token, secret, key, password, hash, nonce, auth) are withheld; meta\_data\_withheld\_count and meta\_data\_withheld\_keys say which. Meta values over 500 characters are cut and the entry is marked truncated. The fingerprint fields are personal data and stay in this response: Respira telemetry never records tool results. Pass include\_item\_meta: true to add each line item's meta.

read maker needs woocommerce 

`woocommerce_get_order`

Get detailed information for a single WooCommerce order, including date\_paid (same format and store timezone as date\_created, null while unpaid), payment\_method\_title, customer\_ip\_address, customer\_user\_agent and meta\_data as a key/value list. Meta keys whose name matches a credential pattern (token, secret, key, password, hash, nonce, auth) are withheld and reported in meta\_data\_withheld\_count and meta\_data\_withheld\_keys, so filtered data never looks like missing data. Pass include\_item\_meta: true to add each line item's meta.

read maker needs woocommerce 

`woocommerce_update_order_status`

Update WooCommerce order status.

destructive maker needs woocommerce 

`woocommerce_get_stock_status`

Get inventory overview with low-stock and out-of-stock counts.

read maker needs woocommerce 

`woocommerce_update_stock`

Update stock quantity or stock status for a product. Previews by default and writes nothing: show the person the preview, and send the same call with confirm: true only after they say yes. A snapshot is taken before each write, so revert\_pricing or restore\_snapshot undoes it. A move past the guardrails (price over 50%, discount over 70%, stock over 1000 units) comes back blocked; add confirm\_large\_change: true only if the person meant a change that large.

write maker needs woocommerce 

`woocommerce_revenue_summary`

Bounded HPOS-compatible revenue summary with currency, store timezone, exact date boundaries, included statuses, pagination coverage, and explicit gross/discount/refund/tax/shipping/net definitions.

read maker needs woocommerce 

`woocommerce_sales_timeseries`

Revenue timeseries grouped by day, week, or month in the WooCommerce store timezone.

read maker needs woocommerce 

`woocommerce_top_products`

Rank products by bounded net sales with quantity, gross sales, net sales, and order counts.

read maker needs woocommerce 

`woocommerce_orders_summary`

Order count, status distribution, revenue metrics, coverage, currency, timezone, and date definitions.

read maker needs woocommerce 

`woocommerce_customers_summary`

Privacy-safe active, repeat-in-range, one-time, and guest customer counts. Never returns names or emails.

read maker needs woocommerce 

`woocommerce_get_store_configuration`

Read sanitized WooCommerce currency, timezone, tax, units, checkout, page, and HPOS configuration. Credentials and secrets are never returned.

read maker needs woocommerce 

`woocommerce_list_payment_gateways`

List payment gateway IDs, public titles, enabled state, and supported features without settings, credentials, or tokens.

read maker needs woocommerce 

`woocommerce_list_shipping_zones`

List WooCommerce shipping zones, locations, and public method state.

read maker needs woocommerce 

`woocommerce_list_tax_rates`

List WooCommerce tax rates for a tax class without exposing sensitive configuration.

read maker needs woocommerce 

`woocommerce_list_webhooks`

List native WooCommerce webhooks. Secrets are never returned.

read maker needs woocommerce 

`woocommerce_get_webhook`

Read one native WooCommerce webhook without its secret.

read maker needs woocommerce 

`woocommerce_create_webhook`

Create a native WooCommerce webhook. Requires an approval-token round trip, an allowlisted topic, and a public HTTPS target. Secret is write-only.

write maker needs woocommerce 

`woocommerce_update_webhook`

Update a native WooCommerce webhook through an approval-token round trip. Targets must remain HTTPS and secrets remain write-only.

destructive maker needs woocommerce 

`woocommerce_delete_webhook`

Delete a native WooCommerce webhook through an approval-token round trip.

destructive maker needs woocommerce 

`woocommerce_test_webhook`

Send a rate-limited redacted test payload to a webhook target through an approval-token round trip. Test payloads are not stored.

write maker needs woocommerce 

`woocommerce_list_brands`

List product brands (WooCommerce 9.4+ product\_brand taxonomy).

read maker needs woocommerce 

`woocommerce_get_brand`

Get a single product brand.

read maker needs woocommerce 

`woocommerce_create_brand`

Create a product brand.

write maker needs woocommerce 

`woocommerce_update_brand`

Update a product brand.

write maker needs woocommerce 

`woocommerce_delete_brand`

Delete a product brand.

destructive maker needs woocommerce 

`woocommerce_list_products_advanced`

List products with advanced filters: category, tag, stock status, on-sale, featured, price range.

read maker needs woocommerce 

`woocommerce_find_product`

Find products by natural-language query across titles, descriptions, SKUs, and categories, ranked by relevance.

read maker needs woocommerce 

`woocommerce_catalog_health`

Audit the catalog: missing images, thin descriptions, uncategorized products, missing prices, stock inconsistencies. Returns a 0-100 health score.

read maker needs woocommerce 

`woocommerce_bulk_update_products`

Update up to 100 products in one call (name, descriptions, status, featured, visibility). Changing the status or catalog visibility of a live product (published, scheduled or private) needs a person's approval: preview with dry\_run first; the real call then answers respira\_approval\_required with data.approval\_request.approval\_token. The token is for the person, not for you: show them the predicted effect, ask, and send it back only after they say yes. Send it with exactly the same arguments. Other fields are written at once, with a snapshot before each product.

destructive maker needs woocommerce 

`woocommerce_bulk_update_prices`

Bulk-change prices (percentage, absolute delta, or set value) for up to 100 products by IDs or category. Previews by default and writes nothing: show the person the preview, and send the same call with confirm: true only after they say yes. A snapshot is taken before each write, so revert\_pricing or restore\_snapshot undoes it. A move past the guardrails (price over 50%, discount over 70%, stock over 1000 units) comes back blocked; add confirm\_large\_change: true only if the person meant a change that large.

destructive maker needs woocommerce 

`woocommerce_schedule_sale`

Schedule sale prices with start/end dates for up to 100 products. Previews by default and writes nothing: show the person the preview, and send the same call with confirm: true only after they say yes. A snapshot is taken before each write, so revert\_pricing or restore\_snapshot undoes it. A move past the guardrails (price over 50%, discount over 70%, stock over 1000 units) comes back blocked; add confirm\_large\_change: true only if the person meant a change that large.

destructive maker needs woocommerce 

`woocommerce_revert_pricing`

Revert a product's pricing to a Respira snapshot taken before a commerce edit.

destructive maker needs woocommerce 

`woocommerce_bulk_update_stock`

Set, increase, or decrease stock for up to 100 products in one call. Previews by default and writes nothing: show the person the preview, and send the same call with confirm: true only after they say yes. A snapshot is taken before each write, so revert\_pricing or restore\_snapshot undoes it. A move past the guardrails (price over 50%, discount over 70%, stock over 1000 units) comes back blocked; add confirm\_large\_change: true only if the person meant a change that large.

destructive maker needs woocommerce 

`woocommerce_find_low_stock`

List products at or below a stock threshold (defaults to the WooCommerce low-stock setting), sorted by urgency.

read maker needs woocommerce 

`woocommerce_analyze_shop_page`

Analyze the shop page: product grids, hierarchy score, issues, recommendations. Works on a block theme by reading the native archive-product template (Product Collection / Product Template blocks), and falls back to the page-builder layer on builder-built shops. A pure FSE storefront is supported, not a fallback.

read maker needs woocommerce 

`woocommerce_analyze_product_page`

Quality-score a single product page: images, gallery, description depth, price, category.

read maker needs woocommerce 

`woocommerce_update_product_card_layout`

Change product grid layout (columns, rows, ordering) on archive pages. On a block theme this edits the native archive-product template by exact block path, fingerprint-guarded and verified after the write; on builder-built shops it falls back to the page-builder layer. Snapshots; dry\_run supported.

destructive maker needs woocommerce 

`woocommerce_add_low_stock_badge`

Preview or add a low-stock badge to WooCommerce product cards. Block themes only: this writes into the native archive-product template and has no page-builder path. Use dry\_run=true to inspect affected products without writing. A non-dry-run call succeeds only after the badge is inserted and verified; an unsupported template returns an explicit error and never reports a false success.

write maker needs woocommerce 

`woocommerce_add_sale_badge`

Preview or add a sale badge to WooCommerce product cards. Block themes only: this writes into the native archive-product template and has no page-builder path. Requires the WooCommerce sale-badge block to be registered on the site. Use dry\_run=true to inspect on-sale products. A non-dry-run call succeeds only after the template is changed and verified; an unsupported template returns an explicit error without mutation.

write maker needs woocommerce 

`woocommerce_analyze_storefront_card`

Report the field composition of the WooCommerce product card on a block theme: which canonical blocks it is built from (woocommerce/product-image, product-title, product-price, product-button, and so on), their exact block paths, and their render order. Read-only. Call this before update\_storefront\_card\_field so you address a field that actually exists.

read maker needs woocommerce 

`woocommerce_update_storefront_card_field`

Set attributes on one named field of the WooCommerce product card, addressed by its CANONICAL block name (for example woocommerce/product-image or woocommerce/product-price), on a block theme. Requested attributes are intersected with the attributes the installed block actually registers, so an unknown key is refused rather than written and reported as success. Snapshot, fingerprint guard, dry\_run and render verification all apply.

write maker needs woocommerce 

`woocommerce_update_checkout_layout`

Preview or apply targeted checkout layout changes. Use dry\_run=true first. The tool never reports success for intent-only or no-op writes; unsupported layouts return respira\_woo\_fse\_write\_not\_supported without changing checkout content.

destructive maker needs woocommerce 

`woocommerce_set_product_attributes`

Set global (taxonomy) or custom attributes on a product; missing terms are created. Mark variation: true to use for variations. Snapshots.

destructive maker needs woocommerce 

`woocommerce_generate_variations`

Create all missing variations from the product's variation attributes (cartesian product), up to 100 per call. On a live product (published, scheduled or private) it previews by default and writes nothing, listing each variation with its attributes and price: show the person, and send the same call with confirm: true only after they say yes. A draft or pending product is written directly (dry\_run: true previews). A snapshot is taken before the write. A price under the floor or a starting stock over 1000 units on a live product comes back blocked; add confirm\_large\_change: true only if the person meant it. Needs WooCommerce add-on 4.1.7 for the preview.

write maker needs woocommerce 

`woocommerce_create_variation`

Create one variation with explicit attribute values, price, SKU, stock, and image. On a live product (published, scheduled or private) it previews by default and writes nothing, showing the variation with its attributes and price: show the person, and send the same call with confirm: true only after they say yes. A draft or pending product is written directly (dry\_run: true previews). A snapshot is taken before the write. A price under the floor, a discount over 70% or a starting stock over 1000 units on a live product comes back blocked; add confirm\_large\_change: true only if the person meant it. Needs WooCommerce add-on 4.1.7 for the preview.

write maker needs woocommerce 

`woocommerce_create_global_attribute`

Create a global product attribute with terms. Supports the WooCommerce 10.9 wc-visual type for per-term color/image swatches.

write maker needs woocommerce 

`woocommerce_set_variation_gallery`

Set a variation's image (first ID) and, when a variation-gallery plugin is active, its gallery (remaining IDs). Snapshots.

destructive maker needs woocommerce 

`woocommerce_list_coupons`

List coupons with optional search.

read maker needs woocommerce 

`woocommerce_create_coupon`

Create a coupon: percent or fixed discount, expiry, usage limits, product and email restrictions.

write maker needs woocommerce 

`woocommerce_update_coupon`

Update any coupon field by coupon ID.

destructive maker needs woocommerce 

`woocommerce_create_customer`

Create a WooCommerce customer with optional billing/shipping addresses. Passwords auto-generate when omitted and are never returned.

write maker needs woocommerce 

`woocommerce_update_customer`

Update a customer's name, email, billing, or shipping details by user ID.

destructive maker needs woocommerce 

`woocommerce_add_order_note`

Add a note to an order. Private by default; customer\_note: true emails the customer.

write maker needs woocommerce 

`woocommerce_get_order_refunds`

List refunds on an order with total refunded and remaining refundable amounts.

read maker needs woocommerce 

`woocommerce_create_order_refund`

Refund an order. DRY-RUN BY DEFAULT: pass dry\_run: false to execute. Gateway money movement is opt-in via refund\_payment: true.

destructive maker needs woocommerce 

`woocommerce_list_subscriptions`

List WooCommerce Subscriptions, filterable by status, customer, or product. Requires the WooCommerce Subscriptions extension on the site.

read maker needs woocommerce 

`woocommerce_get_subscription`

Get one subscription with items, dates, and payment method.

read maker needs woocommerce 

`woocommerce_update_subscription_status`

Pause (on-hold), reactivate, or cancel a subscription. DRY-RUN BY DEFAULT: pass dry\_run: false to apply. Transitions are validated against Subscriptions rules; snapshots taken.

destructive maker needs woocommerce 

`woocommerce_update_subscription_dates`

Move a subscription's next\_payment, end, or trial\_end dates (empty string clears). DRY-RUN BY DEFAULT: moving next\_payment changes when the customer is charged.

destructive maker needs woocommerce 

`woocommerce_add_subscription_note`

Add a note to a subscription. Private by default; customer\_note: true emails the customer.

write maker needs woocommerce 

`woocommerce_list_bookings`

List WooCommerce Bookings, filterable by status or product. Requires the WooCommerce Bookings extension on the site.

read maker needs woocommerce 

`woocommerce_get_booking`

Get one booking with times, persons, resource, and order linkage.

read maker needs woocommerce 

`woocommerce_update_booking_status`

Confirm, mark paid, complete, or cancel a booking. DRY-RUN BY DEFAULT: status changes can trigger customer emails.

destructive maker needs woocommerce 

`woocommerce_reschedule_booking`

Move a booking to a new time window. DRY-RUN BY DEFAULT with a conflict scan against other bookings on the same product; overlapping windows need force: true.

destructive maker needs woocommerce 

`woocommerce_list_membership_plans`

All membership plans with member counts. Requires the WooCommerce Memberships extension on the site.

read maker needs woocommerce 

`woocommerce_list_memberships`

List user memberships, filterable by plan, customer, or status.

read maker needs woocommerce 

`woocommerce_get_membership`

Get one user membership with plan, dates, and order linkage.

read maker needs woocommerce 

`woocommerce_update_membership_status`

Pause, resume, or cancel a member's access. DRY-RUN BY DEFAULT: the change takes effect immediately for the member.

destructive maker needs woocommerce 

`woocommerce_set_membership_end_date`

Move or clear a membership's expiry date (empty string = never expires). DRY-RUN BY DEFAULT.

destructive maker needs woocommerce 

`woocommerce_create_cart_link`

Create a signed multi-item cart URL for a shopper: their cart fills server-side and they land on this store's own checkout, with the order attributed to the agent source. The assisted-checkout layer that works while native agent checkout programs are gated.

write maker needs woocommerce 

`woocommerce_agent_orders_report`

Orders and revenue that arrived through agent cart links over a period, with a per-source breakdown.

read maker needs woocommerce 

`woocommerce_configurator_status`

Which product configurator is active (STAGGS) plus how many products and attribute groups use it. Start here before any configurator work.

read maker needs woocommerce 

`woocommerce_get_product_configurator`

Read a product's STAGGS configurator state: the enabled flag and all sgg\_ meta (steps, attributes, themes).

read maker needs woocommerce 

`woocommerce_set_product_configurator`

Enable or disable the STAGGS configurator on a product. Supports dry\_run. Snapshots the product before and after.

write maker needs woocommerce 

`woocommerce_list_configurator_attributes`

List STAGGS attribute groups (the reusable option sets a configurator is built from): id, title, type.

read maker needs woocommerce 

`woocommerce_get_configurator_items`

Read a STAGGS attribute's option items. The workflow is read, edit the returned array, then write it back with woocommerce\_set\_configurator\_items, so STAGGS' internal sub-field names never have to be guessed.

read maker needs woocommerce 

`woocommerce_set_configurator_items`

Replace a STAGGS attribute's option items, written through the STAGGS/Carbon Fields helpers so storage stays consistent. Supports dry\_run. Snapshots the attribute.

destructive maker needs woocommerce 

`woocommerce_get_plugin_state`

Read allow-listed options and post meta for a known third-party plugin (currently: staggs). Keys outside the allow-list are ignored on read.

read maker needs woocommerce 

`woocommerce_set_plugin_state`

Write allow-listed options and post meta for a known third-party plugin (currently: staggs). Any key outside the allow-list refuses the whole request. Supports dry\_run. Snapshots the post.

write maker needs woocommerce 

`woocommerce_readiness_fixlist`

The catalog AI-readiness scan as an ordered work queue: weakest products first, each failing check paired with the tool and params that fix it. Work it top-down to raise the catalog score.

read maker needs woocommerce 

`woocommerce_set_image_alt`

Set alt text on a product's featured image (default) or a specific gallery image. The readiness check that fails most often.

write maker needs woocommerce 

`woocommerce_configure_feed`

Read or update product feed settings (formats, cadence, countries, llms.txt) and get the public feed URLs. Call with no params to read.

write maker needs woocommerce 

`woocommerce_generate_feed`

Build the enabled product feeds now (batched in the background; the first batch runs immediately, so this works even when wp-cron is dead). Idempotent while a build is running.

write maker needs woocommerce 

`woocommerce_get_feed_status`

Per-format feed URLs, row counts, generation times, running build progress, Action Scheduler health, last successful build, pending/failed/overdue actions, and stale-lock state. This tool is read-only.

read maker needs woocommerce 

`woocommerce_repair_feed_scheduler`

Safely clear a confirmed-stale Respira feed lock and idempotently resume the existing build. Does not delete Action Scheduler history. Returns a verified mutation envelope; returns a non-success response when no stale lock exists.

write maker needs woocommerce 

`woocommerce_validate_feed`

Check a catalog sample against one feed format's requirements (identifiers, images, descriptions, titles, category mapping) with per-check failing product IDs, so the catalog tools can fix them.

read maker needs woocommerce 

`woocommerce_set_feed_category_mapping`

Map WooCommerce product categories to Google product categories for the feeds. Call with no params to list mapped and unmapped categories with product counts.

write maker needs woocommerce 

`woocommerce_product_ai_readiness`

Score how well one product is described for AI shopping assistants: description depth, images/alt text, price, SKU, GTIN, brand, attributes, availability.

read maker needs woocommerce 

`woocommerce_catalog_ai_readiness`

Score the whole catalog for AI shopping readiness: average score, distribution, top issues, weakest products.

read maker needs woocommerce 

## All tools, all builders

Need the complete picture? Browse every Respira MCP tool across 32 categories with filters for operation, license tier, and safety feature.

[See the full tools catalog →](https://www.respira.press/tools) 

### You're not the only one *talking* to WordPress.

The Respira community is where agency owners debug Divi migrations at 11pm, where vibe coders swap prompts that actually ship, and where the roadmap gets written out loud. *Breathe with us.*

Lines of code pushed 

24,897,653 

Live from the ecosystem · updates as the agent ships

WordPress sites connected 

3,460

Real sites, run by the people in these rooms

Find us wherever you already are 

[ Slack Async threads, release-day huddles, and the #show-your-work channel that never sleeps. Join ](https://go.respira.cafe/slack) [ Discord Live voice on release days, screenshare debugging, and the vibe-coder corner that's always buzzing. Join ](https://go.respira.cafe/respira-discord) [ Reddit Questions, answers and build logs in the open, where the thread is still there months later. Join ](https://www.reddit.com/r/RespiraforWordPress/) [ Facebook group Agency owners and site owners comparing notes on running AI against real WordPress sites. Join ](https://www.facebook.com/groups/1447068940850273/) [ GitHub Discussions Long-form Q&A, bug reports, feature requests, and the public roadmap. Open ](https://go.respira.cafe/github-discussions) [ ! Founder notes Letters from Mihai on what shipped, what broke and what is next. Every one is archived. Read ](https://www.respira.press/newsletter)
