Skip to main content

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)

Source distribution for wagtail-mcp 0.3.0
File Size Uploaded Provenance
wagtail_mcp-0.3.0.tar.gz 28.4 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for wagtail-mcp 0.3.0
File Interpreter ABI Platform
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.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page