wp-mcp
Allows interaction with WooCommerce store data (products, orders, customers, etc.) through the WordPress REST API via the generic REST endpoint.
Provides tools to manage a WordPress site via the REST API: create, read, update, delete posts and pages; manage users, plugins, themes, media, categories, tags, and site settings; also supports calling any custom REST endpoint.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@wp-mcplist my recent posts"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
wp-mcp — WordPress connector for Claude
Lets you chat with Claude and have it read and change a WordPress site directly.
Just want to use it, not develop it? Non-technical setup guide for Claude Desktop: INSTALL-DESKTOP.md. Download
dist/wp-mcp.mjs— it is a single self-contained file that needs only Node installed, nonpm install, no cloning.
Works with any self-hosted WordPress 5.6+. Nothing is installed on the site —
it uses the REST API that ships with core, authenticated with an Application
Password. Multiple sites can be configured; every tool takes an optional site.
Install
Requires Node 20+. Pick one of the two.
Option 1 — Single file (fastest, nothing to clone)
curl -fsSL -o ~/wp-mcp.mjs https://raw.githubusercontent.com/amolb1986/wp-mcp/main/dist/wp-mcp.mjs
claude mcp add wordpress -s user -- node ~/wp-mcp.mjsdist/wp-mcp.mjs is a self-contained bundle — no npm install, no dependencies.
Option 2 — Clone (for development, or to run the tests)
git clone https://github.com/amolb1986/wp-mcp.git
cd wp-mcp
npm install
claude mcp add wordpress -s user -- node "$(pwd)/src/index.js"Then connect a WordPress site
# Option 1 (single file) — pass credentials as environment variables:
claude mcp remove wordpress -s user
claude mcp add wordpress -s user \
-e WP_URL=https://example.com \
-e WP_USER=your-username \
-e WP_APP_PASSWORD="abcd efgh ijkl mnop qrst uvwx" \
-- node ~/wp-mcp.mjs
# Option 2 (cloned) — use the setup CLI, which supports multiple sites:
node bin/setup.js add mysite https://example.com your-username "abcd efgh ijkl mnop qrst uvwx"Restart Claude Code, then ask: "list the WordPress sites you can access".
Using Claude Desktop instead? See INSTALL-DESKTOP.md — no terminal needed beyond installing Node.
Related MCP server: AutoWP MCP Server
Setup details
1. Create an Application Password on the site
In wp-admin: Users → Profile → Application Passwords. Name it Claude,
click Add, and copy the generated password (shown once, looks like
abcd efgh ijkl mnop qrst uvwx).
This is not your login password. It can be revoked from the same screen at any time without changing your account, and it inherits your user's capabilities — so an Editor account can edit posts but not touch plugins.
2. Register the site
cd ~/wp-mcp
node bin/setup.js add mysite https://example.com your-username "abcd efgh ijkl mnop qrst uvwx"That verifies the connection immediately and tells you which role you connected as.
Add --read-only to make a site read-only. Useful if you ever point this at production:
node bin/setup.js add prod https://www.example.com me "…" --read-only3. Use it
The connector is registered with Claude Code as wordpress. Restart Claude Code
and ask things like:
list the draft pages on mysite read the "Pricing" page and rewrite the intro to be shorter create a draft post titled "Q3 update" with these bullets … which plugins are active on dev?
Managing sites
node bin/setup.js list # show configured sites
node bin/setup.js test # check every site connects
node bin/setup.js default mysite
node bin/setup.js remove prodCredentials live in ~/.wp-mcp/sites.json, written chmod 600.
Tools
Tool | What it does |
| List configured sites and test each connection |
| Show the authenticated user, roles, capabilities |
| Discover post types and taxonomies, including custom ones |
| List posts/pages/custom types, filtered and searched |
| Fetch one item with its raw block/HTML body |
| Search all content at once |
| Create content (defaults to draft) |
| Update fields on an existing item |
| Trash, or permanently delete with |
| Categories, tags, custom terms |
| Media library; upload from a local path or URL |
| Users and roles |
| List plugins, activate/deactivate |
| Installed themes |
| Read or change site settings |
| Call any REST route — WooCommerce, ACF, menus, plugin namespaces |
wp_rest is the escape hatch: anything the site exposes over REST is reachable
even if there is no dedicated tool for it. wp_rest with path: "" lists every
available route on the site.
Safety
Creating content defaults to draft, never publish.
Deleting trashes by default; permanent deletion needs
force: true.--read-only(orWP_MCP_READONLY=1) rejects every non-GET request.You are limited to whatever the WordPress user can do. For a dev site where Claude should manage plugins, use an Administrator account; to be conservative, use an Editor.
Environment variables
Variable | Purpose |
| Configure a single site without a config file |
| Name for that env-configured site (default |
| Alternate path to |
| Force read-only across all sites |
| Accept self-signed certificates (dev servers only) |
| Request timeout, default 30000 |
Troubleshooting
"Could not reach …" — the site is not reachable from this machine. If it is an
internal dev host, connect to the VPN first. Check with
curl -I https://example.com/.
Self-signed certificate — set WP_MCP_INSECURE_TLS=1.
401 incorrect_password — some hosts strip the Authorization header. Add to
.htaccess on the site:
RewriteEngine On
RewriteCond %{HTTP:Authorization} ^(.*)
RewriteRule .* - [E=HTTP_AUTHORIZATION:%1]Site behind HTTP Basic auth — that uses the same Authorization header as
Application Passwords and will conflict. Allowlist your IP, or exempt
/wp-json from basic auth.
rest_no_route — that route does not exist on the site. Run wp_rest with
path: "" to see what is actually available.
Tests
npm testtest/smoke.js spawns the real MCP server over stdio against a stub WordPress
REST API and exercises every tool, plus auth failure, unreachable host,
read-only mode, and sites without pretty permalinks. test/cli.js covers the
setup CLI. 71 checks total, no network access needed.
Available Tools
20 toolswp_create_contentCreate a post / pageA
Create new content on a site. Defaults to draft status so nothing goes live by accident — pass status 'publish' only when the user asked for it to be published.
| Name | Required | Description | Default |
|---|---|---|---|
| date | No | ISO 8601; required when status is future. | |
| meta | No | Registered meta fields only. | |
| site | No | Configured site name. Omit to use the default site. | |
| slug | No | ||
| tags | No | ||
| title | No | ||
| author | No | ||
| parent | No | ||
| status | No | Defaults to draft on create — publish explicitly when intended. | |
| content | No | Full body as HTML or Gutenberg block markup. Replaces existing content. | |
| excerpt | No | ||
| template | No | ||
| post_type | No | Post type slug, e.g. post, page, or a custom type. | post |
| categories | No | ||
| featured_media | No | Media ID for the featured image. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the burden of behavioral disclosure. It reveals a critical safety behavior: content defaults to draft to prevent accidental publishing, and only 'status=publish' will make it live. This is significant for safe invocation. It does not disclose other behaviors like return format or permissions, but for a create operation the main risk is well covered.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured sentence. It front-loads the purpose and includes a crucial safety caveat without any filler. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 15 parameters, no annotations, and no output schema, the description is sparse. It adequately covers the most important behavioral nuance (draft default) and makes basic use safe. However, it omits information about the return value, and the meaning of many optional parameters remains unclear from both schema and description. This is sufficient for simple cases but leaves gaps for complex invocations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 47%, which is low. The description adds meaning for the 'status' parameter (default draft) and the condition for publishing, which is helpful. However, it does not compensate for the 8 parameters lacking schema descriptions (e.g., meta, template, parent, categories, tags). The description provides only marginal value beyond the schema's existing param descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function with a specific verb and resource: 'Create new content on a site.' The title 'Create a post / page' further clarifies the scope. This distinguishes it from sibling tools like wp_update_content, wp_delete_content, wp_get_content, and wp_list_content.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit and valuable guidance about the default draft status and when to pass 'publish' — 'only when the user asked for it to be published.' This is a key usage consideration, though it does not explicitly name alternatives or exclusions. The creation-vs-update distinction is implicit, which is acceptable for this context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wp_create_termCreate a taxonomy termC
Create a new category, tag, or custom taxonomy term.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| site | No | Configured site name. Omit to use the default site. | |
| slug | No | ||
| parent | No | ||
| taxonomy | No | category | |
| description | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavioral traits. It only indicates a create action, but doesn't mention permissions, side effects, site requirements, or whether the operation is idempotent, which is a significant gap for a write operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence, but it is under-specified rather than efficiently complete. It omits essential context that would make it appropriately sized for the tool's complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 6 parameters, no output schema, and no annotations, the description is too sparse to be complete. It doesn't explain return values, behavioral effects, or usage context, leaving the agent without enough information for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 17% (only 'site' has a description), and the description adds minimal parameter meaning. It hints that taxonomy can be category/tag/custom, but doesn't explain required 'name' or optional 'slug', 'parent', and 'description' fields, so it fails to compensate for the schema's low coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the specific verb 'Create' and identifies the resource as 'category, tag, or custom taxonomy term,' which clearly distinguishes this tool from siblings like wp_create_content or wp_list_terms. The mention of taxonomy types adds useful precision.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives, no exclusions, and no prerequisites. It only states what the tool does, leaving the agent to infer usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wp_delete_contentDelete a post / pageA
Move an item to trash (recoverable). Pass force: true to delete permanently — that cannot be undone, so confirm with the user first.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| site | No | Configured site name. Omit to use the default site. | |
| force | No | true = permanent, irreversible delete. Default trashes instead. | |
| post_type | No | Post type slug, e.g. post, page, or a custom type. | post |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full responsibility and explains that default is recoverable trash, while force:true is permanent and irreversible. It adds the crucial safety note about confirming with the user, which is essential for a destructive tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the primary action, and every clause provides meaningful information. No filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is a straightforward destructive operation, and the description covers the key behavioral distinction (trash vs permanent) and user confirmation. Parameter guidance is left largely to schema, and the absence of output schema is acceptable because the main concern is the side effect.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already covers 75% of parameters with descriptions. The description adds 'recoverable' and the confirmation nuance for force, but largely repeats the schema's 'irreversible delete'. It does not add meaning for the required id parameter, so the extra contribution is limited.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Move an item to trash', 'delete permanently') and the resource (a post/page). It distinguishes the tool from siblings like wp_create_content, wp_update_content, and wp_get_content by focusing on deletion semantics.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides explicit guidance on when to use force:true versus the default trash behavior, including the caution to confirm with the user. It does not name alternative tools for non-destructive actions, but the intended use case is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wp_get_contentGet one post / pageA
Fetch a single item in full, including its raw block/HTML content — this is what you read before editing something.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The item ID. | |
| site | No | Configured site name. Omit to use the default site. | |
| post_type | No | Post type slug, e.g. post, page, or a custom type. | post |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the burden of behavioral disclosure. It indicates the tool fetches raw content, adding value beyond the schema, but it does not explicitly state that the operation is read-only, nor does it mention error behavior or edge cases. This is adequate but lacks full safety/behavior clarity.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that communicates the core purpose, content detail, and usage intent without any wasted words. Every part contributes meaningful information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only tool with three parameters and no output schema, the description provides sufficient context: it states what is returned (full raw content) and when to use it. Minor gaps like lack of explicit read-only confirmation and error handling are present, but given the low complexity, the description is nearly complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all parameters (id, site, post_type) are already documented with descriptions. The main description adds context about the returned content ('full, including raw block/HTML') but does not provide any additional parameter-level semantics, meriting the baseline 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Fetch a single item in full, including its raw block/HTML content' uses a specific verb and resource, clearly distinguishing it from list/search tools. The phrase 'this is what you read before editing something' further reinforces its purpose as a content retrieval tool for editing workflows.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use this tool ('before editing something'), implying it is the preferred way to fetch full content. However, it does not explicitly mention when not to use it or name alternatives like wp_list_content or wp_search, so it stops short of full exclusionary guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wp_list_contentList posts / pages / custom contentA
List content of any post type with filters and search. Returns compact summaries, not full bodies — call wp_get_content for the full text of one item.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| site | No | Configured site name. Omit to use the default site. | |
| slug | No | Find by exact slug. | |
| tags | No | Comma-separated tag IDs. | |
| order | No | ||
| author | No | ||
| parent | No | Only children of this ID. | |
| search | No | Free-text search. | |
| status | No | Comma-separated statuses: publish, draft, pending, private, future, trash, or 'any'. | |
| orderby | No | date, title, modified, menu_order, id | |
| per_page | No | ||
| post_type | No | Post type slug, e.g. post, page, or a custom type. | post |
| categories | No | Comma-separated category IDs. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the transparency burden. It discloses a key behavioral trait: returns compact summaries rather than full content, and points to the correct tool for full text. However, it does not mention pagination, authorization, or side effects, though the listing operation is inherently read-only.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no redundancy. The first sentence states the action and scope, the second provides a valuable behavioral note and directs to an alternative. Perfectly front-loaded and concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 13 parameters and no output schema, the description covers the most important contextual aspects: what it lists, that it returns summaries, and how to get full content. It omits default behavior details (e.g., default post_type, pagination) but these are available in the schema. The description is adequate for a complex listing tool but not exhaustive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 69%, leaving 4 of 13 parameters undocumented (page, order, author, per_page). The description only mentions 'filters and search' generically, adding no specific meaning beyond the schema. Since coverage is moderate but not high, a baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource: 'List content of any post type with filters and search.' It clearly distinguishes from siblings like wp_list_post_types (lists types) and wp_get_content (gets full text) by stating it returns compact summaries and directing to wp_get_content for full text.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states when to use an alternative: 'call wp_get_content for the full text of one item.' It implies use for listing/searching content summaries, but does not mention other potential exclusions or comparisons with wp_search or other list tools, leaving some ambiguity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wp_list_mediaList mediaB
List items in the media library, newest first.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| site | No | Configured site name. Omit to use the default site. | |
| search | No | ||
| per_page | No | ||
| media_type | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses the 'newest first' ordering, which is a meaningful behavioral detail. However, since no annotations are provided, the description carries the full burden and fails to mention pagination behavior (page/per_page) or other side effects, leaving transparency incomplete.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no redundant or filler content. Every word adds value: it identifies the action, the resource, and the default ordering.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no annotations, no output schema, and only 20% parameter coverage, a more detailed description is necessary. The description omits filtering and pagination semantics and does not explain what fields are returned, leaving the agent under-informed for a tool with 5 parameters.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 20% (only the 'site' parameter is described), and the tool description adds zero information about the other parameters (page, per_page, search, media_type). The description does not compensate for the low schema coverage, forcing the agent to rely on parameter names alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with the verb 'List' and identifies the specific resource 'media library', distinguishing it from sibling list tools such as wp_list_users or wp_list_content. It also adds the ordering detail 'newest first', which gives useful scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit guidance on when to use this tool versus alternatives like wp_list_content or wp_list_users. The description implies usage by naming the media library but lacks exclusions, prerequisites, or alternative recommendations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wp_list_pluginsList pluginsA
List installed plugins and whether each is active. Requires an administrator account.
| Name | Required | Description | Default |
|---|---|---|---|
| site | No | Configured site name. Omit to use the default site. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavior. It reveals that the output includes active status and that an administrator account is required. The term 'List' implies a read-only operation, though it is not explicitly stated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two concise sentences, front-loaded with the core purpose. Every word contributes meaning; there is no fluff or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list tool with one optional parameter and no output schema, the description adequately states what the tool returns (plugins and active status) and the required permission level. It could mention the return format in more detail, but the current level is sufficient for basic selection.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The only parameter 'site' is fully described in the schema (100% coverage), so the description does not need to add parameter details. It adds no extra meaning beyond the schema, but the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool 'List installed plugins and whether each is active.' It uses a specific verb ('List') and resource ('plugins'), distinguishing it from sibling tools that list other entities like users, taxonomies, or content.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use it (when you need a list of plugins with their active status) but does not explicitly differentiate it from alternatives like wp_manage_plugin or provide exclusions. The admin account requirement is a prerequisite, not a usage guideline.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wp_list_post_typesList post typesA
List the post types available on a site (post, page, and any custom types such as products or case studies), with the REST route to use for each.
| Name | Required | Description | Default |
|---|---|---|---|
| site | No | Configured site name. Omit to use the default site. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description is the sole source of behavioral info. It implies a read-only operation via 'List' and adds the output detail of including REST routes, but it does not explicitly state safety, permissions, or any limits such as hiding private post types. This is adequate but not thorough.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured sentence that front-loads the main purpose and includes a useful qualifier about custom types and REST routes. Every word earns its place with no redundancy or fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one optional parameter, no output schema), the description is complete: it states what is returned (post types with REST routes) and the scope (site-specific). No critical information is missing for an agent to select and invoke this tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema covers 100% of parameter descriptions (the 'site' parameter), so the baseline is 3. The description adds no additional meaning about the parameter, merely relying on the schema's own description, which is sufficient.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'List' and the resource 'post types', with specific examples (post, page, custom types) and the additional detail about returning REST routes. This distinguishes it from sibling tools like wp_list_taxonomies or wp_list_content.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives such as wp_list_taxonomies or wp_list_content. There is no mention of prerequisites, exclusions, or when this tool is preferred, leaving the agent to infer usage from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wp_list_taxonomiesList taxonomiesA
List the taxonomies on a site (categories, tags, and custom taxonomies) and the REST base for each.
| Name | Required | Description | Default |
|---|---|---|---|
| site | No | Configured site name. Omit to use the default site. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses the output scope (taxonomies and REST bases), which is useful behavioral context beyond a generic list operation. It does not mention side effects or permissions, but for a list these are typically not a concern.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that is front-loaded with the action and includes no redundant words. Every word adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one optional parameter and complete schema, the description provides enough context about the return value (taxonomies and REST bases). It could optionally mention if only public taxonomies are listed, but that is not essential.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema fully describes the only parameter (site) with a clear description, and schema coverage is 100%. The tool description adds no extra parameter information, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states what the tool does: lists taxonomies on a site, enumerates the types (categories, tags, custom taxonomies), and adds details about returning the REST base for each. This differentiates it from sibling tools like wp_list_post_types and wp_list_terms.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied: if you need taxonomies and their REST bases, this is the tool. However, it does not explicitly mention alternatives or when not to use it, leaving guidance to inference from sibling names.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wp_list_termsList taxonomy termsA
List the terms in a taxonomy (e.g. all categories or tags), so you can map names to the numeric IDs that content tools expect.
| Name | Required | Description | Default |
|---|---|---|---|
| site | No | Configured site name. Omit to use the default site. | |
| search | No | ||
| per_page | No | ||
| taxonomy | No | Taxonomy slug. | category |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It only says 'List the terms' and gives the purpose, but does not disclose pagination behavior (per_page defaults to 100), the effect of the search parameter, or the return format. These are significant for a list tool, especially without an output schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that states the action, the resource, and the purpose. Every word contributes value, and it is appropriately sized for a simple list operation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity, no output schema, and no annotations, the description is adequate but not thorough. It explains the tool's purpose but omits details about pagination, search behavior, and return structure, which are relevant for an agent to fully understand what will happen when invoked.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 50%, so the description must partially compensate for undocumented parameters. It adds the important semantic that the returned IDs are what content tools expect, but it does not explain the 'search' or 'per_page' parameters, leaving some gaps. However, the schema already covers 'taxonomy' and 'site' descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('List'), a specific resource ('terms in a taxonomy'), and gives concrete examples ('categories or tags'). It also clarifies the purpose ('map names to the numeric IDs that content tools expect'), which differentiates it from sibling tools like wp_list_taxonomies (which lists taxonomies) and wp_create_term (which creates terms).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use this tool: when you need to map term names to numeric IDs for use in content tools. It does not explicitly name alternatives or exclusion criteria, but the use case is clearly implied, and the sibling tool list helps the agent disambiguate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wp_list_themesList themesA
List installed themes and which one is active.
| Name | Required | Description | Default |
|---|---|---|---|
| site | No | Configured site name. Omit to use the default site. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the burden of disclosing behavioral traits. It implies a read-only operation by using 'List', but it does not explicitly state that it causes no changes or mention any side effects, permissions, or return details. For a simple list tool, this is acceptable but leaves room for the agent to assume the operation is safe without explicit confirmation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence consisting of eight words. It communicates the entire purpose without any filler or redundancy, making it highly concise and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list tool with one optional parameter and no output schema, the description is complete: it names the resource (installed themes) and the specific output attribute (active theme). This gives the agent enough information to invoke the tool and interpret the expected result. No further context is needed for this low-complexity operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, with the only parameter 'site' fully described as 'Configured site name. Omit to use the default site.' The tool description adds no additional parameter explanation, but since the schema already provides complete semantics, the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the specific verb 'List' with a clear resource ('installed themes') and adds the detail 'and which one is active', making the tool's purpose unambiguous. This distinguishes it from sibling list tools like wp_list_plugins or wp_list_post_types by identifying the exact resource it targets.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The context is clear: use this tool to enumerate installed themes and check the active one. While it does not explicitly mention when not to use it or name alternatives, the simple list operation and distinct resource make the intended usage evident. No exclusions or prerequisites are stated, but none are needed for such a basic read operation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wp_list_usersList usersB
List users on the site with their roles.
| Name | Required | Description | Default |
|---|---|---|---|
| site | No | Configured site name. Omit to use the default site. | |
| roles | No | Comma-separated role slugs. | |
| search | No | ||
| per_page | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden for behavioral disclosure. It only states 'List users on the site with their roles.' It does not disclose that this is a read-only operation, mention pagination behavior, or describe the output format beyond roles. There is no added context about permissions, rate limits, or filtering capabilities.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence that front-loads the core action and resource. No unnecessary words or redundant information. It is an appropriate length for a simple listing tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has 4 parameters and no output schema or annotations. The description is too minimal to be complete. It does not mention pagination, filtering by roles/search, the default site behavior, or what the returned user data includes (e.g., usernames, emails, etc.). For a tool with no annotations, the description should provide more operational context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 50% (site and roles have descriptions; search and per_page do not). The description does not compensate for the missing parameter details. It mentions 'with their roles' but does not explain how the roles parameter works, nor does it explain the search or per_page parameters. The description adds minimal value beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists users on the site and includes their roles. The verb 'List' and resource 'users' are specific and unambiguous, distinguishing it from sibling tools like wp_list_post_types or wp_list_taxonomies.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description states the tool lists users, which implies it is the appropriate choice for retrieving user data. However, it does not explicitly mention when not to use it, such as for listing roles (use wp_list_terms) or other resources. The usage context is implied by the resource name but not explicitly contrasted with alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wp_manage_pluginActivate or deactivate a pluginA
Change a plugin's active status. This takes effect on the live site immediately — confirm with the user before deactivating anything on a site people are using.
| Name | Required | Description | Default |
|---|---|---|---|
| site | No | Configured site name. Omit to use the default site. | |
| plugin | Yes | Plugin file path as shown by wp_list_plugins, e.g. akismet/akismet. | |
| status | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses that changes take effect immediately on the live site and includes a caution to confirm before deactivating. This is significant behavioral context beyond the bare 'change active status'. However, it does not mention potential errors, side effects, or whether activation requires similar confirmation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences: the first states the action, the second adds a critical warning. It is front-loaded with the primary purpose and contains no redundant information. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple mutation tool with no output schema and no annotations, the description covers the core purpose, immediate impact, and a safety precaution. It does not explain return values or failure modes, but given the low complexity (3 parameters, clear enum), the description is sufficiently complete for an agent to use it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already provides descriptions for the plugin path, status enum, and site. The description adds no additional semantic detail about how to choose values or what each parameter means beyond the schema. With 67% schema coverage, the baseline is 3, and the description does not elevate it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states 'Change a plugin's active status' which is a specific verb and resource. The title 'Activate or deactivate a plugin' reinforces this. It clearly distinguishes from sibling tools like wp_list_plugins (listing) and wp_create_content (content creation).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for managing plugin state but does not explicitly state when to use this tool over alternatives. The warning to confirm before deactivating provides context but no exclusion or alternative guidance. Usage is implied by the tool's nature as a management action.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wp_restCall any REST endpointA
Call any WordPress REST route directly. Use this for anything the dedicated tools do not cover — WooCommerce, ACF, menus, or a plugin's own namespace. Discover routes by calling GET on an empty path.
| Name | Required | Description | Default |
|---|---|---|---|
| body | No | JSON body for writes. | |
| path | Yes | REST route without the /wp-json prefix, e.g. 'wp/v2/menus' or 'wc/v3/products'. Use '' to list all routes. | |
| site | No | Configured site name. Omit to use the default site. | |
| query | No | Query string parameters. | |
| method | No | GET |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full weight. It discloses that the tool is a direct passthrough and offers route discovery, but it does not mention authentication, response format, error behavior, or rate limits. The added context is useful but not thoroughly transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences long, front-loaded with the main purpose, and every clause adds operational value. It avoids repetition of schema details and gives immediately actionable guidance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's generic nature and the absence of an output schema, the description sufficiently informs the agent about scope, alternatives, and route discovery. It does not describe response structure, but that is inherently endpoint-dependent and not reasonably expected for a generic REST caller.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is high (80%), and the schema already describes each parameter. The description adds valuable semantic nuance beyond the schema, especially the path convention ('without the /wp-json prefix') and the special empty string to list routes, which directly aids invocation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific verb and resource: 'Call any WordPress REST route directly.' It distinguishes itself from sibling tools by explicitly positioning itself as the fallback for anything the dedicated tools do not cover, with concrete examples like WooCommerce, ACF, and menus.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit when-to-use guidance ('Use this for anything the dedicated tools do not cover') and implies when not to use it by pointing to dedicated tools. It also provides a concrete strategy for discovering available routes by calling GET on an empty path.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wp_searchSearch a siteA
Search across all searchable content on a site at once. Faster than listing each post type when you do not know where something lives.
| Name | Required | Description | Default |
|---|---|---|---|
| site | No | Configured site name. Omit to use the default site. | |
| type | No | Restrict to content, taxonomy terms, or formats. | |
| query | Yes | What to search for. | |
| subtype | No | Restrict to a post type slug. | |
| per_page | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Since there are no annotations, the description carries the burden of behavioral disclosure. It does mention the 'at once' cross-content behavior and the performance claim, but it doesn't define what counts as 'searchable content,' whether terms/formats are included by default, or how results are returned. This leaves gaps for an agent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, action-first, and free of redundancy. The first sentence states the core function; the second provides a practical reason for using it. Both sentences add value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 5 parameters and no output schema, the description provides the critical selection context (cross-content search, speed advantage over listing) but doesn't elaborate on restriction options or result pagination. The schema compensates for parameter details, making the description mostly complete, with minor gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 80% (4 of 5 parameters have descriptions), which meets the high-coverage threshold. The description adds no additional meaning to parameters like query, type, or subtype; it relies entirely on the schema. Hence the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: 'Search across all searchable content on a site at once.' It uses a specific verb and resource, and differentiates itself from list-oriented siblings by noting it's faster when the location of content is unknown.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit usage context: use this tool when you don't know where something lives, as it's faster than listing each post type. It doesn't name an explicit alternative tool, but clearly references the listing approach, offering enough guidance for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wp_settingsRead or change site settingsA
Read general site settings, or change them by passing updates. Affects the whole site — confirm before changing anything beyond a dev sandbox.
| Name | Required | Description | Default |
|---|---|---|---|
| site | No | Configured site name. Omit to use the default site. | |
| updates | No | Settings to change, e.g. {"title":"New name"}. Omit to just read current settings. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of behavioral disclosure. It reveals that changes affect the whole site and advises caution, which is important context. However, it does not mention whether changes are reversible, require authentication, or what the return format looks like when reading settings. This leaves some behavioral gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise, with two sentences that front-load the core functionality (read or change settings) followed by a necessary caution. Every sentence earns its place with no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter tool with no output schema, the description covers the primary operations, the scope of impact, and a safety caution. It lacks an explicit statement about return values when reading, but the context implies current settings are returned. This is sufficient for the tool's complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already has 100% coverage for both parameters, providing descriptions for 'site' and 'updates'. The description adds minimal parameter-level detail, merely referencing 'updates' and 'site' indirectly. Baseline 3 is appropriate since the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool can 'Read general site settings, or change them by passing `updates`.' It uses specific verbs (read/change) and a clear resource (general site settings), distinguishing it from sibling tools that handle content, users, media, etc.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use the tool: to read or change site settings. It also includes a caution about affecting the whole site and confirming changes beyond a dev sandbox. However, it does not explicitly mention alternatives or when not to use it, which is acceptable given the tool's unique purpose.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wp_sitesList WordPress sitesA
List every WordPress site this connector is configured for, and test whether each one is reachable and the credentials work. Run this first when something is not working.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full transparency burden. It discloses that the tool tests reachability and credentials, going beyond merely listing sites. This is meaningful behavioral context for a read-only diagnostic operation, though it does not detail output format or side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise, front-loaded sentences with no waste. The first sentence states the core function, and the second provides usage guidance. Very efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations, no output schema, and zero parameters, the description provides a clear purpose, behavioral details, and usage timing. It could mention output shape, but the diagnostic intent is well covered. This is above minimum viable, slightly short of fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so per guidelines the baseline is 4. The description adds context about what the list contains and what testing is performed, which is sufficient for an empty schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the tool's action ('List every WordPress site') and its scope ('this connector is configured for'), plus an additional test action. It is distinguished from sibling list tools (e.g., wp_list_post_types, wp_list_users) by focusing on site configurations and connectivity/credential checks.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives explicit when-to-use guidance: 'Run this first when something is not working.' This is strong contextual direction, though it does not mention alternatives or exclusions explicitly. Still, the diagnostic context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wp_update_contentUpdate a post / pageA
Update an existing item. Only the fields you pass are changed. Note that content replaces the whole body — read it with wp_get_content first if you are making a partial edit.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The item to update. | |
| date | No | ISO 8601; required when status is future. | |
| meta | No | Registered meta fields only. | |
| site | No | Configured site name. Omit to use the default site. | |
| slug | No | ||
| tags | No | ||
| title | No | ||
| author | No | ||
| parent | No | ||
| status | No | Defaults to draft on create — publish explicitly when intended. | |
| content | No | Full body as HTML or Gutenberg block markup. Replaces existing content. | |
| excerpt | No | ||
| template | No | ||
| post_type | No | Post type slug, e.g. post, page, or a custom type. | post |
| categories | No | ||
| featured_media | No | Media ID for the featured image. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the transparency burden. It discloses the partial-update behavior and warns that content replaces the whole body, which is a destructive side effect. It does not mention auth or response format, but the key behavioral traits are covered.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the core purpose, and every clause adds value. It is concise without sacrificing essential caveats, making it easy for an agent to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has 16 parameters, no output schema, and no annotations. The description covers the update semantics and content caveat but omits return value, required id emphasis, status defaults, and interaction with other parameters. For a tool this complex, the description leaves significant gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 50%, and the description adds little beyond what the schema already states about content. It reinforces the content replacement behavior but does not clarify other undocumented parameters like slug, tags, title, author, parent, excerpt, template, or categories, leaving them ambiguous.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool updates an existing item, distinguishing it from create/delete siblings. The title 'Update a post / page' and the phrase 'existing item' provide a specific verb and resource, though 'item' is slightly generic without the title.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit usage context: only passed fields are changed, and it advises reading content with wp_get_content before partial edits. This gives clear guidance for a common use case, though it does not explicitly exclude when to use create/delete instead.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wp_upload_mediaUpload mediaA
Upload a file to the media library from a local path or a public URL, and get back the media ID to use as a featured image or in content.
| Name | Required | Description | Default |
|---|---|---|---|
| site | No | Configured site name. Omit to use the default site. | |
| title | No | ||
| source | Yes | Absolute local file path, or an http(s) URL to fetch and re-upload. | |
| caption | No | ||
| alt_text | No | Alt text — set this for images. | |
| filename | No | Override the stored filename. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the burden of disclosure. It clearly states the action, input types, output (media ID), and intended usage. It lacks details about permissions or failure modes, but the core behavioral contract is transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single focused sentence that front-loads the action and resource, with no filler or redundant repetition. Every phrase adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a straightforward upload tool, the description provides purpose, source options, and the media ID return value. With no output schema or annotations, it could mention error handling or response details, but the essential contract is clear and sufficient for selection.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 67%, with source, site, alt_text, and filename already described. The description reinforces the source-type behavior and adds return-value context, but does not elaborate on title or caption semantics. This is adequate but not a significant addition beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Upload') and resource ('media library'), states the source types (local path or public URL), and mentions the return value (media ID). It clearly distinguishes from sibling tools like wp_list_media, which lists media rather than uploading.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for adding media to the library and mentions a downstream use case ('featured image or in content'), but does not explicitly state when to use this tool versus alternatives or provide exclusions. This is adequate but not explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wp_whoamiCurrent WordPress userA
Show the authenticated user on a site, including roles and capabilities. Use this to check what changes you are actually allowed to make.
| Name | Required | Description | Default |
|---|---|---|---|
| site | No | Configured site name. Omit to use the default site. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the burden of conveying behavior. The word 'Show' clearly indicates a read-only operation, and the description discloses what is returned (roles and capabilities). This is transparent for a whoami-style tool, though it doesn't discuss authentication context or side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, zero wasted words. The first states the action and output, the second gives the practical use case. Perfectly front-loaded and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-optional-parameter whoami tool, the description is complete. It states what the tool returns and when to use it. No output schema is present, but the description adequately covers the return content (roles and capabilities) and the purpose.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schemas describes the 'site' parameter fully ('Configured site name. Omit to use the default site.'), so baseline is 3. The description's phrase 'on a site' aligns with the parameter but adds no extra semantics beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'Show' with a clear resource 'the authenticated user on a site' and details the scope ('including roles and capabilities'). This clearly distinguishes it from sibling tools like wp_list_users, which lists users rather than showing the current authenticated user.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly tells when to use this tool: 'Use this to check what changes you are actually allowed to make.' This provides a concrete use case that connects to the modification-focused sibling tools. It doesn't name alternatives, but the intent is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
20 tool updates
v1.0.0- First observed
wp_create_content - First observed
wp_create_term - First observed
wp_delete_content - First observed
wp_get_content - First observed
wp_list_content - First observed
wp_list_media - First observed
wp_list_plugins - First observed
wp_list_post_types - First observed
wp_list_taxonomies - First observed
wp_list_terms - First observed
wp_list_themes - First observed
wp_list_users - First observed
wp_manage_plugin - First observed
wp_rest - First observed
wp_search - First observed
wp_settings - First observed
wp_sites - First observed
wp_update_content - First observed
wp_upload_media - First observed
wp_whoami
TDQS
Most tools have clearly distinct purposes (e.g., wp_list_content vs wp_get_content, wp_list_taxonomies vs wp_list_terms), and descriptions clarify boundaries. However, wp_search and wp_list_content both serve content discovery, and wp_rest is a catch-all that can overlap with any dedicated tool, creating minor selection ambiguity.
The wp_ prefix is consistent, and the majority follow a verb_noun pattern (list_*, create_*, get_*, update_*, delete_*). A few exceptions like wp_whoami, wp_sites, wp_search, wp_settings, and wp_rest break the pattern, but the overall style remains readable and predictable.
With 20 tools, the server is on the heavier side but still within reason for a WordPress management tool. Each tool covers a distinct domain (content, terms, media, plugins, themes, settings), and the count is not bloated; the generic wp_rest tool could potentially have reduced the number, but the dedicated tools provide clear value.
Content CRUD is fully covered, and basic operations exist for terms, media, plugins, and settings. However, obvious gaps include term update/delete, media delete, user creation/update/delete, and theme activation. While wp_rest can fill these gaps, the dedicated tool surface is incomplete for a fully-featured WordPress management server.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Read, edit, publish, and preview your pepita websites from Claude.
Security-first WordPress MCP server. 129 tools for Claude, ChatGPT, Gemini. Free on wp.org.
- platform7nOAuthtech.p7n
Connect Claude to your Platform7n workspaces — chat, links, and tasks. One-click OAuth.
Publish to self-hosted WordPress from AI agents: markdown, images, SEO, and Notion sync.
Related MCP Servers
- AlicenseNot gradedqualityFmaintenanceEnables interaction with WordPress sites through the REST API, supporting content management for posts, pages, users, plugins, and custom post types with Application Password authentication.2,0132MIT
- AlicenseBqualityCmaintenanceConnects Claude to WordPress sites through the REST API, enabling AI-assisted content creation, publishing, media management, user administration, and site maintenance tasks through natural language.472822MIT
- AlicenseNot gradedqualityFmaintenanceEnables AI models like Claude to manage WordPress sites through the WordPress REST API, supporting operations like post creation, taxonomy management, and site configuration. It features secure authentication via Application Passwords and provides tools for comprehensive content administration.681MIT
- AlicenseCqualityBmaintenanceEnables Claude Code to read, edit, and manage WordPress pages, posts, shortcodes, and media via the WordPress REST API.80353MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/amolb1986/wp-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server