WordPress MCP Safe
Allows reading content (posts, pages, media, categories, tags), creating draft posts and pages, uploading media, generating SEO proposals and revision notes, analyzing page SEO, checking internal links, and generating content reports on a WordPress staging site. Does not allow publishing, deleting, or administrative actions.
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., "@WordPress MCP SafeCreate a draft post about sustainable beekeeping with SEO analysis."
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.
WordPress MCP Safe
Server MCP locale per gestire WordPress in modo sicuro, controllato e orientato alla gestione editoriale.
Collega Cursor (o qualsiasi client MCP) al tuo WordPress staging per leggere contenuti, creare bozze, analizzare SEO e generare report — senza pubblicare, cancellare o eseguire operazioni amministrative.
Cursor/LLM ──stdio──► MCP Server (locale) ──HTTPS──► WordPress Staging
│ ai_editor / Editor
▼
logs/actions.logPerché questo progetto
Problema | Soluzione |
L'AI pubblica contenuti non revisionati | Solo bozze e proposte, mai |
L'AI modifica il sito live | Staging obbligatorio, blocco all'avvio |
L'AI cancella contenuti | Nessun tool delete/trash |
L'AI installa plugin o modifica temi | Ruolo Editor, nessun endpoint admin |
Nessuna tracciabilità | Log locale di ogni operazione |
Related MCP server: seo-factory-mcp
Quick start
git clone <repository-url> mcp-wordpress
cd mcp-wordpress
npm install
cp .env.example .env
# Modifica .env con il tuo staging
npm run build
npm testConfigura Cursor
Aggiungi in ~/.cursor/mcp.json:
{
"mcpServers": {
"wordpress-staging": {
"command": "node",
"args": ["/percorso/assoluto/a/mcp-wordpress/dist/index.js"],
"env": {
"WORDPRESS_BASE_URL": "https://staging.example.com",
"WORDPRESS_USERNAME": "ai_editor",
"WORDPRESS_APPLICATION_PASSWORD": "xxxx xxxx xxxx xxxx xxxx xxxx",
"WORDPRESS_ENVIRONMENT": "staging"
}
}
}
}Riavvia Cursor. Chiedi: "Usa wp_get_site_info per verificare la connessione".
Tool disponibili (22)
Categoria | Tool | Descrizione |
Lettura |
| Info sito |
| Elenco contenuti | |
| Dettaglio per ID | |
| Ricerca keyword | |
| Tassonomie | |
| Media library | |
Scrittura |
| Crea bozze |
| Aggiorna bozze | |
| Upload file | |
| Proposta SEO | |
| Nota di revisione | |
Analisi |
| Audit SEO |
| Verifica link | |
| Report contenuti | |
| Contenuti obsoleti | |
| Suggerimenti |
Dettagli ed esempi: docs/tools.md
Esempio d'uso
"Analizza la pagina Affitto laboratorio smielatura e prepara una versione migliorata SEO"
wp_analyze_page_seo→ analisi headings, keywords, linkwp_create_seo_proposalconcreate_draft: true→ bozza su stagingRestituisce
edit_urlepreview_url— nulla viene pubblicato
Documentazione
Guida | Contenuto |
Panoramica documentazione | |
Design e layer di sicurezza | |
Variabili | |
Utente, Application Password | |
Configurazione MCP | |
Azioni consentite/vietate | |
Scenari operativi | |
Suite test e coverage | |
Mapping REST API | |
Risoluzione problemi |
Struttura progetto
mcp-wordpress/
├── src/
│ ├── index.ts # Entry point
│ ├── config.ts # Validazione ambiente
│ ├── wordpress/ # Client REST (posts, pages, media)
│ ├── mcp/ # Server e tool MCP
│ ├── safety/ # Guardie e permessi
│ ├── seo/ # Analisi SEO
│ ├── logging/ # Audit log
│ └── utils/ # Utility HTML/testo
├── tests/ # 135 test, 100% coverage
├── docs/ # Documentazione completa
├── logs/ # actions.log (auto-generato)
└── .cursor/mcp.json.example # Template configurazioneScript npm
Comando | Descrizione |
| Compila TypeScript → |
| Sviluppo con hot reload |
| Avvia server MCP |
| Esegue test |
| Test con coverage 100% |
| Verifica tipi TypeScript |
Sicurezza in sintesi
✅ Solo ambiente staging (blocco all'avvio)
✅ Solo utente Editor (non admin)
✅ Solo bozze e proposte
✅ Contenuti pubblicati protetti (nuova bozza, no overwrite)
✅ Log locale senza credenziali
❌ Nessun publish, delete, plugin, temi, utenti
Dettagli: docs/security.md
Requisiti
Node.js >= 18
WordPress self-hosted 5.6+ con REST API
Ambiente staging dedicato
Application Password per utente Editor
Licenza
MIT
Available Tools
22 toolswp_analyze_page_seoA
Analyze a page for SEO issues: headings, keywords, meta, internal links, readability.
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | Page ID | |
| search | No | Search page by title instead of ID |
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 lists what is analyzed but does not state whether the tool modifies data, requires authentication, or has side effects. For a read-like analysis tool, this omission is a significant gap.
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 sentence that is front-loaded with the action and concisely lists the aspects analyzed. There is no waste, and 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 high schema coverage and a straightforward analysis purpose, the description adequately covers what the tool does. It lacks specification of output format, but the lack of output schema and presence of sibling tools like wp_generate_content_report mitigate this need.
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?
Input schema has 100% coverage with clear descriptions for both parameters: 'Page ID' and 'Search page by title instead of ID'. The description adds no extra parameter information beyond what the schema provides, so baseline 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 verb 'Analyze', the resource 'a page', and specifies the aspects analyzed: headings, keywords, meta, internal links, readability. This distinguishes it from sibling tools like wp_analyze_post_seo (for posts) and other SEO-related tools.
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 SEO analysis of pages but does not provide explicit when-to-use or when-not-to-use guidance, nor does it mention alternatives. Without exclusions, the agent must infer context from sibling tool names, which 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_analyze_post_seoC
Analyze a post for SEO issues.
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | ||
| search | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries the full burden. It only states 'Analyze a post for SEO issues' without disclosing whether it is read-only, what output is expected, or any side effects. This is severely lacking.
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 very short but lacks essential details. It is under-specified rather than meaningfully concise, failing to earn its brevity.
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 output schema, no parameter descriptions, and no annotations, the description is grossly incomplete. The agent cannot understand what the tool does beyond a vague analysis.
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 0%, and the description does not explain the purpose of the 'id' or 'search' parameters. The agent cannot infer how to use them.
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 the verb 'Analyze' and the resource 'a post for SEO issues', which is clear. However, it does not distinguish from the sibling tool 'wp_analyze_page_seo' which analyzes a page, lacking differentiation.
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?
No guidance is provided on when to use this tool versus alternatives like 'wp_analyze_page_seo' or 'wp_check_internal_links'. The agent has no context for tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wp_check_internal_linksC
Check internal and external links in a post or page.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| type | Yes |
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 says 'check', implying read-only, but does not confirm whether it modifies data, requires authentication, or handles errors. The lack of detail is a significant gap.
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 with no unnecessary words. It front-loads the action and resource, though it could be slightly more structured by mentioning the parameters.
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 lack of output schema and annotations, the description is insufficient for full context. It does not explain the return value, what 'check' means in terms of output, or how to interpret results. The tool may require more context for effective use.
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 0%, so the description should compensate. It mentions 'post or page' which maps to the 'type' parameter, but the 'id' parameter is not explained at all (what number is expected). The description adds minimal value beyond the schema itself.
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: checking internal and external links in a post or page. The verb 'check' and resource 'links' are specific, and it distinguishes from sibling tools like wp_get_post or wp_analyze_page_seo, though not explicitly.
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?
No guidance on when to use this tool versus alternatives. There is no mention of prerequisites, context, or exclusions, leaving the agent to infer appropriate usage without support.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wp_create_draft_pageB
Create a new page as DRAFT only. Never publishes. Staging only.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | No | ||
| title | Yes | ||
| parent | No | ||
| content | No | ||
| excerpt | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It states the tool creates drafts only and never publishes, which is key. However, it lacks details on permissions, error behavior, or what happens on duplicate titles, leaving 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 a single concise sentence with no waste, front-loading key information. However, it is slightly underspecified for the tool's complexity, balancing conciseness with completeness.
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 5 parameters, 1 required, no output schema, and no annotations, the description is incomplete. It omits parameter semantics, return values, and potential side effects, leaving significant gaps for an AI agent to use 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?
Schema description coverage is 0%, and the description does not elaborate on any of the 5 parameters (slug, title, parent, content, excerpt). It adds no meaning beyond the schema, failing to compensate for the lack of property 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 verb 'Create' and the resource 'page', specifies it's a draft only and never publishes, effectively distinguishing it from siblings like wp_create_draft_post (post vs page) and wp_update_draft_page (update vs create).
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 includes explicit constraints ('DRAFT only', 'Never publishes', 'Staging only'), giving clear context for when to use. However, it does not explicitly mention alternatives or when not to use, though the constraints imply exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wp_create_draft_postB
Create a new post as DRAFT only. Never publishes. Staging only.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | No | ||
| tags | No | ||
| title | Yes | ||
| content | No | ||
| excerpt | No | ||
| categories | No |
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 draft-only nature and staging intent, but lacks details on authorization, rate limits, or side effects. Minimal but not misleading.
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 very concise with two short sentences, front-loading the main action. Every phrase adds value, though it could be expanded to cover parameters without becoming overly verbose.
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 6 parameters, no output schema, and 0% schema coverage, the description is highly incomplete. It fails to explain return values, parameter details, or any prerequisites for using the tool.
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 0%, so the description must compensate, yet it mentions no parameters. It provides no insight into what fields like slug, tags, content, excerpt, categories mean or how they behave.
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 it creates a new post as a draft, explicitly notes it never publishes, and specifies 'Staging only.' This provides a specific verb and resource, and distinguishes from publishing actions.
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 some usage context ('Staging only') and a constraint ('Never publishes'), but does not explicitly compare to sibling tools like wp_create_draft_page or wp_update_draft_post, nor provide when-to-use vs when-not-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wp_create_revision_noteC
Create a revision draft with an editorial note. Original content is not modified.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| note | Yes | ||
| type | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description includes one important behavioral trait: 'Original content is not modified,' indicating non-destructiveness. However, with no annotations, it fails to disclose other relevant behaviors such as authorization requirements, whether a new revision is created in the database, rate limits, or the tool's side effects beyond the note attachment.
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, which is efficient. It could include more useful detail without becoming verbose, but it avoids unnecessary 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?
Given three required parameters and no output schema, the description should explain the purpose of ID, type, and note, and clarify the expected outcome (e.g., created revision draft ID). It also omits prerequisites like the existence of a post/page. The tool is under-specified for reliable use.
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 0%, so the description must explain parameters. It does not define 'id' (presumably post/page ID), 'type' (post or page selection), or 'note' (the editorial note). The enum in the schema provides 'type' options, but the description adds no semantic value to any parameter.
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 ('Create a revision draft with an editorial note') and adds a distinctive detail ('Original content is not modified'). However, it does not explicitly distinguish this tool from siblings like wp_create_draft_post, which create new drafts rather than revisions of existing 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?
No guidance is provided on when to use this tool versus alternatives. It does not mention that the tool requires an existing post/page ID or that it is intended for adding editorial notes before publishing. The absence of 'when not to use' or alternative references leaves the agent without decision context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wp_create_seo_proposalC
Generate SEO improvement proposal for a post or page. Optionally save as draft.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| type | Yes | ||
| create_draft | No | Save proposal as new draft on staging | |
| improved_content | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description must fully disclose behavior. It only mentions generating a proposal and optionally saving as draft, but does not explain if it modifies the original post/page, the format of the proposal, or any required environment (like staging) for the draft.
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 with no unnecessary words. It is 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?
Given 4 parameters and no output schema, the description should clarify return values and parameter roles. It omits details about improved_content and does not indicate what the tool returns, leaving gaps for the agent.
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 low (25%) and the description adds no extra meaning beyond the schema. Parameters like id, type, and improved_content are not explained. The description only redundantly mentions optional draft saving.
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 it generates an SEO improvement proposal for a post or page, and optionally saves as draft. The verb and resource are specific, but it does not explicitly distinguish from sibling tools like wp_analyze_page_seo or wp_suggest_content_improvements.
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?
No guidance on when to use this tool versus alternatives. Does not specify prerequisites or when not to use. The description simply states what it does without context for decision-making.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wp_find_old_contentC
Find published content not updated within a given number of days.
| Name | Required | Description | Default |
|---|---|---|---|
| days | No | Days threshold (default 365) | |
| type | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden but only states the core function. It does not disclose what happens with drafts, permissions needed, rate limits, or whether results are limited or paginated.
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 with no wasted words. However, it could be slightly more structured by separating purpose from parameters.
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 two parameters, no output schema, and no annotations, the description is too minimal. It does not explain the output format, default behavior for days, or how to interpret results.
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%; only 'days' has a description. The 'type' parameter has an enum but no description. The tool description does not add any parameter details 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 finds published content not updated within a given number of days. It specifies the verb 'Find' and the resource 'published content not updated', which distinguishes it from generic search tools like wp_search_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?
No guidance is provided on when to use this tool vs alternatives, such as when to prefer wp_search_content for more flexible queries. No when-not-to-use or prerequisite information is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wp_generate_content_reportB
Generate a summary report of all posts and pages on the site.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided. Description only says 'summary report' without disclosing whether it's read-only, destructive, or has side effects. Agent cannot infer safety profile.
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?
Single sentence, zero redundancy. 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?
Adequate for a parameterless tool but lacks details on report contents (e.g., what data is included). With no output schema, more detail would help.
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?
No parameters; schema coverage is 100%. Description adds the context of 'summary report of all posts and pages' which slightly enriches the empty schema. Baseline 3 applies.
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?
Description clearly states the tool generates a summary report of all posts and pages. Distinguishes from sibling tools like wp_list_posts or wp_list_pages which list rather than summarize.
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?
No guidance on when to use this tool vs alternatives (e.g., list tools for detailed views). Implicitly for high-level overviews but not stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wp_get_categoriesA
List all post categories. Read-only.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It explicitly states 'Read-only', which conveys a key behavioral trait. For a simple list tool with no parameters, this is adequate but could mention if any authentication is needed.
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, no wasted words, front-loaded with the main action. Every sentence 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 zero-parameter, read-only list tool, the description is sufficient. It covers the core behavior. However, no output schema means the agent may not know the return format, but this is acceptable for a simple tool.
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?
There are zero parameters, so the baseline is 4. The description does not need to add parameter meaning, and it does not repeat schema information.
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 categories', and adds 'Read-only' for clarity. It is specific and distinguishes from sibling tools like wp_get_tags.
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?
No guidance is provided on when to use this tool versus alternatives such as wp_get_tags or wp_list_pages. The description only states what it does without usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wp_get_mediaB
Get media item by ID or list recent media. Read-only.
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | Media ID (optional) | |
| per_page | No | Items to list when no ID given |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It only states 'Read-only' but fails to disclose behavior when both parameters are provided, response format, or any other 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?
The description is extremely concise: two sentences with no redundant information. Every word serves a purpose, focusing on the core functionality.
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?
Without an output schema, the description should explain the return value structure. It also lacks information on what happens when no parameters are provided, or any constraints like pagination limits.
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%, so the schema already documents both parameters. The description adds minimal semantic value by associating 'list recent media' with per_page, but does not clarify interaction when both parameters are present.
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 retrieves a media item by ID or lists recent media, and explicitly marks it as read-only, distinguishing it from upload or mutation tools like wp_upload_media.
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?
While the description implies usage for reading media, it provides no explicit guidance on when to use this tool versus alternatives (e.g., wp_upload_media for uploading) or when-to-not use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wp_get_pageA
Get a single WordPress page by ID with full content. Read-only.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Page ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description includes 'Read-only', which indicates a safe operation. However, no annotations are provided, so the description carries the burden. It lacks other behavioral details like authentication requirements or error handling beyond what is implied.
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 sentences with no wasted words. The purpose is front-loaded, making it efficient for agents to parse.
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?
Despite its simplicity, the description does not specify output format, error scenarios (e.g., missing ID), or any prerequisites. For a tool with no output schema and no annotations, this is minimally adequate but leaves 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 100% for the single parameter 'id', described as 'Page ID'. The description adds no extra meaning beyond the schema, meriting the baseline score.
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 'Get a single WordPress page by ID with full content.' It specifies a specific verb (get) and resource (page by ID), and distinguishes from siblings like wp_get_post (posts) and wp_list_pages (list multiple).
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?
No explicit guidance on when to use or avoid this tool versus alternatives. While siblings exist, the description does not mention when to prefer this over others, leaving the agent to infer usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wp_get_postA
Get a single WordPress post by ID with full content. Read-only.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Post ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description states 'Read-only', which is an important behavioral trait. However, with no annotations provided, the description carries full burden for transparency. It could add more details like no side effects or error behavior, but for a simple retrieval tool, this is adequate.
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: one sentence conveying both purpose and behavioral trait. It is front-loaded with the main action and resource, and every word serves a purpose with no extraneous text.
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 parameter and no output schema, the description covers the key aspects: what it does, how it's identified (by ID), and a behavioral note (read-only). It could mention the return format (e.g., returns post object) but overall is quite 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 coverage is 100% for the single parameter 'id', with description 'Post ID'. The description adds 'by ID' but no additional meaning or constraints beyond the schema. The baseline is 3, and no extra value is added.
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 'Get', the resource 'single WordPress post', the method 'by ID', and the scope 'full content'. It also indicates it is read-only, which distinguishes it from sibling tools like wp_create_draft_post or wp_list_posts.
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 when needing a single post by ID, but provides no explicit when-not-to-use guidance or direct comparison to sibling tools like wp_search_content or wp_get_page. The context is clear but lacks explicit exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wp_get_site_infoA
Get WordPress site information (name, URL, description). Read-only.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description correctly identifies the tool as read-only. For a simple getter without side effects, this is sufficient behavioral disclosure.
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, efficient sentence that conveys the purpose and key constraints without any 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 parameterless, read-only tool with no output schema, the description completely covers the essential information needed by an agent.
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 no parameters (0 parameters, 100% schema coverage). Baseline score 4 applies because no parameter documentation is needed.
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 clear verb ('Get') and specifies the resource ('WordPress site information') and the specific fields (name, URL, description). It is distinct from sibling tools that deal with posts, pages, SEO, 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 states 'Read-only' which hints at non-modifying behavior but lacks explicit guidance on when to use this tool versus alternatives. It does not mention exclusions or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wp_get_tagsA
List all post tags. Read-only.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description marks the tool as 'Read-only', which clarifies it has no side effects, but given no annotations, it lacks details on potential limits or response format.
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 no wasted words, fitting the simplicity of a 0-parameter 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?
Without an output schema, the description should indicate the return structure (e.g., list of tag objects with IDs and names) but does not, leaving the agent uninformed about the response.
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?
There are no parameters, so the schema coverage is effectively 100%, and the description needs no further parameter explanation.
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 explicitly states 'List all post tags' with a specific verb and resource, and the tool's function is distinct from siblings like wp_get_categories.
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?
No guidance is provided on when to use this tool versus alternatives; the description simply states what it does without contextualizing its place among sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wp_list_pagesA
List WordPress pages. Supports pagination, status filter, and search. Read-only.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| search | No | ||
| status | No | ||
| per_page | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description mentions 'Read-only' indicating no side effects, but since no annotations are provided, the description should disclose more behavioral traits such as return format, pagination limits, or any authentication requirements. It lacks sufficient detail.
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 concise and front-loaded, consisting of two clear sentences with no redundant information. 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?
Given the tool has 4 parameters and no output schema or annotations, the description is somewhat incomplete. It covers the main features but omits details like default pagination, error handling, and return format. For a simple list tool, it is minimally adequate.
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 description adds meaning to the parameters by mentioning 'pagination' (for page and per_page), 'status filter' (for status), and 'search' (for search). However, it does not enumerate allowed values or format expectations for any parameter, and with 0% schema description coverage, more detail would be beneficial.
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 'WordPress pages'. It also mentions supported features (pagination, status filter, search) which distinguishes it from sibling tools like wp_list_posts and wp_get_page.
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 this tool is for listing pages with filtering options and is read-only, but it does not provide explicit guidance on when to use it versus alternatives like wp_get_page or wp_search_content. No when-not-to-use conditions are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wp_list_postsB
List WordPress posts. Supports pagination, status filter, and search. Read-only.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number (default 1) | |
| search | No | Search term | |
| status | No | Filter by status: publish, draft, pending, any | |
| per_page | No | Items per page (default 10, max 100) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. Only states 'Read-only' but fails to disclose other behavioral traits such as permissions, rate limits, ordering, or potential side effects. Minimal transparency for a tool with no annotations.
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 sentences, front-loaded with the main purpose. No extraneous words, though additional details could be included without harming conciseness.
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 4 parameters and no output schema, the description is too brief. Does not explain return format, default ordering, or pagination behavior beyond mentioning it. Incomplete for a list tool that should clarify expected output and iteration limits.
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% (all 4 parameters described). Description mentions pagination, status filter, and search, but adds no new meaning beyond the schema's parameter descriptions. Baseline 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?
Clearly states it lists WordPress posts with pagination, status filter, and search. Distinguishes from most siblings by specifying 'posts', but lacks explicit differentiation from wp_list_pages, which lists pages similarly.
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?
Implies usage for listing posts with filters, but does not specify when to use this tool over alternatives like wp_list_pages or wp_search_content. No when-not or alternative guidance provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wp_search_contentB
Search posts and pages by keyword. Read-only.
| Name | Required | Description | Default |
|---|---|---|---|
| type | No | Limit to post or page | |
| query | Yes | Search query | |
| per_page | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It notes 'Read-only,' which indicates no modification, but lacks details on search behavior (e.g., partial matching, pagination via per_page, result format).
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 concise at two sentences and front-loads the purpose, but it lacks structure and additional details that could fit without losing conciseness.
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 output schema, the description should explain return values (e.g., list of matching posts/pages with excerpts). It omits this, and also does not clarify search algorithm or pagination behavior.
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 67% (2 of 3 parameters described). The description adds no further parameter information beyond the schema, so 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 verb 'search' and the resources 'posts and pages' with the qualifier 'by keyword'. It distinguishes this tool from sibling tools like wp_list_posts and wp_get_post, though it could be more explicit about the difference.
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 keyword-based searching of content, but it does not provide explicit guidance on when to use this tool versus alternatives, nor does it mention when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wp_suggest_content_improvementsC
Get editorial and SEO improvement suggestions for a post or page.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| type | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description only implies a read operation ('Get') without detailing any behavioral traits such as whether suggestions are cached, if the tool modifies state, or any authorization requirements.
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?
Single sentence with 10 words, but it lacks sufficient detail. It is concise but at the expense of completeness.
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?
Without output schema or annotations, and with low parameter clarity, the description fails to provide a complete understanding for an agent to invoke the tool correctly. The tool is used in a context with many siblings, but no differentiation is given.
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 0% and the description adds no meaning to the parameters. The 'id' parameter is not explained (e.g., is it a numeric post/page ID?) and 'type' enum is not elaborated.
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?
Description clearly states the verb 'Get' and the resource 'editorial and SEO improvement suggestions for a post or page'. It differentiates the tool as providing suggestions rather than analysis, but does not explicitly distinguish from sibling tools like wp_analyze_post_seo.
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?
No guidance on when to use this tool versus alternatives. No prerequisites or context for invocation are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wp_update_draft_pageA
Update an existing DRAFT page. If page is published, creates a new draft instead. Never publishes.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| slug | No | ||
| title | No | ||
| parent | No | ||
| content | No | ||
| excerpt | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It discloses the non-publication behavior and draft-creation fallback, but lacks details on side effects, required permissions, return value, or state changes. Some useful behavioral context, but 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?
Two sentences, no wasted words, front-loaded with key purpose and special behavior. Efficient and well-structured for a tool description.
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 6 parameters, no output schema, no annotations, the description is too brief. It does not explain what the parameters do, what the response contains, or any prerequisites (e.g., page must exist). Incomplete for an update tool with moderate 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?
Schema has 6 parameters with 0% description coverage, and the description provides no additional meaning for any parameter. Parameters like 'content' and 'excerpt' are not explained. The description fails to compensate for the lack of schema documentation.
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 it updates an existing draft page, with special handling for published pages (creates new draft). It distinguishes from siblings like wp_update_draft_post (for posts) and wp_create_draft_page (create vs update). The verb 'Update' and resource 'draft page' are specific.
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 says 'If page is published, creates a new draft instead. Never publishes.' This provides clear context on when to use (for draft pages) and behavior for published pages. However, no explicit when-not-to-use or alternatives are mentioned, but it's well implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wp_update_draft_postA
Update an existing DRAFT post. If post is published, creates a new draft instead. Never publishes.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| slug | No | ||
| tags | No | ||
| title | No | ||
| content | No | ||
| excerpt | No | ||
| categories | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description discloses key behaviors: only updates drafts, creates new draft if published, and never publishes. However, it omits details like required permissions, response format, or effects on the original post when creating a new draft.
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?
Description is two sentences with no wasted words. First sentence states main action, second adds critical nuance. Information is front-loaded and easy to parse.
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?
Tool has 7 parameters, no output schema, and no parameter descriptions. Description lacks return value information, error handling (e.g., invalid id), and idempotency. Agent would need to infer many details from 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 0%, so description must compensate but only explains tool behavior, not parameter details. It does not add meaning to parameters like id, title, or tags beyond their names. Schema property names are self-explanatory but description fails to provide additional context.
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?
Description clearly states 'Update an existing DRAFT post' with a specific verb and resource. It distinguishes from siblings like wp_create_draft_post by noting the tool updates existing drafts and cannot publish, which differentiates it from creation and publishing tools.
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?
Description provides clear usage context: use for existing drafts, not for published posts (creates new draft instead). It implicitly contrasts with wp_create_draft_post for new drafts, but does not explicitly list alternatives or when-not-to-use scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wp_upload_mediaC
Upload media to WordPress staging. Staging only.
| Name | Required | Description | Default |
|---|---|---|---|
| alt_text | No | ||
| filename | No | ||
| file_path | No | Local file path | |
| mime_type | No | ||
| base64_data | No | Base64-encoded file data |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description indicates a write operation (upload) but fails to disclose important behavioral traits such as whether the upload is destructive (overwrites existing files), authentication requirements, rate limits, or error behavior. Annotations are absent, so the description carries full burden but provides minimal disclosure.
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 very short (two sentences) and front-loaded with key information. However, it sacrifices necessary detail for brevity, making it insufficient for an agent to fully understand usage. It earns its place but fails to provide complete 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 absence of annotations and output schema, along with 5 parameters having low schema description coverage, the description is incomplete. It omits details on return values, error scenarios, prerequisites (e.g., staging site credentials), and the exact behavior of the upload 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?
The input schema has 5 parameters with 40% description coverage (only file_path and base64_data have descriptions). The tool description adds no meaning to parameters; it does not explain how parameters interact (e.g., whether file_path or base64_data must be provided, or if both are needed for different use cases).
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 tool name and description clearly state 'Upload media to WordPress staging. Staging only.', which specifies the action (upload) and target (staging environment). This distinguishes it from retrieval tools like wp_get_media and other creation tools. However, it does not clarify what the tool returns or if it replaces existing media.
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?
No guidance is provided on when to use this tool versus alternatives. It only states 'Staging only', which implies not for production, but lacks explicit conditions, prerequisites, or context for exclusion of other similar tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Each tool targets a distinct resource-action combination. Tools are differentiated by content type (post/page) or operation (analyze, create, update, list, etc.), with clear descriptions preventing overlap.
All tools follow the consistent pattern `wp_verb_noun` (or `wp_verb_prep_noun`) with snake_case, e.g., `wp_create_draft_post`, `wp_find_old_content`. No mixing of conventions.
22 tools is well-scoped for a WordPress management server focusing on safe content operations and SEO. Each tool serves a clear purpose without being overwhelming or too sparse.
The server covers core content workflows: create drafts, read, update drafts, search, analyze SEO, and manage media. Missing delete operations, but this aligns with the 'safe' design. Minor gap for publishing.
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
WordPress MCP server: publish posts, AI images, SEO and full site management, self-hosted
SEO MCP server for keyword research, SERP analysis, audits, and Search Console workflows.
WordPress MCP server: generate SEO posts, AI images, autoblog & WooCommerce on your self-hosted site
Security-first WordPress MCP server. 129 tools for Claude, ChatGPT, Gemini. Free on wp.org.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceMCP server for WordPress content management that provides a secure interface for AI assistants to interact with WordPress sites, enabling content creation, editing, and media management without destructive operations.MIT
- AlicenseAqualityCmaintenanceMCP server for SEO content factory and blog growth cycle, enabling content publishing with validation, interlinking, search query mining, and content audits.136MIT
- AlicenseNot gradedqualityBmaintenanceAn MCP server that enables safe reconnaissance, mutation, and verification of WordPress sites through guarded, typed verbs with dry-run previews and change-packet audit records.MIT
- AlicenseAqualityDmaintenanceAn MCP server that provides a suite of SEO analysis tools for auditing meta tags, headings, links, keyword density, page speed, and sitemaps without requiring external API keys.6501MIT
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/illancillotto/mcp-wordpress'
If you have feedback or need assistance with the MCP directory API, please join our Discord server