Maintaining a WooCommerce Store with Claude Code: How SSH, WP-CLI and MCP Split the Work, No Coding Required (Jason Career Case Study)
On this page
- 1.What on an online store can go to Claude Code, and what needs human review
- 2.Case 1: A read-only inventory of plugins and payments with WP-CLI, without touching keys
- 3.Case 2: Don’t let the Cloudflare firewall block payment callbacks
- 4.Case 3: Bank transfer orders, and purchases GA4 missed
- 5.WordPress MCP, WooCommerce MCP, Cloudways MCP: what is officially available now
- 5.1Why Jason Career still uses SSH and WP-CLI
- 6.A safety checklist before letting AI change a store
- FAQ
Disclosure: this page links to Cloudways. If you sign up through it, Cloudways may pay Jason Finance a commission. It does not raise the price you pay.
Jason Career is my WordPress site where I sell ebooks, online courses and consulting services, and the store runs on WooCommerce. Since October 2026, day-to-day maintenance has been Claude Code’s job: it connects to the server over SSH and uses WP-CLI, the WordPress command-line tool, to look up data and change settings. How the first 10 days started and what got done is in Running WordPress Without Knowing SSH. This post covers only the store side: payments, checkout, caching, the firewall, and the WordPress MCP that many people have been asking about lately.
The short version: on an online store, I let Claude Code handle read-only checks, cache clearing and backed-up settings changes on its own, and I confirm everything involving payments, checkout, prices and customer data. As for tools, as of 29 October 2026 Jason Career uses only SSH and WP-CLI and has not installed any MCP. WordPress, WooCommerce and Cloudways all have official MCPs now, each suited to different jobs; the summary below follows their official documentation.
This is a maintenance record of my own website, plus the official Anthropic, WordPress, WooCommerce and Cloudways documentation I checked on 29 October 2026. Plugin versions, MCP features and each vendor’s interface will change, so check the official documentation before doing anything. This post is not security or legal advice.
What on an online store can go to Claude Code, and what needs human review
When an ordinary blog breaks, the worst case is usually a messed-up page layout. When a store breaks, a customer might pay and never receive the course, or the checkout page might not load at all. So I sort the work into three categories by one question: if this goes wrong, does it touch money or customer data?
| Category | Examples | Who decides |
|---|---|---|
| Read-only checks | Listing plugins and versions, checking whether payment plugins are active, counting orders by status (without viewing personal data), reading error logs | Claude Code does it on its own and reports back |
| Reversible maintenance | Clearing the WP Rocket and Varnish caches, adjusting firewall rules, backed-up changes to general settings | Scope and risk explained once before work starts, then it proceeds |
| Touches money or personal data | Payment plugin settings, turning payment methods on or off, checkout page fields, product prices and discounts, member and order data, exporting customer data | Each item waits until I have reviewed it |
Claude Code can technically do the third category too, but if it gets something wrong, the customers pay the price. Whether to switch off a payment method, for example, depends on customer habits and the payment provider contract, which AI cannot see.
Case 1: A read-only inventory of plugins and payments with WP-CLI, without touching keys
On 29 October, I asked Claude Code to put together Jason Career’s payment and server information. On the live site it used only read-only commands, such as listing active plugins (WP-CLI’s wp plugin list), and then checked which WooCommerce payment methods were switched on.
The inventory (29 October 2026):
| Item | Status |
|---|---|
| Environment | WordPress 7.1.4, WooCommerce 11.2.1, PHP 8.4 |
| Active plugins | 62 |
| Payment methods offered at checkout | PAYUNi (credit card, Apple Pay, UnionPay card), LINE Pay, bank transfer (shown only for service products) |
| Switched off | All ECPay payment methods, PAYUNi’s ATM, convenience store payment code and other methods, Stripe |
| E-invoices | Not issued automatically by the site |
The whole report contains no API keys, merchant IDs, HashKey, HashIV, passwords, customer personal data or order details. Payment plugin settings store exactly these values, so even “reading the settings” needs ground rules up front: look only at which payment methods are on, never read out the key fields, and never paste them into the chat or a document.
The inventory also turned up something I hadn’t noticed: the checkout page showed two PAYUNi credit card options at the same time, one from PAYUNi Pro for WooCommerce and one from Pay with PAYUNi, two separate plugins. Customers seeing two near-identical options may not know which one to pick.
This falls into the third category. Which one to switch off affects the checkout page and the existing payment flow, so Claude Code only reported it and left the decision to me.
Case 2: Don’t let the Cloudflare firewall block payment callbacks
On 24 October, a flood of crawlers brought Jason Career down: the server ran out of memory and crashed, and the checkout page went down with it. After Cloudflare firewall rules were added, server load dropped from about 13 to around 0.5.
The thing to watch most when adding the rules was payment callbacks. When a customer finishes paying with PAYUNi or LINE Pay, the payment provider’s server calls a URL on the site to report that the order has been paid. These requests don’t come from a person, so they can’t pass a human verification challenge; if they are blocked, the customer has paid but the order never changes to paid. That is why the rules specifically exempt these three URL patterns from human verification:
/wc-api/?wc-api=/wp-json/
Afterwards, a few “unable to process callback” entries appeared in the payment provider’s dashboard logs, a few each on 24 and 26 October. On checking, they were empty requests we had sent to the callback URL while testing the firewall, not errors on real orders; the logs also showed no case of “payment completed but the order not updated”.
Caching has to be thought about in layers as well: Cloudways has Varnish at the server level, and clearing only WP Rocket may not clear it, so after changing settings both layers need clearing. Details in Cloudways Varnish and WP Rocket, Two Cache Layers.
For a comparison of the plugins, fees and payout times of PAYUNi, LINE Pay and ECPay, see Choosing WooCommerce Payment Gateways in Taiwan.
Case 3: Bank transfer orders, and purchases GA4 missed
Jason Career’s service products can be paid by bank transfer. A transfer is paid afterwards: the customer has long since left the thank-you page after ordering, so by the time we confirm the payment, the browser-side tracking code no longer has a chance to run, and GA4 misses the purchase.
On 13 October this was changed so that the server sends the purchase event when an order changes to “paid”. A change like this touches the order flow but doesn’t change prices or payment methods, so I put it in the second category: explain the scope before starting, verify after the change.
WordPress MCP, WooCommerce MCP, Cloudways MCP: what is officially available now
MCP (Model Context Protocol) is an open standard for connecting AI to external systems. In Claude Code, claude mcp add adds an MCP server, and /mcp shows its status and handles sign-in (Claude Code official documentation). These are the official options I found on 29 October 2026:
| Name | Made by | Covers | Status and limits |
|---|---|---|---|
| MCP Adapter | WordPress.org (GitHub) | Exposes the site’s abilities (Abilities API) to AI | Version 0.7.1, requires WordPress 6.9 or later; abilities are not exposed by default and appear only once marked public; signs in as a WordPress user, and the usual permission checks still apply |
| WooCommerce MCP | WooCommerce | Products and orders | Developer preview, needs the MCP Adapter installed separately; remote connections use a WordPress account plus an application password |
| WordPress.com MCP | WordPress.com | Site content on WordPress.com | Self-hosted sites need a Jetpack connection (Jason Career does not have Jetpack installed); read-only or full access available |
| Cloudways MCP | Cloudways | Hosting level: servers, applications, deployment, backups, Cloudflare cache and more | Free for Cloudways customers; access tokens can be set to full, read-only or specific functions, with an expiry time |
The built-in abilities listed in WooCommerce’s official documentation are: listing, creating, updating and deleting products; listing orders, listing order notes, updating order status and adding order notes. The documentation also warns plainly that order and customer operations may expose personal data, and recommends a dedicated account with only the permissions it needs, keeping application passwords out of version control, and revoking ones no longer in use.
I could read Cloudways’ official MCP overview page, but its setup guide was blocked by the site’s bot verification when I checked, so I couldn’t read it in full. For the actual endpoint URL and token settings, go by what you see after signing in to the Cloudways dashboard.
Why Jason Career still uses SSH and WP-CLI
The upside of SSH plus WP-CLI is that it can do anything: check plugins, change settings, run database queries, clear caches, all with one set of tools. The downside is also that it can do anything, so safety depends entirely on rules and backups. I wrote about how I set those rules in the CLAUDE.md post.
MCP works the other way around: the site exposes only a few abilities, and AI can use only those. For a store, that scope is easier to control, for example exposing only product lookups and order status. But WooCommerce’s MCP is still a preview, and WooCommerce says the interface may change. Most of Jason Career’s work is also at the hosting and plugin settings level, such as Varnish, Cloudflare rules and the payment plugin inventory, none of which is among WooCommerce’s built-in abilities.
So for now I split the work like this:
- Site content and plugin settings: keep using SSH and WP-CLI, limited by rules.
- When I want AI to touch only products and order status: WooCommerce MCP is the cleaner approach; I’ll evaluate it once it leaves preview.
- Hosting-level tasks: Cloudways MCP can use a read-only token, which suits checking status first.
One more point relates to the firewall: the MCP Adapter’s HTTP endpoint sits under /wp-json/, and Jason Career has already exempted /wp-json/ from human verification for the payment callbacks. If I install it later, the only thing keeping people out will be the WordPress account and application password, so that account’s permissions need to be kept to the bare minimum.
A safety checklist before letting AI change a store
Here is the checklist I put together. It applies whether you use SSH or MCP:
- Least privilege: read-only wherever possible. If you use MCP, create a dedicated account with only the permissions it needs; with a Cloudways token, start with read-only and an expiry time.
- Keep each site separate: one set of accounts, keys and settings per site, so trouble on one doesn’t spread to another. Jason Career’s server also hosts another WordPress site, so every command has to specify which one.
- Keys stay out of the chat: payment keys, application passwords and database passwords never get pasted into a conversation with Claude, and never go into Git. During the inventory, only on/off status is read, never the key fields.
- Back up before changing: back up before any settings change; if the backup fails, don’t make the change.
- A human approves payments and checkout: for payment method switches, payment plugin settings, checkout fields, prices and discounts, Claude Code can only propose changes and describe their impact.
- Verify all the way to the last step: after changing the firewall or caching, confirm the checkout page loads and the payment callback URLs aren’t blocked.
- Customer data stays on the server: when checking orders, look only at status and counts; never read names, email addresses or phone numbers into the chat.
If you’re new to Claude Code, start with Claude Code for Beginners for installation, permissions and basic MCP setup.
FAQ
Can Claude Code maintain a WooCommerce store?
Yes, but you need to be clear about what to hand over. At Jason Career, Claude Code uses SSH and WP-CLI for read-only checks, cache clearing, backed-up settings changes and firewall adjustments; payment settings, the checkout page, prices and any change that touches customer data wait until I have reviewed them.
Is there an official WordPress MCP?
Yes. WordPress.org has an official MCP Adapter plugin. The version I found on 29 October 2026 was 0.7.1, which requires WordPress 6.9 or later. Site abilities are not exposed by default; they only appear in MCP once they are explicitly marked public. WordPress.com has its own MCP server, which self-hosted sites can use only through a Jetpack connection.
What can WooCommerce MCP do?
According to WooCommerce's official documentation, it is currently a developer preview. Its built-in abilities are listing, creating, updating and deleting products, plus listing orders, listing order notes, updating order status and adding order notes. WooCommerce warns that order and customer operations may expose personal data and recommends connecting with a dedicated account that has only the permissions it needs.
Should I use MCP or SSH to change WordPress with Claude Code?
As of 29 October 2026, Jason Career uses SSH and WP-CLI and has not installed the MCP Adapter. SSH plus WP-CLI can do anything, so it has to be limited by rules; MCP can use only the abilities the site exposes, which makes the scope easier to control, but WooCommerce's MCP is still in preview.
When AI changes an online store, what must a human confirm?
My rule: payment plugin and payment method settings, the checkout flow, product prices and discounts, member and order data, and anything that would send customer data off the server all need my review first. Back up before changing settings, and never paste keys into the chat.
After adding a Cloudflare firewall, payments succeed but orders don't update. What should I do?
First check whether the firewall is blocking the payment callback URLs. When Jason Career added Cloudflare rules on 24 October 2026, it exempted /wc-api/, ?wc-api= and /wp-json/ from the human verification challenge, because after a payment PAYUNi and LINE Pay notify the site by calling these URLs from their own servers.

Comments
Sign in with Google to comment. Your comment will not show your Google profile picture or name; it appears under a randomly generated nickname to protect your privacy.
By signing in you agree to this site's privacy policy.