Repository navigation
modxmcp 1.0.0
First stable release: an MCP server for MODX Revolution 3.x, installed as a regular transport package.
What it is
modxmcp lets MCP clients administer a MODX 3.x site over Streamable HTTP. The endpoint is a MODX resource calling a snippet, so the package ships no web-accessible PHP and works on installs that deny PHP under assets/. Speaks MCP revision 2026-07-28 as well as the older protocol era that every currently-shipping client uses. Stateless, no SSE, zero third-party PHP dependencies.
Highlights
- Writes go through MODX processors, so Manager-side behaviour fires natively: SeoSuite registration, Collections rules, cache invalidation and lifecycle events.
- Token authentication: hashed at rest, per-token scopes, optional expiry and IP allowlist, last-used tracking. A Manager page handles token management and audit review, and the audit log covers rejected calls as well as successful ones.
- Resource and element tools, including full element definition through
element_save— input/output types, captions, option lists and properties for template variables, so MIGX, listbox and image TVs can be created and configured, not just filled. - Schema discovery across every installed extra, handling both package layouts and both metadata formats, with field descriptions taken from each extra's own lexicon.
- Generic object access, opt-in per class for reads and writes, with a hard block on users, sessions, access-control rules and modxmcp's own tables that no setting can override.
- File uploads via
modxmcp_file_upload, written through theBrowser/File/Uploadprocessor so media source access policies, upload settings and the file-manager events all apply exactly as they would for a Manager upload. Ships disabled: the path allowlist is empty on install, and uploads are further gated by an extension allowlist, a size cap, a media source allowlist and a newwrite:mediatoken scope. Server-executable extensions are blocked in every dot-segment of the filename, content containing a PHP open tag is refused regardless of name, and every upload is verified by reading the file back. The audit log stores who wrote which path, never the payload. - Adapters for SeoSuite (redirects), MIGX (item structure) and Collections (container listing), registered only where the extra is installed, plus an
OnMCPRegisterToolsevent so third-party extras can contribute tools — a failing plugin degrades to its tools being absent, never to a dead endpoint. - Build fingerprint in
modxmcp_site_info, computed per request from the shipped PHP files, so you can always tell exactly which build a site is running.
Installing
Upload modxmcp-1.0.0-pl.transport.zip through Package Management, or place it in core/packages/ and install by signature. Requires MODX Revolution 3.x. After installing, create a token on the modxmcp Manager page and point your MCP client at the endpoint resource.
Full details in core/components/modxmcp/docs/changelog.txt.