wordpress-mcp-server
Integrates with a WordPress site through the WordPress REST API, enabling reading site information, listing and searching posts or pages, retrieving post content as plain text, viewing installed plugins, and creating draft posts. Supports read-only mode and Application Password authentication.
This server does not currently have a deployable release on Glama. Follow the repository's setup instructions to install and configure it for your MCP client, including any required credentials and local dependencies.
wordpress-mcp-server
An MCP server that lets Claude, and any other MCP-capable agent, read a WordPress site and draft new posts through the WordPress REST API.
Ask your assistant things like "what did we publish about the conference last month?", "which plugins are out of date?" or "draft a post announcing early-bird tickets", and it works against your real site.
Product brief
Who it's for: people who run WordPress sites (agencies, in-house web teams, membership organisations) and want an AI assistant that knows what's actually on the site.
Problem: assistants can write content but can't see the site it's going into. People copy and paste between the dashboard and the chat, and drafts get written without knowing what already exists.
Key decisions
Drafts only. The assistant can create drafts but cannot publish, edit or delete. A person always presses Publish. See ADR 001.
Read-only mode.
WP_READ_ONLY=trueremoves every write tool, for sites where even drafts aren't wanted.Plain text out. Content comes back as clean text, not raw HTML, so the model spends its context on meaning rather than markup.
Application Passwords, not admin passwords. Uses WordPress's built-in, revocable per-app credentials.
What success looks like: a site owner connects it in a couple of minutes and gets useful answers about their own site without giving the assistant power to break anything.
Related MCP server: mcp-wordpress
Tools
Tool | What it does | Needs credentials |
| Site name, tagline, URL and REST namespaces | No |
| Posts or pages, with search, status filter and paging | Only for non-published statuses |
| One post or page with content as plain text | No (published content) |
| Installed plugins, versions and active status | Yes, administrator |
| Creates a new post as a draft | Yes, author or above |
How it works
flowchart LR
A[Claude or another MCP client] -- MCP over stdio --> B[wordpress-mcp-server]
B -- HTTPS + Application Password --> C[WordPress REST API /wp-json/wp/v2]
B -. read-only mode removes write tools .-> Bsrc/wordpress.ts: a small typed REST client with timeouts, clear errors and HTML-to-text conversionsrc/server.ts: registers the MCP tools with input validation (zod) and read-only hintssrc/index.ts: reads config from environment variables and connects over stdio
Setup
Requirements: Node.js 20+, a WordPress site with the REST API enabled (the default).
git clone https://github.com/bgildea/wordpress-mcp-server.git
cd wordpress-mcp-server
npm ci
npm run buildCreate an Application Password in WordPress under Users > Profile > Application Passwords. Use a dedicated user with the lowest role that does the job (Author is enough for drafts).
Connect it to Claude Desktop
Add this to your MCP config file (claude_desktop_config.json):
{
"mcpServers": {
"wordpress": {
"command": "node",
"args": ["/absolute/path/to/wordpress-mcp-server/dist/index.js"],
"env": {
"WP_URL": "https://your-site.com",
"WP_USERNAME": "your-user",
"WP_APP_PASSWORD": "xxxx xxxx xxxx xxxx xxxx xxxx",
"WP_READ_ONLY": "false"
}
}
}
}Leave out WP_USERNAME and WP_APP_PASSWORD to browse published content only.
Configuration
Variable | Required | Description |
| Yes | Site root, e.g. |
| No | WordPress username for authenticated calls |
| No | Application Password for that user (spaces are fine) |
| No |
|
Development
npm test # vitest: REST client and MCP tools, against a mocked WordPress
npm run typecheck # strict TypeScript, tests included
npm run build # compile to dist/The tests run the real MCP server against an in-memory MCP client, so they check tool listing, argument validation and error handling exactly as an agent would see them.
Security notes
Credentials live in environment variables, never in the repo
Use HTTPS. Application Passwords are sent as Basic auth
Give the WordPress user the smallest role that works, and revoke the Application Password when you stop using it
Tool output is content from your site. Treat anything an agent reads there as data, not instructions
Roadmap
list_commentsandget_commentfor moderation helpWooCommerce read tools (orders, products) behind a separate flag
Media library search
Publish to npm for
npxusage
Licence
MIT. Built by Barry Gildea, who has spent 15+ years building on WordPress.
This server cannot be deployed
Maintenance
Related MCP Connectors
Manage WordPress blogs and WooCommerce shops from Claude, ChatGPT, Cursor and other MCP apps.
Manage a WordPress site from your AI assistant: read, search, propose edits, Search Console data.
Read, write, translate and sync WordPress and Webflow blog articles from Claude.
Let Claude, ChatGPT or any MCP client run your WordPress site, Pinterest and Search Console.
Related MCP Servers
- AlicenseBqualityCmaintenanceConnects Claude to WordPress sites through the REST API, enabling AI-assisted content creation, publishing, media management, user administration, and site maintenance tasks through natural language.4717 npm23MIT
- AlicenseCqualityDmaintenanceEnables Claude Code to read, edit, and manage WordPress pages, posts, shortcodes, and media via the WordPress REST API.8011 npm3MIT
- FlicenseAqualityCmaintenanceEnables Claude to read context, create, and edit pages on WordPress sites via the REST API using Application Passwords.6-
- AlicenseAqualityDmaintenanceEnables direct interaction with WordPress sites via Claude using the REST API, allowing reading, creating, updating, and deleting content securely with application passwords.20MIT