Skip to main content
Glama

bricks-mcp

▟███████████████████████████████████████████▙
█  ____  ____  ___ ____ _  ______           █
█ | __ )|  _ \|_ _/ ___| |/ / ___|   BRICKS █
█ |  _ \| |_) || | |   | ' /\___ \          █
█ | |_) |  _ < | | |___| . \ ___) |  MCP    █
█ |____/|_| \_\___\____|_|\_\____/          █
▜▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▛
  105 tools · 17 modules · MIT licensed

Printed on startup. In a real terminal the box animates in brick-by-brick (set BRICKS_BANNER=anim|static|off).

The most comprehensive open-source MCP server for Bricks Builder.

100+ tools to manage pages, templates, styles, SEO, content, and more — directly from Claude Code, Cursor, Windsurf, or any MCP-compatible AI assistant.

Tools License Bricks MCP Runtime


Architecture

Claude Code / Cursor / AI Assistant
        ↕ MCP Protocol (stdio)
   bricks-mcp (Node.js)
        ↕ REST API (Basic Auth)
   bricks-api-bridge (WordPress Plugin)
        ↕ PHP
   WordPress + Bricks Builder

The MCP server communicates with your WordPress site through the included REST API plugin. Your AI assistant gets full control over Bricks Builder — reading pages, updating elements, managing styles, and building sections.


Related MCP server: Bricks MCP

Quick Start (5 Minutes)

1. Install the WordPress Plugin

The plugin/ folder in this repo contains the Bricks API Bridge WordPress plugin. Choose one of these install methods:

Option A: ZIP Upload (easiest)

  1. Download bricks-api-bridge.zip from the latest release

  2. Go to WordPress Admin → Plugins → Add New → Upload Plugin

  3. Upload the ZIP and click "Install Now"

  4. Click "Activate"

Option B: Manual Upload via FTP/SSH

  1. Clone this repo or download it

  2. Copy the plugin/ folder to your WordPress installation:

    cp -r plugin/ /path/to/wordpress/wp-content/plugins/bricks-api-bridge/
  3. Go to WordPress Admin → Plugins → Activate "Bricks API Bridge"

Option C: WP-CLI

# From the repo root. Builds from git, not from your working copy,
# so uncommitted files can't end up in the archive.
./scripts/build-plugin-zip.sh
wp plugin install bricks-api-bridge.zip --activate

After activation, the plugin registers REST API endpoints under /wp-json/bricks-bridge/v1/. No configuration needed — it works out of the box with WordPress Application Passwords.

2. Create an Application Password

In WordPress Admin → Users → Your Profile → Application Passwords:

  • Enter a name (e.g., "MCP Server")

  • Click "Add New Application Password"

  • Copy the generated password

3. Install the MCP Server

git clone https://github.com/developer2013/bricks-mcp-open.git
cd bricks-mcp-open
npm install   # or: bun install

4. Configure Credentials

Copy .env.example to .env and fill in your details:

cp .env.example .env
WORDPRESS_URL=https://your-site.com
WORDPRESS_USER=your-username
WORDPRESS_APP_PASSWORD=xxxx xxxx xxxx xxxx xxxx xxxx

5. Add to Your AI Assistant

Claude Code — add to ~/.claude/.mcp.json:

{
  "mcpServers": {
    "bricks": {
      "command": "node",
      "args": ["/path/to/bricks-mcp-open/index.js"]
    }
  }
}

Or with Bun (faster startup):

{
  "mcpServers": {
    "bricks": {
      "command": "bun",
      "args": ["/path/to/bricks-mcp-open/index.js"]
    }
  }
}

Claude Code iOS / Android App — open Settings → MCP Servers → Add Server:

  1. Name: bricks

  2. Command: node (or bun)

  3. Arguments: /path/to/bricks-mcp-open/index.js

  4. Environment Variables:

    • WORDPRESS_URL = https://your-site.com

    • WORDPRESS_USER = your-username

    • WORDPRESS_APP_PASSWORD = xxxx xxxx xxxx xxxx xxxx xxxx

Cursor / Windsurf — add the same config to .cursor/mcp.json in your project.

Hermes Agent (Nous Research) — add to config.yaml:

mcp_servers:
  bricks:
    command: node
    args: ["/path/to/bricks-mcp-open/index.js"]
    env:
      WORDPRESS_URL: https://your-site.com
      WORDPRESS_USER: your-username
      WORDPRESS_APP_PASSWORD: "xxxx xxxx xxxx xxxx xxxx xxxx"

Hermes has native MCP client support since v0.2.0 — all 105 tools appear in its tool list automatically. Works with any model (Hermes 3, Llama, OpenRouter, etc.).

Windows: TLS / "fetch failed" errors On Windows, Node.js ships its own bundled CA list and ignores the Windows certificate store. If your WordPress host sits behind a corporate proxy, TLS inspection, or a CA that's only trusted by Windows, every request fails with a certificate / fetch failed error. Tell Node to use the OS trust store by adding --use-system-ca before the script path in args (requires Node.js ≥ 22.15):

{
  "mcpServers": {
    "bricks": {
      "command": "node",
      "args": ["--use-system-ca", "C:\\path\\to\\bricks-mcp-open\\index.js"]
    }
  }
}

