Skip to main content
Glama
illancillotto

WordPress MCP Safe

WordPress MCP Safe

Node.js TypeScript Tests Coverage MCP License

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.log

Perché questo progetto

Problema

Soluzione

L'AI pubblica contenuti non revisionati

Solo bozze e proposte, mai publish

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 test

Configura 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

wp_get_site_info

Info sito

wp_list_posts, wp_list_pages

Elenco contenuti

wp_get_post, wp_get_page

Dettaglio per ID

wp_search_content

Ricerca keyword

wp_get_categories, wp_get_tags

Tassonomie

wp_get_media

Media library

Scrittura

wp_create_draft_post, wp_create_draft_page

Crea bozze

wp_update_draft_post, wp_update_draft_page

Aggiorna bozze

wp_upload_media

Upload file

wp_create_seo_proposal

Proposta SEO

wp_create_revision_note

Nota di revisione

Analisi

wp_analyze_page_seo, wp_analyze_post_seo

Audit SEO

wp_check_internal_links

Verifica link

wp_generate_content_report

Report contenuti

wp_find_old_content

Contenuti obsoleti

wp_suggest_content_improvements

Suggerimenti

Dettagli ed esempi: docs/tools.md

Esempio d'uso

"Analizza la pagina Affitto laboratorio smielatura e prepara una versione migliorata SEO"

  1. wp_analyze_page_seo → analisi headings, keywords, link

  2. wp_create_seo_proposal con create_draft: true → bozza su staging

  3. Restituisce edit_url e preview_urlnulla viene pubblicato

Documentazione

Guida

Contenuto

📖 Indice docs

Panoramica documentazione

🏗 Architettura

Design e layer di sicurezza

⚙️ Configurazione

Variabili .env

🔧 Setup WordPress

Utente, Application Password

🖥 Setup Cursor

Configurazione MCP

🔒 Sicurezza

Azioni consentite/vietate

📋 Workflow

Scenari operativi

🧪 Testing

Suite test e coverage

🔌 API Reference

Mapping REST API

🩺 Troubleshooting

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 configurazione

Script npm

Comando

Descrizione

npm run build

Compila TypeScript → dist/

npm run dev

Sviluppo con hot reload

npm start

Avvia server MCP

npm test

Esegue test

npm run test:coverage

Test con coverage 100%

npm run lint

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 tools
wp_analyze_page_seoA

Analyze a page for SEO issues: headings, keywords, meta, internal links, readability.

ParametersJSON Schema
NameRequiredDescriptionDefault
idNoPage ID
searchNoSearch page by title instead of ID

TDQS

A3.6/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
idNo
searchNo

TDQS

C2.1/5.0
Behavior1/5

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.

Conciseness2/5

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.

Completeness1/5

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.

Parameters1/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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_create_draft_pageB

Create a new page as DRAFT only. Never publishes. Staging only.

ParametersJSON Schema
NameRequiredDescriptionDefault
slugNo
titleYes
parentNo
contentNo
excerptNo

TDQS

B3.4/5.0
Behavior3/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters1/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
slugNo
tagsNo
titleYes
contentNo
excerptNo
categoriesNo

TDQS

B3.1/5.0
Behavior3/5

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.

Conciseness4/5

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.

Completeness1/5

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.

Parameters1/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes
noteYes
typeYes

TDQS

C2.7/5.0
Behavior3/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters1/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes
typeYes
create_draftNoSave proposal as new draft on staging
improved_contentNo

TDQS

C2.8/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters2/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
daysNoDays threshold (default 365)
typeNo

TDQS

C2.7/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters2/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.3/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
idNoMedia ID (optional)
per_pageNoItems to list when no ID given

TDQS

B3.4/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPage ID

TDQS

A3.5/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPost ID

TDQS

A3.8/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.3/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.6/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNo
searchNo
statusNo
per_pageNo

TDQS

A3.5/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number (default 1)
searchNoSearch term
statusNoFilter by status: publish, draft, pending, any
per_pageNoItems per page (default 10, max 100)

TDQS

B3.1/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
typeNoLimit to post or page
queryYesSearch query
per_pageNo

TDQS

B3.1/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes
typeYes

TDQS

C2.4/5.0
Behavior2/5

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.

Conciseness3/5

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.

Completeness2/5

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.

Parameters1/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes
slugNo
titleNo
parentNo
contentNo
excerptNo

TDQS

A3.5/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters1/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes
slugNo
tagsNo
titleNo
contentNo
excerptNo
categoriesNo

TDQS

A3.9/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters2/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
alt_textNo
filenameNo
file_pathNoLocal file path
mime_typeNo
base64_dataNoBase64-encoded file data

TDQS

C2.6/5.0
Behavior2/5

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.

Conciseness3/5

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.

Completeness2/5

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.

Parameters2/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

B3.4/5.0
Disambiguation5/5

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.

Naming Consistency5/5

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.

Tool Count5/5

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.

Completeness4/5

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

ActivityStale
ResponsivenessSyncing

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

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    MCP 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
  • A
    license
    A
    quality
    D
    maintenance
    An 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.
    6
    50
    1
    MIT

Latest Blog Posts

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