
The Bulk Post Editor plugin for WordPress supports the MCP (Model Context Protocol), so it can be controlled by an AI agent, such as Claude Desktop, directly from the chat. Describe the task in plain language, and the agent will find the necessary posts, set up the processing pipeline, test the results on a few entries, run the rest, and generate a report on its actions.
As usual, the processing runs in the background via the Bulk Post Editor plugin on your site, using your API keys for the AI models. The agent only issues commands and reads the log, so its tokens are used solely for the chat conversation. Rewriting the posts is billed at the standard rates of the AI providers whose APIs the plugin uses.
Below, we’ll look at a few typical tasks for which this feature was designed. You can copy the provided prompts in this article into the AI assistant’s chat, replacing the category names, dates, and models with those specific to your site. Additionally, you’ll find brief instructions on how to set up the MCP protocol at the end of the article.
What the AI agent can do in Bulk Post Editor
To understand the prompts below, you need to know what the AI agent can and can’t do. Here is a list of its capabilities:
- Check the engine status, queue, errors, and recent processing cycles
- Read the current pipeline with all step settings and a list of providers for which the site has a key
- Get a list of a provider’s models with prices and limits, as shown in the “Quick Select” drop-down list
- Find posts using the same filters as on the Posts Selection page: post type, status, category or tag, publication or modification date, text, presence of a thumbnail and images in the text, custom field, and previous processing result
- Configure pipeline steps: enable and disable them, select a model, write a prompt, set rules
- Queue posts, start and stop the engine
- View the log: which step modified which fields in each post and what went wrong
- Roll back the last run or selected posts
However, the agent cannot modify Custom PHP Code, API keys, limits, or automation. All these operations are blocked for the agent and remain exclusively in the hands of the administrator.
All of the examples below follow the same pattern: first, the agent checks what’s on the website, then sets up the pipeline, runs a few posts through it, shows the results, and only after you say “yes” does it process the rest.