Alternatively set it via the environment instead of args: "env": { "NODE_OPTIONS": "--use-system-ca" }. On older Node versions, upgrade to ≥ 22.15 (or use NODE_EXTRA_CA_CERTS pointing to your CA bundle as a fallback).


Manage Your WordPress Site from Your Phone

Deploy the MCP server as a self-hosted MCP environment on Railway (or any Docker host), then connect it to the Claude Code mobile app. No Mac running in the background needed — the server runs 24/7 in the cloud.

How it works:

iPhone / Android (Claude Code App)
      ↕ Claude Self-Hosted MCP
Railway / Docker (MCP Server — always on)
      ↕ REST API
WordPress + Bricks Builder

Setup:

  1. Deploy the MCP server to Railway using the included agent-service/Dockerfile

  2. In Claude Console → MCP → Create Self-Hosted Environment

  3. Generate an environment key and add it to your Railway deployment

  4. The Claude Code mobile app automatically connects to your self-hosted environment

What you can do from your phone — no laptop needed:

You:  "List all my pages and their SEO scores"
You:  "Create a new landing page for my dental practice"
You:  "Update the hero headline on page 42 to 'Welcome to Our Practice'"
You:  "Run an SEO audit and fix all missing meta descriptions"
You:  "Add a testimonials section using the testimonials-slider preset"
You:  "Create a snapshot called 'before-redesign', then change the palette"

Action

Example Prompt

Build pages

"Create a hero section with dark gradient background"

Edit content

"Change the button text on page 42 to 'Book Now'"

SEO management

"Set meta description and OG image for all pages"

Style updates

"Update the primary color to #2563EB across the palette"

Backup & restore

"Create a snapshot called 'before-redesign'"

QA checks

"Check all links on page 42 for broken URLs"

Template management

"Clone the header template and modify the navigation"

The server runs 24/7 on Railway — your phone is just the control surface. All 105 tools are available anywhere, anytime.

6. Test the Connection

Ask your AI assistant:

"Use the bricks_connection_test tool to verify my WordPress connection."


Tool Categories (100+ Tools)

Category

Tools

Description

Pages

9

List, get, update, patch, append, build, clone, search pages

Scripts & Assets

5

Per-page CSS/JS management, GSAP flag control

SEO (Page)

6

Page-level SEO meta, schema markup, audit

Templates

8

Full template CRUD, clone, import, search

Backup & Snapshots

7

Named snapshots, multi-slot backups, restore

Global Classes

7

CSS class CRUD, bulk create, usage analysis

BEM Components

3

Generate, apply, and validate BEM class sets

Style System

10

Color palette, fonts, CSS variables, breakpoints

Theme Styles

2

Global theme style read/write

Presets

4

Section presets: list, instantiate, save, delete

SEO (Advanced)

13

Auto-fix, bulk update, sitemap, redirects, link check

WordPress Content

8

Posts, categories, tags CRUD

Menus

5

Navigation menu management

Site Management

9

Settings, page creation, validation, cache, stats

Media

3

Upload, list, edit media files

Multi-Site

3

Switch between WordPress sites at runtime

Utilities

4

Connection test, HTML→Bricks converter, Elementor→Bricks migration, batch ops


Migrating from Elementor?

Switching from Elementor (Pro) to Bricks? bricks_elementor_to_bricks gives you a head start:

  1. In WordPress, open the Elementor editor → ⌄ (menu) → Export Template (or Templates → Saved Templates → Export). You get a .json file.

  2. Run the tool with that file:

    bricks_elementor_to_bricks  file_path="/path/to/elementor-export.json"
  3. You get a ready-to-review Bricks element array plus a coverage report.

  4. Review it, then push with bricks_update_page (take a snapshot first) or bricks_import_page.

How it works: a purely structural translation — no headless browser, no rendering, no write to your site. Common widgets (heading, text, button, image, icon, divider, spacer) and the section/column/container structure map straight to native, editable Bricks elements. Widgets without a native equivalent (e.g. Pro sliders, forms, loops) become clearly-labelled placeholder blocks carrying a preview of their original content — so nothing is lost silently and you always see where and what to rebuild by hand. line-height is converted to a correct unitless ratio so you never inherit Elementor's px values as Bricks multipliers.


Keeping your CSS editable in Bricks

The whole point of Bricks is a visual builder — so CSS the assistant writes should stay editable in Bricks, not vanish into a place you can't reach. This plugin can inject per-page CSS into a private bundle (_bab_page_assets, output at wp_head priority 9997 — before element CSS) via bricks_update_page_assets. That bundle is not shown anywhere in the Bricks builder and silently overrides what the builder displays — great for infrastructure CSS (@font-face, :root{--vars}, @keyframes, critical above-the-fold), but the wrong home for the layout/responsive/visual CSS you'll want to tweak by hand later. (This is exactly the r/BricksBuilder feedback: "plugin-managed page CSS that a human can't edit defeats the purpose of using Bricks.")

Where editable CSS belongs (priority order):

  1. Native element settings — padding, typography, colors, etc. (fully visual controls)

  2. Element _cssCustom — per-element custom CSS, editable on the element's CSS tab

  3. Page customCss — bricks_update_page_settings → Bricks Page Settings → Custom CSS

  4. Global classes — editable in the Class Manager (build them with native settings, not _cssCustom, which is not compiled into page CSS via the API path)

The editability guard

