woocommerce-mcp tool explorer

A Model Context Protocol server for running one or more WooCommerce stores through the WooCommerce REST API (GitHub · Docs · npm · Docker Hub · MCP Registry).

An MCP server runs next to your MCP client and talks to your store, so it does not run on this page. This page lists every tool, prompt, and resource that the server exposes, with the exact input schemas it reports over tools/list, and builds the JSON-RPC requests a client would send.

Stores are read-only until you allow writes. Write tools then return a preview of the exact REST request and apply it only when called again with confirm: true; dryRun: true always previews. Each preview carries a previewId, a fingerprint of the tool, store, and arguments; pass it back with the confirm call and the server refuses the write with preview_mismatch if the arguments no longer match the preview. When a write is computed from store data, such as a percentage price change, the preview lists the records it read under preconditions with before and after values, and the previewId also fingerprints that data: if it changed before the confirm, the write is refused with stale_preview and nothing is sent, so ask for a fresh preview. Every tool takes an optional store id when several stores are configured.

Signed approvals (0.6.0, optional). With WOOCOMMERCE_APPROVAL_SECRET set, write tools also take an approval input: a short-lived, single-use token that a person signs for the exact previewId, tool, and store after reviewing the preview, for example with woocommerce-mcp approve <previewId>. The agent never holds the secret, so it cannot approve its own writes. Refusals: approval_required (no token or no previewId), approval_invalid (bad signature or format, or a lifetime over the limit), approval_expired, approval_mismatch (signed for another previewId, tool, or store), and approval_replayed (already used). This catalog was captured with signed approvals on, so the approval field is listed; without the secret the server does not list it and behaves as in 0.5.0.