Cybersalt Extensions Documentation
Guides and reference for Cybersalt's Joomla extensions
  1. You are here:  
  2. Home
  3. Extensions
  4. MCP for YOOtheme Pro

MCP for YOOtheme Pro

MCP for YOOtheme Pro is a Pro add-on for MCP for J. It gives an AI app connected to your Joomla site 14 tools for YOOtheme Pro: reading and changing customizer settings, reading and saving page-builder layouts on articles and YOOtheme Builder modules, switching YOOtheme's Templates on and off, browsing My Layouts and the installed elements, a health check and clearing YOOtheme's caches.

New to MCP for YOOtheme Pro? This page is the reference manual. For an overview of what it does, and how to get it, see its page on cybersalt.com.

Release history. This page documents version 1.0.1. For what changed in each version, see the changelog.

Requirements. Joomla 5 or 6, PHP 8.2 or newer, MCP for J, and YOOtheme Pro 5, which you buy from YOOtheme. Built against YOOtheme Pro 5.0.53. Without YOOtheme Pro installed, every tool says so and does nothing. The add-on is released under the GNU GPL v2 or later.

What's in the package

One plugin, System - CS MCP for YOOtheme Pro (element csmcpforjyootheme). It adds its tools to MCP for J and has no admin screen of its own. The tools appear in your AI app the next time it asks MCP for J for its tool list. Their names all contain yootheme, for example get_yootheme_config.

Installing

Install MCP for J first, connect your AI app to it, and link your Cybersalt account in MCP for J's dashboard. You need a subscription to this add-on or to MCP for J Pro All Access. Then pick one of these:

  1. From inside Joomla (recommended). Open Components → MCP for J → Browse MCP Add-ons and install the YOOtheme Pro add-on. Updates then arrive through System → Update → Extensions.
  2. From the zip. Download it from your licences page and install it in System → Install → Extensions.

First steps

Ask your AI app "Check my YOOtheme setup". The health check is read-only. It lists anything that stops a change from showing: a disabled YOOtheme system plugin, no YOOtheme style, a style with no compiled stylesheet or one older than the installed YOOtheme, page layouts YOOtheme can't read, and layouts close to the size MySQL's TEXT columns can hold. Take a backup before you let any AI app make changes to a site you care about.

The check_yootheme_health response: the YOOtheme version and a list of findings ⤢ Click to enlarge
The health check.

Permissions

The tools use YOOtheme's and Joomla's own rules. Each tool needs MCP for J's Use permission (reading) or Write permission (changes), and on top of that:

ToolsThe account also needs
Status, health check, element typesAccess Administration Interface on Templates
Reading settings, Templates and My LayoutsAccess Administration Interface and Edit on Templates
Listing builder pages, reading a page layoutAccess Administration Interface on Articles (for that article, when reading one)
Reading builder modulesAccess Administration Interface on Modules
Changing settings, saving a layout, switching a Template on or offA Super User account in version 1.0, as well as the permissions above
Clearing YOOtheme's cachesAccess Administration Interface on Cache

Changes are for Super Users only in this version. Anyone else can read. Finer access for other groups may come in a later version. Custom scripts, legacy code settings and the YOOtheme API key can't be changed over MCP by anyone, Super Users included: change those in the YOOtheme customizer.

A set_yootheme_config response refusing a change to custom_js ⤢ Click to enlarge
Custom code stays in the customizer.

The tools

14 tools in 5 groups. Your AI app picks the right one from what you ask.

GroupWhat they do
Status (2)get_yootheme_info: the YOOtheme version, each style and its compiled stylesheet, and how many pages and modules use the builder. check_yootheme_health: the health check.
Customizer settings (2)get_yootheme_config: a summary, or one group or setting by dot path. API keys, tokens and passwords come back masked. set_yootheme_config: change named settings, with a dry run.
Page builder (5)list_yootheme_builder_articles, get_yootheme_article_layout, set_yootheme_article_layout, get_yootheme_module_layout and set_yootheme_module_layout. Read a layout as a short outline or in full, and save a changed one back.
Library (3)list_yootheme_templates (in the order YOOtheme tries them), set_yootheme_template_status (on or off) and list_yootheme_library (My Layouts and saved styles).
Elements and cache (2)list_yootheme_element_types: the installed elements, or one element's defaults and setting names. clear_yootheme_cache: empties YOOtheme's cache folder, and optionally its resized-image cache.
The get_yootheme_info response: the YOOtheme version, one style and its compiled stylesheet ⤢ Click to enlarge
The YOOtheme version, styles and stylesheets.

Changing customizer settings