To stop editable CSS from leaking into the invisible bundle, the guard classifies the css field of bricks_update_page_assets and acts in three modes:

Mode

Behaviour

off (default)

No-op — fully backwards-compatible

warn

Write proceeds, the REST response carries a warnings[] field naming the editable rules

block

Editable CSS is rejected (HTTP 422) and nothing is written

Enable it by adding one line to your wp-config.php (above /* That's all, stop editing! */):

// Bricks API Bridge — warn (or 'block') when editable CSS is sent to the private page-assets bundle
define( 'BAB_GUARD_EDITABLE_CSS', 'warn' );

(Or, without editing files: wp option update bab_guard_editable_css warn.) On the MCP side, the bricks_update_page_assets tool warns by default; set the env var BRICKS_MCP_BLOCK_EDITABLE_CSS=1 to hard-block there too. Infrastructure CSS always passes — use the css_critical / css_deferred fields for it.


Multi-Site Support

Manage multiple WordPress sites from a single MCP server. Copy sites.json.example to sites.json:

{
  "default": "production",
  "sites": {
    "production": {
      "label": "Live Site",
      "url": "https://your-site.com",
      "username": "admin",
      "password": "xxxx xxxx xxxx xxxx xxxx xxxx"
    },
    "staging": {
      "label": "Staging",
      "url": "https://staging.your-site.com",
      "username": "admin",
      "password": "xxxx xxxx xxxx xxxx xxxx xxxx"
    }
  }
}

Switch sites at runtime:

"Switch to the staging site."

Custom sites.json location. If you collect your MCP servers in one folder and keep site configs elsewhere, set BRICKS_SITES_PATH to point at the file — absolute, relative (to the working directory), or ~-prefixed all work:

BRICKS_SITES_PATH=~/mcp-config/bricks-sites.json

When set, a missing file fails loudly at startup (instead of silently falling back to the WORDPRESS_* env vars), so a typo in the path can't connect you to the wrong site. No need to symlink sites.json into the server folder.


Usage Examples

Build a page section

"Create a hero section on page 42 with a full-width background, centered heading 'Welcome', a subtitle, and a CTA button."

Manage styles

"Update the color palette — set the primary color to #2563EB and secondary to #7C3AED."

SEO optimization

"Run an SEO audit on all published pages and auto-fix missing meta descriptions."

Backup before changes

"Create a snapshot of page 42 named 'before-redesign', then update the hero section."


Plugin Features

The included WordPress plugin (bricks-api-bridge) provides:

  • REST API endpoints for all Bricks Builder data

  • Security hardening — rate limiting, user enumeration protection, security headers

  • Responsive inference — automatic mobile/tablet breakpoint generation

  • Element validation — catches invalid IDs, broken parent-child links

  • Auto-fix — corrects common CSS issues (overflow, grid, container width)

  • Backup system — multi-slot backups + named snapshots

  • Design token import/export — JSON, ACSS, Tailwind formats


Feature Comparison

Feature

bricks-mcp

Novamira

cristianuibar/bricks-mcp

sabiertas/bricks-mcp-server

Focus

Bricks Builder

Generic WordPress

Bricks Builder

Bricks Builder

Tools

105

22 (12 core + 10 Gutenberg)

11

10

Approach

REST API (structured endpoints)

PHP execution + filesystem

REST API

REST API

Agent Service

Autonomous 5-phase pipeline

-

-

-

Mobile Control

Telegram bot (iPhone/Android)

-

-

-

Multi-Site

Runtime switching

-

-

Environment vars

BEM Support

Generate + Apply + Validate

-

-

-

SEO Tools

19 (meta + audit + redirects)

-

-

-

Backup System

Snapshots + Multi-slot

-

-

-

Section Presets

25 ready-to-use

-

-

-

Security Hardening

Rate limit + Headers

-

-

-

Responsive Inference

Auto breakpoints

-

-

-

WordPress Content

Posts + Categories + Tags + Menus

Via PHP execution

-

-

Batch Operations

Up to 20 per request

-

-

-

Design Tokens

Import/Export (JSON, ACSS)

-

-

-

Auto-Fix

Overflow, grid, container

-

-

-

Gutenberg Support

-

Block Editor Queue

-

-

PHP Execution

-

Direct PHP eval

-

-

License

MIT

AGPL-3.0

GPL-2.0

MIT


Requirements

  • Node.js >= 18 or Bun >= 1.0 (Windows behind a proxy/custom CA: use Node ≥ 22.15 with --use-system-ca — see Windows TLS note)

  • WordPress >= 6.0

  • Bricks Builder >= 2.0

  • PHP >= 8.0


Agent Service (Autonomous Page Builder)

The agent-service/ directory contains an autonomous agent that builds entire WordPress pages from industry briefs — using Claude + the MCP server in a 5-phase pipeline:

Industry Brief → Historian → Design → Code → Update → QA → Fix Loop
  • Build from your iPhone or Android — Use the Telegram bot or the Claude Code mobile app as your control center: trigger builds, QA, fixes, and screenshots from anywhere

  • CLI Mode — Single builds or overnight batch processing

  • Budget Control — Per-phase cost caps, total cost tracking

  • Docker Ready — Deploys to Railway, Fly.io, or any container host

See agent-service/README.md for setup instructions.


Premium

