Wagtail MCP
🚧🤖 this is an early vibe-coded prototype of an MCP server for Wagtail. Proceed with caution! Until this is ready, you might prefer to use the wagtail-cli. See CMS with AI, not AI CMS: Wagtail 8.0’s new API for context.
A Model Context Protocol (MCP) server for Wagtail, exposing the Wagtail v3 API operations as model-callable tools.
Capabilities
- 60 curated tools covering the full shipped v3 operation surface: pages
(incl. revisions, move/copy/revert, aliases, translations), images,
documents, snippets, redirects, sites and locales — plus
api_call/api_schema, an OpenAPI-backed escape hatch for anything else. - In-process dispatch — tools call the mounted v3 API inside the process via Django's test client, so auth, permissions, validation and action logic are the real thing. No network hop, no half-reimplemented client.
- Bearer-token auth with Wagtail
APIToken; the v3 API stays the single authority for authorization. - Stateless Streamable HTTP — a Django view that works under WSGI and ASGI, with no extra processes.
Quickstart
wagtail-mcp is a Django app: add wagtail.api.v3 and wagtail_mcp, mount
/api/v3/ and /mcp/, create an API token, point a client at /mcp/. See the
full getting started.
Point a remote MCP client at the endpoint:
{
"mcp": {
"wagtail": {
"type": "remote",
"url": "http://localhost:8000/mcp/",
"headers": {
"Authorization": "Bearer <your-api-token>",
"Content-Type": "application/json"
}
}
}
}
Try the demo
The repo ships demo/, a Wagtail site that mounts both the API and the MCP
endpoint and seeds a demo token:
just demo
Then use demo/'s token (see demo/README.md) in your client config. The
editorial scenario test is a complete
worked example an agent can follow.
Documentation
Using the package: docs.
Changing the package: contributing.
Supported versions
This package supports Wagtail 8.0 and up (the v3 API preview), Django 5.2/6.0, and the compatible Python versions.
Development
Install dependencies, run the tests, lint, and run the demo (asgiref.sync
handles the transport, so just test and just lint are the normal gates):
just install
just test
just lint
just demo
See CONTRIBUTING.md for setup, tests, and releases.
Metadata
Release files for wagtail-mcp 0.3.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| wagtail_mcp-0.3.0.tar.gz | 28.4 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| wagtail_mcp-0.3.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 70.5 kB
Release files / wagtail_mcp-0.3.0.tar.gz
| Download URL | wagtail_mcp-0.3.0.tar.gz |
|---|---|
| Size | 28.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
bafcf636f1e6878748d9eb16aa8ef5bc09baae8b3ba6d1512702f1edeb538b23
|
|
BLAKE2b-256 checksum How to use checksums |
3b29cb831734849740fd774bde18732481ce9a63bc33877bb5cc03d84ac4564e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.11.19 {"installer":{"name":"uv","version":"0.11.19","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / wagtail_mcp-0.3.0-py3-none-any.whl
| Download URL | wagtail_mcp-0.3.0-py3-none-any.whl |
|---|---|
| Size | 42.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
9cc800114c6fa5a9cccaa966bff62367905e1025949e1c9cdb1b8fc1778dbc5e
|
|
BLAKE2b-256 checksum How to use checksums |
e4909b6e434b195cd23b735a557943b7b56907e4a369e0461e4fd63973b597f0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.11.19 {"installer":{"name":"uv","version":"0.11.19","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Security for wagtail-mcp 0.3.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.