Skip to content

Modules

New in v3.1.0. Modules are substantial features you turn on and off from EMCP Tools → Modules. Unlike individual tool toggles, a module owns a whole feature, its admin surface, hooks, cron, and (where relevant) MCP tools, so disabling it is a true kill switch.

Each module boots only when active. Active module IDs live in a single option; each module keeps its own settings separately.

ModuleTierDefaultWhat it does
Image OptimizationFreeOff (opt-in)Compress uploads + generate/serve WebP
EMCP ThemerFreeOnBuilder-agnostic theme builder
PromptsFreeOnThe prompt library tab
Brand KitsFreeOnCurated color + typography kits
TemplatesProOnThe premium template library
AI ChatProOnIn-editor AI chat (Elementor + Gutenberg)
Agent SkillsProOnRuntime skill exposure: the list-skills/get-skill Agent Skills tools + discovery-context catalog

A module with a dedicated screen shows a Configure → link on its card; a lighter module shows an inline settings overlay.

Free and opt-in (it mutates your uploads, so it ships off). When enabled it:

  • Compresses generated image sub-sizes on upload and generates .webp siblings, using WordPress’s own WP_Image_Editor, with no external binaries.
  • Serves WebP by rewriting wp_get_attachment_* URLs. On the front end this is gated by the browser’s Accept: image/webp header; in REST and WP-CLI it’s always served, so the MCP media tools (get-media, sideload-image, add-stock-image, …) resolve to WebP with no tool changes.
  • Preserves full-size originals (optionally trimmed by a max-dimension cap) and backs up every touched file under uploads/emcp-originals/, so the whole thing is reversible.
  • Includes a resumable bulk optimizer (processes your existing library in batches) and a Restore originals companion.
  • Adds an in-place image resizer and the emcp-tools/resize-media MCP tool (new in v3.1.1). An AI agent can resize an existing Media Library image by ID, mid-build or after the fact.

Settings: compress on/off, WebP generation on/off, front-end WebP serving on/off (REST/CLI always serve WebP), quality (1–100, default 60), max dimension (0 = off), keep originals. Availability depends on your server’s image library supporting WebP output. The card disables the toggle and explains when it can’t.

Resizes an existing Media Library attachment in place (added in v3.1.1). By default it scales the image to fit within the given width/height (aspect ratio preserved); pass crop: true for an exact width × height. The original is backed up under uploads/emcp-originals/ (reversible), all sub-sizes + WebP siblings are regenerated, and the attachment ID and URLs stay the same, so anything already pointing at the image keeps working. Registers only when the Image Optimization module is enabled.

InputRequiredNotes
attachment_idyesThe Media Library image to resize.
widthone of width/heightTarget width in px (≥ 1).
heightone of width/heightTarget height in px (≥ 1).
cropnotrue = crop to an exact width × height (both required); default scales to fit.

Pro and on by default. This module is the on/off switch for runtime skill exposure. It registers the read-only list-skills and get-skill tools and injects the ## Skills catalog into the MCP discovery context, so a connected agent can browse and load the bundled playbooks over the MCP connection. Turning it off removes those tools and the discovery injection (reclaiming their token footprint); it does not affect the local Skills download on the Skills tab. Full detail in Agent Skills.

Pro and on by default. Owns the whole AI Chat feature: the AI Chat admin tab, the REST routes, the conversation store, and the floating chat panel in both page editors, Elementor and the WordPress block editor. Turning the module off is a true kill switch: the tab, the editor panels, the routes, and the cron all stop.

Bring your own API key for Anthropic, OpenAI, OpenRouter, or Google Gemini. Keys are encrypted per user and never leave your site except to the provider you chose.

New in v3.2.0. The chat’s model can read a URL you give it: a reference design, a competitor page, documentation, a JSON endpoint, or a stylesheet.

  • format: "text" (the default) returns the page’s readable text, cheap, and usually all you need.
  • format: "html" returns sanitized markup including the <head>, when the model needs class names to reason about layout.
  • Fetching an HTML page also returns a stylesheets array of absolute CSS URLs. Ask the AI to read one, and it lifts the design’s color tokens and type scale straight from source, far cheaper and more accurate than inferring them from a rendered page.

It cannot search the web: you have to give it a URL. Only text is readable (HTML, CSS, JSON, XML, Markdown, plain text). Images, fonts, and scripts are refused.

The framework is extensible: Pro units register modules through the plugin’s loader, and the emcp_tools_register_modules action lets code register a custom module. See Filters & hooks.