Ask for the change in plain words, for example "Switch the header to the stacked centred layout". The AI passes the settings to change as dot paths, such as header.layout or site.layout. Only those settings change; everything else that's stored stays as it is.

  • A dry run shows the before and after without saving.
  • Nobody's work is overwritten. If someone saves the customizer between the read and the save, the save is refused.
  • A setting keeps its shape. A single value can't become a list or replace a whole group, because YOOtheme's pages expect the shape they were built with. A group passed as an object is merged into what's stored, key by key.
  • Null resets. Passing null for a setting removes it, so YOOtheme falls back to its default. LESS variables keep their @ name, for example less.@global-color.
  • The style must be current. YOOtheme brings a style's settings up to date when a page renders. If a style's settings are from an older YOOtheme, open it in the customizer once, then try again.
A set_yootheme_config dry run showing two settings with their old and new values ⤢ Click to enlarge
A dry run before changing two settings.

Style changes need one click in the customizer. YOOtheme compiles its stylesheet in your browser, inside the customizer, and nothing on the server can do that step. Layout settings (header, navbar, page width and so on) show on the next page load, but changes under less, style or custom_less reach visitors only after someone opens the customizer and saves. The tool tells you when that applies.

Page-builder layouts

YOOtheme stores a builder page as a layout in the article's text, and a YOOtheme Builder module's layout in the module. The read tools return a short outline by default (sections, rows, columns and each element with its text), or the full layout on request. Each read also returns a content_hash.

  • Saves check the hash. Pass the content_hash from your read, and the save is refused if the page changed in the meantime. That's the same check YOOtheme's builder makes.
  • Every element must be installed. YOOtheme quietly shows an element type it doesn't know as nothing, so an unknown type is refused before anything is saved.
  • Turning an ordinary article into a builder page replaces its text, so the tool asks for that to be confirmed.
  • Blog lists stay current. YOOtheme keeps a simple copy of each builder page for blog lists, category pages and search. A saved layout writes a plain version of it, so those pages don't keep showing the old text. Opening the page in the builder once regenerates YOOtheme's own.
  • Builder modules have a dry run. It checks the layout and reports what would be saved.
The get_yootheme_article_layout response: the content hash, element counts and an outline of the page ⤢ Click to enlarge
A builder page as an outline.
A set_yootheme_module_layout dry run refusing an element type that is not installed ⤢ Click to enlarge
An element type that isn't installed is refused.

Templates

YOOtheme's Templates (in the builder's Templates tab) give whole groups of pages a layout, for example every article in a category. list_yootheme_templates lists them in the order YOOtheme tries them, and notes an earlier Template that may win. set_yootheme_template_status switches one on or off. Only the status changes; the layout and conditions are untouched. Switching one on takes effect on the next page load for every page its conditions match.

The list_yootheme_templates response: one Template with its type and status ⤢ Click to enlarge
YOOtheme's Templates.

Good to know

  • Joomla's Versions history has no entry for a layout saved here, because YOOtheme's own builder saves the same way.
  • The add-on never starts YOOtheme itself while answering a tool call. It reads and writes the same data YOOtheme does, in the formats YOOtheme saves.
The get_yootheme_config response for the header group of settings ⤢ Click to enlarge
One group of customizer settings.

What's been tested

Version 1.0 was built against YOOtheme Pro 5.0.53 and tested on Joomla 6 with it: every tool called, with each change checked in the database and on the rendered page. It had a full security review before release. Joomla 5 and busy production sites haven't been tested yet.

Troubleshooting

SymptomCause and fix
No YOOtheme tools in the AI appCheck that MCP for J is installed, System - CS MCP for YOOtheme Pro is enabled in System → Plugins, and the AI app has refreshed its tool list.
A colour or font change doesn't showOpen the style in the YOOtheme customizer and save once, so the stylesheet is compiled. See Changing customizer settings.
A change is refused with "needs a Super User"In version 1.0, changes are for Super Users only. See Permissions.
A settings save is refused because of the YOOtheme versionOpen the style in the customizer once (or view a page that uses it), then try again.
A layout save is refused because the page changedSomeone saved the page after it was read. Read it again and redo the change.
Update can't be downloadedCheck your subscription is active and MCP for J's dashboard is linked to the email you bought with.

Getting help

Questions and bug reports are welcome through the Cybersalt support form. Please include your Joomla, PHP, YOOtheme Pro, MCP for J and add-on versions, and the tool response that surprised you.


MCP for YOOtheme Pro is developed by Cybersalt Consulting Ltd. and released under the GNU General Public License v2 or later. It is not made or endorsed by YOOtheme.

The health check — click anywhere to closeClose ×The health check Custom code stays in the customizer — click anywhere to closeClose ×Custom code stays in the customizer The YOOtheme version, styles and stylesheets — click anywhere to closeClose ×The YOOtheme version, styles and stylesheets A dry run before changing two settings — click anywhere to closeClose ×A dry run before changing two settings A builder page as an outline — click anywhere to closeClose ×A builder page as an outline An element type that isn't installed is refused — click anywhere to closeClose ×An element type that is not installed is refused YOOtheme's Templates — click anywhere to closeClose ×YOOtheme's Templates One group of customizer settings — click anywhere to closeClose ×One group of customizer settings

Subcategories

Changelog

Main Menu

  • Home
  • Extensions A-Z
  • Guides