WordPress logo
Content & Hosting
Live

WordPress MCP server

Diagnose and maintain a WordPress site over SSH, WP-CLI and the REST APIs.

Tools
109
Read-only
80
Write
29
Off by default
Destructive
23
Flagged distinctly
What it does

WordPress through an assistant

One connection covers one site, with its own SSH key and credentials. The centre of gravity is diagnostics: a single health check, issue diagnosis or recent-changes call gathers a whole evidence bundle in one SSH session, so "what broke this morning" is one question rather than fifteen. WooCommerce, Elementor, SEO plugins and the hosting account underneath are all in the same connection, which is what makes a failed checkout traceable across the order, the logs and the scheduler at once.

  • Health check, issue diagnosis and recent-changes evidence in one call
  • Plugins, themes, options, cron, transients and database health
  • Server-side facts: PHP config, disk usage, logs, recently modified files
  • WooCommerce orders, inventory and checkout diagnostics; Elementor and SEO plugin status
  • Update plugins and themes with an automatic checkpoint and rollback (opt-in)
  • Posts, pages, media and comment moderation (opt-in)
Ask your assistant

What people actually ask

Real questions, answered from live WordPress data.

Why did the site start throwing a 500 this morning?

wordpress_diagnose_issuehosting_read_log

Which plugins have updates available?

wordpress_list_pluginswordpress_core_check_updates

Are there any PHP files in the uploads directory?

wordpress_security_scanhosting_list_directory
Tool catalogue

109 WordPress tools

Grouped by what they touch. Every tool is individually toggleable — you expose only what you want.

WooCommerce

24 tools19 read-only · 5 write

Showing 10 of 10 tools

  • woocommerce_action_scheduler_failed
    Read-only

    Lists WooCommerce background actions that failed, with their hook, group and scheduled time. Each row is work the store intended to do and did not — a renewal not charged, an email not sent, a webhook not delivered. Read-only.

  • woocommerce_action_scheduler_run
    Write
    Destructive

    Runs WooCommerce's due background actions now, which is the documented way to drain a stuck queue. Modifies the live store, and the side effects are whatever the queued work does — sending customer emails, charging subscription renewals, delivering webhooks, adjusting stock. Draining a large backlog can therefore send a burst of real customer emails. Bounded by a batch limit and a hard timeout; run it repeatedly rather than raising the batch.

  • woocommerce_action_scheduler_status
    Read-only

    Counts WooCommerce background actions by status and reports how far behind the queue is. Action Scheduler runs the work WooCommerce defers — emails, subscription renewals, stock sync, webhook delivery, analytics — so a backed-up or failing queue is the usual explanation for 'orders are stuck', 'emails stopped', or 'inventory is not syncing' when nothing else looks wrong. Read-only.

  • woocommerce_checkout_diagnostics
    Read-only

    Checks the things that stop customers completing checkout: enabled payment gateways, shipping zones with no method, HTTPS and outbound-request health from WooCommerce's own system status, recent failed orders, and whether the cart and checkout pages resolve. Read-only, safe on a live store. Use when checkout is reported broken but no single order explains it.

  • woocommerce_coupon_create
    Write
    Destructive

    Creates a discount coupon. Modifies the live store: the code is usable by customers as soon as it exists, so a mistyped amount or a missing expiry is immediately spendable. Prefer setting an expiry and a usage limit.

  • woocommerce_coupons_list
    Read-only

    Lists discount coupons with their code, type, amount, usage counts and limits, and expiry. Read-only.

  • woocommerce_customer_get
    Read-only

    Full detail for one customer including billing and shipping addresses and order history totals. Returns personal data; off by default. Read-only.

  • woocommerce_customers_list
    Read-only

    Lists store customers with email, name, order count and spend. Returns personal data, so this is off by default and must be enabled deliberately. Read-only.

  • woocommerce_inventory_diagnostics
    Read-only

    Investigates why a SKU's stock is not what someone expects: resolves the SKU to its product and variations, reports which record actually holds the stock, checks whether stock management is enabled at all, and surfaces the background-queue and log evidence that explains a sync that is not running. Built for 'inventory is not updating'. Read-only.

  • woocommerce_inventory_get
    Read-only

    Resolves a SKU to its product or variation and reports the authoritative stock state: managed or not, quantity, status, backorder policy, and which record actually holds the stock. Built for 'why does the site say out of stock' -- it checks the variation as well as the parent, which is where that question usually goes wrong. Read-only.

