bricks-mcp Server
Comprehensive MCP server for Bricks Builder with 100+ tools to manage pages, templates, styles, SEO, and content directly from AI assistants like Claude Code
Detailed security scan evidence is not public for this MCP yet. Public identity, registry metadata, and independently observed protocol inventory remain available.
Install and connect
Installation and connection instructions are shown only when supported by retained package, repository, or endpoint evidence.
No verified installation or connection method is available in the retained evidence yet.
Identity
| Canonical slug | bricks-mcp-66e30bb6 | Deployment | Local Only |
|---|---|---|---|
| Canonical package | — | Repository | developer2013/bricks-mcp-open |
| First published | — | Latest release | — |
| Last security verification | — | Classification confidence | 90% |
| Publication | Draft | Official distribution | Not verified |
Distributions
| Channel | Identifier | Current version | Versions | Source |
|---|---|---|---|---|
| source_git | developer2013/bricks-mcp-open | a19508ec8477eee48e756723af5bce2d7609fefc | 1 | Repository |
Current release
| Package | Version | Published / observed | Inventory | Security scan |
|---|---|---|---|---|
| source_gitdeveloper2013/bricks-mcp-open | a19508ec8477eee48e756723af5bce2d7609fefcCurrent | Aug 25, 2026 | 115 toolsSucceeded · 0 resources · 0 prompts | Evidence restricted |
Continuously monitor this MCP for security risk
Independently scan the exact version your agents use, receive alerts when its risk changes, and investigate every finding with retained version evidence.
- Independent exact-version security scans
- Continuous release and vulnerability monitoring
- Risk-change alerts with capability context
- Historical evidence and API exports
Current version evidence
No public current-version evidence is available yet.
Current protocol inventory
Tools 115
| Tool | Category | Annotations | Risk |
|---|---|---|---|
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
- None observed.
Resource templates 0
- None observed.
Prompts 0
- None observed.
Remote endpoints
| Endpoint | Transport | Authentication | Health | Observed |
|---|---|---|---|---|
| No verified remote endpoint is linked. | ||||
bricks-mcp Server questions
How do I install bricks-mcp Server?
No verified package installation command is available in the retained catalog evidence.
What tools does bricks-mcp Server provide?
bricks-mcp Server exposed 115 tools during independent protocol observation, including bricks_active_site, bricks_add_menu_item, bricks_append_elements, bricks_apply_bem_component, bricks_apply_class_to_element, bricks_batch, bricks_build_page, bricks_bulk_create_global_classes, and others.
Is bricks-mcp Server secure?
The selected current version does not yet have completed public verification. Unknown does not mean clean or vulnerable.
Explore related MCP server guides
Curated product and capability guides containing this catalog record.