WordPress MCP Server - Manage WordPress posts, pages, categories, tags, and comments via MCP
Strong schema coverage with Zod validation and consistent parameter descriptions. All 30 tools have explicit descriptions and input schemas with type constraints. Naming follows verb_noun convention (list_, get_, create_, update_, delete_, publish_, search_). However, descriptions are brief (avg ~50 chars) and lack actionable context for LLM selection. Output schemas are not documented, LLMs cannot predict response structure. Error handling returns raw JSON but lacks recovery guidance. No tool annotations (readOnlyHint/destructiveHint) despite clear risk stratification. Missing idempotency guarantees and confirmation patterns for destructive operations.
Create a new WordPress category
Create a new WordPress comment
Create a new WordPress page
Create a new WordPress post
Create a new WordPress tag
Delete a WordPress category
Delete a WordPress comment
No output schema documentation. LLMs cannot predict response structure (Post, Page, Category, Tag, Comment types exist in code but are not exposed in tool definitions). Agents cannot plan downstream tool calls or extract required fields.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). Tools are risk-stratified (READ_ONLY, WRITE, DESTRUCTIVE) but this metadata is not exposed to the MCP protocol. LLMs cannot distinguish safe reads from destructive deletes.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 56 | <=2025-11-25 | v2 |
Delete a WordPress page
Delete a WordPress post
Delete a WordPress tag
Retrieve a single WordPress category by ID
Retrieve a single WordPress comment by ID
Retrieve a single WordPress page by ID
Retrieve a single WordPress post by ID
Retrieve a single WordPress tag by ID
List WordPress categories
List WordPress comments with optional filtering
List all draft posts in WordPress
List WordPress pages with optional filtering
List WordPress posts with optional filtering
List WordPress tags
Publish all draft posts and pages at once
Publish multiple draft posts at once
Publish a single draft post immediately
Search across all WordPress content (posts, pages, comments)
Update an existing WordPress category
Update an existing WordPress comment
Update an existing WordPress page
Update an existing WordPress post
Update an existing WordPress tag
Error responses return raw JSON (isError: true) without recovery guidance. LLMs receive no actionable next steps. E.g., 'User not found' should suggest 'Try search_users() with a partial name.'
Destructive operations (delete_post, delete_page, delete_category, delete_tag, delete_comment, publish_all_drafts) lack confirmation or dry-run support. Agents can permanently delete content without a safety gate.
Tool descriptions are brief (avg 50 chars) and lack context for LLM selection. E.g., 'Retrieve a single WordPress post by ID' does not explain when to use get_post vs list_posts or search_content. Descriptions should be 50-200 chars with selection guidance.