MCP server for Elementor WordPress — compile blueprints into import-ready Elementor v4 JSON with 30 templates, 59 widgets, dual format output, motion effects, Theme Builder support, and schema learning.
Elementor MCP demonstrates solid tool design with consistent naming (verb_noun pattern), comprehensive descriptions (avg 150+ chars), and well-structured schemas using Zod. All 15 tools are explicitly registered with input schemas and descriptions. However, output schemas are not documented, LLMs cannot predict response structure. Error handling is minimal (no recovery guidance, no categorization). Parameter descriptions lack format constraints (e.g., hex color validation, file path rules). No tool annotations (readOnlyHint/destructiveHint) despite clear risk distinctions. Missing idempotency guidance for write operations. Composition is strong, tools chain well (e.g., list_widgets → get_widget_schema → compile_blueprint).
Generate SEO metadata (title, description, keywords, og tags, schema markup) for a page. Returns an seo object ready to merge into a blueprint.
Generate a complete Elementor theme (colors, fonts, radii, shadows) from a brand color and personality. Returns a theme object ready to use in a blueprint.
Compile a blueprint object into an import-ready Elementor v4 document. The blueprint is a tree of typed nodes (heading, button, flex, form, etc.) with style specs, motion effects, and dynamic tags. Returns the compiled Elementor JSON.
Compile a multi-page site blueprint (header, footer, pages) into a set of import-ready Elementor documents. Returns an array of compiled pages.
Get the full blueprint tree for one template by name. Use this to inspect a template's structure or as a starting point for your own design.
Get the fields and a concrete blueprint example for one node type. Call before using an unfamiliar widget.
Output schemas not documented. LLMs cannot predict response structure for compile_blueprint, compile_site, build_theme, build_seo, or learn_from_doc. Agents must guess field names and types, risking extraction errors.
No tool annotations (readOnlyHint/destructiveHint/idempotentHint). Tools clearly split into READ (list_*, get_*, build_*, suggest_*) and WRITE (learn_from_doc, save_blueprint, save_document), but LLMs cannot distinguish without annotations. Agents may retry write operations unsafely.
Parameter format constraints missing. 'brandColor' accepts hex but no validation hint (e.g., '^#[0-9a-fA-F]{6}$'). 'fileName' has no length/character restrictions. 'brief' has no length guidance. LLMs may pass invalid values.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 59 | 2026-07-28+ | v2 |
Render an interactive intake form to gather design requirements from a user. Returns a markdown form with fields for brand, industry, personality, color, and content preferences.
Analyze an existing Elementor document (JSON) and extract widget schemas, settings patterns, and best practices. Stores learned patterns in a registry for future reference.
List all available dynamic content tags (post-title, featured-image, author-name, etc.). Use these in the `dynamic` field of any widget to pull live content from WordPress.
List all available entrance, hover, and scroll motion effects. Use this to discover what animations you can apply to elements.
List all built-in page templates. Each template is a pre-designed blueprint tree you can use as a starting point or reference. Optionally filter by category or search by name.
List all blueprint node types the compiler supports, grouped by category. Use this to discover what you can place in a blueprint tree. Optionally filter by category.
Save a blueprint object to a JSON file in the output directory. Returns the file path.
Save a compiled Elementor document to a JSON file in the output directory. Returns the file path.
Suggest a design personality based on a brief description of the brand or site purpose. Returns a ranked list of personalities with explanations.
Error handling lacks recovery guidance. No tool documents what to do on failure (e.g., 'If compile_blueprint fails, check blueprint.tree structure' or 'If save_document fails, verify output directory exists'). Agents cannot self-correct.
intake_form has empty input schema (no parameters). Description says 'Render an interactive intake form' but LLMs cannot control form fields, branching, or output format. Tool purpose is unclear.