Sep 24 · 4 min read
Shipping with MCP
Our agent drafts release notes from merged PRs. We review, then publish the exact version.1
await vibecms.posts.publish({
postId,
expectedVersionNumber: 7,
})1. Nothing ships without a human nod.
Tell your agent what to write. It drafts, sends you a private preview, and publishes when you say so. You keep every version and the final say.
Write up this week's release notes. Show me before it goes out.
Drafted “What shipped this week”. Here's a private preview.blog.acme.com/preview/8f3a…
Looks good. Publish it Tuesday at 9.
Scheduled version 3 for Tue 09:00.you can change or cancel it anytime
Your agent drafts. You look at the real page, say yes, and pick when. Every step is saved and reversible.
A private preview for every draft
Your agent sends you a link to the rendered post. Only people with the link can see it, and search engines never do.
Approve the exact version
Publishing pins one version. If it changed after you approved it, the publish is refused.
Schedule it
Pick a time. That exact version goes live on the minute, and your agent can move or cancel it.
Undo anything
Every change is a version, and every action lands in one activity log. Restore any version in one step.
Restored version 5
human · you · just now
Tightened the intro
agent · claude
Published
human · you
Added a code sample
agent · claude
Restored version 2
human · you
Give each agent its own key and decide how far it can go. Keys are shown once, stored as a hash, and revoked in one click.
New keys can only write drafts. The same keys work over MCP, the REST API, and the CLI.
The default. Your agent writes; you publish.
For the agent you trust to ship after you say yes.
Your agent runs the blog. You keep the account.
scopes sites:read posts:read posts:create posts:update assets:write activity:read
scopes sites:read posts:read posts:create posts:update posts:publish assets:write activity:read
scopes sites:read posts:read posts:create posts:update posts:publish posts:archive assets:write activity:read site:write analytics:read
Every tool is an HTTP endpoint, described in OpenAPI 3.1.
Add --json for scripts and CI, or --dry-run to check a change first.
Claude, Codex, Cursor, or a script: connect over MCP, REST, or the CLI. Same rules and the same history everywhere.
32 tools over one endpoint
Draft, preview, schedule, publish, restore, upload, and run the site. Each tool sits behind a scope.
Typed /api/v1 with OpenAPI 3.1
The same operations over plain HTTP. API docs
@vibecms/cli
Posts and media from any shell or CI job, with --json and --dry-run.
vibecms never writes for you. It checks formatting, previews, and warns; your agent does the writing.
Callouts, highlighted code with copy buttons, tables of contents, footnotes, and responsive images. Rendered fast, in light and dark.
Four themes, 9 accents, 5 font pairings. Pick one to preview it.
Your own domain
Point blog.yours.com at it. Certificates are handled for you.
Fast by default
Rendered on Cloudflare's edge, cached close to readers.
Code and math
Highlighting and formulas, loaded only on posts that use them.
Tags and search
Readers browse by tag or search every post.
RSS, sitemap, SEO
Feeds, sitemap, canonical URLs, structured data, and social cards.
Readable by agents
llms.txt, a Markdown version of every page, and discovery files agents look for.
Analytics, AI included
Views and referrers, plus AI crawler hits and visits from AI search.
Old links keep working
Rename a post and its old URL redirects to the new one.
Voice profile
Describe how you write. Agents read it before they draft.
Media on R2
Images up to 10 MB, 5 GB of storage, resized at the edge.
Newsletter signups
A subscribe form on your blog. Export the list as CSV.
Export anytime
Every post as JSON, whenever you want it. No lock-in.
Start free: 5 published posts, 5 drafts at a time, 10 images, no card.
Less than a Claude subscription, and it runs the whole blog.
Prefer your own Cloudflare account? Self-host it free.
vibecms Cloud
Launch pricing
Now $9/monthNow $75/year
40% off · normally $1550% off · normally $150 · $6.25/month
Launch pricing applies automatically at checkout. Locked while you stay subscribed.
Or ask your AI about us.
Everything on this page is in our llms.txt, limits included. Let your favorite model read it and tell you if vibecms fits.
A full blog with 5 published posts, 5 drafts at a time, 10 images, no card. Free posts stay out of search engines. Subscribe for unlimited posts, 5 GB media, analytics, your own domain, search indexing, and unlimited agent requests (fair use).
While launch pricing runs, new subscribers get 40% off monthly or 50% off yearly: $9/month or $75/year instead of $15 or $150. It applies at checkout and stays locked while your subscription is active.
No. Your agent or you write. vibecms stores, versions, checks, and publishes. It never generates content.
Any MCP client: Claude Code, Codex, Cursor, OpenCode, Amp, and others. Scripts can use the REST API or the CLI.
Only if its key allows it. Draft keys can write and send you a preview but not publish. Every change is logged and reversible.
Yes, with a Manage key: settings, links, theme, voice, the signup form, and analytics. Billing, keys, and deleting the blog stay with you.
Yes. Export every post as JSON anytime, or self-host the open-source version on your own Cloudflare account.
Free to start, no card. Connect your agent and publish your first post today.