Inhalt - MCP-native CMS

Inhalt The CMS your AI tools can run.

Community: Submitted by a user or imported; check the owner before granting accessOnlineNo sign-inGlobalFreeCan modify data

What it can do

  • Schema.Read: List the project's content types and their typed field definitions.
  • Schema.Create: Define a new content type. `fields` is an array of typed field definitions (string, richtext, reference, enum, list). A richtext field takes an optional `format`: html (default), markdo
  • Schema.Update: Update a content type's name and/or fields. The key is immutable. Editing fields does not migrate existing entries.

What data it sees

Do you need an account

No: the server works without sign-in

Inhalt

The CMS your AI tools can run.

Inhalt is an open-source, MCP-native CMS. Instead of clicking through a traditional admin UI, the content layer is exposed through the Model Context Protocol (MCP). Any MCP client connects to the Inhalt server and you create and edit content just by chatting.

The protocol is the API. The client reads your content schema, finds the right entry, and proposes a clean, typed patch against real fields, never freeform text.

  • Website: inhalt.tech
  • MCP endpoint: https://inhalt.tech
  • License: MIT
  • Self-hostable: one container, your database, your keys. A hosted edge is also available.
Server tool list (11)

Raw names from tools/list. Only developers need these.

schema.readList the project's content types and their typed field definitions.
schema.createDefine a new content type. `fields` is an array of typed field definitions (string, richtext, reference, enum, list). A richtext field takes an optional `format`: html (default), markdown, or plaintext.
schema.updateUpdate a content type's name and/or fields. The key is immutable. Editing fields does not migrate existing entries.
schema.deleteDelete a content type. This permanently removes the type and every entry it holds.
entries.listList entries of a content type. Optionally filter by status and paginate.
entries.queryFind entries whose typed fields match the given values (matched against the working draft).
entries.getFetch one entry by slug. `view` selects the draft (default) or published copy.
entries.createCreate a new draft entry. `data` is validated against the content type's fields.
entries.patchApply a typed patch to an entry's working draft. Only the given fields change.
entries.publishPublish an entry: copy its working draft to the published copy served by the read API.
entries.deleteDelete an entry permanently.