WordPress Block Catalog MCP
Extends block catalogue and verification to Gutenberg plugin blocks, allowing inspection and validation of their attributes, variations, and markup.
Adds WooCommerce-specific block definitions and runtime verification, supporting search, comparison, generation, and validation of WooCommerce blocks.
Provides verified block definitions, attributes, and markup for WordPress core blocks, enabling searching, comparison, generation, and validation across WordPress environments.
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 Block Catalog MCPcompare the button block across WordPress and WooCommerce"
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.
WP Block Catalog MCP
Give agents and developer tools verified WordPress block definitions and markup for the exact public product environment they target.
WordPress Block Catalogue MCP is a read-only Model Context Protocol server for finding, comparing, generating, and validating blocks shipped by WordPress, Gutenberg, WooCommerce, and Jetpack. It keeps source metadata, PHP registration, editor registration, and runtime verification as separate observations so clients do not have to guess from source files.
Capabilities
Resolve block definitions through explicit product and version layers.
Search blocks and inspect attributes, supports, relationships, variations, availability, and provenance.
Compare one block across environments.
Generate or validate markup at the strongest verified evidence level.
Report drift between source metadata, the PHP registry, and the editor registry.
Reject non-public sources and provenance from the public delivery artefact.
Related MCP server: ds-mcp
Requirements
Node.js 20 or newer
npm
The package is not published to npm. Clone the repository and run it from the working tree.
Quick start
git clone https://github.com/danielk-am/wp-block-catalog-mcp.git
cd wp-block-catalog-mcp
npm ci
npm run verifyStart the stdio MCP server with the committed public catalogue and runtime evidence:
WP_BLOCK_CATALOG_PATH="$PWD/catalog/public.release.generated.json" \
WP_BLOCK_DEFAULT_ENVIRONMENT="wordpress@7.0.2" \
WP_BLOCK_RUNTIME_PATHS="$PWD/runtime/wordpress-7.0.2-post-editor.reconciled.json:$PWD/runtime/wordpress-7.0.2-gutenberg-23.6.2-post-editor.reconciled.json:$PWD/runtime/wordpress-7.0.2-woocommerce-10.9.4-post-editor.reconciled.json:$PWD/runtime/wordpress-7.0.2-jetpack-16.0.1-disconnected-post-editor.reconciled.json" \
WP_BLOCK_VERIFICATION_PATHS="$PWD/runtime/wordpress-7.0.2.verified-markup.json:$PWD/runtime/wordpress-7.0.2-gutenberg-23.6.2.verified-markup.json:$PWD/runtime/wordpress-7.0.2-woocommerce-10.9.4.verified-markup.json:$PWD/runtime/wordpress-7.0.2-jetpack-16.0.1-disconnected.verified-markup.json" \
npm startFor an MCP client, use absolute paths:
{
"mcpServers": {
"wp-block-catalog": {
"command": "node",
"args": ["/absolute/path/wp-block-catalog-mcp/dist/mcp/server.js"],
"env": {
"WP_BLOCK_CATALOG_PATH": "/absolute/path/wp-block-catalog-mcp/catalog/public.release.generated.json",
"WP_BLOCK_DEFAULT_ENVIRONMENT": "wordpress@7.0.2",
"WP_BLOCK_RUNTIME_PATHS": "/absolute/path/wp-block-catalog-mcp/runtime/wordpress-7.0.2-post-editor.reconciled.json:/absolute/path/wp-block-catalog-mcp/runtime/wordpress-7.0.2-gutenberg-23.6.2-post-editor.reconciled.json:/absolute/path/wp-block-catalog-mcp/runtime/wordpress-7.0.2-woocommerce-10.9.4-post-editor.reconciled.json:/absolute/path/wp-block-catalog-mcp/runtime/wordpress-7.0.2-jetpack-16.0.1-disconnected-post-editor.reconciled.json",
"WP_BLOCK_VERIFICATION_PATHS": "/absolute/path/wp-block-catalog-mcp/runtime/wordpress-7.0.2.verified-markup.json:/absolute/path/wp-block-catalog-mcp/runtime/wordpress-7.0.2-gutenberg-23.6.2.verified-markup.json:/absolute/path/wp-block-catalog-mcp/runtime/wordpress-7.0.2-woocommerce-10.9.4.verified-markup.json:/absolute/path/wp-block-catalog-mcp/runtime/wordpress-7.0.2-jetpack-16.0.1-disconnected.verified-markup.json"
}
}
}
}*_PATHS uses the operating system path delimiter, : on macOS and Linux or
; on Windows. Singular *_PATH and plural *_PATHS settings can be
combined. Duplicate environment bundles or verification record identities
stop the server at startup.
AI client setup
Use the public catalogue definition above under the same wp-block-catalog name in each client:
Claude Code stores user-scoped servers in its user configuration. Check the result with
claude mcp get wp-block-catalog.Claude Desktop stores the definition under
mcpServersinclaude_desktop_config.json.Codex stores the definition in
~/.codex/config.toml. Codex CLI, the desktop app, and the IDE extension share this configuration. Check it withcodex mcp get wp-block-catalog.VS Code and VSCodium store the same server object under
serversin the usermcp.json. Their--add-mcpcommand accepts the definition as JSON.Gemini CLI stores the definition under
mcpServersin~/.gemini/settings.json. Check it withgemini mcp listfrom a trusted folder.
Restart desktop and IDE clients after changing their user configuration. The public repository does not contain the separate WordPress.com private catalogue.
Supported environments
Environment | Server registry | Client registry | Verified evidence |
WordPress 7.0.2 | 110 blocks | 109 blocks | Static, deprecated, and dynamic |
WordPress 7.0.2 with Gutenberg 23.6.2 | 160 blocks | 116 blocks | Static, deprecated, and dynamic |
WordPress 7.0.2 with WooCommerce 10.9.4 | 285 blocks | 264 blocks | Dynamic |
WordPress 7.0.2 with Jetpack 16.0.1, disconnected | 110 blocks | 109 blocks | Core static smoke |
See runtime captures for capture details and the catalogue audit for product-specific acceptance cases.
MCP tools and resources
Primary tools:
list_environmentssearch_blocksget_blockcompare_block_versionsgenerate_markupvalidate_markupget_verification_evidenceget_runtime_drift
Compatibility aliases:
get_block_schemaget_block_markuplist_block_attributessearch_variations
Resources:
wp-block-catalog://manifestwp-block-catalog://blocks/{environment}/{name}
Evidence model
The catalogue retains three observations independently:
metadata from an allowlisted path at a pinned source commit;
the final PHP block registry from the matching product environment;
the client block registry from the real editor.
Static markup is verified by running the registered save implementation, parsing its output, and running WordPress validation. Deprecated markup is verified through fixture matching, migration, current save, parsing, and validation. Dynamic markup is verified through the registered PHP render callback.
The architecture decision explains why disagreements remain visible.
Rebuilding the catalogue
Place exact source checkouts under .checkouts/ as declared in
build/public.json, then run:
npm run catalog:build
npm run catalog:healthThe build stops when a checkout differs from its manifest commit. Product adapters scan only declared include paths and never select duplicate definitions by scan order.
Check the four supported public stable channels:
npm run check:sourcesThe command exits 0 when every pin is current, 10 when a supported update
exists, and 20 when the check is indeterminate. It never falls back to a
branch head.
Verify a release candidate against a saved previous public release:
npm run catalog:release -- /path/to/previous-public.jsonThis command rebuilds from the exact checkouts, compares the result with the committed delivery artefact, checks freshness, and rejects unexplained removals.
Capturing the Jetpack profile
Install Chromium once:
npx playwright install chromiumCapture the disconnected Jetpack environment through a local wp-env
instance:
WP_BLOCK_CATALOG_ADMIN_USER="<local-wp-env-admin>" \
WP_BLOCK_CATALOG_ADMIN_PASSWORD="<local-wp-env-password>" \
npm run capture:jetpack -- \
--config .wp-env.jetpack.json \
--profile profiles/wordpress-7.0.2-jetpack-16.0.1-disconnected-post-editor.json \
--environment environments/wordpress-7.0.2-jetpack-16.0.1.json \
--output-dir /tmp/wp-block-catalog-jetpack-captureThe wrapper validates the public disconnected profile, captures the PHP and editor registries plus a Paragraph save-and-validate probe, destroys the isolated environment, then publishes the raw evidence.
Public data boundary
This repository contains only public source manifests, public runtime evidence, and the public delivery artefact. The delivery layer rejects non-public sources, definitions, environments, paths, revisions, provenance, and gate details.
Do not add private source checkouts, captures, catalogues, logs, or credentials to this repository. Use synthetic fixtures when testing the privacy boundary.
Development
Run the complete local gate:
npm ci
npm run verify
npm audit --omit=dev
git diff --checkRead AGENTS.md before changing source manifests, resolution rules, or verification labels.
Status
Version 0.1.4 is the initial public-only repository snapshot. It includes four public environments and a committed deterministic release artefact.
License
No open-source license has been granted yet. Public visibility does not grant permission to copy, modify, or redistribute the code.
This server cannot be installed
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 Servers
- Alicense-qualityCmaintenanceAn MCP server that indexes WordPress hooks, filters, block registrations, and JS API calls to provide AI assistants with a verified source-code database. It enables models to search, validate, and retrieve code context for WordPress and its plugins to eliminate hook-name hallucinations.Last updated4771MIT
- Alicense-qualityAmaintenanceA read-only MCP server that provides AI coding agents with a queryable contract for design system tokens, components, patterns, and anti-patterns.Last updated2071Apache 2.0
- Alicense-qualityDmaintenanceMCP server for WordPress content management that provides a secure interface for AI assistants to interact with WordPress sites, enabling content creation, editing, and media management without destructive operations.Last updatedMIT
- Alicense-qualityBmaintenanceAn MCP server that enables safe reconnaissance, mutation, and verification of WordPress sites through guarded, typed verbs with dry-run previews and change-packet audit records.Last updatedMIT
Related MCP Connectors
Federated commerce search across independent WooCommerce merchants. Keyless, read-only MCP server.
A MCP server built for developers enabling Git based project management with project and personal…
MCP server for Blockscout
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/danielk-am/wp-block-catalog-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server