The agent was asked to add a featured image to every post that didn’t have one, using the first image in the post and AI only for posts without images. It set up the Featured Image step, tested 2 posts, checked the Journal, and processed the other 7.
Scenario 1. A WooCommerce store with outdated product pages
Let’s consider a typical situation where your store has been around for five years, during which time hundreds of products were added by different people. Some have descriptions consisting of just two sentences, while others have text copied from the supplier’s website in broken English, and still others have no description at all. The products don’t have proper descriptions, and there are no meta descriptions for search engines. Also, the specifications are outdated.
WooCommerce products in WordPress are standard product posts, so the Bulk Post Editor handles them the same way it handles blog posts. The full product description is the post’s content, while the short description is its excerpt. AI Rewriter can rewrite both, and the SEO Meta tool can generate meta titles and meta descriptions for search engines.
The main problem with products is that the language model knows little or nothing about a specific product, especially if it was released after the model was trained. If you ask it to “describe the specifications,” it will most likely just make them up. To address this, the AI steps include a live web search feature. When activated, the model searches the internet for up-to-date information about the product before generating its response and bases its answer on what it finds. The live search works with OpenAI, Anthropic, and OpenRouter in Direct mode. It is not available with OpenRouter Batch, because this is a limitation of the Batch API itself.
Bulk Post Editor does not alter prices, SKUs, stock levels, or attributes: the model only modifies text fields. It’s also best not to change the product thumbnail, since it’s the actual photo of the product and there’s no need to generate a new one.
First, some preliminary work:
Check out the WooCommerce products on my website in the “Laptops” category. How many are there in total? How many have never been processed by the Bulk Post Editor? How many don’t have images in their descriptions? Show me the five products with the oldest last-modified dates. Don’t change anything.
Then, setup and testing:
Configure the Bulk Post Editor to update product listings in the “Laptops” category.
AI Rewriter: Use the Claude Sonnet model via OpenRouter Direct with live search enabled. Rewrite the full description and short description, and leave the title unchanged. Task for the model: Find the latest specifications for this laptop model online using its exact name from the title, and write a full description for the buyer: a paragraph explaining who this laptop is for, followed by a table of specifications (processor, memory, storage, screen, weight, battery life, ports), and then a paragraph on its strengths and weaknesses. If you can’t find the specifications, don’t make them up – just skip that line. Short description: two sentences listing the key features. No prices or comparisons with competitors.
SEO Meta: Fill in the meta description only where it’s empty.
Turn off the remaining steps. Run the process for three products and show me the results for each one.
If the result looks good:
Now add all the remaining products from the “Laptops” category that haven’t been processed yet to the queue and run it. When it’s done, let me know how many were processed, which products had errors, and why.
The same approach works for categories where search isn’t needed, such as clothing or handmade items. In those cases, it’s better to turn off live search, since it’s slower and more expensive, and there’s nothing to find online anyway.
Scenario 2. Old autoblogs with poor-quality images
If you have auto blogs created a couple of years ago using CyberSEO Pro or AI Autoblogger, you’ll remember what image generators were like back then. I’m talking about all those crooked arms, extra fingers, illegible text, and plastic-looking faces. The text on these sites still ranks well, but the images give away the site’s age and ruin the impression.
Today’s image generation models, available through OpenRouter and OpenAI, produce images that are an order of magnitude better. Bulk Post Editor can redraw images in posts that have already been published.
AI Images
In “Replace” mode, it replaces existing images in the post text with new ones. For each image, the text model first writes a scene based on the content of the section where the image appears, and the image model then renders it. The alt text is preserved. The “Auto” setting preserves the aspect ratio of the original image, so the layout won’t be disrupted. Images that the plugin has already generated for this post previously are not redrawn, so running the plugin again will cost nothing.
Featured Image
With the source set to AI and the mode set to “always”, it generates a new thumbnail for each post.
The new images are saved to the media library in the desired format and compression, such as WebP. The old files remain in the media library and can be deleted later. If you don’t like the result, rolling back will restore the old images to the posts and delete the new ones from the media library.
Images cost money, and on a large website, this can add up to a significant amount, so start by evaluating:
On my website, posts published before January 1, 2024, feature old AI-generated images. Count how many of these posts include images in the text and how many have a thumbnail. Show me the image generation models available through OpenRouter, along with their prices, and suggest two options: a cheaper one and a better one. Don’t change anything.
Then, configure the following:
Configure the Bulk Post Editor to replace old images in posts published before January 1, 2024.
AI Images: mode for replacing existing images. Use the openai/gpt-image-2.5-sunburst model via OpenRouter. Have openai/gpt-6-luna generate the scene. Set the image shape (aspect ratio) to Auto, quality to high, and format to WebP. Style: “editorial photo, natural light, realistic, no text in the image.”
Featured Image: AI source, “always” mode, same model and same style, 16:9 aspect ratio.
Turn off the remaining steps. Run the tool on two posts and send me links to them – I’ll check the images myself.
After review:
The images are good. Process the remaining posts from this sample in batches of 50, and check the log after each batch. If there are more than three errors in a batch, stop the engine and let me know.
Replace the model and style in the prompt with your own. If the site is about food, the style will be different from that of a site about technology, and you can tell the agent this by saying: “Choose a style that fits the site’s theme and show me examples in two posts”.
Scenario 3. Linking and organization of categories
Auto blogs and websites populated with RSS imports typically lack internal links, and half of their posts are categorized as “Uncategorized.” Bulk Post Editor solves both of these issues using robots, without generating text.
Internal Links
Creates links based on post titles, keywords from SEO plugins, tags, and anchor text. In smart-check mode, the decision-making model checks every link within its paragraph to ensure that “Apple” in an article about a pie doesn’t link to an article about the iPhone. This check costs a fraction of a cent per post.
Auto Terms
Assigns existing tags and categories whose names appear in the text, as well as categories based on your rules. This also includes smart checking.
On my site, there are 1,200 posts in the “Uncategorized” category. Auto Terms settings: assign existing categories if their names appear in the text, no more than two categories per post, with smart checking via a decision-making model. Remove the “Uncategorized” category from a post if it has been assigned a valid one. Turn off the remaining steps. Run the plugin on 10 posts and show which categories they were assigned.
Set up Internal Links for all published posts: no more than 4 links per post, targets are post titles and keywords from the SEO plugin, smart checking is enabled with a 70% threshold. Disable the remaining steps. Run the process on 5 posts, then show in the log how many links each one received.
Scenario 4. Cleanup after switching away from a page builder
After discontinuing the use of Elementor, Divi, or WPBakery, posts keep shortcodes that nothing processes any more, and visitors see [vc_row] and [et_pb_section] on the page. Add to that inline styles, empty paragraphs, and links to the old domain.
Find posts that contain “[vc_” in the text. Configure HTML Cleaner: remove orphaned shortcodes while keeping the text inside them, remove inline styles and empty elements. Configure Search & Replace: replace “http://old-domain.com” with “https://new-domain.com” in the content, with the “Only in the text” option disabled so that the URLs are also updated in the links. Disable the remaining steps. Run the process on 3 posts and check what has changed in the log.
Only robots are used here, with no AI models involved, so processing is fast and doesn’t cost a cent.
Scenario 5. Updating outdated information in evergreen articles
Articles like “Best VPNs of 2023” or “How to Set Up X in Version 5” lose their ranking over time because the facts in them become outdated. The “Refresh outdated facts” template in AI Rewriter, combined with live search, checks numbers, versions, and dates online and edits only what has changed.
Find published posts that haven’t been modified since January 1, 2025, and that contain “2023” or “2024” in the text. Show me a list of them, don’t change anything.
For these posts, configure AI Rewriter as follows: the openai/gpt-6.1-sol-pro model via OpenRouter Direct, live search enabled, and the Refresh outdated facts template. Additional instructions: preserve the structure, headings, links, and the author’s style, change only outdated facts, numbers, versions, and years, do not add new sections. In the Output Post Rules, set a new post date. Process 3 posts and show which facts were changed.
Scenario 6. Morning check of all sites
If an agent has multiple sites connected, a single question replaces checking a dozen admin panels:
Check the Bulk Post Editor on all my sites. Where is the engine running, how many posts are in the queue, where have there been errors in the last 24 hours, and what kind? If the engine has stopped somewhere due to a problem with a provider’s account, tell me which site and which provider.
On the blog-net site, put all posts that failed with an error in the last 24 hours back in the queue and run the engine.
How not to lose sontrol
A few habits that save you money and stress:
Always start by testing 2-5 posts. Write this directly in the prompt: “Run three posts and show the results”.
Ask the agent to show you the log. It shows which step changed which fields in each post. If a step changed something without permission, it’s immediately obvious.
The rollback feature always works. Before every change, the plugin saves a copy of the post: title, text, excerpt, SEO meta tags, categories, tags, and thumbnail. The phrase “roll back the last run” will restore everything to its previous state and delete any images generated by that run. Posts that you’ve already edited manually will not be affected by the rollback.
Set a limit on AI requests. In the plugin settings, you can set a limit on the number of requests to the models per hour, day, or month. Once this limit is reached, new posts won’t be started until the next period.
Grant the agent exactly the permissions it needs. Access levels are described below.
Require confirmation in the client. You can allow status and log access without confirmation, but it’s best to require confirmation every time for pipeline configuration, starting the engine, and rollback.
How to Connect MCP
Detailed instructions with examples for different clients can be found in the documentation: https://www.bulkposteditor.com/documentation/ai-agents/
1. Requirements
WordPress 6.9 or newer, HTTPS on the website, an administrator account.
2. MCP Adapter
In the admin panel: Plugins → Add New, find MCP Adapter, install and activate it.
3. Agent Permissions
Bulk Post Editor → Settings → AI Agents, “Access” field:
- Read only: the agent can view status, pipeline, models, posts, and the log, but cannot make any changes;
- Full (default): plus queue, start, stop, and rollback with the pipeline you configured yourself;
- Full and pipeline settings: plus the agent can configure pipeline steps. Required for all scenarios in this article;
- Off: the agent cannot see the plugin at all.
The Posts per call field limits how many posts the agent can queue, unqueue or roll back in a single request (default is 1,000).
4. Application password
Go to Users → Profile, then the “Application Passwords” section: enter a name, such as “AI agent,” click “Add New Application Password”, and copy the password – WordPress will display it only once. This password grants administrator privileges for the entire site, so treat it like a regular password and revoke it on the same page if it has been compromised.
5. Client
Your site’s MCP server address:
https://example.com/wp-json/mcp/mcp-adapter-default-server
Claude Code requires an authorization string: your WordPress username and the application password from step 4, separated by a colon and encoded in base64. Substitute your own information for USERNAME and APPLICATION_PASSWORD.
USERNAMEis the username you use to log in to the WordPress admin panel (it doesn’t have to be “admin” – it can be anything else).APPLICATION_PASSWORDis the password that WordPress displayed after you clicked “Add New Application Password.” It looks like six groups of four characters separated by spaces, for example,Ab3d eF7h iJ2k Lm9n oP4q Rs8t. This isn’t a rule you have to follow, but simply the format in which WordPress generates the password. Copy it exactly as shown; you can leave the spaces or remove them.
On Linux, macOS, or Git Bash on Windows:
echo -n 'USERNAME:APPLICATION_PASSWORD' | base64
In PowerShell on Windows:
[Convert]::ToBase64String([Text.Encoding]::UTF8.GetBytes('USERNAME:APPLICATION_PASSWORD'))
This command will return letters, digits and sometimes + or /, often with one or two = at the end. You’ll paste this string into the next command after the word “Basic.”
Now simply add the site with a single command:
claude mcp add --transport http example-com https://example.com/wp-json/mcp/mcp-adapter-default-server --header "Authorization: Basic YOUR_BASE64"
Claude Desktop connects via the @automattic/mcp-wordpress-remote proxy (requires Node.js): Settings → Developer → Edit Config, add the following to claude_desktop_config.json, with your username and application password as they are (no base64 here):
{
"mcpServers": {
"example-com": {
"command": "npx",
"args": ["-y", "@automattic/mcp-wordpress-remote@latest"],
"env": {
"WP_API_URL": "https://example.com/wp-json/mcp/mcp-adapter-default-server",
"WP_API_USERNAME": "USERNAME",
"WP_API_PASSWORD": "APPLICATION_PASSWORD"
}
}
}
}
and restart the application. In Cursor, VS Code, and other clients that can pass their headers, you should specify the same address and the same “Authorization” header.
ChatGPT and web versions of assistants that connect to MCP servers exclusively via OAuth do not currently work with the MCP Adapter, since the adapter requires an app password, which these assistants cannot provide. Additionally, such assistants access the site from their own servers and cannot access the local site.
Multiple sites are connected via separate entries, each with its own name and application password.
6. Verification
Open a new chat and ask: “Show the status of the Bulk Post Editor”. If the agent responds with the status of the engine and the queue, everything is working, and you can proceed to the tasks described in this article.