Looking for more? The premium edition includes 260+ tools with:

  • AI Build Pipeline — Build entire pages from a URL in one command

  • Learning System — Remembers CSS fixes and improves over time

  • Math Library — 33 modules for design tokens, color harmony, spring physics

  • Visual QA — Puppeteer screenshots, pixel comparison, accessibility audits

  • Design Intelligence — Brand archetypes, competitive benchmarking, typography suggestions

  • WooCommerce, ACF, Gravity Forms integrations

  • Bio-inspired animations — Levy stagger, density-intensity, quorum sensing

Reach out for premium access


Contributing

See CONTRIBUTING.md for guidelines.

License

MIT License. See LICENSE.

Available Tools

115 tools
bricks_active_siteA

Show the currently active WordPress site (key, label, URL, user).

Inputs: no named parameters.

bricks_add_menu_itemA

Add a single item to an existing menu. Supports custom links, pages, posts, and categories. Use parent for submenus.

Inputs: title (required), menu_id (required), url, type, +6 more.

bricks_append_elementsA

Append elements to an existing page without replacing existing content. Elements are added after existing elements. Automatically creates a backup before writing (plugin-side, cannot be skipped). THEME-FIRST: before generating elements, call bricks_get_theme_styles and bricks_list_global_classes — reuse existing tokens (button styles, utility classes, color palette) instead of inline styling. For buttons prefer settings.style: "primary"|"secondary" over manual _background/_typography. For links use the text-link element, not a styled text-basic.

Inputs: page_id (required), elements (required), parent_id, regenerate_css.

bricks_apply_bem_componentA

Apply BEM component classes to page elements. Maps element IDs to their BEM roles (_root, title, price, cta, etc.) and assigns the corresponding global classes. Optionally adds a modifier class to the root element.

Inputs: block (required), mapping (required), page_id (required), modifier.

bricks_apply_class_to_elementB

Apply or remove global CSS classes on page elements. Supports single element or bulk operations.

Inputs: page_id (required), class_id, element_id, operations.

bricks_batchB

Execute multiple API operations in a single request. Reduces HTTP roundtrips for multi-step workflows. Max 20 operations per batch.

Inputs: operations (required).

bricks_build_pageA

Build a complete page from section presets and/or raw elements in a single request. Combines multiple sections into a full page layout. Automatically creates a backup before writing (plugin-side, cannot be skipped). THEME-FIRST: before generating raw elements, call bricks_get_theme_styles and bricks_list_global_classes — reuse existing tokens (button styles, utility classes, color palette) instead of inline styling. For buttons prefer settings.style: "primary"|"secondary" over manual _background/_typography. For links use the text-link element, not a styled text-basic.

Inputs: page_id (required), sections (required), regenerate_css.

bricks_bulk_create_global_classesA

Create or update multiple global CSS classes in one request. Upserts by ID.

Inputs: classes (required).

bricks_bulk_media_seoA

Find all media items missing SEO texts and auto-generate alt_text + title from filename context. Optionally apply changes. Shows a preview table first.

Inputs: apply, per_page, overrides.

bricks_call_logA

Query the structured MCP call log — every tool call with its args, status, duration, and (for page-mutating calls) a before/after element diff (count delta + added/removed element IDs). Use this to trace which call changed or corrupted a page and what input triggered it, instead of guessing from a snapshot. Filters: limit, page_id, failures_only, mutating_only.

Inputs: limit, page_id, failures_only, mutating_only.

bricks_clone_pageB

Clone a page with all Bricks data and scripts.

Inputs: page_id (required), new_title.

bricks_clone_templateC

Clone a template with all Bricks data.

Inputs: template_id (required), new_title.

bricks_competitor_extractA

Extract SEO meta tags, OG/Twitter data, JSON-LD schemas, and H1 headings from any external URL. Useful for benchmarking against competitors.

Inputs: url (required).

bricks_connection_testA

Test the WordPress connection, verify credentials, and check plugin status. Use this to diagnose connection issues.

Inputs: no named parameters.

bricks_create_full_backupA

Create a full-state backup of the entire Bricks layer (all pages incl. drafts, templates, global styles/classes/fonts/colors, navigation menus, and curated WordPress core settings) as a single JSON file on the server. Use before risky bulk operations. Does NOT back up media files or the database — pair with a host snapshot for full disaster recovery.

Inputs: no named parameters.

bricks_create_global_classB

Create a new Bricks Builder global CSS class with settings.

Inputs: name (required), settings (required).

bricks_create_menuB

Create a new WordPress navigation menu. Returns the new menu ID.

Inputs: name (required), locations.

bricks_create_pageA

Create a new WordPress page with Bricks Builder data in one call. No need for separate WP page creation + Bricks data push. THEME-FIRST: before generating elements, call bricks_get_theme_styles and bricks_list_global_classes — reuse existing tokens (button styles, utility classes, color palette) instead of inline styling. For buttons prefer settings.style: "primary"|"secondary" over manual _background/_typography. For links use the text-link element, not a styled text-basic.

Inputs: title (required), slug, parent, status, +2 more.

bricks_create_redirectA

Create a 301/302/307 redirect. Hits are tracked automatically on the frontend.

Inputs: source (required), target (required), type.

bricks_create_snapshotA

Create a named snapshot of the current page state. Use for milestones like "client-approved", "before-redesign", etc.

