GoBuildWP

Custom dataPro

Dynamic Shortcodes MCP: lint, test and save shortcodes

Dynamic Shortcodes uses a compact curly-brace language, {post:title} or {acf:field @option}, where one misplaced colon gives an obscure parser error. The Dynamic Shortcodes MCP abilities in GoBuildWP Pro let an agent lint a string before anyone sees it, run it against the live site with a chosen post as context, and save it as a Power Shortcode when it needs privileges ordinary content does not have.

AI clientyour-site.comVerify site policy

Under each article, show the featured image of the next post.

  1. wppilot/dynamic-shortcodes-check-setupRead

    Confirms the media and post types are accepted and that post content is an enabled area. The later evaluation and Power Shortcode writes are critical: they require Developer Full Access, enabled abilities, confirm=true and any configured approval.

  2. wppilot/dynamic-shortcodes-validate-shortcodeRead

    Lints a media:image shortcode whose ID comes from the next post's featured image, found with a call: to get_next_post, nested two levels deep, and reports no errors.

  3. wppilot/dynamic-shortcodes-evaluate-shortcodeWrite

    Run with a post_id, it returns requires_power: true, because {call:} is only allowed inside a Power Shortcode.

  4. wppilot/dynamic-shortcodes-list-power-shortcodesRead

    Checks that the name next-post-image is not already taken.

  5. wppilot/dynamic-shortcodes-create-power-shortcodeWrite

    Saves the string as next-post-image after linting it again.

Proposed sequence from source declarations; not a recorded task or proof of client compatibility. Inspect saved state and browser or provider results separately.
Edition
Pro
Abilities
9
Requires
WordPress 6.9+, PHP 8.0+, Dynamic Shortcodes 1.9.0+

Worked example

A shortcode that needs the privileged context

Expected outcome to verify on the installed stack; this sequence has not been recorded as a runtime test.

Authors place {power:next-post-image} in the article template and it renders the next post's image on the front end. It shows as literal text on any surface that is still switched off in the plugin's settings.

Lint without evaluating. Review and authorize live evaluation separately, using a bounded staging input. Treat requires_power as a privilege escalation requiring review, not an automatic retry; inspect the rendered shortcode result afterwards.

  1. dynamic-shortcodes-check-setup

    Confirms the media and post types are accepted and that post content is an enabled area. The later evaluation and Power Shortcode writes are critical: they require Developer Full Access, enabled abilities, confirm=true and any configured approval.

  2. dynamic-shortcodes-validate-shortcode

    Lints a media:image shortcode whose ID comes from the next post's featured image, found with a call: to get_next_post, nested two levels deep, and reports no errors.

  3. dynamic-shortcodes-evaluate-shortcode

    Run with a post_id, it returns requires_power: true, because {call:} is only allowed inside a Power Shortcode.

  4. dynamic-shortcodes-list-power-shortcodes

    Checks that the name next-post-image is not already taken.

  5. dynamic-shortcodes-create-power-shortcode

    Saves the string as next-post-image after linting it again.

Abilities

What each call does on this plugin

AbilityWhat it does hereUndo and limits
dynamic-shortcodes-check-setupdynamic-shortcodes-get-contextSetup reports accepted shortcode types, which data plugins were detected (ACF, WooCommerce, JetEngine, Meta Box, Pods, Toolset, ACPT) and enabled_areas. get-context lists the real fields one type can return on this site.Read-only. The other abilities only register once the minimum version check passes.
dynamic-shortcodes-compose-shortcodedynamic-shortcodes-validate-shortcodeCompose builds a string from type, arguments, keyargs, filters and a fallback and lints it; validate lints a hand-written string and returns each error.Syntax only. A valid shortcode can still resolve to nothing on a given post.
dynamic-shortcodes-evaluate-shortcodeRuns the string against the live site, optionally with post_id set as the current post, and returns the value and its type. A shortcode that needs privileges comes back as requires_power: true with no result.Not read-only: {set:} changes variables, {call:} runs PHP, and a Power Shortcode can do anything it was written to do. Not retried automatically.
dynamic-shortcodes-list-power-shortcodesdynamic-shortcodes-create-power-shortcodedynamic-shortcodes-edit-power-shortcodedynamic-shortcodes-delete-power-shortcodeLists saved Power Shortcodes; create and edit lint the code first and refuse broken syntax with invalid_shortcode_syntax; create never overwrites an existing name.No change-log undo. Delete returns the deleted code and description so the agent can recreate it.

Documented source abilities; live registration can be narrower. Edition and effect labels describe the source catalogue. The installed schema, dependency versions, licence, WordPress capability, safety profile and per-ability policy determine availability; labels alone do not prove confirmation or recovery.

Limits

