dapper-mcp-wp
Supports editing of Gutenberg blocks, which are stored in WordPress post_content, enabling seamless creation and editing of Gutenberg content through the standard WordPress REST API without a companion plugin.
Allows interaction with WordPress sites, providing tools to read context, list/search pages, fetch content, and create or update pages (default draft) via the REST API and Application Passwords.
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., "@dapper-mcp-wpCreate a new draft page about our services"
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.
dapper-mcp-wp
An MCP server that lets Claude (Claude Code, Claude Desktop, claude.ai) connect to your WordPress sites and read context, create pages, and edit pages — instead of copy-pasting into the admin by hand.
Built for the builders you actually use: WPBakery / Visual Composer, Gutenberg,
and Classic — all of which keep content in post_content, so they're fully
editable over the standard WordPress REST API. No companion plugin required.
Elementor stores layout as JSON in post meta and needs a companion plugin to edit safely — that's a later phase, not part of this REST-only core.
How it works
Claude ──MCP──> dapper-mcp-wp ──REST + App Password──> WordPress site(s)
(this server)Auth: WordPress core Application Passwords (Settings → Users → your bot user). Scoped, revocable, never exposes a real login.
Safety: new pages default to draft; edits rely on WordPress revisions (every save is auto-versioned → one-click rollback).
Context:
get_site_contextreports theme, plugins, detected builder, and recent pages. Pair it with a hand-maintained profile insites/.
Related MCP server: AutoWP MCP Server
Setup
Install deps & build
npm install npm run buildCreate the bot user on each site In WP admin: add a user (e.g.
dapper-bot, role Editor or Admin) → edit the user → Application Passwords → add one → copy the generated password.Add the connection — copy the example and fill in real values:
cp sites.example.json sites.local.json # sites.local.json is gitignored[ { "name": "acme", "url": "https://acme.example.com", "username": "dapper-bot", "appPassword": "xxxx xxxx xxxx xxxx xxxx xxxx" } ]Smoke-test the connection
npm run doctorPoint Claude Code at it (
.mcp.jsonin a project, or your user config):{ "mcpServers": { "dapper-wp": { "command": "node", "args": ["dist/index.js"] } } }(Use an absolute path to
dist/index.js, ortsx src/index.tsduring dev.)
Tools
Tool | What it does |
| List configured sites |
| Auth check + theme, plugins, builder, recent pages |
| List/search pages |
| Fetch one page's raw editable content |
| Create a page (draft by default) |
| Edit title/content/status (revision-safe) |
Roadmap
Phase 1 (here): REST-only core for WPBakery / Gutenberg / Classic.
Phase 2:
get_design_tokens(colors/fonts), richer per-site profiles, WPBakery shortcode helpers imported from the skill file.Phase 3: optional
dapper-connectorWP plugin — one-click onboarding (auto-provision bot user + App Password) and Elementor/Divi support.
Security
sites.local.json and .env are gitignored. Never commit site credentials.
Each site's Application Password can be revoked independently from WP admin.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- 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/dapperdevapps/dapper-mcp-wp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server