Block MCP Server

MCP server for WordPress block-level content management with preference-aware editing

Remote serverstreamable-httpTypeScript

What is the Block MCP Server?

MCP server for WordPress block-level content management with preference-aware editing

What it actually does

Here's where Block MCP wins. Most other WordPress MCPs are wrappers around the standard WordPress REST API — fine for writing, but wrong for editing. "Change a heading, then add a button, then fix the next paragraph" could result in your post needing major rehab to get back to correct syntax. Block MCP is the answer to an WordPress block editor MCP that just works.

  • Edits one block, not the whole page. — Change a heading's level without touching the surrounding HTML. Standard MCPs force a full page rewrite on every edit; Block MCP touches just the one heading
  • Editor-safe round-trips. — block markers are preserved exactly. No "this block contains unexpected or invalid content" warnings on reopen
  • Stable block refs no other WordPress MCP has. — Quickly chain inserts, deletes, and updates across turns from a single read
  • Tier policy enforced server-side. — Decide what blocks you want to allow or reject before they are saved, with suggested replacements
  • Optimistic concurrency built in. — Two agents working on the same post can't silently overwrite each other
  • Yoast SEO support built in. — Read and write Yoast meta (titles, descriptions, focus keywords, canonical URLs, schema types, primary terms, Open Graph / Twitter cards) the moment Yoast SEO is active on the site

More MCP options

Compare MCP servers by category, or browse hosted MCP servers if you prefer an endpoint over a local process.

Maintainer setup documentation.

Recorded tools

Check the linked publisher documentation and your connected client's tool list. Names and availability can vary with the server version and account permissions.

ToolWhat it does
get_page_blocksRead a post's blocks. Supports outline, summary_only, search, block_name, render, fields, persist_refs
update_blockUpdate one block's attributes/innerHTML (by flat_index or ref)
update_blocksApply N independent updates atomically in ONE revision (max 50). All-or-nothing validation — any stale ref / out-of-range index / dual-storage rejection / dupli
insert_blocksInsert blocks at a position (by counter or ref)
delete_blockRemove block(s) (by counter or ref)
replace_block_rangeAtomic single-revision swap of N blocks for M blocks
rewrite_post_blocksFull page rewrite
edit_block_tree9 path-or-ref-based structural ops
insert_patternInsert a pattern, synced or inline
create_patternCreate a synced pattern from structured blocks or raw content, with sync-status control
revert_to_revisionRoll back to a prior revision ID
create_postCreate a post or page (draft, publish, future) — accepts blocks or HTML
update_postUpdate post metadata, status, terms — covers publish/trash/untrash transitions
list_termsList taxonomy terms (categories, tags, custom) for ID lookup
upload_mediaUpload via local path, URL sideload (with SSRF guard), or base64. Returns attachment ID + URL
list_block_typesBrowse registered block types with preference tiers, style variations, and nesting constraints (parent/ancestor/allowed_blocks). Pass include_supports:true for
get_site_usageBlock/pattern usage analytics
list_binding_sourcesRegistered block bindings sources (e.g. core/post-meta, core/pattern-overrides) a block's metadata.bindings can reference
yoast_get_seoRead SEO metadata: title, description, robots, OG, Twitter, schema, scores
list_templatesBrowse a block theme's templates and template parts (filter by type, area, post_type, slug, source)
get_templateA single template's metadata, raw content, and parsed blocks
update_templateReplace a template/part's entire content, gated by a site setting (off by default)
reset_templateDelete a template's database override, reverting it to the theme file

How to install the Block MCP Server

{
  "mcpServers": {
    "block-mcp": {
      "command": "node",
      "args": [
        "/absolute/path/to/block-mcp/dist/index.cjs"
      ],
      "env": {
        "WORDPRESS_URL": "https://example.com",
        "WORDPRESS_USER": "your-wp-username",
        "WORDPRESS_APP_PASSWORD": "YOUR_WORDPRESS_APP_PASSWORD"
      }
    }
  }
}

From the project documentation. Replace placeholders and example paths before connecting.

Configuration

VariableDescriptionRequired
WORDPRESS_URLDeclared in the maintainer’s client configuration.Check documentation
WORDPRESS_USERDeclared in the maintainer’s client configuration.Check documentation
WORDPRESS_APP_PASSWORDDeclared in the maintainer’s client configuration.Check documentation

Example prompts to try

  • “Use Block MCP to get page blocks.”
  • “Use Block MCP to update block.”
  • “Use Block MCP to update blocks.”

Frequently asked questions

MCP server for WordPress block-level content management with preference-aware editing Confirm the tools offered by your installed version in the connected client. Tool availability and permissions depend on the server and account configuration.