Inputs: name (required), page_id (required), description.

bricks_create_templateC

Create a new Bricks Builder template with the given content.

Inputs: title (required), content (required), conditions, template_type.

bricks_delete_full_backupA

Delete one stored full-state backup file by its filename (as listed by bricks_list_full_backups).

Inputs: file (required).

bricks_delete_global_classB

Delete a global CSS class by ID.

Inputs: class_id (required).

bricks_delete_menuA

Delete a WordPress navigation menu and all its items.

Inputs: menu_id (required).

bricks_delete_menu_itemB

Remove a single item from a menu.

Inputs: item_id (required).

bricks_delete_presetB

Delete a section preset by name.

Inputs: name (required).

bricks_delete_redirectB

Delete a redirect by ID.

Inputs: redirect_id (required).

bricks_delete_snapshotB

Delete a named snapshot. Accepts snapshot ID or name.

Inputs: page_id (required), snapshot_id (required).

bricks_delete_templateC

Delete a Bricks Builder template.

Inputs: template_id (required), force.

bricks_elementor_to_bricksA

Convert an Elementor page/template into a Bricks Builder element array. Input is an Elementor JSON export (Elementor UI → Templates → Export, or raw _elementor_data). Maps Elementor widgets/containers to native Bricks elements structurally — no HTML rendering. Returns the Bricks element array + a coverage report (which widgets mapped, which need manual work). Does NOT write to WordPress: review the output, then push with bricks_update_page or bricks_import_page.

Inputs: json, file_path.

bricks_generate_bem_componentA

Generate a complete BEM component as global CSS classes. Creates block, element (__), and modifier (--) classes in one call. Uses bulk upsert so it is safe to re-run. Example: block="pricing-card" with elements title, price, cta creates: pricing-card, pricing-card__title, pricing-card__price, pricing-card__cta.

Inputs: block (required), elements (required), modifiers.

bricks_get_backupA

Get the backup of a page's Bricks data. Supports multi-slot backups (1-5, newest first).

Inputs: page_id (required), slot.

bricks_get_breakpointsA

Get all active Bricks Builder breakpoints with pixel values and setting suffixes. Returns default breakpoints (Desktop, Tablet Portrait <992px, Mobile Landscape <768px, Mobile Portrait <478px) plus any custom breakpoints.

Inputs: no named parameters.

bricks_get_color_paletteA

Get the Bricks Builder color palette. Returns all defined color variables with their values.

Inputs: no named parameters.

bricks_get_css_variablesA

Get all CSS variables (design tokens) from Bricks Global Variables Manager. Returns variable names and values (colors, spacing, z-index, container sizes, etc.).

Inputs: no named parameters.

bricks_get_full_stateA

Return the live full-state of the Bricks layer as JSON WITHOUT writing a file (all pages incl. drafts, templates, globals, menus, curated WP settings). Use to inspect or to save a backup snapshot locally on the client.

Inputs: no named parameters.

bricks_get_global_class_usageA

Get usage report: which global classes are used on which pages/elements. Optionally filter by class_id.

Inputs: class_id.

bricks_get_global_cssA

Get the global custom CSS from Bricks Builder settings.

Inputs: no named parameters.

bricks_get_menu_locationsA

List all registered theme menu locations and which menus are assigned to them.

Inputs: no named parameters.

bricks_get_pageB

Get the complete Bricks Builder JSON data for a specific page. Returns the full element tree with all settings, styles, and content. Use content_area to read header or footer template data instead of main content.

Inputs: page_id (required), summary, content_area.

bricks_get_page_assetsA

Get structured per-page assets. Returns { css, js_deps, js, raw_footer } — CSS is output in wp_head, JS deps via wp_enqueue_script, JS in wp_footer. Requires Bricks API Bridge v2.3+.

Inputs: page_id (required).

bricks_get_page_schemaB

Get JSON-LD structured data (Schema.org) for a page. Returns all schema objects stored for this page.

Inputs: page_id (required).

bricks_get_page_seoA

Get SEO meta data for a WordPress page. Returns title, description, OG/Twitter tags, canonical URL, robots directives, focus keyword, and more.

Inputs: page_id (required).

bricks_get_page_settingsA

Get Bricks page-level settings (metaRobots, custom header/footer assignment, per-page overrides).

Inputs: page_id (required).

bricks_get_post_typesA

List all public WordPress post types with their Bricks support status, REST API base, and post count.

Inputs: no named parameters.

bricks_get_scriptsA

Get per-page scripts for a WordPress page. Returns custom JS/CSS injected via Bricks API Bridge in wp_footer.

Inputs: page_id (required).

bricks_get_settingsA

Get Bricks Builder global settings (container width, builder mode, post types, disabled features, custom header scripts, etc.).

Inputs: no named parameters.

bricks_get_statsA

Get site-wide statistics: total pages, templates, elements, global classes, fonts, colors, presets, media, PHP/WP/Bricks versions.

Inputs: no named parameters.

bricks_get_templateA

Get the full Bricks Builder data for a specific template. Returns element tree with all settings.

Inputs: template_id (required).

bricks_get_theme_stylesA

Get Bricks Builder global Theme Styles. Returns all styles or a single named style.

Inputs: name.

bricks_html_to_bricksA