+ 14 more woocommerce tools see the full catalogue

Diagnostics & logs

22 tools21 read-only · 1 write

Showing 10 of 10 tools

  • hosting_disk_usage
    Read-only

    Free and used disk space on the filesystem holding the site, plus the size of the site root and of wp-content's largest subdirectories. A nearly-full disk causes failed uploads, failed updates and database write errors, and is worth ruling out early on any 'suddenly broken' report. Read-only.

  • hosting_environment_info
    Read-only

    Server-level facts for one site: PHP version and the limits that matter (memory_limit, max_execution_time, upload_max_filesize, post_max_size), loaded PHP extensions, OPcache status, the operating system, and the web server. Read-only. This is server configuration, distinct from wordpress_get_site_info which reports WordPress itself.

  • hosting_list_logs
    Read-only

    Finds the log files ServeMCP can read for this site -- the WordPress debug log, PHP error logs, and common host log locations -- with their sizes and last-modified times. Call this before hosting_read_log to find out what exists. Read-only.

  • hosting_read_log
    Read-only

    Reads the last N lines of a log file found by hosting_list_logs, newest last, with secrets redacted. Optionally filters to lines matching a term, which is the fast path to 'show me the fatal errors'. Logs frequently contain database credentials and customer personal data in stack traces, so this is OFF BY DEFAULT and its output is redacted. Read-only.

  • hosting_recently_modified_files
    Read-only

    Lists files under wp-content modified within the last N hours, newest first. This is one of the highest-value diagnostics available: when a site breaks without explanation, the files that changed just before it are usually the cause, and unexpected recently-modified PHP files are also a primary compromise signal. Reports observed filesystem modification times, which is evidence of a change but not proof of who made it. Read-only.

  • wordpress_cron_due_events
    Read-only

    Returns only the cron events that are due or overdue, with how far behind each is. A large or growing backlog here is one of the clearest signals behind 'the site is slow', 'emails stopped sending', or 'orders are stuck' -- WP-Cron only fires on page requests, so a low-traffic site silently stops processing. Read-only.

  • wordpress_db_autoload_options
    Read-only

    Lists the largest autoloaded options with their exact sizes and a running total. Autoloaded options are read from the database on EVERY request, so their combined weight is one of the few numbers that reliably correlates with a slow site — WordPress itself flags totals above 800KB. This gives the per-option breakdown that makes the total actionable, rather than just the number. Read-only.

  • wordpress_db_health
    Read-only

    Reports total database size and runs MySQL's own CHECK TABLE across the WordPress tables, reporting any that are not OK. Read-only. This uses WP-CLI's structured subcommands, not raw SQL -- ServeMCP does not expose arbitrary queries.

  • wordpress_db_orphaned_metadata
    Read-only

    Counts post, comment and term metadata rows whose parent no longer exists. These accumulate when plugins are removed or posts are hard-deleted, and on an old site they can be a large fraction of the database. Reports counts only and deletes nothing — cleaning them up is a write this integration does not offer, because a plugin can legitimately store metadata against ids it manages itself. Read-only.

  • wordpress_db_search
    Read-only

    Searches post content, titles and option values for a string and reports where it appears, with counts per table. Built for questions ordinary WordPress search cannot answer: finding a hardcoded old domain, a stray tracking script, or which option holds a value. Uses the read-only credential and returns bounded results. Read-only.

+ 12 more diagnostics & logs tools see the full catalogue

Posts & content

19 tools13 read-only · 6 write

