The AI
Content Engine.
The open-source CMS that's database-backed and Markdown-first. Import your existing project in minutes, edit in a collaborative Studio, and let AI agents work with your content at scale.
Core engine features
Switch CMS in weeks, not quarters.
Open-source migration tools for Contentful, Sanity, Strapi, and existing Markdown projects. Run cms init on your repo and MDCMS detects your schema, imports your content, and sets up Studio. Your frontend doesn't change.
Built for teams that include AI agents.
Not an AI button bolted onto a settings panel. AI is a first-class user across your content, config, and codebase.
Open source. MIT. Forever.
PostgreSQL and Markdown on infrastructure you control. No proprietary API between you and your own data. Fork it, extend it, shape the roadmap — the community drives what gets built next.
Three interfaces, one data layer.
Developers define schemas in code and sync via CLI. Editors get a collaborative visual Studio they never have to leave. AI agents process content at scale through the same API. Nobody waits for someone else.
Up and running in minutes
AI-native across your entire stack
MDCMS is built from the ground up to support LLM agents as first-class citizens in your workflow.
Content
Pull your entire library locally via CLI. Run it through Claude, GPT, or any local model for translations, rewrites, audits, or restructuring.
Config
Describe what you need in natural language and the agent updates your mdcms.config.ts directly. Schema changes, new content types, field modifications — through MCP or the CLI, validated against your existing configuration before anything syncs.
Codebase
The module system exposes type-safe contracts that AI agents can read, implement against, and extend. Build integrations, create custom endpoints, add new capabilities — all through AI-assisted development. The architecture is documented in .ai/ so agents have the context they need from the first prompt.
Everything you need.
Nothing you don't.
Multi-locale content with automatic fallback chains and translation workflows.
Multi-locale content with automatic fallback chains and translation workflows.
See MDX components render in real-time as you write content.
See MDX components render in real-time as you write content.
Role-based access control for editors, reviewers, and AI agents.
Role-based access control for editors, reviewers, and AI agents.
Model Context Protocol server for AI agent content operations.
Model Context Protocol server for AI agent content operations.
Full content revision history with diff view and one-click rollback.
Full content revision history with diff view and one-click rollback.
Draft, staging, and production content environments with promotion flows.
Draft, staging, and production content environments with promotion flows.
Define content types in TypeScript with automatic database migrations.
Define content types in TypeScript with automatic database migrations.
Enterprise single sign-on with SAML, OIDC, and team management.
Enterprise single sign-on with SAML, OIDC, and team management.
Built in the open.
Join us.
Three decisions.
Everything else follows.
Your content model lives in the repo.
Types, fields, and validation are defined in mdcms.config.ts and checked into git. Structure changes go through pull requests - no drift between what your code expects and what the CMS delivers.
$ mdcms schema sync Schema synced (hash: 8f3c1b7a2d41) Affected types: BlogPost, Author, Page
AI agents work the same way your team does.
No special integration needed. The config is a file agents can edit. The CLI is commands agents can run. The API is the same for every caller. An agent that creates a blog post gets the same validation, the same permissions, and the same audit trail as a developer.
$ mdcms push --validate Validating against schema 8f3c1b7... blog/weekly-roundup.mdx ✓ valid (new) blog/hello-world.mdx ✓ valid (body updated) 2 documents · pushed to marketing / production
The Studio lives inside your app.
The Studio is just a React component running inside your app. It has access to your code, your design system, and your custom components. When an editor drops a component into a page, they see the real thing - not a placeholder.
// app/admin/[[...path]]/page.tsx import { Studio } from '@mdcms/studio' import { PricingTable, Chart, Callout } from '@/components' export default function AdminPage() { return <Studio components={{ PricingTable, Chart, Callout }} /> }
Your content deserves better infrastructure.
Start building the sovereign future of your enterprise content today.