Convert HTML/CSS to Bricks Builder JSON elements. Tries Bricks 2.3 native converter first, falls back to our local converter. Handles flex→container, grid→_cssCustom, px stripping, and all Bricks conventions automatically.

Inputs: html (required), css, prefer_native, resolve_classes, +1 more.

bricks_import_full_stateA

Import a full-state backup supplied as JSON (e.g. a file downloaded from another site) rather than a server-stored file. Same safety guarantees as bricks_restore_full_backup (auto safety backup, infra protection).

Inputs: backup (required), pages, globals, templates, +3 more.

bricks_import_templateB

Import a Bricks Builder JSON template file. Accepts the full Bricks export format with content array.

Inputs: title (required), json_data (required), template_type.

bricks_instantiate_sectionB

Create an instance of a section preset with optional overrides. Returns the Bricks elements ready to be added to a page.

Inputs: preset_name (required), overrides, variables, use_learned_styles.

bricks_list_backupsA

List all available backup slots for a page. Shows slot number, timestamp, and element count for each backup.

Inputs: page_id (required).

bricks_list_fontsA

List all custom fonts registered in Bricks Builder.

Inputs: no named parameters.

bricks_list_full_backupsB

List all stored full-state backups (file name, date, size). Created via bricks_create_full_backup or the WordPress admin Backup section.

Inputs: no named parameters.

bricks_list_global_classesA

List all Bricks Builder global CSS classes. Returns class names, settings, and usage count.

Inputs: search.

bricks_list_mediaA

List media attachments from the WordPress Media Library. Use to find existing images and their attachment IDs.

Inputs: search, per_page, mime_type.

bricks_list_pagesB

List all WordPress pages/posts that have Bricks Builder data. Returns page ID, title, slug, status, element count, and URL.

Inputs: status, post_type.

bricks_list_presetsA

List all available section presets. Presets are reusable section templates that can be instantiated on any page.

Inputs: category.

bricks_list_redirectsA

List all 301/302/307 redirects with hit counters.

Inputs: no named parameters.

bricks_list_sitesA

List all configured WordPress sites. Shows which site is currently active.

Inputs: no named parameters.

bricks_list_snapshotsA

List all named snapshots for a page. Shows name, description, element count, and timestamp.

Inputs: page_id (required).

bricks_list_templatesC

List all Bricks Builder templates. Can filter by template type (header, footer, section, content).

Inputs: template_type.

bricks_patch_pageA

Apply partial updates to a page. Only sends changed elements instead of full page data. More efficient than bricks_update_page for small changes. Automatically creates a backup before writing (plugin-side, cannot be skipped). Supports optimistic locking via content_hash. Use content_area to patch header or footer. THEME-FIRST: when adding or restyling elements, reuse existing theme tokens and global classes (bricks_get_theme_styles / bricks_list_global_classes) instead of inline styling; prefer settings.style and _typography over _cssCustom, and the text-link/button elements over styled divs.

Inputs: page_id (required), add, remove, update, +3 more.

bricks_purge_cacheA

Purge all caches: Bricks CSS, WP object cache, BAB transients, and any active cache plugins (LiteSpeed, WP Rocket, W3TC, WP Super Cache). Optionally target a specific page.

Inputs: page_id.

bricks_readabilityA

Analyze page content readability using Flesch-Kincaid (English) and Flesch-Amstad (German) scores. Returns word count, sentence length, syllable stats, and readability grade.

Inputs: page_id (required).

bricks_register_fontC

Register a custom font in Bricks Builder. Supports Google Fonts, custom uploaded fonts, and Adobe Fonts.

Inputs: name (required), type (required), url, variants.

bricks_restore_backupC

Restore a page's Bricks data from a backup slot.

Inputs: page_id (required), slot.

bricks_restore_full_backupA

Restore the site from a stored full-state backup file (pages incl. drafts, templates, global tokens, and WP settings). SAFE: takes an automatic safety backup first, and never overwrites infrastructure options (siteurl/home/active theme/active plugins) unless force_infra=true. Pages/templates match by ID (same-site restore). Menus are not restored yet.

Inputs: file (required), pages, globals, templates, +3 more.

bricks_restore_snapshotA

Restore a page from a named snapshot. Creates an auto-backup before restoring. Accepts snapshot ID or name.

Inputs: page_id (required), snapshot_id (required).

bricks_save_presetA

Save a section as a reusable preset. Extracts elements from a page section and stores as a named preset.

Inputs: name (required), elements (required), category, description.

bricks_search_elementsA

Search Bricks elements across all pages. Find elements by text content, element type, CSS class, or specific settings.

Inputs: limit, query, css_class, post_type, +3 more.

bricks_search_pagesB

Search pages by title, slug, or content.

Inputs: query (required), post_type.

bricks_search_templatesB

Search templates by title or content.

Inputs: query (required), template_type.

bricks_security_auditA

Read-only security posture audit of the WordPress + Bricks site behind the bridge. Scores 0-100 (A-F) across Bricks-core CVEs, bridge route permissions (self-audit), code-element exposure, platform currency, config hygiene, and access/transport. Returns findings worst-first with remediation. Any open CRITICAL hard-caps the grade to F. Not a malware scanner. Requires admin credentials.

Inputs: no named parameters.

bricks_security_inventoryA

Exact software inventory of the site behind the bridge — WordPress core, PHP, Bricks, active theme, all plugins/themes with versions and any known-available updates (read from WordPress own update transients, no external network call). Use to feed version-based checks or to see what is outdated. Requires admin credentials.

Inputs: no named parameters.

bricks_seo_analyzeA

Deep SEO analysis for a single page. Checks title/description quality, keyword density, heading hierarchy (H1-H6), image alt texts, content length, structured data, and content freshness. Returns a detailed score breakdown.

Inputs: page_id (required).

bricks_seo_auditA

Bulk SEO audit — scans all published pages and scores each 0-100 based on title, description, OG tags, headings, image alts, canonical, focus keyword, and structured data. Returns pages sorted by score (worst first).

Inputs: no named parameters.

bricks_seo_auto_fixA

Auto-generate missing SEO data from page content. Creates SEO title (from post title), meta description (from first text content), canonical URL, and og:type for pages that lack them.

Inputs: all, dry_run, page_ids.

bricks_seo_bulk_updateA

Update SEO fields for multiple pages at once. Useful for setting noindex on all demo pages, or applying the same og_type to multiple pages.

Inputs: fields (required), page_ids (required).

bricks_seo_plugin_infoA

Detect installed SEO plugins (Yoast, Rank Math, AIOSEO, The SEO Framework) and their meta key mappings. Helps avoid conflicts with BAB SEO output.

Inputs: no named parameters.

bricks_set_gsap_flagA

Toggle the GSAP enqueue flag for a page. When enabled, GSAP + ScrollTrigger are loaded via wp_enqueue_script (proper dedup, browser caching). No need to add CDN tags in per-page scripts.

Inputs: page_id (required), enabled.

bricks_sitemap_analyzeA

Analyze the XML sitemap — parses URLs, detects sitemap index, finds published pages missing from sitemap, and flags noindex pages that are listed.

Inputs: url.

bricks_sitemap_pingA

Ping Google, Bing, and IndexNow to notify them about sitemap updates. Triggers faster re-crawling after content changes.

Inputs: sitemap_url.

bricks_social_previewB

Check social media sharing preview for a page. Validates OG image dimensions (1200x630), title/description lengths, and shows Facebook + Twitter preview data.

Inputs: page_id (required).

bricks_switch_siteA

Switch the active WordPress site. Clears cache and warms the new site. Use bricks_list_sites to see available keys.

Inputs: key (required).

bricks_update_color_paletteA

Update the Bricks Builder color palette. Can add, modify, or replace colors. Bricks 2.3: Supports auto-generating dark mode variants from light colors using OKLCH color science.

Inputs: colors (required), merge, generate_dark_variants.

bricks_update_css_variablesB

Update CSS variables in the Bricks Global Variables Manager.

Inputs: css_variables (required).

bricks_update_global_classA

Update an existing Bricks Builder global CSS class. Merges settings recursively (partial update).

Inputs: class_id (required), settings (required), name.

bricks_update_global_cssB

Update the global custom CSS in Bricks Builder. This CSS is applied site-wide.

Inputs: css (required), append.

bricks_update_pageA

Update the Bricks Builder data for a page. Automatically creates a backup before writing. Validates the JSON structure before saving. Supports optimistic locking via content_hash. Use content_area to write header or footer template data. THEME-FIRST: before generating elements, call bricks_get_theme_styles and bricks_list_global_classes — reuse existing tokens (button styles, utility classes, color palette) instead of inline styling. For buttons prefer settings.style: "primary"|"secondary" over manual _background/_typography. For links use the text-link element, not a styled text-basic. Use _cssCustom only for what settings cannot express.

Inputs: page_id (required), bricks_data (required), content_area, content_hash.

bricks_update_page_assetsA

Set structured per-page assets (JS deps via wp_enqueue_script, JS in wp_footer, infra CSS in wp_head). Auto-sets GSAP flag when js_deps includes "gsap". Requires Bricks API Bridge v2.3+. ⚠️ The css field lands in plugin-private _bab_page_assets (wp_head 9997, BEFORE element CSS) which is INVISIBLE/uneditable in the Bricks builder — reserve it for INFRA only (@font-face, :root{--vars}, @keyframes, critical CSS). Human-editable layout/responsive/visual CSS belongs in a native channel: element _cssCustom (bricks_patch_page), page customCss (bricks_update_page_settings), or global CSS/classes.

Inputs: page_id (required), js, css, js_deps, +1 more.

bricks_update_page_schemaA

Set JSON-LD structured data (Schema.org) for a page. Automatically adds @context. Outputs as in the page head. Accepts a single schema object or an array of schemas.

Inputs: schema (required), page_id (required).

bricks_update_page_seoA

Update SEO meta data for a WordPress page. Partial update — only provided fields are changed. Supports title, description, OG/Twitter overrides, canonical URL, robots (noindex/nofollow), and focus keyword.

Inputs: page_id (required), noindex, og_type, keywords, +10 more.

bricks_update_page_settingsB

Update Bricks page-level settings (metaRobots, header/footer template, per-page overrides).

Inputs: page_id (required), settings (required), merge.

bricks_update_scriptsA

Update per-page scripts for a WordPress page. Scripts are output in wp_footer. Include , , and tags as needed — all are output together before . IMPORTANT: WordPress strips backslashes — use String.fromCharCode(10) instead of "\n" in JavaScript strings.

