mcpField
M
maintain-wordpress

maintain-wordpress

github.com/hostingerCloud & DevOps16569 installsUpdated today
Repository

About maintain-wordpress

A Hostinger WordPress maintenance skill for reviewing site health and proposed updates before making user-approved changes. It updates one site at a time and verifies each site before proceeding.

Key features

  1. 01Review core, plugin, and theme updates
  2. 02Identify known vulnerabilities
  3. 03Report findings before changes
  4. 04Require backup confirmation
  5. 05Apply approved updates site by site
  6. 06Verify site availability after updates

Use cases

  1. 01Check WordPress installs for security issues
  2. 02Review pending updates across multiple sites
  3. 03Apply approved updates while limiting cross-site risk

MCP support

Uses Hostinger Connector operations to inspect and update WordPress installations; reads operation schemas and polls queued changes until they appear.

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/hostinger/api-mcp-server --skill maintain-wordpress

After installing, type/maintain-wordpressin Claude Code to confirm it loaded.

Details

From the project README

Maintain WordPress

Check first, report, then update only what the user approves — one site at a time, proving each still loads before moving to the next.

Calling the operations

  • Read the inputSchema that search returns before the first call of each operation. If a name below is rejected as unknown, search for what the step does (e.g. "wordpress plugins update").
  • Batch reads with multi-execute (up to 20 steps a batch). Batches chain operations from one server only — the Hostinger Connector runs wordpress, hosting and agency-hosting as separate servers.
  • Updates, activations, uninstalls and core changes are queued jobs: a success response means "queued". Poll the matching read operation every 10–20 s until the change shows; never re-send the write.

1. Find the installs

  • One site: wordpress_installations_list with domain (substring match — take the exact entry). Every site: wordpress_installations_list without filters, adding ownership: "all" to include sites the user manages for others.
  • Keep id (the software parameter of every wordpress_* call), username, domain, directory, is_valid and validation_error.
  • Agency Plan WordPress sites come from agency-hosting_websites_list-plan with website_types: ["wordpress"]. When wordpress_installations_list does not include them, only agency-hosting_wordpress_settings and core version changes (agency-hosting_wordpress_list-versions, agency-hosting_wordpress_change-version) are available; plugins and themes are updated from wp-admin.

2. Check (read-only)

Per install:

  • wordpress_installations_show-core-version — core version and the known vulnerabilities that affect it.
  • wordpress_installations_list-core-updates — available core versions.
  • wordpress_plugins_list-installed — status, update (the newer version, when there is one) and vulnerabilities[] with fixed_in.
  • wordpress_themes_list-installed — the same for themes.

Four steps per install fit five installs in one batch. For an install with is_valid: false, run wordpress_installations_check-if-are-valid with force: true for a fresh reason and leave it out of updates — a broken install is the troubleshoot-website skill's job.

3. Report before changing anything

## example.com (WordPress 6.8.1)
Vulnerable: contact-form-x 5.2 → fixed in 5.3 (update available)
Vulnerable, inactive: old-slider 1.0 — no fix; uninstall recommended
Updates: core 6.8.1 → 6.8.3 (minor), 4 plugins, 1 theme

Vulnerable items come first. A vulnerable plugin without a fix, or an inactive one, is better removed with wordpress_plugins_uninstall than left installed — inactive code on disk can still be reached. Ask which updates to apply.

4. Back up first

The API has no backup operation. Before updating, ask the user to create a backup in hPanel or confirm the latest automatic one is recent enough. Say it plainly; the user may choose to go ahead without one.

5. Update, one site at a time

  1. Plugins that fix a vulnerability — wordpress_plugins_update with their slugs.
  2. The remaining approved plugins, then themes with wordpress_themes_update.
  3. Core with wordpress_installations_update-core: minor: true for patch releases; a major version only when the user asks for it.

For a busy site the user may want wordpress_maintenance_toggle with enabled: true during the run — and it is always turned off again afterwards, even when something failed.

After each site:

  1. wordpress_litespeed-cache_purge-lite-speed.
  2. curl -s -o /dev/null -w "%{http_code}\n" https://DOMAIN/ and the same for https://DOMAIN/wp-login.php — both should be 200 with no PHP error in the body.
  3. wordpress_installations_check-if-are-valid with force: true.

When a site breaks: stop the run, deactivate the plugin updated last with wordpress_plugins_deactivate, check again, and report which update caused it before touching any other site.

6. Performance and access

  • Page cache: wordpress_litespeed-cache_show-lite-speed-status; purge after design or content changes.
  • Object cache: wordpress_object-cache_show-memcached-status, then wordpress_object-cache_toggle-memcached with enabled: true — the usual quick speed-up.
  • PHP version: hosting_php_get is large (around 25 KB), so read it only when the user asks about PHP. PHP 8.x is markedly faster than 7.x; confirm plugin compatibility before hosting_php_update-version.
  • wp-admin: wordpress_login_create-links returns temporary one-click login links. Give them to the user only; never store or reuse them.
  • Hostinger's own plugins update with wordpress_plugins_update-hostinger (slug).

Many sites

Tell the user how many installs there are before starting. Check in batches, keep one running report, and update site by site so a failure stops the run with the rest untouched.

Comments

Markdown supported