Where a working shortcode still will not render

  • Every content area, including post content, blocks, widgets, Elementor, Bricks, Oxygen, Breakdance and WPBakery, defaults to off in the plugin's settings.
  • Divi, Etch, Mosaic and Beaver Builder have no Dynamic Shortcodes integration; a shortcode typed there stays literal.
  • Shortcodes resolve on the front end and in live previews, not inside the editor's input box, so evaluate is the way to check a value first.
  • Power Shortcode writes cannot be rolled back from the change log. An evaluation is recorded as irreversible, without a restorable before-image; any effect belongs to the shortcode itself.

Data model

Most shortcodes are not stored anywhere

An ordinary dynamic shortcode is not a record. It lives inline where someone typed it, in post content, a Gutenberg block, a text widget or a Bricks element's text, and the plugin resolves it at render time. Elementor, Oxygen and Breakdance take it through their dynamic-tag pickers instead of a text field. Every one of those surfaces is off until enabled in the plugin's settings, which is why an unenabled shortcode prints as literal text.

Power Shortcodes are the stored part. Dynamic.ooo describes them as a name plus content, created by administrators and then usable by contributors anywhere as {power:name}. They run in a privileged context that allows features ordinary content cannot use, such as {call:...} for PHP functions. The plugin saves them through its own manager; its storage format is not public, so GoBuildWP records these writes without an undo.

For an agent the useful split is: lint freely while drafting, then review and authorize live evaluation, and treat creating a Power Shortcode as publishing code, because every author on the site can then run it.

Drafting shortcodes safely

Find the real field name before writing the shortcode

Most broken dynamic shortcodes are not syntax errors. They name a field that does not exist on this site, or exists under a slightly different key. dynamic-shortcodes-get-context answers that directly: give it a type such as acf, post, user, term, query or woo and it returns the fields available here with their possible result types, paginated, with a case-insensitive name_pattern filter. check-setup tells you which data plugins it detected, from ACF and Meta Box to JetEngine, Pods, Toolset, ACPT and WooCommerce, so you know which types are worth asking about.

With the field confirmed, dynamic-shortcodes-compose-shortcode builds the string from structured parts: type, positional arguments, keyargs, filters and a fallback. It lints the result as it goes and returns the shortcode with any errors, which is easier to review than a hand-typed string full of colons and at-signs.

A drafting session that needs no write access

The setup check, get-context, compose, validate and the Power Shortcode list are all read-only, so they work under the Read Only profile. That covers a lot: an agent can design a shortcode for a product spec table, check every field it touches, and hand over a linted string for a person to paste into a template, without being able to run anything on the live site.

Evaluation is the line. dynamic-shortcodes-evaluate-shortcode is not marked read-only because {set:} changes variables and a Power Shortcode can do whatever it was written to do, so Read Only leaves it out. When you do evaluate, test two posts: one where the field has a value and one where it is empty. The second run is the only way to see whether the fallback you composed actually appears.

Reviewing the Power Shortcodes already on a site

Power Shortcodes accumulate. Someone writes one for a sidebar, another for a single campaign, and a year later nobody knows which still matter. dynamic-shortcodes-list-power-shortcodes returns every name with its code and description, and an agent can run validate over each code to flag any that no longer lint, and point out which use {call:} and therefore run PHP.

Before deleting or renaming one, find where {power:name} is used. search-content covers public content types, but shortcodes typed into builder data, widgets or templates may not show up there, so check those surfaces as well. Edits return the previous code and deletes return the deleted code and description; keep that output, because the change log holds no undo for these writes and that response is how you put a shortcode back.

  • Treat a new Power Shortcode like a code deploy: every author can call it once it exists.
  • Name them for what they render, such as next-post-image, not for the campaign that needed them.
  • If a shortcode renders as text after all this, re-check enabled_areas for the surface it sits in.

Questions

Dynamic Shortcodes questions

Why does my dynamic shortcode show up as plain text on the page?

The surface it sits in is not enabled. check-setup lists enabled_areas; every area starts off and is switched on in the plugin's own settings.

What does requires_power mean when the agent evaluates a shortcode?

The shortcode uses something only allowed in a Power Shortcode, such as {call:}. It is not an error. The route is to save it as a Power Shortcode and use {power:name} in content, but Power Shortcodes can run code with side effects, so a person should review what it does and approve saving it first.

Can I use Dynamic Shortcodes inside Divi or Beaver Builder?

No. The plugin does not integrate with them, so use those builders' own dynamic content.

Is it safe to let an AI agent evaluate shortcodes on a live site?

Only with care. Evaluation runs the shortcode for real, and variables, PHP calls and Power Shortcodes can have side effects. Linting is the side-effect-free check.

Where these facts come from

GoBuildWP behaviour is taken from the plugin source and the ability reference; third-party details from the vendor documentation below, checked by the GoBuildWP team.

Dynamic Shortcodes is a separate product; no partnership or endorsement is implied.

Try it on Dynamic Shortcodes in Read Only first