C
contentworker/contentworker
API-first, AI-agent-native headless CMS, edge-native on Cloudflare: Workers, D1, Durable Objects, Workflows,…
View on GitHub ↗Link checked 2026-11-12 · HTTP 200 · opens the vendor's own site
Install & config
Client config (built from the install command this repo gives)
{
"mcpServers": {
"contentworker-contentworker": {
"command": "npx",
"args": ["wrangler"]
}
}
}Parsed from the README we fetched on 2026-11-01; we have not executed it.
command/args come from the install command the repository states. When it is ambiguous, the project README wins.
VS Code (.vscode/mcp.json - the key is servers)
{
"servers": {
"contentworker-contentworker": {
"command": "npx",
"args": ["wrangler"]
}
}
}Same server, but VS Code keeps it under <code>servers</code>.
Claude Code (command line)
claude mcp add --transport stdio contentworker-contentworker -- npx wrangler
Claude Code does not read a config file; add the server with this command.
Key names differ by client: Clients & CLI
- Star count
- 0 ★ · contentworker/contentworker · read from the GitHub search API · (checked 2026-11-13 20:00:50)
- Source
- read directly from its GitHub page · type: open-source project
- Harvest history
- first seen 2026-11-02 · last seen 2026-11-14 · seen 13× · listed by 3 sources
- Score
- score 303 · 3 sources · repo
- Install
npx wrangler
FAQ (answers come from our records)
How do I install it?
The repository provides this install command:
npx wrangler. It comes from the repository itself; we cannot guarantee it runs as-is in your client.Who is it for?
We filed it under these tags: 开源项目. The tags come from the entry itself, not a taxonomy we imposed.
Who maintains it?
repository
contentworker/contentworker;first catalogued 2026-11-02;last seen 2026-11-14。There is no official certification or quality rating here — we record sources and dates only.# contentworker
以下摘录自该仓库的 README(片段) · 在 GitHub 读完整 README →
A composable, API-first, AI-agentic-first headless CMS: the AI surface is a first-class
client rather than a bolt-on. Model structured content once and deliver it anywhere (web, mobile,
kiosks, email).
It runs entirely on Cloudflare. D1 is the system of record, with Workers, Queues, KV, R2,
Durable Objects, Workflows, Vectorize, Workers AI (through AI Gateway), Images, Stream, Email
Sending and Worker Loader behind it. The core is strict ports & adapters, so every platform
service sits behind an interface and the business logic never touches a binding. Each customer
gets one isolated deployment (its own D1, R2, KV, queues and Workers); spaces and environments
live inside that deployment's D1.
## Highlights
Workers split by traffic profile. The admin (apps/web), the Management and Preview API
(apps/api), the public Delivery API (apps/delivery) and the asynchronous engine
(apps/engine) are separate Workers, each with its own CPU limit, placement and failure blast
radius.
Hexagonal core. domain depends on nothing; application depends only on ports;
Cloudflare adapters (@contentworker/adapters, one subpath each) and the D1 store
(@contentworker/db) are bound in one place, @contentworker/platform's wire.ts.
One set of use-cases, every caller. The HTTP API, the MCP server (165 tools), the queue
consumers and the agents call the same application use-cases, so an AI agent can never do
what a human API client couldn't, and every write goes through the same validation and RBAC.
Structured content model. Typed fields with validations, localization with fallback
chains, references with referential integrity, components, and assets in R2.
Three API surfaces. Management (CMA), Delivery (CDA) and Preview (CPA), each gated by
scoped, hashed API keys and roles with per-type and per-field grants. Delivery is REST plus a
per-environment GraphQL schema generated from the model, served from a cache keyed by what
the caller may see; the key is checked on every request, before the cache.
Event-driven backbone. Every write commits one D1 batch that includes its domain event in a
transactional outbox. A post-commit nudge (plus a one-minute cron sweep) relays it to Queues,
whose engine consumer fans it out to webhooks, functions, search indexing, live SSE, delivery
cache purges and the agents.
AI built in. Tiered model selection (flagship/balanced/fast) on Workers AI,
schema-validated generation, hybrid search (FTS5 shards in Durable Objects plus Vectorize),
and durable enrich/moderate/curate/repurpose agents and editorial workflows on Cloudflare
Workflows.
Sandboxed plugins. Third-party write-path plugins run in per-plugin Worker Loader isolates
with no network and only the capabilities a person approved.
## Documentation
The public docs (guides for editors and integrators) are the Starlight site in apps/docs. The
maintainer docs live in docs/ (start at the index):
| Doc | What's in it |
| Architecture | The Workers, the hexagonal layers, the package map, request and event flows |
| Domain model | Field types, validation, entry state machine, locales, references, events |
| API reference | Every HTTP endpoint, the query language, hybrid search, live SSE |
client rather than a bolt-on. Model structured content once and deliver it anywhere (web, mobile,
kiosks, email).
It runs entirely on Cloudflare. D1 is the system of record, with Workers, Queues, KV, R2,
Durable Objects, Workflows, Vectorize, Workers AI (through AI Gateway), Images, Stream, Email
Sending and Worker Loader behind it. The core is strict ports & adapters, so every platform
service sits behind an interface and the business logic never touches a binding. Each customer
gets one isolated deployment (its own D1, R2, KV, queues and Workers); spaces and environments
live inside that deployment's D1.
## Highlights
Workers split by traffic profile. The admin (apps/web), the Management and Preview API
(apps/api), the public Delivery API (apps/delivery) and the asynchronous engine
(apps/engine) are separate Workers, each with its own CPU limit, placement and failure blast
radius.
Hexagonal core. domain depends on nothing; application depends only on ports;
Cloudflare adapters (@contentworker/adapters, one subpath each) and the D1 store
(@contentworker/db) are bound in one place, @contentworker/platform's wire.ts.
One set of use-cases, every caller. The HTTP API, the MCP server (165 tools), the queue
consumers and the agents call the same application use-cases, so an AI agent can never do
what a human API client couldn't, and every write goes through the same validation and RBAC.
Structured content model. Typed fields with validations, localization with fallback
chains, references with referential integrity, components, and assets in R2.
Three API surfaces. Management (CMA), Delivery (CDA) and Preview (CPA), each gated by
scoped, hashed API keys and roles with per-type and per-field grants. Delivery is REST plus a
per-environment GraphQL schema generated from the model, served from a cache keyed by what
the caller may see; the key is checked on every request, before the cache.
Event-driven backbone. Every write commits one D1 batch that includes its domain event in a
transactional outbox. A post-commit nudge (plus a one-minute cron sweep) relays it to Queues,
whose engine consumer fans it out to webhooks, functions, search indexing, live SSE, delivery
cache purges and the agents.
AI built in. Tiered model selection (flagship/balanced/fast) on Workers AI,
schema-validated generation, hybrid search (FTS5 shards in Durable Objects plus Vectorize),
and durable enrich/moderate/curate/repurpose agents and editorial workflows on Cloudflare
Workflows.
Sandboxed plugins. Third-party write-path plugins run in per-plugin Worker Loader isolates
with no network and only the capabilities a person approved.
## Documentation
The public docs (guides for editors and integrators) are the Starlight site in apps/docs. The
maintainer docs live in docs/ (start at the index):
| Doc | What's in it |
| Architecture | The Workers, the hexagonal layers, the package map, request and event flows |
| Domain model | Field types, validation, entry state machine, locales, references, events |
| API reference | Every HTTP endpoint, the query language, hybrid search, live SSE |
Listed badge (optional)
Copy this line into the README if you want the listing mark. Optional, and it does not affect being listed.
[](https://anclum.com/en/s/contentworker-contentworker/)
- Source
- github · https://github.com/contentworker/contentworker
- Browse by field
- Open source
- Listed by
- 3 independent sources
- added
- today
More like this
Filed under
Every tag opens the full list for that filter. Counts are the live catalogue figures.