pom://shortcodes/{tag}: one live shortcode schema
Replace {tag} with the exact shortcode name returned by resources/list or pom://shortcodes, for example:
pom://shortcodes/vc_row
pom://shortcodes/web_button
The resource exists only when POM AI can resolve that tag in the current catalog. An unknown tag produces the normal MCP resource-not-found error; similar names are not aliases.
Schema fields
The JSON object can include:
| Field | Meaning |
|---|---|
shortcode |
Exact tag to place between square brackets. |
label, description |
Human-readable builder definition. |
source |
Layout, WordPress, POM Theme module, or nested POM Theme module origin. |
attributes |
Map keyed by the exact shortcode attribute name. |
is_container |
Whether the tag is expected to wrap child content. |
as_parent, as_child |
Builder nesting constraints when declared. |
registered, enabled |
Current runtime registration and module state. |
module, icon, deps |
POM Theme module metadata when available. |
Each normalized attribute can report a data type, original control_type, label, description, default, permitted option values, dependency, group, and admin-label status. An enum must use one of its advertised values. A dependency explains when the builder exposes the field; it is not a second attribute to copy blindly.
Build from the schema
For a container:
[parent documented_attribute="value"]
[allowed_child]Content[/allowed_child]
[/parent]
For a leaf:
[component documented_attribute="value"]
Do not serialize the schema itself into page content. Use it to choose exact attributes, retain intentional defaults, and respect parent-child relationships. Then validate the whole page, not only the new fragment: a locally valid shortcode can still break the surrounding hierarchy.
The resource is a runtime snapshot. Re-read it after a theme or module update before generating reusable markup.
Related guides: shortcode catalog, layout rules, and builder validation.