Inputs: page_id (required), scripts (required).

bricks_update_settingsA

Update Bricks Builder global settings. Supports merge mode (default). Use for container width, post types, disabled features, etc.

Inputs: settings (required), merge.

bricks_update_templateB

Update an existing Bricks Builder template with new content.

Inputs: template_id (required), title, content, conditions, +1 more.

bricks_update_theme_stylesA

Update Bricks Builder global Theme Styles. Supports merge mode (default). Bricks 2.3: Supports responsive breakpoint keys — include ":tablet_portrait" and ":mobile_portrait" nested keys for breakpoint-aware theme styles (e.g. responsive heading sizes).

Inputs: theme_styles (required), merge.

bricks_upload_fontA

Upload custom font files (.woff2, .woff, .ttf, .otf) and register them in Bricks Builder. Uploads to WordPress Media Library, registers the font, and generates @font-face CSS in Global CSS.

Inputs: name (required), files (required), display.

bricks_upload_mediaA

Upload an image to the WordPress Media Library. Provide either a local file_path or a URL. Returns the attachment ID, URL, and metadata needed for Bricks image elements.

Inputs: url, title, caption, alt_text, +1 more.

bricks_validate_bemA

Validate existing global classes against BEM convention. Checks naming patterns, orphaned blocks/elements, conflicts with utility classes, and reports structure issues.

Inputs: prefix.

bricks_validate_elementsA

Validate Bricks elements server-side BEFORE pushing. Catches all known Bricks bugs: invalid IDs, div type, missing children, duplicate IDs, px line-height, parent/child consistency, _display grid.

Inputs: elements (required).

bricks_wp_create_categoryB

Create a new WordPress category.

Inputs: name (required), slug, parent, description.

bricks_wp_create_postA

Create a new WordPress post. Returns the new post ID and URL.

Inputs: title (required), tags, status, content, +4 more.

bricks_wp_create_tagC

Create a new WordPress tag.

Inputs: name (required), slug, description.

bricks_wp_get_postA

Get a single WordPress post with full content, excerpt, categories, tags, featured image, and meta. Works on custom post types via post_type.

Inputs: post_id (required), post_type.

bricks_wp_list_categoriesA

List all WordPress categories with post counts.

Inputs: search, per_page.

bricks_wp_list_postsA

List WordPress posts with filtering. Returns ID, title, status, date, author, categories. Use for content auditing or finding posts to update.

Inputs: page, tags, order, search, +5 more.

bricks_wp_list_tagsB

List all WordPress tags with post counts.

Inputs: search, per_page.

bricks_wp_update_postA

Update an existing WordPress post. Only sends changed fields. Works on custom post types via post_type.

Inputs: post_id (required), tags, title, status, +5 more.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    B3.2/5.0

    Scored across 115 tools

    Disambiguation3/5

    With 115 tools, several clusters overlap—page-write tools (create/update/patch/append/build), multiple backup systems (page backups, snapshots, full-state), and scripts vs. page assets. Descriptions generally differentiate them, but the sheer scale and overlapping mutation/backup boundaries make misselection likely.

    Naming Consistency4/5

    All names use snake_case with a consistent bricks_ prefix, and most follow a predictable action-oriented pattern (get_page, update_page, list_templates). Minor deviations include noun-first tools and a wp_ sub-prefix (bricks_wp_update_post, bricks_call_log, bricks_readability), but the convention remains readable.

    Tool Count1/5

    115 tools is an extreme surface for one MCP server, far past the 50+ threshold. Even a complex Bricks Builder domain would benefit from splitting into specialised servers to reduce discovery and selection overhead.

    Completeness4/5

    Coverage is unusually broad—pages, templates, globals, media, SEO, backups, security, multi-site, and WP content—so few dead ends remain. Missing delete operations for pages/posts/media/fonts are workable via WordPress admin, but they are lifecycle gaps.

    Maintenance

    ActivityStale
    ResponsivenessUsually handled

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      Not graded
      quality
      D
      maintenance
      A comprehensive MCP server for WordPress automation that enables users to manage content, themes, and site configurations using AI-driven workflows and the WordPress REST API. It provides a wide array of tools for site planning, management, and optimization compatible with tools like Cursor and Claude.
      52 npm
      1
      ISC
    • A
      license
      Not graded
      quality
      B
      maintenance
      A WordPress plugin that enables AI assistants to manage Bricks Builder sites through natural language. It provides over 20 tools for reading and writing pages, templates, global styles, and WooCommerce layouts directly from MCP-compatible clients.
      125
      GPL 2.0
    • A
      license
      Not graded
      quality
      B
      maintenance
      MCP server for AI-assisted WordPress editing across 12 page builders. 172 tools for content management, page builder editing, WooCommerce, SEO analysis, accessibility scanning, and site intelligence. Edits native builder formats (Elementor, Bricks, Divi, Gutenberg, Beaver Builder, and 7 more) with duplicate-before-edit safety, optimistic locking, and surgical element-level operations
      11
      MIT
    • A
      license
      B
      quality
      D
      maintenance
      MCP server for managing WooCommerce stores through AI assistants like Claude. Provides 101 tools covering products, orders, customers, coupons, shipping, taxes, webhooks, settings, reports, and more.
      100
      112 npm
      2
      MIT