Skip to content

v1.4.0 - Vision, undo, batching, link and sitemap auditing

Latest

Choose a tag to compare

@konkomaji konkomaji released this 24 Aug 12:54

The agent can see, and every change can be taken back

Images

Every route into the media library — upload_media, product images, variation images — now goes through one ingest engine.

  • Four sources, one shape — an existing attachment id, a url the server downloads, raw base64 bytes (a data URI works), or a path to a file already on the server. No more "upload it, then attach it".
  • SEO filenamesIMG_2831.JPG lands as black-cotton-hoodie.jpg, numbered -2, -3 through the gallery.
  • De-duplication — bytes are hashed on the way in. Re-importing the same photo across twenty products reuses one attachment.
  • Processed before storagemax_dimension downscales, convert writes WebP or AVIF, quality re-encodes, all before the file becomes an attachment.
  • A gallery you can editmode (replace/append/prepend), remove_ids, reorder, detach_main, per-image title, caption and description.
  • One bad URL no longer loses the batch — each source reports its own error and everything else still saves.
  • get_image_bytes returns an image as an inline picture rather than a filename, so alt text and product copy can be written from what is actually in the photograph — and so you can confirm the right image is on the right product.

New media tools: optimize_image (restorable original, never replaces a file with a larger one, optional URL rewriting), restore_image, regenerate_thumbnails, find_duplicate_media, find_unused_media, bulk_set_image_alt, bulk_assign_variation_images.

Undo

Writes are journalled. Every instrumented tool records the value it overwrites, returns an operation_id, and undo_operation puts the whole change back in reverse order — bulk repricing, inventory, search and replace, bulk content and SEO writes, schema, alt text, product images. list_operations shows the last 40; create_restore_point snapshots a set of posts before a risky run.

Batching

batch runs up to 50 tool calls in a single request. Each step reports its own result or error, and the whole batch reverses as one operation. Editing 200 products used to be 200 round trips.

Broken links and sitemaps

  • find_broken_links — resolves internal links against the database first, requests the rest over HTTP with redirects followed, reports redirects separately from failures, caches results for six hours, and resumes where it stopped.
  • get_sitemap — reads the sitemap from core, Yoast or Rank Math and follows an index into its children.
  • sitemap_audit — noindexed URLs sitting in the sitemap, published content missing from it, URLs that 404 or redirect, stale lastmod dates.
  • indexnow_submit — instant indexing for Bing, Yandex, Naver and Seznam. The verification key is generated and served at /<key>.txt automatically.

Product SEO

  • set_seo / get_seo gain og_image and twitter_image, accepting an attachment ID or a URL and writing both the URL and the attachment ID the SEO plugin needs.
  • generate_product_schema — Merchant-grade Product data: gtin/mpn/sku, brand, priceValidUntil, shippingDetails, hasMerchantReturnPolicy, itemCondition, colour/size/material, embedded reviews. Variable products become a ProductGroup with every variation as a hasVariant offer. Policy facts can be saved once and reused.
  • product_seo_fix — bulk repair of missing titles, descriptions, alt text and schema, trimmed to the pixel width Google renders.
  • bulk_set_seo and serp_preview — template-driven SEO across any post type, and a pixel-accurate preview showing where each result is truncated.
  • product_seo_audit now also reports duplicated descriptions and missing social images.

Knowing what happened

  • get_audit_log — every tool call: arguments with secrets redacted, status, duration, requesting IP, and the operation that would undo it.
  • get_progress — call it on a second connection while a long sweep is working.
  • A time budget — long sweeps stop before PHP's execution limit and return a resume offset instead of being killed mid-write.

162 tools. Requires WordPress 5.6+ and PHP 7.4+.

Install

Download wordpress-mcp.zip below and upload it under Plugins → Add New → Upload Plugin.