Showing 10 of 10 tools

  • elementor_text_replace
    Write
    Destructive

    Replaces text in one Elementor widget setting, identified by post id, element id and setting key. Parses the document, changes that one setting, and writes the whole document back — it never does text substitution across the raw JSON, because a blind replace can match inside a CSS class or URL and corrupt the document, which renders as a blank page with no error. Takes a checkpoint of the whole document first and regenerates Elementor's CSS afterwards. Modifies the live site.

  • elementor_text_replace_preview
    Read-only

    Shows exactly what one Elementor text change would do — the current value, the proposed value, and how many occurrences match — without changing anything. Call this before elementor_text_replace so the change can be described before it is made. Read-only.

  • elementor_text_search
    Read-only

    Searches the visible text of Elementor pages for a phrase and returns every match with its post id, element id and setting key — exactly what elementor_text_replace needs. This is how you find a typo that ordinary post search cannot see, because Elementor text is not in post_content. Read-only.

  • seo_indexing_issues
    Read-only

    Scans published posts and pages for the settings that quietly keep them out of search results: per-post noindex, a missing or over-length meta description, a missing SEO title, and a canonical pointing elsewhere. Combines that with the site-wide robots.txt and 'discourage search engines' setting. Read-only. This reports what the site is telling search engines, not what search engines have actually done — ServeMCP cannot see Search Console.

  • seo_metadata_get
    Read-only

    Reads the SEO title, meta description, canonical URL, robots directives and focus keyword for one post or page, from whichever supported plugin is active. An empty title or description means the plugin is falling back to its template, not that the page has none. Read-only.

  • seo_metadata_update
    Write
    Destructive

    Sets the SEO title, meta description or canonical URL for one post, recording the previous values as a checkpoint. Modifies the live site — these appear in search results and in social previews, and search engines may take days to re-crawl. Setting a canonical to another URL tells search engines this page is a duplicate and should not rank, so it is refused unless the URL is on the same site.

  • seo_robots_get
    Read-only

    Fetches the site's robots.txt and highlights rules that block crawling. A stray 'Disallow: /' — which WordPress serves automatically whenever the 'Discourage search engines' setting is on — removes the entire site from search results, and is one of the most common and least visible SEO faults. Read-only.

  • seo_sitemap_status
    Read-only

    Fetches the site's XML sitemap index and reports whether it responds, how many sub-sitemaps it lists, and its content type. Checks the active plugin's sitemap path and the WordPress core path. A sitemap returning 404 or HTML is a common and quiet cause of pages not being indexed. Read-only.

  • seo_status
    Read-only

    Reports which SEO plugin is active, its version, and whether ServeMCP can read and write its fields. Yoast SEO and Rank Math are supported; All in One SEO is detected but not supported, because since v4 it stores per-post data in its own database table rather than in post meta. Call this before any other seo_ tool. Read-only.

  • wordpress_categories_list
    Read-only

    Lists post categories with their ids, slugs, post counts and parents. The ids are what wordpress_post_create and wordpress_post_update expect. Read-only.

+ 9 more posts & content tools see the full catalogue

Plugins & themes

13 tools8 read-only · 5 write

Showing 10 of 10 tools

  • elementor_css_regenerate
    Write

    Clears and regenerates Elementor's compiled per-page CSS. Low risk — the CSS is derived and rebuilds on the next page load — but on a busy site it causes a brief load spike while it does. The usual fix for 'I changed something in Elementor and the site still shows the old styling'. Modifies live site state.

  • elementor_pages
    Read-only

    Lists the posts and pages actually built with Elementor, found by their _elementor_edit_mode meta rather than by guessing from content. Important because a site can mix Elementor pages with ordinary ones, and editing an Elementor page through the normal content tools changes nothing a visitor sees. Read-only.

  • elementor_page_structure
    Read-only

    Returns the element tree of one Elementor page: every section, column and widget with its element id, widget type and a short text preview. The element ids are what elementor_text_replace targets. Structure only — it does not return full settings, which are large and mostly styling. Read-only.

  • elementor_status
    Read-only

    Reports whether Elementor is active, its version, and whether Elementor Pro is present. Call this before any other elementor_ tool. Read-only.

  • elementor_widget_get
    Read-only

    Returns one widget's full settings by element id, including the raw text values with their HTML intact. Read this before replacing text, because the stored value usually contains markup that must be preserved. Read-only.

  • wordpress_activate_plugin
    Write

    Activates one already-installed plugin. Records a state checkpoint first so the change can be reversed, and verifies WordPress still loads afterwards. Modifies the live site. Does NOT install anything -- the plugin must already be present; use wordpress_list_plugins to confirm.

  • wordpress_deactivate_plugin
    Write
    Destructive

    Deactivates one plugin. Marked destructive because deactivating a security, caching or commerce plugin can take a site offline or expose it -- this is a consequential change even though it is easily reversed. Records a state checkpoint and verifies WordPress still loads. Modifies the live site. This is the standard first move when a plugin is suspected of causing a fatal error.

  • wordpress_get_plugin
    Read-only

    Detail for one installed plugin: version, activation state, available update, author and description. Use after wordpress_list_plugins when you need more about a specific plugin. Read-only.

  • wordpress_list_plugins
    Read-only

    Lists every installed plugin with its activation state, installed version, whether an update is available and to which version, and auto-update setting. The first call for 'what is outdated', 'what is active', or 'is plugin X installed'. Read-only.

  • wordpress_list_themes
    Read-only

    Lists installed themes with the active one marked, plus versions and available updates. Read-only.

