CMS Mate Extension
Experimental — 6.1@dev: configuration, APIs and output may change before a stable release. Use this package in development and validate the workflows enabled in your application.
The Mate extension lets a local AI Mate process inspect CMS content through the host Symfony application's kernel and Doctrine setup. It is experimental and distinct from the HTTP API and MCP server plugins.
Install in the host project
composer require softspring/cms-mate-extension:6.1.*@dev
The project needs CMS core, Doctrine ORM, and Symfony AI Mate. The package's Composer extra.ai-mate metadata declares src/Capability, config/config.php, and its instruction file for Mate discovery. It is not a Symfony bundle to add to config/bundles.php.
Run Mate with the intended Symfony application as its root. The bootstrap helper expects an autoloadable App\Kernel, loads that project's .env through Dotenv when available, and uses APP_ENV / APP_DEBUG to boot its container.
Inspect content
The available tools are:
| Tool | Purpose |
|---|---|
cms-content-types |
List configured content types |
cms-content-search |
Search by type, text, site, language, and publication state |
cms-content-get |
Read one item by type and identifier |
Begin by listing content types, then search within the required type, site, and language before reading a specific item. This avoids assuming a project's content model from generic names.
Choose the correct environment
The tools use the application's real connection and services. Read-only tools can still inspect data available to that environment; use a sanitized development database when working with an external model or an untrusted client.
This extension does not import, export, load fixtures, edit content, or offer a public HTTP endpoint. Use CMS API for HTTP clients and CMS MCP for MCP consumers.
Extend a local capability
Place additional tools under Capability, reusable readers under Service, and register their services in the extension's configuration. Keep inputs scoped and use the CMS model/serializer APIs instead of exposing arbitrary database queries.