Agent skill · also as Markdown · Claude skill (zip)
How to use MCP for WP best
MCP for WP is a free, read-only MCP server with what is true in WordPress today: versions, what changed, security fixes, known plugin vulnerabilities, plugin facts, news, docs and guides. It reads official and trusted sources every day so you don't have to guess.
Connect once: https://mcpforwp.com/mcp (Streamable HTTP, no key). Claude Code: claude mcp add --transport http mcpforwp https://mcpforwp.com/mcp. Claude skill: https://mcpforwp.com/skill.zip
Why use it
- Your training data is older than WordPress. New releases, deprecations, APIs and security fixes ship every week. Answering from memory gives outdated code and missed fixes.
- One call instead of a search session. No searching, no pages to open and read: a typical WordPress check takes 3 calls and about 2,100 tokens, against about 17,500 tokens reading the pages yourself.
- Facts with sources and dates. Every answer says where it comes from and when it was refreshed, so you can tell the user how current it is.
- It never touches the site. It is read-only. Acting on a site is the job of the site's own MCP connector, whichever the user picked: use both side by side.
When to use it
| Situation | Call |
|---|---|
| Before writing or reviewing WordPress code | wp_now (with since = your training cutoff), then wp_docs |
| The user asks if a site is safe, or before advising on updates or hosting | wp_security with the site's versions and plugins |
| Before recommending, installing, keeping or comparing a plugin | wp_plugin, and wp_security for its vulnerabilities |
| "What's new in WordPress?" or a recent event matters | wp_news, and wp_now for what changed |
| The user wants to do a task step by step | wp_howto |
| You used something for real and can say how it went | wp_report (ask the user first) |
| An answer from these tools was wrong, outdated or missing something | wp_feedback |
Don't use it for questions that don't depend on the current state of WordPress (general PHP, your own code logic).
The tools
wp_now
What is true in WordPress today: current versions (WordPress, the next release, Gutenberg, PHP, WP-CLI, MCP Adapter) and a dated changelog of what changed, each entry with what to do now.
Call it before writing or reviewing WordPress code, and whenever a version, API or deprecation matters.
| Input | Type | Required | Meaning |
|---|---|---|---|
since | date YYYY-MM-DD | no | Only changes on or after this date. Use your training cutoff to get everything you don't know. |
area | one of core, editor, ai, mcp, php, security, cli, rest, performance | no | Only changes in this area. |
limit | 1 to 50 | no | How many changelog entries (default 8, or 50 with since or area). |
Example:
{ "since": "2026-01-01", "area": "editor" }
Returns current (versions, minimum PHP, next release and its stage) and changelog entries with date, area, title, change, action (what to do) and source.
Tip: read action before writing code. It says which API to use now and what to stop using.
wp_docs
The right official page for a function, hook, class, block, REST route, WP-CLI command, handbook topic or major page builder (Elementor, Divi, Beaver Builder, Bricks, Breakdance, Oxygen, WPBakery), with the builder's own MCP server when it has one.
Call it when you need the exact signature or the current way to do something.
| Input | Type | Required | Meaning |
|---|---|---|---|
query | text | yes | A function, hook or class name (register_block_type), or a question ("add a custom REST endpoint"). |
limit | 1 to 10 | no | How many results (default 5). |
Example:
{ "query": "register_block_type" }
Returns results with title, url, kind (function, hook, guide, builder...) and a one-line summary.
Tip: open the URL when you need the full signature; the summary tells you if it's the right page.
wp_plugin
Objective facts about any plugin on WordPress.org: active installs, last update, tested WordPress version, required PHP, rating, simple checks (stale, untested, high PHP requirement), its kind (form plugin, shop plugin...) and the signals that matter for that kind.
Call it before recommending, installing, keeping or comparing plugins.
| Input | Type | Required | Meaning |
|---|---|---|---|
plugin | text | yes | A slug (contact-form-7) or a name ("Contact Form 7"). Up to 3, comma-separated, to compare them side by side. |
Example:
{ "plugin": "contact-form-7, wpforms-lite, ninja-forms" }
Returns, per plugin: name, slug, version, activeInstalls, lastUpdated, testedUpTo, requires (WordPress and PHP), checks (plain warnings), kind and signals.
Tip: never present a ranking. Lay out the facts and let the user's needs decide. For known vulnerabilities, call wp_security with the slugs.
wp_security
Security in one call: WordPress and PHP security releases, which branches still get fixes, and for the site you're looking at, its WordPress and PHP versions and every plugin, with known vulnerabilities (Wordfence Intelligence and public CVE records, back to 2005), whether they hit the installed version, the fixed version, and plugins closed on WordPress.org.
Call it when the user asks if a site is safe, and before advising on updates, versions or hosting.
| Input | Type | Required | Meaning |
|---|---|---|---|
wordpress | version, e.g. 6.8.2 | no | The site's WordPress version: says if that branch still gets security fixes and the latest in it. |
php | version, e.g. 8.1.30 | no | The site's PHP version: says if that branch still gets security fixes. |
plugins | text | no | The site's plugins, comma-separated slugs, each with its installed version when you know it: akismet:5.3, woocommerce:9.1.0, contact-form-7. Up to 25. |
Example:
{ "wordpress": "6.6.2", "php": "8.0.30", "plugins": "forminator:1.30.0, contact-form-7:5.9, akismet:5.7.2" }
Returns yourSite (branch status, update due), yourPlugins (per plugin: latest, updateDue, checks, vulnerabilities with known, affectingInstalled, and records with type, severity, affected range, fixedIn and link; or closed with the date and reason), updatesDue, then core releases and branches.
Tips: without versions you only get the general picture, so get them first (see the recipe below). "No known vulnerability" never means safe. Premium plugins that are not on WordPress.org can't be checked here: say so.
wp_news
The latest articles from active WordPress blogs: official (WordPress.org, Make WordPress), news sites, security researchers, hosts and plugin makers.
Call it when the user asks what's new, or a recent event matters.
| Input | Type | Required | Meaning |
|---|---|---|---|
kind | one of official, news, security, dev, blog | no | Only one kind of source. |
limit | 1 to 30 | no | How many articles (default 10). |
Example:
{ "kind": "security", "limit": 5 }
Returns articles with title, source, date, link and a short summary.
wp_howto
Hands-on, step-by-step WordPress guides for a task.
Call it when the user wants to do something step by step: connect AI agents, speed up a site, fix an error, set up SEO.
| Input | Type | Required | Meaning |
|---|---|---|---|
query | text | no | The task, e.g. "speed up a slow site". |
topic | one of ai-mcp, images, optimize, seo, security, debug, tools | no | Only guides on this topic. |
limit | 1 to 10 | no | How many guides (default 5). |
Example:
{ "query": "fix the white screen of death", "topic": "debug" }
Returns results with title, url, summary, topic and updated.
wp_report
Share how something went after you used it for real, so every other agent picks better (Signals).
Call it after you really used a plugin, page builder, doc, news item, changelog entry or guide for your user, and they agree. The first call opens a one-time sign-in in your user's browser (GitHub or Google); after that it just works.
| Input | Type | Required | Meaning |
|---|---|---|---|
kind | one of plugin, builder, news, doc, change, guide | yes | What you used. |
item | text | yes | Its public slug, key or path: contact-form-7, elementor, a docs path. |
scores | object of 0 to 10 | no | One score per scale of that kind, e.g. { "works": 9, "spam": 8 }. Scales: https://mcpforwp.com/signals.json |
tags | list | no | Up to 8 tags from that kind's list, e.g. ["works-well"]. |
evidence | text | yes | One sentence: what you did and what happened. |
wordpress, php | versions | no | What it ran on. |
Example:
{ "kind": "plugin", "item": "contact-form-7", "scores": { "works": 9, "spam": 8 }, "tags": ["works-well"], "evidence": "Added a contact form, sent 3 test messages, all arrived.", "wordpress": "7.1.4" }
Returns ok and what was saved. One report per item per day; a new one replaces it.
Never include the site address, prompts, code or personal data.
wp_feedback
Flag anything wrong or imperfect in MCP for WP's answers, or an idea.
Call it when an answer here was wrong, outdated, missing something you needed, confusing or broken.
| Input | Type | Required | Meaning |
|---|---|---|---|
about | one of "A tool answer", "A plugin or page builder", "A doc or guide", "A news item", "This site", "MCP for WP itself" | yes | What it is about. |
category | one of wrong, outdated, missing, confusing, broken, idea | yes | What kind of problem. |
note | text | yes | One or two sentences. |
item | text | no | The tool name, slug or path it is about. |
wordpress | version | no | The WordPress version it was about. |
Example:
{ "about": "A tool answer", "category": "outdated", "item": "wp_plugin", "note": "Tested up to says 7.0.8, the plugin page now says 7.1.4." }
Recipes
Check a site (the most useful thing you can do)
- Get the real versions. With WP-CLI:
wp core version,wp eval 'echo PHP_VERSION;',wp plugin list --fields=name,version,status,update_id --format=csv(update_idtells where each plugin updates from, so a premium build sharing a WordPress.org folder name is not mistaken for it). Without it, ask the user, or read the Plugins screen. - One call:
wp_securitywithwordpress,phpandplugins. Paste that CSV output as is: plugins outside WordPress.org (premium, commercial) are checked under their own slug, must-use plugins are skipped and listed innotChecked. - Start from
urgent: it is already sorted (no fix yet, replace, update). Then tell the user, most urgent first: plugins whose latest version is still affected (no fix yet: disable or replace), plugins closed on WordPress.org, known vulnerabilities that hit the installed version (update), WordPress or PHP branches without security fixes, then plain updates due. - Quote the refresh date, and say that premium plugins were not checked.
Before writing WordPress code
wp_now with since = your training cutoff, read each action, then wp_docs for the exact function or hook. Write against the current API, not the one you remember.
Choosing a plugin
wp_plugin with up to 3 candidates, then wp_security with their slugs. Compare last update, tested version, required PHP and known vulnerabilities against what the user needs. No ranking.
Connecting, and calling it directly
- Added in the middle of a session? Most apps only load a new MCP server at the next session. In Claude Code, type
/mcp, pick mcpforwp and connect (or Authenticate, for reporting): no restart needed. - Reporting needs a one-time sign-in. A full MCP app opens it by itself on the first
wp_report. If yours doesn't, ask the user to run the step above. - No app that can open the sign-in? Use the device sign-in:
POST https://mcpforwp.com/device/codegives auser_codeand a link. Tell the user to openhttps://mcpforwp.com/deviceand type the code, then pollPOST https://mcpforwp.com/device/tokenwith{"device_code": ...}every 5 seconds until it returns anaccess_token. Send it asAuthorization: Bearer <token>to/mcp. - Which agents are connected? The user can see them, and disconnect any, at
https://mcpforwp.com/account(same sign-in). - No MCP app at all (scripts, curl, headless agents)? Call the tools over HTTP. It's stateless JSON-RPC; send an Accept header for both JSON and event streams, and a User-Agent of your own (some default ones are blocked):
curl -s https://mcpforwp.com/mcp -A "my-agent/1.0" \
-H 'content-type: application/json' -H 'accept: application/json, text/event-stream' \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"wp_security","arguments":{"wordpress":"7.1.4"}}}'
Rules
- Facts, never rankings. MCP for WP never says which plugin is best.
- Read-only: these tools never touch the user's site.
- Free, no key, 60 requests a minute per IP.
- Every answer has a refresh date: quote it when it matters.
More: https://mcpforwp.com/for-agents.md · https://mcpforwp.com/llms.txt