+ 3 more plugins & themes tools see the full catalogue

Files & database

12 tools6 read-only · 6 write

Showing 10 of 10 tools

  • cpanel_provision_readonly_db_user
    Write
    Destructive

    Creates a MySQL user through cPanel with SELECT and nothing else, granted on one database, and stores its credentials encrypted for the database tools to use. Run this once per site to enable the wordpress_db_* query tools. The point is that the resulting credential physically CANNOT write, and specifically has no FILE privilege — so `SELECT ... INTO OUTFILE` (which writes a webshell) and `LOAD_FILE()` (which reads arbitrary server files) are impossible rather than filtered. That is a guarantee from MySQL rather than from our own parsing, which is why database access waited for this. Modifies the hosting account by creating a database user.

  • hosting_file_delete
    Write
    Destructive

    Deletes one file under wp-content/, after copying it to a checkpoint so it can be restored. DESTRUCTIVE. Refuses directories — removing a directory tree is not something this offers, because the blast radius of a wrong path is unbounded. Modifies the live site.

  • hosting_file_metadata
    Read-only

    Size, permissions, owner and modification time for one file or directory inside the site root, without reading its contents. Useful for checking whether a file changed recently, or why it is not writable. Read-only.

  • hosting_file_patch
    Write
    Destructive

    Replaces one exact occurrence of a string in a file, leaving the rest untouched. Safer than hosting_file_write for a targeted change — fixing a typo, changing a constant — because it cannot accidentally discard the rest of the file. Fails if the search string is absent or appears more than once, so the change is unambiguous. Takes a checkpoint first. Modifies the live site.

  • hosting_file_permissions_get
    Read-only

    Reads the octal mode, owner and group of a file or directory, and says whether the SSH user can write to it. The usual answer to 'the update failed' and 'the media upload failed' is here. Read-only.

  • hosting_file_permissions_set
    Write
    Destructive

    Sets the octal mode of one file or directory under wp-content/. Restricted to a safe set of modes: 644 and 664 for files, 755 and 775 for directories. World-writable modes such as 777 are refused outright — they are a common bad fix for an upload problem and they let any other account on a shared host modify the site. Modifies the live site.

  • hosting_file_write
    Write
    Destructive

    Writes content to a file under wp-content/, replacing it entirely, after taking a checkpoint of the current version. Creates the file if it does not exist. DESTRUCTIVE: this replaces the whole file, not part of it — use hosting_file_patch to change one section. Writing to a PHP file that WordPress loads can take the site down immediately; the tool verifies WordPress still bootstraps afterwards and reports if it does not.

  • hosting_file_write_preview
    Read-only

    Shows exactly what a write would change without changing anything: whether the file exists, its current size and a diff-style summary of the replacement. Call this before hosting_file_write when the content is generated or the file is important, so the change can be described before it is made. Read-only.

  • hosting_list_directory
    Read-only

    Lists the contents of one directory inside the site root, with sizes, permissions and modification times. Paths are relative to the WordPress root and confined to it -- traversal outside, and credential files such as wp-config.php, are refused. Read-only.

  • hosting_read_file
    Read-only

    Reads a text file inside the site root. Output is capped and secret-looking content is redacted before it leaves the server. wp-config.php is always refused, read included -- it holds the database password and every authentication salt; the safe constants from it are available through wordpress_get_site_info instead. OFF BY DEFAULT: reading arbitrary site files is a meaningful disclosure and should be enabled deliberately. Read-only.

+ 2 more files & database tools see the full catalogue

More tools

19 tools13 read-only · 6 write

