Current WordPress knowledge for AI agents: versions, security, plugin facts, news and docs.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Use when you need the official page for a function, hook, class, block API, REST route, WP-CLI command or common task (nonces, cron, roles, caching...), or a page builder's developer docs: returns the right links with a one-line summary, not the page content. For a step-by-step walkthrough, use wp_howto.
A function, hook or class name, or a question
Pick your client. Values in capitals, like YOUR_TOKEN, are yours to fill in.
Run in a terminal
claude mcp add --transport http todaywp https://todaywp.com/mcp
Use when you need the official page for a function, hook, class, block API, REST route, WP-CLI command or common task (nonces, cron, roles, caching...), or a page builder's developer docs: returns the right links with a one-line summary, not the page content. For a step-by-step walkthrough, use wp_howto.
| Argument | Type | Description |
|---|---|---|
| limit | integer | |
| query* | string | A function, hook or class name, or a question |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"query"
],
"properties": {
"limit": {
"type": "integer",
"default": 5,
"maximum": 10,
"minimum": 1
},
"query": {
"type": "string",
"minLength": 2,
"description": "A function, hook or class name, or a question"
}
}
}Use when Today WP itself got something wrong: an answer, page or fact that looked wrong, outdated, missing or confusing, or an idea. One short note. To rate a plugin or doc, use wp_report. category: wrong (A fact that is not true.), outdated (True once, not anymore.), missing (Something an agent needed and did not get.), confusing (Hard to act on, ambiguous or misleading.), broken (A tool error, a dead link, a timeout.), idea (Something that would make answers better.). about: one of "A tool answer", "A plugin or page builder", "A doc or guide", "A news item", "This site", "Today WP itself". Never include the site address, prompts or code.
| Argument | Type | Description |
|---|---|---|
| item | string | A tool name, slug or path it is about |
| note* | string | One or two sentences |
| about* | string | |
| category* | string | |
| wordpress | string |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"about",
"category",
"note"
],
"properties": {
"item": {
"type": "string",
"maxLength": 200,
"description": "A tool name, slug or path it is about"
},
"note": {
"type": "string",
"maxLength": 400,
"description": "One or two sentences"
},
"about": {
"enum": [
"A tool answer",
"A plugin or page builder",
"A doc or guide",
"A news item",
"This site",
"Today WP itself"
],
"type": "string"
},
"category": {
"enum": [
"wrong",
"outdated",
"missing",
"confusing",
"broken",
"idea"
],
"type": "string"
},
"wordpress": {
"type": "string",
"maxLength": 20
}
}
}Use when the user wants step-by-step help with a common task (connecting AI and MCP, images and media, speed and database, SEO, security, fixing errors): returns links to hands-on guides with a short summary. For an API or function reference, use wp_docs.
| Argument | Type | Description |
|---|---|---|
| limit | integer | |
| query | string | The task, e.g. "connect Claude to WordPress" |
| topic | string |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"limit": {
"type": "integer",
"default": 5,
"maximum": 10,
"minimum": 1
},
"query": {
"type": "string",
"description": "The task, e.g. \"connect Claude to WordPress\""
},
"topic": {
"enum": [
"ai-mcp",
"images",
"optimize",
"seo",
"security",
"debug",
"tools"
],
"type": "string"
}
}
}Use when the user asks what is new in WordPress, or a recent release or announcement may matter to the task: the latest articles from official WordPress blogs, news sites, security researchers and makers, newest first, with source, date, summary and link. For what changed and what to do in code, use wp_now.
| Argument | Type | Description |
|---|---|---|
| kind | string | Only one kind of source |
| limit | integer |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"kind": {
"enum": [
"official",
"news",
"security",
"dev",
"blog"
],
"type": "string",
"description": "Only one kind of source"
},
"limit": {
"type": "integer",
"default": 10,
"maximum": 30,
"minimum": 1
}
}
}Current WordPress versions and changes in one dated call. Use before writing or reviewing WordPress code, or when a version or API question comes up: current versions (WordPress, Gutenberg, PHP, WP-CLI, MCP Adapter), the next release, and what changed recently with what to do about it (deprecations, new APIs, AI and MCP). Once per task is enough. Pass `since` (your training cutoff) or `area` for the full details. For articles and announcements, use wp_news.
| Argument | Type | Description |
|---|---|---|
| area | string | Only changelog entries for this area |
| limit | integer | Maximum changelog entries (default 8, or 50 with area or since) |
| since | string | Only changes on or after this date (YYYY-MM-DD), e.g. your training cutoff |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"area": {
"enum": [
"core",
"editor",
"ai",
"mcp",
"php",
"security",
"cli",
"rest",
"performance"
],
"type": "string",
"description": "Only changelog entries for this area"
},
"limit": {
"type": "integer",
"maximum": 50,
"minimum": 1,
"description": "Maximum changelog entries (default 8, or 50 with area or since)"
},
"since": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Only changes on or after this date (YYYY-MM-DD), e.g. your training cutoff"
}
}
}Plugin facts from current WordPress.org data, dated. Use when choosing, keeping or comparing plugins (up to 3, by slug or name): installs, last update, tested WordPress version, PHP requirement and plain warnings, facts only. Premium and commercial ones (Gravity Forms, WPML, Elementor Pro) get their vendor and relation to a free plugin. For vulnerabilities against an installed version, use wp_security.
| Argument | Type | Description |
|---|---|---|
| plugin* | string | Plugin slug (e.g. "ai-engine") or name; several comma-separated to compare |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"plugin"
],
"properties": {
"plugin": {
"type": "string",
"minLength": 2,
"description": "Plugin slug (e.g. \"ai-engine\") or name; several comma-separated to compare"
}
}
}Use to rate how an item worked, good or bad, after you really used a plugin, page builder, doc, news item, changelog entry or guide for your user (ask the user first: reports are public under their name). Scores are 0 to 10 on the scales of that kind, tags from its list: for a plugin, wp_plugin gives the exact keys (signals.scaleKeys, signals.tagKeys); for everything, https://todaywp.com/signals.json. evidence: one sentence on what you did and what happened. Never include the site address, prompts or code. One report per item per day; a new one replaces it.
| Argument | Type | Description |
|---|---|---|
| php | string | |
| item* | string | The public slug, key or path: "contact-form-7", "elementor", a docs path |
| kind* | string | |
| tags | array | |
| scores | object | { scale: 0-10 }, e.g. { "works": 9, "spam": 8 } |
| evidence* | string | What you did and what happened, one sentence |
| wordpress | string |
WordPress, PHP, plugin and theme updates and security in one call, with dated, sourced answers. Use when the user asks if a site is safe or up to date, or before advising on updates or hosting: pass the site's WordPress and PHP versions, plugins and themes (slug:version or the wp plugin list / wp theme list output) to get an ordered urgent list (what to update or replace first), known vulnerabilities that hit the installed versions, and which WordPress and PHP branches still get fixes. Compares versions with public records; it does not scan the site.
| Argument | Type | Description |
|---|---|---|
| php | string | The PHP version a site runs, e.g. "8.1.30": says if that branch still gets security fixes (a plugin's minimum PHP can be checked here too, as a branch status) |
| themes | string | The site's themes: "astra:4.6, twentytwentyfive:1.2", or the raw output of `wp theme list --fields=name,status,version --format=csv`. Up to 10. Checked for known vulnerabilities against the installed version. |
| plugins | string | The site's plugins: "akismet:5.3, contact-form-7:6.0.1, woocommerce", or the raw output of `wp plugin list --fields=name,version,status,update_id --format=csv` (or --format=json) pasted as is. Up to 60. Plugins outside WordPress.org (premium, commercial) are checked under their own slug; must-use plugins are skipped and listed. |
| wordpress | string | The WordPress version a site runs, e.g. "6.8.2": says if that branch still gets security fixes. Not a plugin's minimum requirement: for what changed since a version, use wp_now with since |
We read every tool's name, description and inputs the way the model will, looking for instructions hidden from you. A clean result means no warning signs, not a guarantee. Scanned Nov 13, 2026.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"kind",
"item",
"evidence"
],
"properties": {
"php": {
"type": "string",
"maxLength": 20
},
"item": {
"type": "string",
"maxLength": 200,
"description": "The public slug, key or path: \"contact-form-7\", \"elementor\", a docs path"
},
"kind": {
"enum": [
"plugin",
"builder",
"news",
"doc",
"change",
"guide"
],
"type": "string"
},
"tags": {
"type": "array",
"items": {
"type": "string"
},
"maxItems": 8
},
"scores": {
"type": "object",
"description": "{ scale: 0-10 }, e.g. { \"works\": 9, \"spam\": 8 }",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"type": "integer",
"maximum": 10,
"minimum": 0
}
},
"evidence": {
"type": "string",
"maxLength": 400,
"description": "What you did and what happened, one sentence"
},
"wordpress": {
"type": "string",
"maxLength": 20
}
}
}{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"php": {
"type": "string",
"maxLength": 20,
"description": "The PHP version a site runs, e.g. \"8.1.30\": says if that branch still gets security fixes (a plugin's minimum PHP can be checked here too, as a branch status)"
},
"themes": {
"type": "string",
"maxLength": 4000,
"description": "The site's themes: \"astra:4.6, twentytwentyfive:1.2\", or the raw output of `wp theme list --fields=name,status,version --format=csv`. Up to 10. Checked for known vulnerabilities against the installed version."
},
"plugins": {
"type": "string",
"maxLength": 8000,
"description": "The site's plugins: \"akismet:5.3, contact-form-7:6.0.1, woocommerce\", or the raw output of `wp plugin list --fields=name,version,status,update_id --format=csv` (or --format=json) pasted as is. Up to 60. Plugins outside WordPress.org (premium, commercial) are checked under their own slug; must-use plugins are skipped and listed."
},
"wordpress": {
"type": "string",
"maxLength": 20,
"description": "The WordPress version a site runs, e.g. \"6.8.2\": says if that branch still gets security fixes. Not a plugin's minimum requirement: for what changed since a version, use wp_now with since"
}
}
}