content-mcp
Enables content editing through GitHub: editors sign in with GitHub, the server reads and writes Markdown content files via the GitHub API, commits edits to a staging branch, and merges staging into main to publish, using GitHub for authentication and audit history.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@content-mcpupdate the about page to say we're based in Austin, then preview it"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
content-mcp
You don't need a CMS. A CMS was never really about the database. Its job was a restricted editing interface: the content team changes the words without breaking the design. This MCP server is that interface: it runs inside the AI app your team already uses, and has no per-seat pricing or lock-in.
Developers build and change the site with Claude Code. The site lives in GitHub.
The content team edits it by talking to Claude through this server. It can only touch content files, and code checks every edit. Asking it to "make the headline red" gets a polite no, because there's no field for colour.
Content team ──Claude──▶ content-mcp (Cloudflare Worker) ──GitHub API, as the signed-in user
│
commits to `staging` ──▶ preview URL
`publish` merges into `main` ──▶ live siteGit is the database. Pages and posts are Markdown files in the site's repo.
GitHub is the user system. Editors sign in with GitHub. Anyone with write access to the repo can edit, and every commit carries their name, so
git logis the audit trail.Failing safe is the default. The site validates its own content at build time. A bad edit can't reach the preview or the live site, and
publishrefuses while the preview is broken.
10-minute setup
You need a Cloudflare account, a GitHub account, and a site that follows
CONTRACT.md (see below).
Use this template on GitHub, clone your copy, and run
npm install.KV namespace for sign-in state:
npx wrangler kv namespace create OAUTH_KVPaste the
idit prints intokv_namespacesinwrangler.jsonc.GitHub OAuth app. If the site repo is in a GitHub organization, create the app under that org (Settings → Developer settings → OAuth Apps): new orgs block personal OAuth apps from their repos. Otherwise use github.com/settings/developers.
Homepage URL:
https://content-mcp.<your-subdomain>.workers.devCallback URL:
https://content-mcp.<your-subdomain>.workers.dev/callback
Secrets:
npx wrangler secret put GITHUB_CLIENT_ID npx wrangler secret put GITHUB_CLIENT_SECRET openssl rand -hex 32 | npx wrangler secret put COOKIE_ENCRYPTION_KEYYour site: set the four
varsinwrangler.jsonc, the same file as the KV id:"GITHUB_OWNER": "your-github-user", "GITHUB_REPO": "your-site-repo", "LIVE_URL": "https://your-site-repo.<subdomain>.workers.dev", "PREVIEW_URL": "https://staging-your-site-repo.<subdomain>.workers.dev"Deploy:
npx wrangler deploy. A brand-new Worker can take about 3 minutes to reach every Cloudflare location. Until then, requests can fail with errors 1104 or 1042.Connect Claude: Settings → Connectors → Add custom connector →
https://content-mcp.<your-subdomain>.workers.dev/mcp, then sign in with GitHub. Ask: "What can I edit on the website?"
Related MCP server: Isomorphic
A compatible site
SITE_PROMPT.md is a prompt for Claude Code that builds a
complete compatible site (Astro, Tailwind, Cloudflare Workers) in an empty folder.
Edit the business, the GitHub repo name and the images folder in it first.
Any stack works if it follows CONTRACT.md:
content lives in
content/pages/*.mdandcontent/blog/*.md;the site fails its build on bad content;
it deploys with Cloudflare Workers Builds with preview builds on. Branch builds run
npx wrangler preview, which needs"previews": {}in the site'swrangler.jsonc. Thestagingbranch then has a stable preview URL.
Tools
Tool | What it does |
| Pages and their fields, posts, the image library, the preview status (ready / building / failed) and what's waiting to go live |
| One page or post, as the preview has it |
| Changes fields or the main text of an existing page |
| Creates, updates or unpublishes ( |
| Merges |
| Resets |
Every edit is validated in code (src/validate.ts) before it's
committed, and the refusal message comes from the validator, not the model. Run
the tests with npm test.
Honest limits
The
repoOAuth scope is broad. It lets the server act on every repo the signed-in account can reach, not just the site. Sign in with accounts that can only reach the site. A GitHub App would narrow this to one repo (not built yet).No image uploads. Posts and pages pick from
public/images/library/, which the developer fills.No new pages or layouts. The developer creates pages; the content team edits them.
One editor at a time. If two people edit the same file at once, the second is asked to try again. Nothing is silently overwritten.
One site per server. Deploy a copy per client site.
Build errors aren't shown to editors. Cloudflare's GitHub check reports only that a build failed. The reason is in the Cloudflare build log, for the developer.
wrangler previewis in open beta (as of October 2026).No custom domains in this setup (
workers.devonly).
Built on Cloudflare's remote MCP GitHub OAuth template. Before using it in production, read Cloudflare's guide to securing MCP servers.
MIT licensed.
This server cannot be deployed
Maintenance
Related MCP Connectors
Read, edit, publish, and preview your pepita websites from Claude.
AI website builder: build, publish and edit websites from Claude, ChatGPT or Claude Code.
Read, write, translate and sync WordPress and Webflow blog articles from Claude.
Create, edit, preview, publish, and manage web pages from MCP-capable AI clients.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceEnables AI agents to manage git-backed website content through natural language, with tools to create, update, delete, and draft pages that are schema-validated and committed to a repository.2 npm1MIT
- AlicenseNot gradedqualityAmaintenanceEnables Claude to maintain a team knowledge base stored as markdown in a GitHub repository, with tools for search, edit, linking, and interactive views.1 npm2AGPL 3.0

pepita MCP serverofficial
AlicenseNot gradedqualityBmaintenanceLets a local Claude read and edit pepita sites, publish them, and manage shareable preview links.1,293 npmMIT- FlicenseNot gradedqualityBmaintenanceEnables surgical markdown edits across GitHub repositories through a claude.ai custom connector, batching multiple changes into exactly one commit.3-