← bricks-mcp

bricks-mcp a19508ec8477eee48e756723af5bce2d7609fefc

source_git · developer2013/bricks-mcp-open · current release

115
Tools
0
Resources
0
Templates
0
Prompts

Observation

Observed 2026-08-25T08:34:57.485Z using mcpSecurity-inventory. Status: succeeded. Negotiated protocol: 2025-06-18.

Server capabilities
{
  "tools": {}
}

Tools 115

ToolCategoryAnnotationsRisk
bricks_active_siteShow the currently active WordPress site (key, label, URL, user).
Input schema
{
  "type": "object",
  "properties": {}
}
— · —
bricks_add_menu_itemAdd a single item to an existing menu. Supports custom links, pages, posts, and categories. Use parent for submenus.
Input schema
{
  "type": "object",
  "properties": {
    "menu_id": {
      "type": "number",
      "description": "Menu ID to add item to"
    },
    "title": {
      "type": "string",
      "description": "Menu item display text"
    },
    "url": {
      "type": "string",
      "description": "URL for custom links"
    },
    "type": {
      "type": "string",
      "description": "Link type: custom (default), post_type, taxonomy",
      "default": "custom"
    },
    "object": {
      "type": "string",
      "description": "Object type when type=post_type: page, post. When type=taxonomy: category, post_tag"
    },
    "object_id": {
      "type": "number",
      "description": "Post/page/category ID when linking to existing content"
    },
    "parent": {
      "type": "number",
      "description": "Parent menu item ID for creating submenus (0 = top level)"
    },
    "position": {
      "type": "number",
      "description": "Menu order position (1-based)"
    },
    "target": {
      "type": "string",
      "description": "\"_blank\" to open in new tab"
    },
    "classes": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "CSS classes for styling"
    }
  },
  "required": [
    "menu_id",
    "title"
  ]
}
— · —
bricks_append_elementsAppend 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.
Input schema
{
  "type": "object",
  "properties": {
    "page_id": {
      "type": "number",
      "description": "WordPress page/post ID"
    },
    "elements": {
      "type": "array",
      "items": {
        "type": "object"
      },
      "description": "Array of Bricks elements to append"
    },
    "parent_id": {
      "type": "string",
      "description": "Parent element ID to append under (optional, appends at root level if omitted)"
    },
    "regenerate_css": {
      "type": "boolean",
      "default": true,
      "description": "Whether to regenerate CSS after appending (default: true)"
    }
  },
  "required": [
    "page_id",
    "elements"
  ]
}
— · —
bricks_apply_bem_componentApply 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.
Input schema
{
  "type": "object",
  "properties": {
    "page_id": {
      "type": "number",
      "description": "Page ID containing the elements"
    },
    "block": {
      "type": "string",
      "description": "BEM block name (must match a previously generated component)"
    },
    "mapping": {
      "type": "object",
      "description": "Map of Bricks element IDs to BEM element names. Use \"_root\" for the block element. Example: { \"rt0074\": \"_root\", \"rt0075\": \"title\", \"rt0076\": \"price\" }"
    },
    "modifier": {
      "type": "string",
      "description": "Optional modifier to apply to the root element (e.g., \"featured\", \"dark\")"
    }
  },
  "required": [
    "page_id",
    "block",
    "mapping"
  ]
}
— · —
bricks_apply_class_to_elementApply or remove global CSS classes on page elements. Supports single element or bulk operations.
Input schema
{
  "type": "object",
  "properties": {
    "page_id": {
      "type": "number",
      "description": "Page ID containing the element(s)"
    },
    "element_id": {
      "type": "string",
      "description": "Element ID (for single operation)"
    },
    "class_id": {
      "type": "string",
      "description": "Global class ID (for single operation)"
    },
    "operations": {
      "type": "array",
      "description": "Bulk operations: [{ element_id, class_ids: [...], action: \"add\"|\"remove\" }]",
      "items": {
        "type": "object",
        "properties": {
          "element_id": {
            "type": "string"
          },
          "class_ids": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "action": {
            "type": "string",
            "enum": [
              "add",
              "remove"
            ]
          }
        },
        "required": [
          "element_id",
          "class_ids"
        ]
      }
    }
  },
  "required": [
    "page_id"
  ]
}
— · —
bricks_batchExecute multiple API operations in a single request. Reduces HTTP roundtrips for multi-step workflows. Max 20 operations per batch.
Input schema
{
  "type": "object",
  "properties": {
    "operations": {
      "type": "array",
      "description": "Array of operations to execute. Max 20.",
      "items": {
        "type": "object",
        "properties": {
          "method": {
            "type": "string",
            "enum": [
              "GET",
              "POST",
              "PUT",
              "DELETE"
            ]
          },
          "endpoint": {
            "type": "string",
            "description": "API endpoint path (e.g., /pages/3)"
          },
          "body": {
            "type": "object",
            "description": "Request body (for POST/PUT)"
          }
        },
        "required": [
          "method",
          "endpoint"
        ]
      }
    }
  },
  "required": [
    "operations"
  ]
}
— · —
bricks_build_pageBuild 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.
Input schema
{
  "type": "object",
  "properties": {
    "page_id": {
      "type": "number",
      "description": "WordPress page/post ID"
    },
    "sections": {
      "type": "array",
      "description": "Array of sections to build. Each can be a preset name or raw elements.",
      "items": {
        "type": "object",
        "properties": {
          "preset": {
            "type": "string",
            "description": "Preset name (e.g., \"hero-dark\", \"features-grid\")"
          },
          "elements": {
            "type": "array",
            "items": {
              "type": "object"
            },
            "description": "Raw Bricks elements (used if no preset)"
          },
          "overrides": {
            "type": "object",
            "description": "Settings overrides to apply to the preset"
          }
        }
      }
    },
    "regenerate_css": {
      "type": "boolean",
      "default": true,
      "description": "Whether to regenerate CSS (default: true)"
    }
  },
  "required": [
    "page_id",
    "sections"
  ]
}
— · —
bricks_bulk_create_global_classesCreate or update multiple global CSS classes in one request. Upserts by ID.
Input schema
{
  "type": "object",
  "properties": {
    "classes": {
      "type": "array",
      "description": "Array of class objects: [{ id, name, settings }]",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "settings": {
            "type": "object"
          }
        },
        "required": [
          "id",
          "name",
          "settings"
        ]
      }
    }
  },
  "required": [
    "classes"
  ]
}
— · —
bricks_bulk_media_seoFind all media items missing SEO texts and auto-generate alt_text + title from filename context. Optionally apply changes. Shows a preview table first.
Input schema
{
  "type": "object",
  "properties": {
    "apply": {
      "type": "boolean",
      "description": "If true, write the generated SEO texts. If false (default), only preview.",
      "default": false
    },
    "per_page": {
      "type": "number",
      "description": "How many media items to scan (default: 100, max: 100)",
      "default": 100
    },
    "overrides": {
      "type": "object",
      "description": "Manual overrides by media ID, e.g. {\"1707\": {\"alt_text\": \"Custom alt\", \"title\": \"Custom title\"}}",
      "additionalProperties": {
        "type": "object",
        "properties": {
          "alt_text": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "caption": {
            "type": "string"
          },
          "description": {
            "type": "string"
          }
        }
      }
    }
  }
}
— · —
bricks_call_logQuery 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.
Input schema
{
  "type": "object",
  "properties": {
    "limit": {
      "type": "number",
      "description": "Max entries to return, newest first (default 30)."
    },
    "page_id": {
      "type": "number",
      "description": "Only calls that targeted this page ID."
    },
    "failures_only": {
      "type": "boolean",
      "description": "Only calls that errored."
    },
    "mutating_only": {
      "type": "boolean",
      "description": "Only page-mutating calls (update/patch/append/build/scripts/assets)."
    }
  }
}
— · —
bricks_check_linksCheck all links on a Bricks page for broken URLs (404, timeouts, DNS failures). Tests both content links and element links via HTTP HEAD requests.
Input schema
{
  "type": "object",
  "properties": {
    "page_id": {
      "type": "number",
      "description": "WordPress page/post ID"
    }
  },
  "required": [
    "page_id"
  ]
}
— · —
bricks_clone_pageClone a page with all Bricks data and scripts.
Input schema
{
  "type": "object",
  "properties": {
    "page_id": {
      "type": "number",
      "description": "Page ID to clone"
    },
    "new_title": {
      "type": "string",
      "description": "Optional title for the clone"
    }
  },
  "required": [
    "page_id"
  ]
}
— · —
bricks_clone_templateClone a template with all Bricks data.
Input schema
{
  "type": "object",
  "properties": {
    "template_id": {
      "type": "number",
      "description": "Template ID to clone"
    },
    "new_title": {
      "type": "string",
      "description": "Optional title for the clone"
    }
  },
  "required": [
    "template_id"
  ]
}
— · —
bricks_competitor_extractExtract SEO meta tags, OG/Twitter data, JSON-LD schemas, and H1 headings from any external URL. Useful for benchmarking against competitors.
Input schema
{
  "type": "object",
  "properties": {
    "url": {
      "type": "string",
      "description": "URL to extract SEO data from"
    }
  },
  "required": [
    "url"
  ]
}
— · —
bricks_connection_testTest the WordPress connection, verify credentials, and check plugin status. Use this to diagnose connection issues.
Input schema
{
  "type": "object",
  "properties": {}
}
— · —
bricks_create_full_backupCreate 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.
Input schema
{
  "type": "object",
  "properties": {}
}
— · —
bricks_create_global_classCreate a new Bricks Builder global CSS class with settings.
Input schema
{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "description": "Class name (e.g., \"btn-primary\", \"card-hover\")"
    },
    "settings": {
      "type": "object",
      "description": "Bricks settings object (e.g., _background, _typography, _padding)"
    }
  },
  "required": [
    "name",
    "settings"
  ]
}
— · —
bricks_create_menuCreate a new WordPress navigation menu. Returns the new menu ID.
Input schema
{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "description": "Menu name (e.g. \"Main Navigation\", \"Footer Menu\")"
    },
    "locations": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Theme locations to assign (e.g. [\"primary\", \"footer\"]). Use bricks_get_menus to see available locations."
    }
  },
  "required": [
    "name"
  ]
}
— · —
bricks_create_pageCreate 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.
Input schema
{
  "type": "object",
  "properties": {
    "title": {
      "type": "string",
      "description": "Page title"
    },
    "slug": {
      "type": "string",
      "description": "URL slug (optional, auto-generated from title)"
    },
    "status": {
      "type": "string",
      "enum": [
        "publish",
        "draft",
        "private"
      ],
      "description": "Post status (default: draft)",
      "default": "draft"
    },
    "elements": {
      "type": "array",
      "description": "Bricks elements array (optional)",
      "items": {
        "type": "object"
      }
    },
    "parent": {
      "type": "number",
      "description": "Parent page ID (optional)",
      "default": 0
    },
    "post_type": {
      "type": "string",
      "description": "Post type (default: page)",
      "default": "page"
    }
  },
  "required": [
    "title"
  ]
}
— · —
bricks_create_redirectCreate a 301/302/307 redirect. Hits are tracked automatically on the frontend.
Input schema
{
  "type": "object",
  "properties": {
    "source": {
      "type": "string",
      "description": "Source path (e.g. /old-page)"
    },
    "target": {
      "type": "string",
      "description": "Target URL (e.g. https://example.com/new-page)"
    },
    "type": {
      "type": "number",
      "description": "Redirect type: 301 (permanent), 302 (temporary), 307 (temporary preserve method). Default: 301"
    }
  },
  "required": [
    "source",
    "target"
  ]
}
— · —
bricks_create_snapshotCreate a named snapshot of the current page state. Use for milestones like "client-approved", "before-redesign", etc.
Input schema
{
  "type": "object",
  "properties": {
    "page_id": {
      "type": "number",
      "description": "WordPress page/post ID"
    },
    "name": {
      "type": "string",
      "description": "Snapshot name (e.g. \"client-approved\", \"before-redesign\")"
    },
    "description": {
      "type": "string",
      "description": "Optional description of this snapshot"
    }
  },
  "required": [
    "page_id",
    "name"
  ]
}
— · —
bricks_create_templateCreate a new Bricks Builder template with the given content.
Input schema
{
  "type": "object",
  "properties": {
    "title": {
      "type": "string",
      "description": "Template title"
    },
    "template_type": {
      "type": "string",
      "description": "Template type (default: section)",
      "default": "section",
      "enum": [
        "header",
        "footer",
        "section",
        "content",
        "single",
        "archive",
        "popup",
        "search",
        "error"
      ]
    },
    "content": {
      "type": "array",
      "description": "Array of Bricks elements",
      "items": {
        "type": "object"
      }
    },
    "conditions": {
      "type": "array",
      "description": "Template conditions, e.g. [{\"main\":\"entireWebsite\"}] for site-wide header/footer",
      "items": {
        "type": "object"
      }
    }
  },
  "required": [
    "title",
    "content"
  ]
}
— · —
bricks_delete_full_backupDelete one stored full-state backup file by its filename (as listed by bricks_list_full_backups).
Input schema
{
  "type": "object",
  "properties": {
    "file": {
      "type": "string",
      "description": "Backup filename, e.g. bricks-fullstate-20260611-120000-a1b2c3.json"
    }
  },
  "required": [
    "file"
  ]
}
— · —
bricks_delete_global_classDelete a global CSS class by ID.
Input schema
{
  "type": "object",
  "properties": {
    "class_id": {
      "type": "string",
      "description": "Class ID to delete"
    }
  },
  "required": [
    "class_id"
  ]
}
— · —
bricks_delete_menuDelete a WordPress navigation menu and all its items.
Input schema
{
  "type": "object",
  "properties": {
    "menu_id": {
      "type": "number",
      "description": "Menu ID to delete"
    }
  },
  "required": [
    "menu_id"
  ]
}
— · —
bricks_delete_menu_itemRemove a single item from a menu.
Input schema
{
  "type": "object",
  "properties": {
    "item_id": {
      "type": "number",
      "description": "Menu item ID to remove"
    }
  },
  "required": [
    "item_id"
  ]
}
— · —
bricks_delete_presetDelete a section preset by name.
Input schema
{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "description": "Preset name to delete"
    }
  },
  "required": [
    "name"
  ]
}
— · —
bricks_delete_redirectDelete a redirect by ID.
Input schema
{
  "type": "object",
  "properties": {
    "redirect_id": {
      "type": "string",
      "description": "Redirect ID (from bricks_list_redirects)"
    }
  },
  "required": [
    "redirect_id"
  ]
}
— · —
bricks_delete_snapshotDelete a named snapshot. Accepts snapshot ID or name.
Input schema
{
  "type": "object",
  "properties": {
    "page_id": {
      "type": "number",
      "description": "WordPress page/post ID"
    },
    "snapshot_id": {
      "type": "string",
      "description": "Snapshot ID (snap_...) or name to delete"
    }
  },
  "required": [
    "page_id",
    "snapshot_id"
  ]
}
— · —
bricks_delete_templateDelete a Bricks Builder template.
Input schema
{
  "type": "object",
  "properties": {
    "template_id": {
      "type": "number",
      "description": "Template ID to delete"
    },
    "force": {
      "type": "boolean",
      "description": "Permanently delete instead of trash (default: false)",
      "default": false
    }
  },
  "required": [
    "template_id"
  ]
}
— · —
bricks_elementor_to_bricksConvert 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.
Input schema
{
  "type": "object",
  "properties": {
    "json": {
      "type": "string",
      "description": "Elementor export JSON as a string. Either an export wrapper { content: [...] } or a raw element array."
    },
    "file_path": {
      "type": "string",
      "description": "Absolute path to an Elementor .json export file. Used if `json` is not provided."
    }
  }
}
— · —
bricks_generate_bem_componentGenerate 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.
Input schema
{
  "type": "object",
  "properties": {
    "block": {
      "type": "string",
      "description": "BEM block name (e.g., \"pricing-card\", \"hero\", \"testimonial\")"
    },
    "elements": {
      "type": "object",
      "description": "Map of element names to Bricks settings. Use \"_root\" for the block-level styles. Example: { \"_root\": { _padding: {...} }, \"title\": { _typography: {...} } }"
    },
    "modifiers": {
      "type": "object",
      "description": "Optional map of modifier names to Bricks settings. Example: { \"featured\": { _borderColor: {...} }, \"dark\": { _background: {...} } }"
    }
  },
  "required": [
    "block",
    "elements"
  ]
}
— · —
bricks_get_backupGet the backup of a page's Bricks data. Supports multi-slot backups (1-5, newest first).
Input schema
{
  "type": "object",
  "properties": {
    "page_id": {
      "type": "number",
      "description": "WordPress page/post ID"
    },
    "slot": {
      "type": "number",
      "description": "Backup slot (1-5, default: 1 = most recent)",
      "default": 1
    }
  },
  "required": [
    "page_id"
  ]
}
— · —
bricks_get_breakpointsGet 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.
Input schema
{
  "type": "object",
  "properties": {}
}
— · —
bricks_get_color_paletteGet the Bricks Builder color palette. Returns all defined color variables with their values.
Input schema
{
  "type": "object",
  "properties": {}
}
— · —
bricks_get_css_variablesGet all CSS variables (design tokens) from Bricks Global Variables Manager. Returns variable names and values (colors, spacing, z-index, container sizes, etc.).
Input schema
{
  "type": "object",
  "properties": {}
}
— · —
bricks_get_full_stateReturn 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.
Input schema
{
  "type": "object",
  "properties": {}
}
— · —
bricks_get_global_class_usageGet usage report: which global classes are used on which pages/elements. Optionally filter by class_id.
Input schema
{
  "type": "object",
  "properties": {
    "class_id": {
      "type": "string",
      "description": "Filter to a specific class ID (optional)"
    }
  }
}
— · —
bricks_get_global_cssGet the global custom CSS from Bricks Builder settings.
Input schema
{
  "type": "object",
  "properties": {}
}
— · —
bricks_get_menu_locationsList all registered theme menu locations and which menus are assigned to them.
Input schema
{
  "type": "object",
  "properties": {}
}
— · —
bricks_get_pageGet 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.
Input schema
{
  "type": "object",
  "properties": {
    "page_id": {
      "type": "number",
      "description": "WordPress page/post ID"
    },
    "summary": {
      "type": "boolean",
      "description": "If true, show element tree overview instead of raw JSON (default: false)",
      "default": false
    },
    "content_area": {
      "type": "string",
      "enum": [
        "content",
        "header",
        "footer"
      ],
      "description": "Which content area to return (default: content). Header/footer return their respective template elements.",
      "default": "content"
    }
  },
  "required": [
    "page_id"
  ]
}
— · —
bricks_get_page_assetsGet 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+.
Input schema
{
  "type": "object",
  "properties": {
    "page_id": {
      "type": "number",
      "description": "WordPress page/post ID"
    }
  },
  "required": [
    "page_id"
  ]
}
— · —
bricks_get_page_schemaGet JSON-LD structured data (Schema.org) for a page. Returns all schema objects stored for this page.
Input schema
{
  "type": "object",
  "properties": {
    "page_id": {
      "type": "number",
      "description": "WordPress page/post ID"
    }
  },
  "required": [
    "page_id"
  ]
}
— · —
bricks_get_page_seoGet SEO meta data for a WordPress page. Returns title, description, OG/Twitter tags, canonical URL, robots directives, focus keyword, and more.
Input schema
{
  "type": "object",
  "properties": {
    "page_id": {
      "type": "number",
      "description": "WordPress page/post ID"
    }
  },
  "required": [
    "page_id"
  ]
}
— · —
bricks_get_page_settingsGet Bricks page-level settings (metaRobots, custom header/footer assignment, per-page overrides).
Input schema
{
  "type": "object",
  "properties": {
    "page_id": {
      "type": "number",
      "description": "WordPress page/post ID"
    }
  },
  "required": [
    "page_id"
  ]
}
— · —
bricks_get_post_typesList all public WordPress post types with their Bricks support status, REST API base, and post count.
Input schema
{
  "type": "object",
  "properties": {}
}
— · —
bricks_get_scriptsGet per-page scripts for a WordPress page. Returns custom JS/CSS injected via Bricks API Bridge in wp_footer.
Input schema
{
  "type": "object",
  "properties": {
    "page_id": {
      "type": "number",
      "description": "WordPress page/post ID"
    }
  },
  "required": [
    "page_id"
  ]
}
— · —
bricks_get_settingsGet Bricks Builder global settings (container width, builder mode, post types, disabled features, custom header scripts, etc.).
Input schema
{
  "type": "object",
  "properties": {}
}
— · —
bricks_get_statsGet site-wide statistics: total pages, templates, elements, global classes, fonts, colors, presets, media, PHP/WP/Bricks versions.
Input schema
{
  "type": "object",
  "properties": {}
}
— · —
bricks_get_templateGet the full Bricks Builder data for a specific template. Returns element tree with all settings.
Input schema
{
  "type": "object",
  "properties": {
    "template_id": {
      "type": "number",
      "description": "Template ID"
    }
  },
  "required": [
    "template_id"
  ]
}
— · —
bricks_get_theme_stylesGet Bricks Builder global Theme Styles. Returns all styles or a single named style.
Input schema
{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "description": "Name of a specific theme style to retrieve (optional)."
    }
  }
}
— · —
bricks_html_to_bricksConvert 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.
Input schema
{
  "type": "object",
  "properties": {
    "html": {
      "type": "string",
      "description": "HTML markup to convert. Can be a full page or a fragment."
    },
    "css": {
      "type": "string",
      "description": "Optional CSS stylesheet to apply. Class-based rules will be matched to elements."
    },
    "wrap_in_section": {
      "type": "boolean",
      "description": "Whether to wrap top-level non-section elements in section > container. Default: true."
    },
    "prefer_native": {
      "type": "boolean",
      "description": "Try Bricks 2.3 native HTML converter first (default: true). Falls back to local converter if unavailable.",
      "default": true
    },
    "resolve_classes": {
      "type": "boolean",
      "description": "Resolve HTML CSS class names against the site's global class registry. Matches are added as _cssGlobalClasses. Default: true.",
      "default": true
    }
  },
  "required": [
    "html"
  ]
}
— · —
bricks_import_full_stateImport 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).
Input schema
{
  "type": "object",
  "properties": {
    "backup": {
      "type": "object",
      "description": "A full-state backup object (must contain a manifest, pages, etc.)"
    },
    "pages": {
      "type": "boolean",
      "description": "Restore pages (default: true)"
    },
    "templates": {
      "type": "boolean",
      "description": "Restore templates (default: true)"
    },
    "globals": {
      "type": "boolean",
      "description": "Restore globals (default: true)"
    },
    "wp_settings": {
      "type": "boolean",
      "description": "Restore WP settings (default: true; infra protected)"
    },
    "create_missing": {
      "type": "boolean",
      "description": "Create missing pages/templates (default: true)"
    },
    "force_infra": {
      "type": "boolean",
      "description": "DANGER: overwrite infra options (default: false)"
    }
  },
  "required": [
    "backup"
  ]
}
— · —
bricks_import_templateImport a Bricks Builder JSON template file. Accepts the full Bricks export format with content array.
Input schema
{
  "type": "object",
  "properties": {
    "title": {
      "type": "string",
      "description": "Template title"
    },
    "template_type": {
      "type": "string",
      "description": "Template type (default: section)",
      "default": "section",
      "enum": [
        "header",
        "footer",
        "section",
        "content",
        "single",
        "archive",
        "popup",
        "search",
        "error"
      ]
    },
    "json_data": {
      "type": "object",
      "description": "Complete Bricks template JSON with content array"
    }
  },
  "required": [
    "title",
    "json_data"
  ]
}
— · —
bricks_instantiate_sectionCreate an instance of a section preset with optional overrides. Returns the Bricks elements ready to be added to a page.
Input schema
{
  "type": "object",
  "properties": {
    "preset_name": {
      "type": "string",
      "description": "Name of the preset to instantiate"
    },
    "overrides": {
      "type": "object",
      "description": "Settings overrides to apply by element key or index (e.g., { \"0\": { \"_background\": {...} } })"
    },
    "variables": {
      "type": "object",
      "description": "Variable substitutions for {{placeholder}} values in the preset (e.g., { heading: \"Hello\", button_text: \"Click\" })"
    },
    "use_learned_styles": {
      "type": "boolean",
      "description": "If true, fill unfilled {{placeholders}} with learned site preferences (top colors, fonts, spacing). Explicit variables always take priority."
    }
  },
  "required": [
    "preset_name"
  ]
}
— · —
bricks_internal_linksGet internal linking suggestions for a page based on keyword overlap with other published pages. Returns top 10 most relevant pages to link to.
Input schema
{
  "type": "object",
  "properties": {
    "page_id": {
      "type": "number",
      "description": "WordPress page/post ID"
    }
  },
  "required": [
    "page_id"
  ]
}
— · —
bricks_list_backupsList all available backup slots for a page. Shows slot number, timestamp, and element count for each backup.
Input schema
{
  "type": "object",
  "properties": {
    "page_id": {
      "type": "number",
      "description": "WordPress page/post ID"
    }
  },
  "required": [
    "page_id"
  ]
}
— · —
bricks_list_fontsList all custom fonts registered in Bricks Builder.
Input schema
{
  "type": "object",
  "properties": {}
}
— · —
bricks_list_full_backupsList all stored full-state backups (file name, date, size). Created via bricks_create_full_backup or the WordPress admin Backup section.
Input schema
{
  "type": "object",
  "properties": {}
}
— · —
bricks_list_global_classesList all Bricks Builder global CSS classes. Returns class names, settings, and usage count.
Input schema
{
  "type": "object",
  "properties": {
    "search": {
      "type": "string",
      "description": "Search term to filter classes by name"
    }
  }
}
— · —
bricks_list_mediaList media attachments from the WordPress Media Library. Use to find existing images and their attachment IDs.
Input schema
{
  "type": "object",
  "properties": {
    "search": {
      "type": "string",
      "description": "Search term to filter media (optional)"
    },
    "per_page": {
      "type": "number",
      "description": "Number of results (default: 10, max: 100)",
      "default": 10
    },
    "mime_type": {
      "type": "string",
      "description": "Filter by MIME type, e.g. \"image/jpeg\" or \"image\" (optional)"
    }
  }
}
— · —
bricks_list_pagesList all WordPress pages/posts that have Bricks Builder data. Returns page ID, title, slug, status, element count, and URL.
Input schema
{
  "type": "object",
  "properties": {
    "post_type": {
      "type": "string",
      "description": "Post type to query (default: page)",
      "default": "page"
    },
    "status": {
      "type": "string",
      "description": "Post status filter (publish, draft, any)",
      "default": "any"
    }
  }
}
— · —
bricks_list_presetsList all available section presets. Presets are reusable section templates that can be instantiated on any page.
Input schema
{
  "type": "object",
  "properties": {
    "category": {
      "type": "string",
      "description": "Filter by category (e.g., \"hero\", \"features\", \"cta\", \"footer\")"
    }
  }
}
— · —
bricks_list_redirectsList all 301/302/307 redirects with hit counters.
Input schema
{
  "type": "object",
  "properties": {}
}
— · —
bricks_list_sitesList all configured WordPress sites. Shows which site is currently active.
Input schema
{
  "type": "object",
  "properties": {}
}
— · —
bricks_list_snapshotsList all named snapshots for a page. Shows name, description, element count, and timestamp.
Input schema
{
  "type": "object",
  "properties": {
    "page_id": {
      "type": "number",
      "description": "WordPress page/post ID"
    }
  },
  "required": [
    "page_id"
  ]
}
— · —
bricks_list_templatesList all Bricks Builder templates. Can filter by template type (header, footer, section, content).
Input schema
{
  "type": "object",
  "properties": {
    "template_type": {
      "type": "string",
      "description": "Filter by template type",
      "enum": [
        "header",
        "footer",
        "section",
        "content",
        "single",
        "archive",
        "popup",
        "search",
        "error"
      ]
    }
  }
}
— · —
bricks_patch_pageApply 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.
Input schema
{
  "type": "object",
  "properties": {
    "page_id": {
      "type": "number",
      "description": "Page ID"
    },
    "add": {
      "type": "array",
      "items": {
        "type": "object"
      },
      "description": "New elements to add"
    },
    "update": {
      "type": "array",
      "items": {
        "type": "object"
      },
      "description": "Elements to update (must include id, only changed settings needed)"
    },
    "remove": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Element IDs to remove"
    },
    "regenerate_css": {
      "type": "boolean",
      "default": true,
      "description": "Whether to regenerate CSS after patching (default: true)"
    },
    "content_hash": {
      "type": "string",
      "description": "Content hash from bricks_get_page for optimistic locking. If provided, patch fails with 409 if page was modified since read."
    },
    "content_area": {
      "type": "string",
      "enum": [
        "content",
        "header",
        "footer"
      ],
      "description": "Which content area to patch (default: content).",
      "default": "content"
    }
  },
  "required": [
    "page_id"
  ]
}
— · —
bricks_purge_cachePurge 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.
Input schema
{
  "type": "object",
  "properties": {
    "page_id": {
      "type": "number",
      "description": "Target specific page (optional, omit for site-wide purge)"
    }
  }
}
— · —
bricks_readabilityAnalyze page content readability using Flesch-Kincaid (English) and Flesch-Amstad (German) scores. Returns word count, sentence length, syllable stats, and readability grade.
Input schema
{
  "type": "object",
  "properties": {
    "page_id": {
      "type": "number",
      "description": "WordPress page/post ID"
    }
  },
  "required": [
    "page_id"
  ]
}
— · —
bricks_register_fontRegister a custom font in Bricks Builder. Supports Google Fonts, custom uploaded fonts, and Adobe Fonts.
Input schema
{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "description": "Font family name (e.g., \"Inter\", \"PP Neue Montreal\")"
    },
    "type": {
      "type": "string",
      "enum": [
        "google",
        "custom",
        "adobe"
      ],
      "description": "Font source type"
    },
    "variants": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Font variants to load (e.g., [\"300\", \"400\", \"500\", \"600\", \"700\"])"
    },
    "url": {
      "type": "string",
      "description": "URL for custom font files (for type \"custom\")"
    }
  },
  "required": [
    "name",
    "type"
  ]
}
— · —
bricks_restore_backupRestore a page's Bricks data from a backup slot.
Input schema
{
  "type": "object",
  "properties": {
    "page_id": {
      "type": "number",
      "description": "WordPress page/post ID"
    },
    "slot": {
      "type": "number",
      "description": "Backup slot to restore (1-5, default: 1 = most recent)",
      "default": 1
    }
  },
  "required": [
    "page_id"
  ]
}
— · —
bricks_restore_full_backupRestore 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.
Input schema
{
  "type": "object",
  "properties": {
    "file": {
      "type": "string",
      "description": "Stored backup filename (from bricks_list_full_backups)"
    },
    "pages": {
      "type": "boolean",
      "description": "Restore pages (default: true)"
    },
    "templates": {
      "type": "boolean",
      "description": "Restore templates (default: true)"
    },
    "globals": {
      "type": "boolean",
      "description": "Restore global styles/classes/fonts/colors (default: true)"
    },
    "wp_settings": {
      "type": "boolean",
      "description": "Restore WordPress settings (default: true; infra keys still protected)"
    },
    "create_missing": {
      "type": "boolean",
      "description": "Create pages/templates whose ID no longer exists (default: true)"
    },
    "force_infra": {
      "type": "boolean",
      "description": "DANGER: also overwrite siteurl/home/active theme/plugins (default: false)"
    }
  },
  "required": [
    "file"
  ]
}
— · —
bricks_restore_snapshotRestore a page from a named snapshot. Creates an auto-backup before restoring. Accepts snapshot ID or name.
Input schema
{
  "type": "object",
  "properties": {
    "page_id": {
      "type": "number",
      "description": "WordPress page/post ID"
    },
    "snapshot_id": {
      "type": "string",
      "description": "Snapshot ID (snap_...) or name to restore"
    }
  },
  "required": [
    "page_id",
    "snapshot_id"
  ]
}
— · —
bricks_save_presetSave a section as a reusable preset. Extracts elements from a page section and stores as a named preset.
Input schema
{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "description": "Unique preset name (e.g., \"hero-dark-gradient\")"
    },
    "category": {
      "type": "string",
      "description": "Category (e.g., \"hero\", \"features\", \"cta\", \"testimonials\")"
    },
    "description": {
      "type": "string",
      "description": "Brief description of the preset"
    },
    "elements": {
      "type": "array",
      "items": {
        "type": "object"
      },
      "description": "Array of Bricks elements that make up this section"
    }
  },
  "required": [
    "name",
    "elements"
  ]
}
— · —
bricks_search_elementsSearch Bricks elements across all pages. Find elements by text content, element type, CSS class, or specific settings.
Input schema
{
  "type": "object",
  "properties": {
    "query": {
      "type": "string",
      "description": "Free text search (searches text, content, label, title settings)"
    },
    "element_type": {
      "type": "string",
      "description": "Filter by element type (heading, button, image, container, section, text-basic, etc.)"
    },
    "css_class": {
      "type": "string",
      "description": "Filter by CSS class name (partial match)"
    },
    "setting_key": {
      "type": "string",
      "description": "Search for a specific setting key (e.g. \"_background\", \"_typography\")"
    },
    "setting_value": {
      "type": "string",
      "description": "Filter setting_key results by value (partial match)"
    },
    "post_type": {
      "type": "string",
      "description": "Post type to search (default: page)",
      "default": "page"
    },
    "limit": {
      "type": "number",
      "description": "Max results (default: 50, max: 200)",
      "default": 50
    }
  }
}
— · —
bricks_search_pagesSearch pages by title, slug, or content.
Input schema
{
  "type": "object",
  "properties": {
    "query": {
      "type": "string",
      "description": "Search query"
    },
    "post_type": {
      "type": "string",
      "description": "Post type to search (default: page)",
      "default": "page"
    }
  },
  "required": [
    "query"
  ]
}
— · —
bricks_search_templatesSearch templates by title or content.
Input schema
{
  "type": "object",
  "properties": {
    "query": {
      "type": "string",
      "description": "Search query"
    },
    "template_type": {
      "type": "string",
      "description": "Filter by template type",
      "enum": [
        "header",
        "footer",
        "section",
        "content",
        "single",
        "archive",
        "popup",
        "search",
        "error"
      ]
    }
  },
  "required": [
    "query"
  ]
}
— · —
bricks_security_auditRead-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.
Input schema
{
  "type": "object",
  "properties": {}
}
— · —
bricks_security_inventoryExact 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.
Input schema
{
  "type": "object",
  "properties": {}
}
— · —
bricks_seo_analyzeDeep 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.
Input schema
{
  "type": "object",
  "properties": {
    "page_id": {
      "type": "number",
      "description": "WordPress page/post ID"
    }
  },
  "required": [
    "page_id"
  ]
}
— · —
bricks_seo_auditBulk 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).
Input schema
{
  "type": "object",
  "properties": {}
}
— · —
bricks_seo_auto_fixAuto-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.
Input schema
{
  "type": "object",
  "properties": {
    "page_ids": {
      "type": "array",
      "items": {
        "type": "number"
      },
      "description": "Array of page IDs to fix"
    },
    "all": {
      "type": "boolean",
      "description": "Set true to fix ALL published pages"
    },
    "dry_run": {
      "type": "boolean",
      "description": "Preview changes without saving (default: false)"
    }
  }
}
— · —
bricks_seo_bulk_updateUpdate SEO fields for multiple pages at once. Useful for setting noindex on all demo pages, or applying the same og_type to multiple pages.
Input schema
{
  "type": "object",
  "properties": {
    "page_ids": {
      "type": "array",
      "items": {
        "type": "number"
      },
      "description": "Array of page IDs to update"
    },
    "fields": {
      "type": "object",
      "description": "SEO fields to set on all pages. Keys: seo_title, description, og_image, keywords, og_type, canonical, noindex, nofollow, focus_keyword, og_title, twitter_title, twitter_description, twitter_image"
    }
  },
  "required": [
    "page_ids",
    "fields"
  ]
}
— · —
bricks_seo_plugin_infoDetect installed SEO plugins (Yoast, Rank Math, AIOSEO, The SEO Framework) and their meta key mappings. Helps avoid conflicts with BAB SEO output.
Input schema
{
  "type": "object",
  "properties": {}
}
— · —
bricks_set_gsap_flagToggle 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 <script> tags in per-page scripts.
Input schema
{
  "type": "object",
  "properties": {
    "page_id": {
      "type": "number",
      "description": "WordPress page/post ID"
    },
    "enabled": {
      "type": "boolean",
      "description": "true to enable GSAP enqueue, false to disable",
      "default": true
    }
  },
  "required": [
    "page_id"
  ]
}
— · —
bricks_sitemap_analyzeAnalyze the XML sitemap — parses URLs, detects sitemap index, finds published pages missing from sitemap, and flags noindex pages that are listed.
Input schema
{
  "type": "object",
  "properties": {
    "url": {
      "type": "string",
      "description": "Sitemap URL (default: {site}/sitemap.xml)"
    }
  }
}
— · —
bricks_sitemap_pingPing Google, Bing, and IndexNow to notify them about sitemap updates. Triggers faster re-crawling after content changes.
Input schema
{
  "type": "object",
  "properties": {
    "sitemap_url": {
      "type": "string",
      "description": "Sitemap URL (default: {site}/sitemap.xml)"
    }
  }
}
— · —
bricks_social_previewCheck social media sharing preview for a page. Validates OG image dimensions (1200x630), title/description lengths, and shows Facebook + Twitter preview data.
Input schema
{
  "type": "object",
  "properties": {
    "page_id": {
      "type": "number",
      "description": "WordPress page/post ID"
    }
  },
  "required": [
    "page_id"
  ]
}
— · —
bricks_switch_siteSwitch the active WordPress site. Clears cache and warms the new site. Use bricks_list_sites to see available keys.
Input schema
{
  "type": "object",
  "properties": {
    "key": {
      "type": "string",
      "description": "Site key from sites.json (e.g. \"bricks-main\", \"staging\")"
    }
  },
  "required": [
    "key"
  ]
}
— · —
bricks_update_color_paletteUpdate 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.
Input schema
{
  "type": "object",
  "properties": {
    "colors": {
      "type": "array",
      "description": "Array of color definitions. Each needs at minimum: {id, name, raw}",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Color variable ID"
          },
          "name": {
            "type": "string",
            "description": "Human-readable color name"
          },
          "raw": {
            "type": "string",
            "description": "Color value (hex, rgb, hsl)"
          }
        },
        "required": [
          "name",
          "raw"
        ]
      }
    },
    "merge": {
      "type": "boolean",
      "default": true,
      "description": "If true (default), merge with existing palette. If false, replace entirely."
    },
    "generate_dark_variants": {
      "type": "boolean",
      "default": false,
      "description": "Bricks 2.3: Auto-generate dark mode variants for each color using OKLCH. Adds \"-dark\" suffixed colors with inverted lightness."
    }
  },
  "required": [
    "colors"
  ]
}
— · —
bricks_update_css_variablesUpdate CSS variables in the Bricks Global Variables Manager.
Input schema
{
  "type": "object",
  "properties": {
    "css_variables": {
      "description": "Array or object of CSS variable definitions to set. Format depends on what Bricks uses (discovered from GET)."
    }
  },
  "required": [
    "css_variables"
  ]
}
— · —
bricks_update_global_classUpdate an existing Bricks Builder global CSS class. Merges settings recursively (partial update).
Input schema
{
  "type": "object",
  "properties": {
    "class_id": {
      "type": "string",
      "description": "Class ID to update"
    },
    "name": {
      "type": "string",
      "description": "New class name (optional)"
    },
    "settings": {
      "type": "object",
      "description": "Updated Bricks settings object (merged with existing)"
    }
  },
  "required": [
    "class_id",
    "settings"
  ]
}
— · —
bricks_update_global_cssUpdate the global custom CSS in Bricks Builder. This CSS is applied site-wide.
Input schema
{
  "type": "object",
  "properties": {
    "css": {
      "type": "string",
      "description": "Complete CSS to set as global custom CSS"
    },
    "append": {
      "type": "boolean",
      "default": false,
      "description": "If true, append to existing CSS instead of replacing"
    }
  },
  "required": [
    "css"
  ]
}
— · —
bricks_update_pageUpdate 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.
Input schema
{
  "type": "object",
  "properties": {
    "page_id": {
      "type": "number",
      "description": "WordPress page/post ID"
    },
    "bricks_data": {
      "type": "array",
      "description": "Array of Bricks elements to save",
      "items": {
        "type": "object"
      }
    },
    "content_hash": {
      "type": "string",
      "description": "Content hash from bricks_get_page for optimistic locking. If provided, update fails with 409 if page was modified since read."
    },
    "content_area": {
      "type": "string",
      "enum": [
        "content",
        "header",
        "footer"
      ],
      "description": "Which content area to write (default: content). Use header/footer to manage template elements.",
      "default": "content"
    }
  },
  "required": [
    "page_id",
    "bricks_data"
  ]
}
— · —
bricks_update_page_assetsSet 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.
Input schema
{
  "type": "object",
  "properties": {
    "page_id": {
      "type": "number",
      "description": "WordPress page/post ID"
    },
    "css": {
      "type": "string",
      "description": "INFRA CSS only (raw rules, no <style> tags): @font-face, :root{--vars}, @keyframes, critical above-fold. NOT editable in the Bricks builder — do NOT put layout/responsive/visual CSS here; use element _cssCustom or page customCss instead. Editable CSS triggers a warning (or a hard block when BRICKS_MCP_BLOCK_EDITABLE_CSS=1)."
    },
    "js_deps": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "JS dependencies to enqueue: \"gsap\", \"scrolltrigger\", \"lenis\""
    },
    "js": {
      "type": "string",
      "description": "Inline JS to output in footer (no <script> tags, just code)"
    },
    "raw_footer": {
      "type": "string",
      "description": "Raw HTML for wp_footer (legacy catch-all, includes own tags)"
    }
  },
  "required": [
    "page_id"
  ]
}
— · —
bricks_update_page_schemaSet JSON-LD structured data (Schema.org) for a page. Automatically adds @context. Outputs as <script type="application/ld+json"> in the page head. Accepts a single schema object or an array of schemas.
Input schema
{
  "type": "object",
  "properties": {
    "page_id": {
      "type": "number",
      "description": "WordPress page/post ID"
    },
    "schema": {
      "description": "Schema.org JSON-LD object (or array of objects). Must include @type. Example: {\"@type\": \"LocalBusiness\", \"name\": \"My Business\", \"address\": {...}}"
    }
  },
  "required": [
    "page_id",
    "schema"
  ]
}
— · —
bricks_update_page_seoUpdate 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.
Input schema
{
  "type": "object",
  "properties": {
    "page_id": {
      "type": "number",
      "description": "WordPress page/post ID"
    },
    "seo_title": {
      "type": "string",
      "description": "SEO title (overrides <title> tag)"
    },
    "description": {
      "type": "string",
      "description": "Meta description (fallback for og:description and twitter:description)"
    },
    "og_image": {
      "type": "string",
      "description": "Open Graph image URL (1200x630 recommended)"
    },
    "keywords": {
      "type": "string",
      "description": "Meta keywords (comma-separated)"
    },
    "og_type": {
      "type": "string",
      "description": "Open Graph type (default: website)"
    },
    "canonical": {
      "type": "string",
      "description": "Canonical URL (outputs <link rel=\"canonical\">)"
    },
    "noindex": {
      "type": "boolean",
      "description": "Set to true to add noindex robots directive"
    },
    "nofollow": {
      "type": "boolean",
      "description": "Set to true to add nofollow robots directive"
    },
    "focus_keyword": {
      "type": "string",
      "description": "Focus keyword for density analysis"
    },
    "og_title": {
      "type": "string",
      "description": "OG title override (separate from SEO title)"
    },
    "twitter_title": {
      "type": "string",
      "description": "Twitter Card title override"
    },
    "twitter_description": {
      "type": "string",
      "description": "Twitter Card description override"
    },
    "twitter_image": {
      "type": "string",
      "description": "Twitter Card image URL override"
    }
  },
  "required": [
    "page_id"
  ]
}
— · —
bricks_update_page_settingsUpdate Bricks page-level settings (metaRobots, header/footer template, per-page overrides).
Input schema
{
  "type": "object",
  "properties": {
    "page_id": {
      "type": "number",
      "description": "WordPress page/post ID"
    },
    "settings": {
      "type": "object",
      "description": "Settings to update"
    },
    "merge": {
      "type": "boolean",
      "description": "Merge with existing (default: true)",
      "default": true
    }
  },
  "required": [
    "page_id",
    "settings"
  ]
}
— · —
bricks_update_scriptsUpdate per-page scripts for a WordPress page. Scripts are output in wp_footer. Include <link>, <style>, and <script> tags as needed — all are output together before </body>. IMPORTANT: WordPress strips backslashes — use String.fromCharCode(10) instead of "\n" in JavaScript strings.
Input schema
{
  "type": "object",
  "properties": {
    "page_id": {
      "type": "number",
      "description": "WordPress page/post ID"
    },
    "scripts": {
      "type": "string",
      "description": "HTML/JS/CSS to inject before </body>. Include <script>, <style>, and <link> tags as needed."
    }
  },
  "required": [
    "page_id",
    "scripts"
  ]
}
— · —
bricks_update_settingsUpdate Bricks Builder global settings. Supports merge mode (default). Use for container width, post types, disabled features, etc.
Input schema
{
  "type": "object",
  "properties": {
    "settings": {
      "type": "object",
      "description": "Settings key-value pairs to update"
    },
    "merge": {
      "type": "boolean",
      "description": "Merge with existing (default: true)",
      "default": true
    }
  },
  "required": [
    "settings"
  ]
}
— · —
bricks_update_templateUpdate an existing Bricks Builder template with new content.
Input schema
{
  "type": "object",
  "properties": {
    "template_id": {
      "type": "number",
      "description": "Template ID to update"
    },
    "title": {
      "type": "string",
      "description": "New template title (optional)"
    },
    "content": {
      "type": "array",
      "description": "Array of Bricks elements",
      "items": {
        "type": "object"
      }
    },
    "template_type": {
      "type": "string",
      "description": "Template type (optional)",
      "enum": [
        "header",
        "footer",
        "section",
        "content",
        "single",
        "archive",
        "popup",
        "search",
        "error"
      ]
    },
    "conditions": {
      "type": "array",
      "description": "Template conditions, e.g. [{\"main\":\"entireWebsite\"}]",
      "items": {
        "type": "object"
      }
    }
  },
  "required": [
    "template_id"
  ]
}
— · —
bricks_update_theme_stylesUpdate 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).
Input schema
{
  "type": "object",
  "properties": {
    "theme_styles": {
      "type": "object",
      "description": "Object with style name(s) as keys and their settings as values. Bricks 2.3: Supports responsive keys like { \"headings\": { \"h1\": { \"_typography\": { \"font-size\": \"64\" }, \":tablet_portrait\": { \"_typography\": { \"font-size\": \"42\" } }, \":mobile_portrait\": { \"_typography\": { \"font-size\": \"32\" } } } } }"
    },
    "merge": {
      "type": "boolean",
      "description": "If true (default), merge with existing styles.",
      "default": true
    }
  },
  "required": [
    "theme_styles"
  ]
}
— · —
bricks_upload_fontUpload 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.
Input schema
{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "description": "Font family name (e.g., \"PP Neue Montreal\", \"Cabinet Grotesk\")"
    },
    "files": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "path": {
            "type": "string",
            "description": "Absolute local file path to font file (.woff2/.woff/.ttf/.otf)"
          },
          "url": {
            "type": "string",
            "description": "URL to download font file from (alternative to path)"
          },
          "weight": {
            "type": "string",
            "description": "Font weight: \"100\"-\"900\" (default: \"400\")"
          },
          "style": {
            "type": "string",
            "description": "Font style: \"normal\" or \"italic\" (default: \"normal\")"
          }
        }
      },
      "description": "Array of font files with weight/style mapping. Provide either path or url per file."
    },
    "display": {
      "type": "string",
      "enum": [
        "swap",
        "block",
        "fallback",
        "optional",
        "auto"
      ],
      "description": "CSS font-display value (default: \"swap\")"
    }
  },
  "required": [
    "name",
    "files"
  ]
}
— · —
bricks_upload_mediaUpload 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.
Input schema
{
  "type": "object",
  "properties": {
    "file_path": {
      "type": "string",
      "description": "Absolute path to a local image file"
    },
    "url": {
      "type": "string",
      "description": "URL of an image to download and upload"
    },
    "title": {
      "type": "string",
      "description": "Title for the media attachment (optional)"
    },
    "alt_text": {
      "type": "string",
      "description": "Alt text for the image (optional)"
    },
    "caption": {
      "type": "string",
      "description": "Caption for the image (optional)"
    }
  }
}
— · —
bricks_validate_bemValidate existing global classes against BEM convention. Checks naming patterns, orphaned blocks/elements, conflicts with utility classes, and reports structure issues.
Input schema
{
  "type": "object",
  "properties": {
    "prefix": {
      "type": "string",
      "description": "Filter to classes starting with this prefix (e.g., \"pricing\"). Leave empty to validate all non-utility classes."
    }
  }
}
— · —
bricks_validate_elementsValidate 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.
Input schema
{
  "type": "object",
  "properties": {
    "elements": {
      "type": "array",
      "description": "Bricks elements array to validate",
      "items": {
        "type": "object"
      }
    }
  },
  "required": [
    "elements"
  ]
}
— · —
bricks_wp_create_categoryCreate a new WordPress category.
Input schema
{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "description": "Category name"
    },
    "slug": {
      "type": "string",
      "description": "URL slug (auto-generated if omitted)"
    },
    "description": {
      "type": "string",
      "description": "Category description"
    },
    "parent": {
      "type": "number",
      "description": "Parent category ID for hierarchy"
    }
  },
  "required": [
    "name"
  ]
}
— · —
bricks_wp_create_postCreate a new WordPress post. Returns the new post ID and URL.
Input schema
{
  "type": "object",
  "properties": {
    "title": {
      "type": "string",
      "description": "Post title"
    },
    "post_type": {
      "type": "string",
      "description": "REST base of the post type (default: posts). For a CPT pass its REST base, e.g. \"service-area\", \"service\", \"faq\". Look it up with bricks_get_post_types.",
      "default": "posts"
    },
    "content": {
      "type": "string",
      "description": "Post content (HTML)"
    },
    "status": {
      "type": "string",
      "description": "publish, draft, pending (default: draft)",
      "default": "draft"
    },
    "excerpt": {
      "type": "string",
      "description": "Post excerpt"
    },
    "categories": {
      "type": "array",
      "items": {
        "type": "number"
      },
      "description": "Category IDs"
    },
    "tags": {
      "type": "array",
      "items": {
        "type": "number"
      },
      "description": "Tag IDs"
    },
    "featured_media": {
      "type": "number",
      "description": "Featured image media ID"
    }
  },
  "required": [
    "title"
  ]
}
— · —
bricks_wp_create_tagCreate a new WordPress tag.
Input schema
{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "description": "Tag name"
    },
    "slug": {
      "type": "string",
      "description": "URL slug (auto-generated if omitted)"
    },
    "description": {
      "type": "string",
      "description": "Tag description"
    }
  },
  "required": [
    "name"
  ]
}
— · —
bricks_wp_get_postGet a single WordPress post with full content, excerpt, categories, tags, featured image, and meta. Works on custom post types via post_type.
Input schema
{
  "type": "object",
  "properties": {
    "post_id": {
      "type": "number",
      "description": "Post ID"
    },
    "post_type": {
      "type": "string",
      "description": "REST base of the post type (default: posts). For a CPT pass its REST base, e.g. \"service-area\", \"service\", \"faq\". Look it up with bricks_get_post_types.",
      "default": "posts"
    }
  },
  "required": [
    "post_id"
  ]
}
— · —
bricks_wp_list_categoriesList all WordPress categories with post counts.
Input schema
{
  "type": "object",
  "properties": {
    "per_page": {
      "type": "number",
      "description": "Max results (default 100)",
      "default": 100
    },
    "search": {
      "type": "string",
      "description": "Search by name"
    }
  }
}
— · —
bricks_wp_list_postsList WordPress posts with filtering. Returns ID, title, status, date, author, categories. Use for content auditing or finding posts to update.
Input schema
{
  "type": "object",
  "properties": {
    "post_type": {
      "type": "string",
      "description": "REST base of the post type (default: posts). For a CPT pass its REST base, e.g. \"service-area\", \"service\", \"faq\". Look it up with bricks_get_post_types.",
      "default": "posts"
    },
    "status": {
      "type": "string",
      "description": "Post status: publish, draft, pending, private, any (default: publish)",
      "default": "publish"
    },
    "search": {
      "type": "string",
      "description": "Search term in title/content"
    },
    "per_page": {
      "type": "number",
      "description": "Results per page (max 100, default 20)",
      "default": 20
    },
    "page": {
      "type": "number",
      "description": "Page number (default 1)",
      "default": 1
    },
    "categories": {
      "type": "array",
      "items": {
        "type": "number"
      },
      "description": "Filter by category IDs"
    },
    "tags": {
      "type": "array",
      "items": {
        "type": "number"
      },
      "description": "Filter by tag IDs"
    },
    "orderby": {
      "type": "string",
      "description": "Order by: date, title, modified, id (default: date)"
    },
    "order": {
      "type": "string",
      "description": "asc or desc (default: desc)"
    }
  }
}
— · —
bricks_wp_list_tagsList all WordPress tags with post counts.
Input schema
{
  "type": "object",
  "properties": {
    "per_page": {
      "type": "number",
      "description": "Max results (default 100)",
      "default": 100
    },
    "search": {
      "type": "string",
      "description": "Search by name"
    }
  }
}
— · —
bricks_wp_update_postUpdate an existing WordPress post. Only sends changed fields. Works on custom post types via post_type.
Input schema
{
  "type": "object",
  "properties": {
    "post_id": {
      "type": "number",
      "description": "Post ID to update"
    },
    "post_type": {
      "type": "string",
      "description": "REST base of the post type (default: posts). For a CPT pass its REST base, e.g. \"service-area\", \"service\", \"faq\". Look it up with bricks_get_post_types.",
      "default": "posts"
    },
    "title": {
      "type": "string",
      "description": "New title"
    },
    "content": {
      "type": "string",
      "description": "New content (HTML)"
    },
    "status": {
      "type": "string",
      "description": "New status: publish, draft, pending, private"
    },
    "excerpt": {
      "type": "string",
      "description": "New excerpt"
    },
    "categories": {
      "type": "array",
      "items": {
        "type": "number"
      },
      "description": "Category IDs"
    },
    "tags": {
      "type": "array",
      "items": {
        "type": "number"
      },
      "description": "Tag IDs"
    },
    "featured_media": {
      "type": "number",
      "description": "Featured image media ID"
    }
  },
  "required": [
    "post_id"
  ]
}
— · —

Resources 0

Resource templates 0

Prompts 0

Let’s talk about MCP security.

Share your details and our security team will contact you.