Showing 10 of 10 tools

  • wordpress_checkpoint_create
    Write

    Copies one plugin or theme directory to a checkpoint on the site's own server, so a change you are about to make by hand can be undone. The write tools create their own checkpoints automatically -- this is for changes made outside ServeMCP. Scoped to a single component and capped at 200MB; a whole site is far too large and needs a real backup. Checkpoints are operation rollback, not backups: they are stored on the site's own server, are scoped to a single component, and expire after 7 days. They do not survive server loss. Modifies the customer's server by writing files.

  • wordpress_comment_moderate
    Write
    Destructive

    Approves, holds, spams or trashes one comment. Marking as spam trains the site's spam filter, which is a side effect beyond this one comment. Modifies the live site — approving publishes the comment for all visitors immediately.

  • wordpress_comments_list
    Read-only

    Lists comments with their status, author and the post each belongs to. Filter to status='hold' to see the moderation queue. Returns commenter names and email addresses, so this is off by default. Read-only.

  • wordpress_core_check_updates
    Read-only

    Asks wordpress.org whether a newer WordPress core version is available for this site. Read-only: it reports what is available and changes nothing. ServeMCP does not perform core updates -- the only honest rollback for one is a full-site backup, which is not yet available.

  • wordpress_core_verify_checksums
    Read-only

    Compares every WordPress core file against the official wordpress.org manifest for the installed version and reports mismatches or unexpected files. The strongest single signal that core has been tampered with. Read-only, and slow on large installs. A clean result does not prove a site is uncompromised -- it only covers core files, not plugins, themes or uploads.

  • wordpress_flush_cache
    Write

    Flushes the WordPress object cache. Low risk and trivially reversible -- the cache simply repopulates -- but on a busy site it causes a brief load spike as caches rebuild. Has no effect on page caches served by a plugin or CDN. Modifies live site state.

  • wordpress_get_checkpoint
    Read-only

    Full detail for one checkpoint, including the manifest recording the state before the change -- previous plugin versions, the prior option value, or the files copied. Read this before restoring, and to recover a previous value you intend to set back by hand. Checkpoints are operation rollback, not backups: they are stored on the site's own server, are scoped to a single component, and expire after 7 days. They do not survive server loss. Read-only.

  • wordpress_get_option
    Read-only

    Reads one WordPress option by name. Values are returned both interpreted and raw where they differ, because many plugin options are PHP-serialized. Secret-looking values are redacted before they leave the server -- plugin option blobs routinely contain payment-gateway keys. Read-only.

  • wordpress_get_site_info
    Read-only

    Core facts about one WordPress install: version, whether an update is available, multisite status, site and home URLs, environment type, debug configuration, and whether maintenance mode is on. This is the cheapest orientation call for a site you have not looked at yet. Read-only.

  • wordpress_list_checkpoints
    Read-only

    Lists the rollback checkpoints ServeMCP holds for a site, newest first, with the tool that created each, what it covers, its size and expiry. Use this to find what can be undone. Checkpoints are operation rollback, not backups: they are stored on the site's own server, are scoped to a single component, and expire after 7 days. They do not survive server loss. Read-only.

+ 9 more more tools tools see the full catalogue

Every tool name and description, machine-readable: /llms-full.txt

Access & safety

You decide what it can touch

The same model applies to every connector, and it defaults closed.

Your own credential

You supply your own WordPress key, scoped however you like on their side. It is encrypted with AES-256-GCM and never returned by any API response or tool call.

Writes off by default

A new connection switches on a read-oriented default set only. Every write tool must be enabled deliberately before any client can call it.

Roles enforced server-side

READ, WRITE and ADMIN gate tool invocation on the server, not just in the UI. A READ member's token is refused any write tool.

Setup

Connect WordPress in minutes

No infrastructure to run. Copy one URL and one token into your client.

  1. 1Create a free workspace and connect WordPress.
  2. 2Choose which tools to expose — writes stay off until you enable them.
  3. 3Copy your MCP endpoint URL and bearer token.
  4. 4Paste them into Claude, Cursor, or any MCP client.
claude_desktop_config.json
{
  "mcpServers": {
    "serve-mcp": {
      "url": "https://servemcp.com/api/mcp/your-workspace",
      "transport": "http",
      "headers": {
        "Authorization": "Bearer smcp_..."
      }
    }
  }
}

Put WordPress in front of your assistant

Free plan, no card required. Connect in minutes.