Version 1.0.0

September 7, 2026

First release. Content modelling tools for Craft MCP: create, modify and delete fields, entry types and sections by talking to an AI assistant.

Added

  • 16 MCP tools. Create, plan and apply for fields, entry types and sections, plus field_agent_list_field_types, which reports what type accepts and what settings each type takes.
  • Plan/apply for every destructive operation. A read-only plan_* tool reports what would happen and mints a single-use id; the destructive tool spends it. Plans are fingerprinted against their arguments, single-use, and expire after fifteen minutes, so there is no route to a silent destructive change — a model cannot author a plan id, and getting one puts the impact report in the transcript where a person can see it.
  • The tools withhold themselves entirely when allowAdminChanges is off, which is the correct production setting. They never reach tools/list, so an agent cannot call one or be talked into calling one.
  • An admin check on every writing tool. Craft MCP's own authorization seams are element-typed and schema is not an element, so this is checked deliberately rather than inherited.
  • Impact reports that describe what Craft actually does, not what the words suggest: a field type change migrates nothing and the new type reinterprets the stored value; deleting a field leaves its values in place, unreachable, until each entry is next saved with a changed field.
  • Field types register through a public event, including the 27 core ones. An unregistered type still works through a best-effort create, with the limitation reported, so third-party field types work with nothing written for them.
  • Matrix support with no Matrix-specific tools. A whole Matrix, its block types and their fields, can be created in one call and nested as deep as you like, because a Matrix block type is an entry type in Craft 5.

Known limitations

Gaps in evidence rather than known defects. Read them before pointing this at anything you cannot restore.

  • Craft's compatibility check is not a survival check, and this plugin trusts it anyway. areFieldTypesCompatible() compares database types and gets it wrong in both directions. Matching Craft's own bar is deliberate — a third-party plugin should not be more restrictive than the CMS it wraps — but a client who loses content will not care whose bar it was.
  • One Craft version. Everything here has only ever run against Craft 5.11.1. The ^5.10 floor is where every API used exists and behaves, not a version that has been tested.
  • One dataset, and a small one. Impact reports are accurate at that scale. Counting happens in SQL rather than PHP, so it should hold up, but no report has been checked against a content model of any real size.
  • No concurrency testing. Two MCP clients against one install has never been tried. The request boundary is depth-counted within a process; nothing coordinates across processes.