WordPress MCP Server
Planned integration for WooCommerce functionality (currently on roadmap).
Enables full WordPress site management through the REST API, including creating, reading, updating, and deleting posts, managing pages and media, querying plugins, and controlling content workflow from draft to published status.
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 Servercreate a draft post about our new product launch"
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 Server
Manage your WordPress site with AI. Create posts, update content, and query your site—all through natural conversation.
What is this?
WordPress MCP is a Model Context Protocol server that connects AI assistants like Claude Code and Cursor to your WordPress site via the REST API.
Instead of switching between your terminal and WordPress admin, just ask:
You: "Create a draft post about our new product launch"
You: "Show me all posts from last week"
You: "Update post 42 to published status"
You: "What plugins are installed on my site?"Related MCP server: WordPress MCP Server
Demo
Here's a real conversation showing the draft-to-publish workflow:
You: Create a draft post titled "Why AI Tools Matter for Content Creators"
Claude: I'll create that draft post for you.
✓ Created draft post:
ID: 142
Title: Why AI Tools Matter for Content Creators
Status: draft
Link: https://your-site.com/?p=142
You: Add some content about productivity and automation
Claude: I'll update the post with content about productivity and automation.
✓ Updated post 142 with new content.
You: Show me my draft posts
Claude: Here are your draft posts:
| ID | Title | Date |
|-----|-------------------------------------------|------------|
| 142 | Why AI Tools Matter for Content Creators | 2026-01-03 |
| 138 | Upcoming Features Preview | 2026-01-02 |
| 135 | Team Update Q1 | 2025-12-28 |
You: Publish post 142
Claude: ✓ Published! Your post is now live at:
https://your-site.com/2026/01/03/why-ai-tools-matter-for-content-creators/Features
Full CRUD for Posts - Create, read, update, and delete posts
Content Management - List pages, media, and plugins
Search & Filter - Find posts by status, keyword, or date
Draft Workflow - Create drafts, review, then publish
Secure Auth - Uses WordPress Application Passwords
Quick Start
1. Install
git clone https://github.com/gaupoit/wordpress-mcp.git
cd wordpress-mcp
uv sync2. Create a WordPress Application Password
Go to WordPress Admin → Users → Profile
Scroll to Application Passwords
Enter a name (e.g., "Claude Code") and click Add New
Copy the generated password (you won't see it again!)
3. Configure Claude Code
Add to your Claude Code MCP config (~/.claude.json):
{
"mcpServers": {
"wordpress": {
"command": "uv",
"args": ["run", "--directory", "/path/to/wordpress-mcp", "wordpress-mcp"],
"env": {
"WORDPRESS_URL": "https://your-site.com",
"WORDPRESS_USER": "your-username",
"WORDPRESS_APP_PASSWORD": "xxxx-xxxx-xxxx-xxxx"
}
}
}
}4. Restart Claude Code
# Quit and restart
claudeVerify with /mcp - you should see "wordpress" listed.
Available Tools
Reading Content
Tool | Description |
| Get site name, URL, timezone |
| List posts (filter by status, search) |
| Get single post with full content |
| List all pages |
| List media library items |
| List installed plugins |
Writing Content
Tool | Description |
| Create a new post (draft or published) |
| Update title, content, status, or excerpt |
| Move to trash or permanently delete |
Example Workflows
Blog Publishing
You: "Create a draft post titled 'Getting Started with AI' with an intro paragraph"
You: "Show me my draft posts"
You: "Update post 123 - add a conclusion section"
You: "Publish post 123"Content Audit
You: "List all draft posts"
You: "Search posts for 'outdated'"
You: "What plugins are currently active?"Bulk Operations
You: "Show me all posts with 'beta' in the title"
You: "Get the full content of post 45, 46, and 47"
You: "Move posts 45 and 46 to trash"Environment Variables
Variable | Required | Description |
| Yes | Your WordPress site URL (e.g., |
| Yes | WordPress username |
| Yes | Application password (not your login password!) |
Requirements
Python 3.10+
WordPress 5.6+ (for Application Passwords)
WordPress REST API enabled (default on most sites)
Troubleshooting
"Authentication failed"
Verify your Application Password is correct (no spaces)
Ensure the user has permission to access REST API
Check if a security plugin is blocking REST API
"Connection refused"
Verify
WORDPRESS_URLincludeshttps://Check if your site is behind a firewall/VPN
Server not appearing in Claude Code
Run
/mcpto see error messagesTest manually:
cd wordpress-mcp && uv run wordpress-mcpRestart Claude Code completely (
/quitthenclaude)
Roadmap
Categories and tags management
User management
Custom post types support
Media upload
Comments management
WooCommerce integration
Contributing
Contributions welcome! Please open an issue first to discuss what you'd like to change.
License
MIT
Built with FastMCP and the WordPress REST API.
Available Tools
9 toolswp_create_postA
Create a new WordPress post.
Args:
title: The title of the post.
content: The content/body of the post (supports HTML and Gutenberg blocks).
status: Post status - 'draft', 'publish', 'pending', 'private'. Default is 'draft'.
excerpt: Optional excerpt/summary of the post.
Returns:
Created post with id, title, status, date, and link.
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | ||
| content | Yes | ||
| status | No | draft | |
| excerpt | 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 discloses the creation action and return format, but lacks details on permissions required, error conditions, rate limits, or whether the operation is idempotent. The mention of HTML and Gutenberg blocks support adds some behavioral context, but overall disclosure is basic.
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 well-structured with clear sections (Args, Returns) and front-loaded purpose. Every sentence adds value: the first states the action, subsequent lines explain parameters and returns. It could be slightly more concise by integrating the default status note into the status description more smoothly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations and no output schema, the description does a fair job covering basics: purpose, parameters, and return format. However, for a creation tool with mutation implications, it lacks details on authentication needs, error handling, and side effects. The return description is helpful but not exhaustive (e.g., missing potential error responses).
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 compensate. It effectively explains all 4 parameters: title and content are clearly defined, status includes enum values and default, and excerpt is noted as optional. This adds significant meaning beyond the bare schema, though it doesn't detail format constraints or validation rules.
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 resource ('WordPress post'), making the purpose immediately understandable. It distinguishes from siblings like wp_update_post and wp_delete_post by specifying 'new' creation. However, it doesn't explicitly contrast with wp_get_posts or other retrieval tools beyond the obvious action 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 through the action 'Create a new WordPress post' but provides no explicit guidance on when to use this versus alternatives like wp_update_post for modifications or wp_get_post for retrieval. No prerequisites, exclusions, or comparative context with sibling tools are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wp_delete_postA
Delete a WordPress post.
Args:
post_id: The ID of the post to delete.
force: If False (default), moves to trash. If True, permanently deletes.
Returns:
Confirmation with id, deleted status, and previous post info.
| Name | Required | Description | Default |
|---|---|---|---|
| post_id | Yes | ||
| force | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden and does well by disclosing key behavioral traits: the destructive nature of the operation, the trash vs permanent deletion behavior based on force parameter, and what information is returned. It doesn't mention authentication requirements or rate limits, but covers the core mutation behavior adequately.
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 efficiently structured with clear sections (Args, Returns), uses minimal sentences that each earn their place, and is appropriately sized for a 2-parameter destructive operation. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive mutation tool with no annotations and no output schema, the description provides good coverage: purpose, parameter semantics, and return information. It could mention authentication requirements or error cases, but given the tool's relative simplicity, it's mostly 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?
With 0% schema description coverage, the description fully compensates by explaining both parameters: post_id's purpose and force's behavior (default false moves to trash, true permanently deletes). It adds crucial semantic meaning beyond the bare 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 specific action ('Delete') and target resource ('a WordPress post'), distinguishing it from sibling tools like wp_create_post and wp_update_post. It's not a tautology of the name and provides unambiguous purpose.
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 context through the force parameter explanation (trash vs permanent deletion), but doesn't explicitly state when to use this tool versus alternatives like wp_update_post or other deletion methods. It provides clear operational guidance but lacks sibling differentiation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wp_get_mediaA
Get media items from WordPress media library.
Args:
per_page: Number of items to return (1-100). Default is 10.
media_type: Filter by type - 'image', 'video', 'audio', or 'application'.
Returns:
List of media items with id, title, url, mime_type, and alt_text.
| Name | Required | Description | Default |
|---|---|---|---|
| per_page | No | ||
| media_type | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
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 implies a read-only operation ('Get') and describes the return format, which is helpful. However, it lacks details on permissions, rate limits, pagination beyond per_page, or error handling, leaving behavioral gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured and front-loaded with the purpose, followed by clear sections for Args and Returns. Every sentence adds value without redundancy, making it efficient 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?
Given the tool's moderate complexity (2 parameters, no annotations, but has output schema), the description is fairly complete. It covers the purpose, parameters, and return values, though it could improve by adding usage guidelines or more behavioral context to be fully comprehensive.
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 significant meaning beyond the input schema, which has 0% description coverage. It explains per_page as 'Number of items to return (1-100)' with a default, and media_type as a filter with specific values ('image', 'video', 'audio', 'application'), compensating well for the schema's lack of details.
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 'Get' and resource 'media items from WordPress media library', which is specific and unambiguous. It distinguishes from siblings like wp_get_posts or wp_get_pages by focusing on media items, though it doesn't explicitly contrast them.
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 doesn't mention sibling tools like wp_get_posts (which might include media) or wp_site_info (which could provide media-related info), nor does it specify prerequisites or contexts for usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wp_get_pagesA
Get pages from WordPress.
Args:
per_page: Number of pages to return (1-100). Default is 10.
search: Search term to filter pages by title/content.
Returns:
List of pages with id, title, status, slug, and link.
| Name | Required | Description | Default |
|---|---|---|---|
| per_page | No | ||
| search | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It describes the return format ('List of pages with id, title, status, slug, and link'), which is helpful, but doesn't mention important behavioral aspects like authentication requirements, rate limits, pagination behavior beyond the per_page parameter, or whether this is a read-only operation (though 'Get' implies it).
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 well-structured with clear sections (Args, Returns) and uses minimal space effectively. Every sentence adds value, though the initial 'Get pages from WordPress.' could be slightly more informative about scope or limitations.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (2 parameters, no annotations, but has output schema), the description is reasonably complete. It explains parameters well and describes the return format. The output schema existence means it doesn't need to fully document return values, though it could benefit from mentioning authentication or error handling.
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 provides excellent parameter semantics that go well beyond the input schema. The schema has 0% description coverage, but the description explains both parameters thoroughly: 'per_page: Number of pages to return (1-100). Default is 10.' and 'search: Search term to filter pages by title/content.' This fully compensates for the schema's lack of 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 the action ('Get pages') and resource ('from WordPress'), providing a specific verb+resource combination. However, it doesn't explicitly differentiate from sibling tools like wp_get_posts or wp_get_post, which reduces it from a perfect score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like wp_get_posts or wp_get_post. It mentions what the tool does but offers no context about appropriate use cases or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wp_get_pluginsA
Get installed plugins from WordPress. Requires authentication.
Args:
status: Filter by status - 'active', 'inactive', or 'all'. Default is 'all'.
Returns:
List of plugins with name, plugin slug, status, version, and description.
| Name | Required | Description | Default |
|---|---|---|---|
| status | No | all |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It adds valuable context: it specifies authentication requirements and describes the return format (list of plugins with specific fields). This goes beyond the input schema, covering aspects like data structure and access control, though it doesn't mention rate limits or error handling.
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 appropriately sized and front-loaded: the first sentence states the purpose, followed by authentication note, and then structured sections for Args and Returns. Every sentence adds value without redundancy, making it efficient 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?
Given the tool's low complexity (1 parameter, no nested objects) and the presence of an output schema (which handles return values), the description is largely complete. It covers purpose, authentication, parameter details, and return format. However, it could improve by mentioning potential errors or linking to sibling tools for broader 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?
The description adds significant meaning beyond the input schema, which has 0% schema description coverage. It explains the 'status' parameter's purpose ('Filter by status'), valid values ('active', 'inactive', or 'all'), and default ('all'). This fully compensates for the schema's lack of documentation, providing clear semantics for the single 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 tool's purpose: 'Get installed plugins from WordPress.' It specifies the verb ('Get') and resource ('installed plugins'), and distinguishes it from sibling tools like wp_get_posts or wp_get_media by focusing on plugins. However, it doesn't explicitly contrast with all siblings, such as wp_site_info, which might also provide plugin-related data.
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 by stating 'Requires authentication,' which suggests a prerequisite context. It doesn't provide explicit guidance on when to use this tool versus alternatives like wp_site_info or other wp_get_* tools, nor does it specify exclusions or detailed scenarios. The usage is implied but not fully articulated.
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 post by ID with full content.
Args:
post_id: The ID of the post to retrieve.
Returns:
Post with id, title, content (raw), excerpt, status, date, slug, and link.
| Name | Required | Description | Default |
|---|---|---|---|
| post_id | Yes |
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. It discloses the tool retrieves data ('Get') with 'full content', which implies a read-only operation, but doesn't mention behavioral traits like error handling, authentication needs, or rate limits. The description is basic but doesn't contradict any 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?
The description is appropriately sized and front-loaded with the core purpose in the first sentence. The Args and Returns sections are structured clearly with no wasted words, making it easy to scan and understand quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's low complexity (1 parameter, no output schema, no annotations), the description is reasonably complete. It covers purpose, parameters, and return values. However, it lacks details on error cases or behavioral context, which would be beneficial for a read operation without annotations.
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 compensate. It adds meaning by explaining that 'post_id' is 'The ID of the post to retrieve', which clarifies the parameter's purpose beyond the schema's title 'Post Id'. However, it doesn't provide format details or constraints, leaving some gaps.
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 specific action ('Get a single post by ID with full content'), identifies the resource ('post'), and distinguishes it from siblings like wp_get_posts (plural) which likely retrieves multiple posts. It explicitly mentions 'full content' which adds specificity.
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 context by specifying 'by ID' and 'single post', suggesting it's for retrieving a specific post rather than listing multiple posts (wp_get_posts) or other resources. However, it doesn't explicitly state when not to use it or name alternatives, though the sibling list provides clear options.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wp_get_postsA
Get posts from WordPress.
Args:
status: Post status filter - 'publish', 'draft', or 'all'. Default is 'publish'.
per_page: Number of posts to return (1-100). Default is 10.
search: Search term to filter posts by title/content.
Returns:
List of posts with id, title, status, date, slug, excerpt, and link.
| Name | Required | Description | Default |
|---|---|---|---|
| status | No | publish | |
| per_page | No | ||
| search | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden. It discloses that this is a read operation ('Get'), describes the return format, and mentions default values, which adds useful context. However, it lacks information about authentication needs, rate limits, pagination behavior beyond per_page, or error handling, leaving behavioral gaps for a tool with filtering capabilities.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is efficiently structured with a clear purpose statement followed by organized Args and Returns sections. Every sentence adds value: the opening establishes context, parameter explanations are necessary given schema gaps, and the return format disclosure is essential with no output schema in the context signals. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 3 parameters with 0% schema coverage and no annotations, the description does well by documenting all parameters and the return format. However, as a read operation with filtering capabilities, it could benefit from mentioning authentication requirements or pagination limits. The context signals indicate an output schema exists, so the return format explanation is somewhat redundant but still helpful for clarity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 0% description coverage, so the description must compensate fully. It successfully adds meaning for all 3 parameters: explaining what 'status' filters (with enum-like values), what 'per_page' controls (with range context), and what 'search' filters by (title/content). This goes beyond the bare schema to provide practical usage context, though it doesn't specify exact search behavior (e.g., partial matches).
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 'Get' and resource 'posts from WordPress', making the purpose immediately understandable. It distinguishes from siblings like wp_create_post (create) and wp_delete_post (delete) by focusing on retrieval, though it doesn't explicitly contrast with wp_get_post (singular) or wp_get_pages (different resource).
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 retrieving posts with filtering options, but provides no explicit guidance on when to use this vs. alternatives like wp_get_post (for single posts) or wp_get_pages (for pages). The context of filtering by status/search suggests when it might be useful, but lacks clear when-not-to-use statements or prerequisite information.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wp_site_infoB
Get WordPress site information.
Returns:
Site info including name, description, url, home, gmt_offset, and timezone.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
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 states the tool returns site information and lists specific fields, but doesn't mention whether this is a read-only operation, if it requires authentication, potential rate limits, error conditions, or the format of the return data. This leaves significant gaps for a tool that presumably queries a WordPress site.
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 well-structured and appropriately concise, with the purpose stated upfront followed by a clear list of return fields. Both sentences earn their place by providing essential information without redundancy, though minor improvements in formatting could make it perfect.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (0 parameters, no output schema, no annotations), the description is minimally adequate. It explains what the tool does and what it returns, but lacks context about authentication, errors, or how it fits with sibling tools. For a basic read operation, this is acceptable but leaves room for improvement.
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 0 parameters with 100% coverage, so no parameter documentation is needed. The description appropriately doesn't discuss parameters, and the baseline for this situation is 4, as it avoids unnecessary repetition while focusing on the tool's purpose and output.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with a specific verb ('Get') and resource ('WordPress site information'), making it immediately understandable. However, it doesn't explicitly differentiate this tool from potential sibling tools like 'wp_get_posts' or 'wp_get_plugins' beyond the resource type, which prevents a perfect score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. With sibling tools like 'wp_get_posts' and 'wp_get_plugins' available, there's no indication of whether this tool is for general site metadata, how it relates to other get operations, or any prerequisites for its use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wp_update_postA
Update an existing WordPress post.
Args:
post_id: The ID of the post to update.
title: New title (optional).
content: New content (optional).
status: New status - 'draft', 'publish', 'pending', 'private', 'trash' (optional).
excerpt: New excerpt (optional).
Returns:
Updated post with id, title, status, date, and link.
| Name | Required | Description | Default |
|---|---|---|---|
| post_id | Yes | ||
| title | No | ||
| content | No | ||
| status | 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 but provides minimal behavioral context. It mentions the tool updates posts and describes return values, but doesn't cover important aspects like required permissions, whether changes are reversible, error handling, or rate limits.
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 well-structured with clear sections (Args, Returns), uses bullet-like formatting for parameters, and every sentence adds value. No redundant information or unnecessary elaboration.
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 mutation tool with 5 parameters and no annotations or output schema, the description provides good parameter documentation and return value information, but lacks important behavioral context like permissions, side effects, and error conditions that would be needed for safe operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, but the description provides meaningful parameter documentation including all 5 parameters, their optionality, and for the status parameter, lists all possible enum values ('draft', 'publish', 'pending', 'private', 'trash'). This significantly compensates for the schema gap.
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 specific action ('Update an existing WordPress post') and distinguishes it from siblings like wp_create_post (create) and wp_delete_post (delete). It identifies the exact resource being modified.
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 by specifying it's for updating existing posts, but doesn't explicitly state when to use this versus wp_create_post or wp_get_post. No guidance on prerequisites, permissions, or error conditions is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
9 tool updates
v1.0.0- First observed
wp_create_post - First observed
wp_delete_post - First observed
wp_get_media - First observed
wp_get_pages - First observed
wp_get_plugins - First observed
wp_get_post - First observed
wp_get_posts - First observed
wp_site_info - First observed
wp_update_post
TDQS
Every tool has a clearly distinct purpose targeting specific WordPress resources and actions. There is no ambiguity between tools like wp_get_post (single post retrieval), wp_get_posts (multiple posts listing), wp_get_pages (pages listing), and wp_get_media (media library access). Each tool's name and description make its unique function immediately apparent.
All tools follow a perfect wp_verb_noun naming pattern throughout the entire set. The structure is consistently snake_case with clear action verbs (create, delete, get, update) followed by specific nouns (post, media, pages, plugins, site_info). This predictable naming convention makes the tool set highly readable and discoverable.
With 9 tools, this server is well-scoped for WordPress content management. Each tool earns its place by covering essential WordPress operations: post CRUD (create, get, update, delete), content listing (posts, pages, media), plugin management, and site information. The count is neither too sparse nor bloated, providing comprehensive coverage without overwhelming complexity.
The tool set provides excellent coverage for WordPress content management with complete post lifecycle operations and key content retrieval functions. Minor gaps exist: there's no media upload/creation tool, no page creation/update/delete operations, and no user management tools. However, the core post workflow is fully covered, and agents can work effectively with the provided surface.
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
Publish to self-hosted WordPress from AI agents: markdown, images, SEO, and Notion sync.
Security-first WordPress MCP server. 129 tools for Claude, ChatGPT, Gemini. Free on wp.org.
Sync Lightroom, Figma, Dropbox & Canva assets to WordPress and Shopify via natural language.
Sync Lightroom, Figma, Dropbox & Canva assets to WordPress and Shopify via natural language.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to interact with WordPress sites through the REST API. Supports multiple WordPress sites with secure authentication, enabling content management, post operations, and site configuration through natural language.53MIT
- AlicenseBqualityDmaintenanceEnables AI assistants to interact with WordPress sites through REST APIs, allowing programmatic management of posts, users, comments, categories, and tags with secure authentication.2948MIT
- AlicenseCqualityCmaintenanceEnables AI assistants to manage WordPress content, design, SEO, WooCommerce, and more through natural language commands.100323MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to interact with WordPress blog systems for automated content management and publishing via the WordPress REST API.321MIT
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/gaupoit/wordpress-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server