trackmcp
Back to directory

Repo-native content governance for AI agents. Extract, review, and deliver UI text, docs, and structured content from Git.

4 stars TypeScriptOthers Updated Sep 3, 2026
claude-codecontentraincursormcpcontent-governancedeveloper-toolsi18nmcp-servermodel-context-protocolsdktypescriptwindsurfai-agentsgit

Documentation

Contentrain AI

npm: @contentrain/mcp
npm: contentrain
npm: @contentrain/query
Agent Skills
Docs
License: MIT

Website · Docs · Discord · Twitter · LinkedIn

Extract, govern, and ship structured content from your codebase.

Contentrain helps teams turn hardcoded UI text, docs, and structured content into a governed, reviewable content layer. Agents can extract, create, translate, and update content, while Contentrain enforces schema, Git review, and portable file output.

code
Agent extracts or updates content → Contentrain standardizes → Human reviews → Any platform consumes

Try it in 30 seconds

bash
npx contentrain init        # create .contentrain/ workspace
npx contentrain serve       # open the local review UI

That's it. You now have a governed content workspace with models, validation, review branches, and a local UI — no account, no cloud, no proprietary content format.

Start here:

What Contentrain is for

  • Rescuing hardcoded strings from existing apps and turning them into structured, translatable content
  • Starting new projects with a real content layer instead of scattering copy across components
  • Serving the same content across web, docs, mobile, and backend systems from plain JSON and Markdown in Git

What it is not

  • Not an AI writing app
  • Not a database-first or dashboard-first CMS replacement for every team
  • Not a proprietary content runtime that locks your app to one platform

What it looks like

Before: Hardcoded strings scattered across your codebase — no structure, no translations, no review.

tsx
export default function Hero() {
  return (
    
  )
}

After: Content lives in `.contentrain/`, typed and structured. Source files use i18n keys.

tsx
export default function Hero() {
  const t = useTranslations()
  return (
    
  )
}
json
// .contentrain/content/marketing/hero/en.json
{
  "cta": "Get Started",
  "subtitle": "Start your free trial today",
  "title": "Welcome to our platform"
}

The normalize flow extracts strings, creates models, and patches your source files — all through reviewable git branches.

This is the strongest entry point into the product:

take the content chaos already in your codebase and turn it into a governed, reviewable content layer.

How it works

code
┌─────────────┐     ┌──────────────────┐     ┌──────────────┐
│  AI Agent    │────▶│  MCP (27 tools)  │────▶│ .contentrain/│
│  (decides)   │     │  (enforces)      │     │ (stores)     │
└─────────────┘     └──────────────────┘     └──────┬───────┘
                                                     │
                    ┌──────────────────┐              │
                    │  Review UI / Git │◀─────────────┘
                    │  (human approves)│
                    └──────────────────┘
  • Agent decides what content should exist and where it should come from
  • Contentrain enforces schemas, validation, canonical serialization, and git workflow
  • Human reviews through branches, PRs, or the local Serve UI
  • Output is plain JSON + Markdown that any language or framework can consume

4 content kinds

KindWhat it storesStorageExample
CollectionMultiple typed entriesJSON object-mapBlog posts, products, team
SingletonSingle entry per localeJSON objectHero section, site config
DocumentMarkdown + frontmatter`.md` filesDocs, articles, changelog
DictionaryFlat key-value stringsJSON flat mapi18n translations, UI labels

27 field types (string, email, url, image, relation, array, object, markdown, ...) with built-in validation.

Use your content anywhere

Content is plain JSON and Markdown. Any language reads it directly.

For TypeScript projects, generate a typed SDK:

bash
npx contentrain generate
ts
import { query, singleton, dictionary, document } from '#contentrain'

const hero    = singleton('hero').locale('en').get()
const posts   = query('blog-post').locale('en').include('author').all()
const labels  = dictionary('ui-labels').locale('tr').get('auth.login')
const article = document('docs').locale('en').bySlug('getting-started')

Works with Nuxt, Next.js, Astro, SvelteKit, Vue, React, Node, Go, Python, Swift, Flutter, and 20+ stacks.

Why teams use it

  • Git-native — every write goes through worktree isolation + review branches
  • Normalize flow — scan codebase for hardcoded strings → extract → create i18n-ready content → patch source files
  • MCP engine — 27 tools (22 core + 5 media) over stdio or HTTP transport, works with Claude Code, Cursor, Windsurf, or any MCP client
  • Provider-agnostic engine — the same tool surface runs over a local worktree, GitHub, or GitLab (self-hosted included) with zero tool-code changes. HTTP transport available for remote drivers such as Studio.
  • Canonical serialization — sorted keys, deterministic output, clean git diffs, conflict-free parallel edits
  • Agent rules & skills — behavioral policies and step-by-step workflows ship as npm packages
  • Serve UI — local web dashboard for browsing models, content, validation, and normalize status
  • Framework-agnostic — MCP doesn't know your framework. Agent + skills handle stack-specific logic

Agent Skills

This repo ships 15 Agent Skills — reusable workflow procedures that any AI coding agent can load on demand.

Install all skills to your agent:

bash
npx skills add Contentrain/ai/packages/skills

Or install a specific skill:

bash
npx skills add Contentrain/ai/packages/skills --skill contentrain-normalize

Skills work with Claude Code, Cursor, Windsurf, GitHub Copilot, OpenAI Codex, Gemini CLI, and 40+ other agents.

See `AGENTS.md` for the full skill catalog and agent guidance.

Packages

PackagenpmRole
`@contentrain/mcp`![npm](https://www.npmjs.com/package/@contentrain/mcp)26 MCP tools + stdio / HTTP transport + Local / GitHub / GitLab providers
`contentrain`![npm](https://www.npmjs.com/package/contentrain)CLI + Serve UI + MCP stdio entrypoint
`@contentrain/query`![npm](https://www.npmjs.com/package/@contentrain/query)Generated TypeScript query SDK
`@contentrain/types`![npm](https://www.npmjs.com/package/@contentrain/types)Shared type definitions + constants
`@contentrain/rules`![npm](https://www.npmjs.com/package/@contentrain/rules)Agent quality rules for IDE integration
`@contentrain/skills`![npm](https://www.npmjs.com/package/@contentrain/skills)Workflow procedures + framework guides

Starter Templates

Production-ready templates with Contentrain content models, generated SDK client, and framework-specific patterns:

TemplateFrameworkUse Case
astro-blogAstroBlog / editorial
astro-landingAstroLanding page
next-commerceNext.jsE-commerce storytelling
next-multi-surface-saasNext.jsMarketing + app + docs unified
next-saas-dashboardNext.jsSaaS dashboard UI copy
next-white-label-portalNext.jsWhite-label / multi-tenant
nuxt-admin-consoleNuxtAdmin console / operations
nuxt-saasNuxtSaaS marketing site
sveltekit-editorialSvelteKitEditorial / publication
vitepress-docsVitePressDocumentation site

Each template is a GitHub template repo — click "Use this template" to start.

Quick reference

bash
npx contentrain init         # initialize project
npx contentrain serve        # local review UI (port 3333)
npx contentrain serve --stdio # MCP over stdio for IDE agents
npx contentrain validate     # check content health
npx contentrain generate     # generate typed SDK client
npx contentrain status       # project overview
npx contentrain doctor       # setup health check
npx contentrain reconcile    # merge a diverged base branch, content-aware
npx contentrain studio login   # authenticate with Studio
npx contentrain studio connect # connect repo to Studio project

Documentation

  • **2-Minute Demo** — the fastest way to understand the product
  • **Getting Started** — install, connect an agent, and run the first workflow
  • **Normalize Guide** — the main hardcoded-string rescue flow
  • **Ecosystem Map** — package-to-product bridges across AI and Studio
  • **Contentrain Studio** — open-core team operations for Git-native structured content, self-hostable or available as managed plans (Starter/Pro/Enterprise)
  • **Full Docs** — guides, package reference, and framework integration

Development

bash
pnpm install && pnpm build && pnpm test

See `RELEASING.md` for the versioning and publish workflow.

Community

If Contentrain AI is useful to you, consider giving it a star — it helps others discover the project.

License

MIT

Frequently asked questions

What is ai?

ai is Repo-native content governance for AI agents. Extract, review, and deliver UI text, docs, and structured content from Git.

How do I install ai?

Open the GitHub repository and follow its README. Most MCP servers are added to your client's MCP config, then called by your agent.

Is ai open source?

Yes — it is hosted on GitHub at https://github.com/Contentrain/ai and has 4 stars.

Related MCP tools

Run your own MCP server? See who uses it and what to fix.

Measure it with TrackMCP