@contentrain/mcp weekly downloads statistics
By contentrain · npm · Claude Code
Local-first MCP server for AI-generated content governance — 27 deterministic tools (22 core + 5 media), stdio + HTTP transports, Local / GitHub / GitLab providers
@contentrain/mcp has 560 recorded weekly downloads on npm, a decrease of 59.0% over the past 30 days.
It ranks #1480 of 2,255 tracked npm listings by weekly downloads.
Over 90 days, weekly downloads changed by -64.2%.
PluginStats has 543 daily observations since Apr 23, 2025; the latest is from Oct 17, 2026.
About @contentrain/mcp
@contentrain/mcp
Provider-agnostic MCP engine for Contentrain — local-first by default, with optional GitHub and GitLab backends and an HTTP transport for remote drivers such as Studio.
Start here:
• 2-minute product demo • MCP package docs • Normalize guide
Contentrain is AI-generated content governance infrastructure:
• agent produces content decisions • MCP applies deterministic filesystem and git workflow • humans review and merge • the system keeps schema, locale, and serialization consistent
This package is the runtime core behind Contentrain's MCP integration. It can be used as:
• a stdio MCP server (contentrain-mcp) • an embeddable server (createServer(projectRoot)) • a low-level toolkit for config, models, content, validation, scanning, and git transaction flow
Install
Requirements:
• Node.js 22+ • git available on the machine
Optional parser support for higher-quality source scanning:
• @vue/compiler-sfc • @astrojs/compiler • svelte
They are listed as optional dependencies. The scanner still works without them, but Vue/Astro/Svelte detection is stronger when they are installed.
What It Does
@contentrain/mcp manages a .contentrain/ directory in your project and exposes MCP tools for:
• project initialization • model creation and deletion • content save, delete, and list • validation and auto-fix • normalize scan and apply flows • bulk operations • branch submission, review-mode merge, and branch-health awareness • project health checking (doctor)
All write operations are designed around git-backed safety:
• a dedicated contentrain branch serves as the content state single source of truth • each write creates a temporary worktree on a feature branch forked from contentrain (branch name: cr/{operation}/{model}/{locale}/{timestamp}-{suffix}) • auto-merge: feature merges into contentrain, baseBranch advanced via update-ref, .contentrain/ files selectively synced to developer's working tree when the base branch is the one checked out • baseBranch = CONTENTRAIN_BRANCH env → repository.default_branch → remote HEAD → main → master → checked-out branch (last resort). A write made on a feature branch never merges, moves or pushes that branch • plans are read from the working tree but committed on the fetched contentrain tip: JSON changes are carried over key by key, so entries another writer pushed are kept; a same-value conflict writes nothing and returns CONTENT_WORKING_TREE_STALE • on a checked-out feature branch, which writes do not update, .contentrain/** is read from the contentrain ref instead (source files still from the working tree); read tools report it as content_source • review: feature branch pushed to remote for team review; once merged (or deleted), its remote copy is removed too — best-effort, opt out with remoteBranchCleanup: false in config.json • local mode (git.push: false or CONTENTRAIN_NO_PUSH=1): nothing is ever pushed or deleted on the remote, and every result says so — see Git environment and local mode • every local write's git block names the resolved base_branch; when it is not the checked-out branch, the result's warning says your working tree was left alone • commit hooks: skipped on machine commits by default; git.verify: true or CONTENTRAIN_VERIFY=1 runs them, and a rejecting hook fails the write with its output — see Commit hooks • merged-branch detection survives base-history rewrites (ancestry check with a patch-id fallback), so rebases/squashes don't strand stale branches • developer's working tree is never mutated during MCP git operations (no stash, no checkout, no merge) • context.json never lands on feature branches — it is regenerated on the contentrain branch after merge (locally by the transaction layer; in remote flows by the orchestrator that owns the merge) • canonical JSON output — sorted keys, 2-space indent, trailing newline • validation + next-step hints surfaced to the caller
Tool Surface
27 MCP tools — 22 core + 5 media — with annotations (readOnlyHint, destructiveHint, idempotentHint, and openWorldHint: false everywhere except contentrain_media_ingest, which fetches a caller-supplied URL server-side) for client safety hints.
Tool listing is capability-aware. tools/list only advertises tools the resolved provider + projectRoot pair can actually satisfy. A local stdio server lists the 22 core tools; a session driven by a remote provider (GitHub/GitLab, no local checkout) lists only the remote-safe subset — status, describe, describe_format, model_save, model_delete, content_save, content_delete, content_list, vocabulary_save, vocabulary_delete, validate. The requirement map lives in TOOL_REQUIREMENTS (@contentrain/mcp/tools/availability).
| Tool | Purpose | Read-only | Destructive |…
Description from the npm listing.
- contentrain
- mcp
- model-context-protocol
- ai
- content-governance
- git
- i18n
- normalize
- local-first
- platform-independent
- claude
- claude-code
- codex
- cursor
- windsurf
Where @contentrain/mcp sits in the listing
Each band is one page of 20. Weekly downloads on a log scale. Placement is projected from weekly downloads, so it can differ from the marketplace's own sort order. Hover a dot to see the listing.
Charts
Images: 30d · 1y · all time · 1600×900 dark
Adoption over time
7/30/90-day growth
Filled points are observed values; hollow points come from Internet Archive snapshots of the listing page. Dashed segments span periods with no observations — values between points are not interpolated.
Recent observations
Full history (543)Similar npm Claude Code plugins
Data source
Weekly downloads (trailing 7 complete days) come from the official npm downloads API. Downloads include CI and mirrors and are not equivalent to installs or users. npm publishes no ratings.
Listing: https://www.npmjs.com/package/@contentrain/mcp. First seen Oct 16, 2026; last successful collection Oct 19, 2026. See the methodology.