Skip to main content
Glama

mcp-elementor__elementor-get-page-structure

Read-onlyIdempotent

Returns a lean Elementor element tree skeleton (id, elType, widgetType, version, title, nested elements) for a single post or page ID. Each node is tagged with version=3 (legacy) or version=4 (atomic). Only version=4 nodes can be modified via elementor/manage-elements or referenced by elementor/build-composition element_config; version=3 nodes are returned for context only and must be edited directly in the Elementor editor. Optionally scope to a subtree via element_id. Set include_content=true (requires element_id) to also return each V4 node's settings in the plain shape that manage-elements.update.settings / build-composition.element_config accept, so a value can be sent back as-is, styles (as { __style_id, css } where css is a raw CSS string round-trippable to manage-elements.update.style / build-composition.style in replace mode), interactions, its rendered HTML tag when known, and default_styles (a raw CSS string of the widget base layer followed by the kit's site-wide default layer for that tag, in br… Through Royally: its server marks it read-only, so it runs straight away.

Input Schema

NameRequiredDescriptionDefault
post_idYesWordPress post ID of the Elementor document.
site_idNoSite to run this tool on: 8ef2e52b-bd07-4671-a363-ebe8b480b65c (https://demo.royalplugins.com)
element_idNoOptional. If provided, returns only the subtree rooted at that element id.
include_contentNoIf true, includes each V4 node's settings (plain shape, writable as-is), styles (as { __style_id, css } — raw CSS string), interactions, rendered tag, and default_styles (raw CSS string: base layer + kit default for that tag). The styles.css value is round-trippable to build-composition.style / manage-elements.update.style in replace mode. Requires element_id.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive, and the description still adds substantial behavior: the lean-by-default payload, per-node version tagging semantics, the exact shape of styles ({ __style_id, css }) and its round-trip contract in replace mode, plus default_styles layering. It does not mention response size limits or failure modes, and the final sentence is garbled/truncated.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The core is front-loaded and the version=4/writable framing comes first, which is good. But the include_content sentence is a dense run-on covering five return fields, and the description ends with a truncated fragment ('in br… Through Royally: its server marks it read-only'), which wastes space and reads as corrupted text.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description carries the burden of describing returns and does so thoroughly: tree fields, version tags, settings styles interactions tag default_styles under include_content. What is missing is guidance on output size/truncation for large pages and error behavior for invalid element_id.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, but the description goes beyond it by explaining what include_content actually returns and that it requires element_id, and by clarifying that element_id scopes to a rooted subtree. post_id and site_id semantics are left to the schema, which is acceptable at full coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource (returns a lean Elementor element tree skeleton for a single post/page ID) and enumerates exactly what each node carries (id, elType, widgetType, version, title, nested elements). It also distinguishes itself from the mutation siblings by explaining the version=3 vs version=4 editability split relative to manage-elements and build-composition.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives clear conditional guidance: use element_id to scope to a subtree, and set include_content=true (which requires element_id) only when you need writable settings/styles back. It also states that version=3 nodes are context-only and must be edited in the Elementor editor. It stops short of naming a sibling to use instead for a full-HTML or settings-only read.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources