Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
作者による説明(英語の原文)
A blog CMS that AI agents write into over MCP: Markdown drafts, versions, media, human approval.
この3つを1つのスコアにまとめることはしません。意見、測定、人気はそれぞれ別のものだからです。
このサーバーのやさしい解説はまだ書いていません。以下はレジストリから読み取った事実です。
使っているAIアプリを選んで、設定をコピーしてください。
必要なもの
どのアプリを使っていますか?
上でアプリを選んでください。選んだアプリを覚えておくので、次からはボタンに「…にインストール」と表示されます。
ウェブ、デスクトップ、モバイルのClaudeで使えます:
https://app.vibecms.dev/mcpターミナルでこれを実行します
claude mcp add --transport http vibecms https://app.vibecms.dev/mcpプロジェクトの .cursor/mcp.json、または ~/.cursor/mcp.json に貼り付けます
{
"mcpServers": {
"vibecms": {
"url": "https://app.vibecms.dev/mcp"
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
プロジェクトの .vscode/mcp.json に貼り付けます
{
"servers": {
"vibecms": {
"type": "http",
"url": "https://app.vibecms.dev/mcp"
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
ChatGPTがつなげるのは、インターネット上のサーバーだけです:
https://app.vibecms.dev/mcpメニューの名前は、プランや時期によって少し違うことがあります。
選んだアプリは、この端末のCookieに保存されます。アカウントは不要です。
この設定は、作者のレジストリ登録情報から作成しています。READMEと違う場合は、READMEに従ってください。
このサーバーのツール一覧はまだ読み取っていません。エンドポイントは順番にチェックしています。
誰でも見られる情報をチェックしており、コードは読んでいません。当てはまらない項目は数に入れていません。 · 2026年11月6日にチェック
レジストリ名はドメイン vibecms.dev で確認済みです(レジストリがドメインの所有を確認しています)
このリポジトリはまだGitHubから読み取っていません
このリポジトリはまだGitHubから読み取っていません
まだチェックしていません。エンドポイントは順番にチェックしています
まだチェックしていません。エンドポイントは順番にチェックしています
まだチェックしていません。エンドポイントをチェックするときにツール一覧を読み取ります
レジストリでこのカテゴリにある有効なすべてのサーバーと比較しています。スターは、公開者がリポジトリの所有者である場合だけ数えます。
当てはまる基本チェック1項目のうち1項目に合格しました。コードは読んでいません。キーやトークンを追加する前に、サーバーがどんなアクセスを求めているかを確認し、必要な権限だけを持つキーを使ってください。
レジストリには必須のキーは載っていません。ただし、最初に使うときにサインインを求めるサーバーもあります。
作者のクラウドで動きます。インストール不要でインターネット経由でつながりますが、送った内容は作者のサーバーを通ります。
GitHubリポジトリの最終更新は–、最新バージョン(0.2.0)がレジストリに届いたのは4 日前です。
Claude Desktop、Claude Code、Cursor、VS CodeなどのMCP対応アプリで使えます。URLでつながるので、リモートMCPサーバーに対応したアプリ(開発者モードのChatGPTなど)でも使えます。
同じカテゴリには:Spec Driven Development, Remote Desktop Commander, Symantec Cloud DLP AIops
同じカテゴリで、ほかの作者が作ったサーバー。スターの多い順。
カードの見方:★ GitHubスターi3つの柱:レビュー · チェック · 利用状況i更新=最新バージョンをレジストリに公開した日i
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
Governed Symantec Cloud DLP — 14 MCP tools, read-only with audit.
作者のリポジトリから書かれたとおりにコピーしたものです。PopNx MCPは内容を確認・推奨していません。HTML、画像、スクリプトは取り除いています。リンクはこのサイトの外へ移動します。
CMS for AI Agents.
The CMS your agents publish into: Markdown posts, versions, and media over scoped MCP or the REST /api/v1 API - you own every post. Every mutation creates activity, and meaningful post changes create versions.
vc_live_ prefixesSELF_HOSTED=true mode without Polarvibecms exposes standards-based MCP over Streamable HTTP. Hosted vibecms uses https://app.vibecms.dev; self-hosters use their own API host.
Sign-in is required before MCP discovery or tool use: initialize, tools/list, server/discover, and legacy notifications/initialized all require authentication. OAuth clients such as Claude web, desktop and Code offer Connect or Sign in up front. Requests without a bearer receive HTTP 401 with an OAuth resource-metadata challenge; existing API-key users continue sending their bearer key as before. OAuth metadata, trusted CIMD/public-client registration, the static server card and HTTP agent skill files remain public.
Connect Claude Code with the URL, then open /mcp to sign in and approve access:
claude mcp add --transport http vibecms https://app.vibecms.dev/mcp
For a client using an agent key instead, open Connect in the dashboard, create a scoped token, and copy it once. Send it as a bearer credential:
{
"mcpServers": { "vibecms": { "type": "http", "url": "https://app.vibecms.dev/mcp", "headers": { "Authorization": "Bearer vc_..." } } } }
Install the client-independent safety, writing and SEO skills (every skill in skills/):
npx skills add https://vibecms.dev --skill '*'
Run npx skills update to stay current. Alternatively, use npx vibecms-cli skills get to save every skill to .agents/skills (pass skill names to select a subset, --dir to choose the folder, or --force to overwrite existing files), or let a connected agent call the skills.list and skills.get MCP tools.
Claude Code users on the hosted service can install every skill and the MCP server as one plugin. The plugin connects using the server URL; open /mcp to sign in and approve access through OAuth:
claude plugin marketplace add moinulmoin/vibecms
claude plugin install vibecms@vibecms
Directory listing copy and submission notes live in docs/directory-listings.md.
Verify that the credential can read your site with a protected tool call (tools/list now also requires authentication, but only lists tools allowed by its scopes):
curl https://app.vibecms.dev/mcp \
-H "Content-Type: application/json" \ -H "Authorization: Bearer vc_..." \ --data '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"sites.get","arguments":{}}}'
A valid token returns the current site in structuredContent; an invalid or missing token returns 401. The approval-first publishing flow is:
sites.get -> posts.format_guide -> draft -> posts.preview
-> latest saved version -> explicit approval -> posts.publish(postId, expectedVersionNumber) -> returned URL
Fix error and warn SEO findings before asking for publication approval. posts.preview includes deterministic seo findings. For a saved post, use posts.seo_check({postId, focusKeyword?}) or GET /api/v1/posts/{postId}/seo?focusKeyword=deployment. The 31 rules are plain code and run on every plan: 26 for search engines (metadata, headings, links, content, duplicates, indexing, focus keyword) and 5 for AI answers (a short opening paragraph before the first heading, numbers with a source link, sections short enough to quote, steps as lists). vibecms runs no AI model on your posts; your agent answers the judgment questions in the vibecms-seo skill with its own model.
The REST /api/v1 API mirrors the MCP tools with full read/write parity. Post lists return summaries without full Markdown, so fetch a single post body through REST or MCP posts.get:
curl "https://app.vibecms.dev/api/v1/posts?limit=20&offset=0" \
-H "Authorization: Bearer vc_..."
Hosted vibecms Cloud counts MCP and REST against the same workspace API quota. Rate-limit failures are machine-readable: REST returns 429 with RATE_LIMIT, and MCP returns a JSON-RPC rate-limit error.
vibecms is licensed under AGPL-3.0-or-later. See LICENSE.
The vibecms name and marks are covered by the trademark guidelines in TRADEMARKS.md.
pnpm install
pnpm typecheck pnpm lint pnpm test pnpm build pnpm public:audit pnpm db:migrate:local pnpm db:seed:local pnpm dev
Database migration SQL lives in packages/db/drizzle/ and is shared by both Workers. Local API development, Astro rendering, migrations, and seed commands share the root .wrangler/state directory so both Workers see the same D1 and R2 data.
See plans/README.md for the decision-record index.
vibecms now has a real self-host switch:
SELF_HOSTED=true
In self-host mode, Polar is optional, billing gates are disabled, and hosted workspace API quotas are not enforced by default. After signup and blog setup, the owner lands on /dashboard; publishing, media uploads, scoped agent access, activity history, and post versions run on the self-hoster's Cloudflare D1/R2 resources.
The repository deploys the same three-Worker topology in hosted and self-hosted modes:
apps/api/wrangler.jsonc, apps/public/wrangler.jsonc, and apps/og/wrangler.jsonc configure hosted development/production.wrangler.jsonc configures the self-hosted Hono API + dashboard Worker.wrangler.public.jsonc configures the self-hosted Astro public-blog Worker.wrangler.og.jsonc configures the optional self-hosted OG Worker.pnpm deploy builds all configured Workers, applies D1 migrations, then deploys API → OG → public (OG first so public's service bindings resolve).During deploy, configure the root Wrangler files (wrangler.jsonc, wrangler.public.jsonc, and wrangler.og.jsonc unless you omit OG per docs/self-hosting.md). Public blogs are host-only (tenant identity is the host), so the API/dashboard and public blog use separate Worker hosts:
APP_URL=https://vibecms.<your-subdomain>.workers.dev
BETTER_AUTH_URL=https://vibecms. .workers.dev PUBLIC_BLOG_DOMAIN=vibecms-public. .workers.dev SELF_HOSTED=true
The public blog serves at /, / , and /tag/ on PUBLIC_BLOG_DOMAIN; removed /blog/ /* path mode is not supported.
The only required self-host secrets are listed in .dev.vars.example:
BETTER_AUTH_SECRET=<generate with openssl rand -hex 32>
TOKEN_PEPPER=
Minimal local/self-host env shape (local URLs are not public hosted URLs):
APP_URL=https://vibecms.example.workers.dev
BETTER_AUTH_URL=https://vibecms.example.workers.dev PUBLIC_BLOG_DOMAIN=vibecms-public.example.workers.dev SELF_HOSTED=true BETTER_AUTH_SECRET= TOKEN_PEPPER=
See docs/self-hosting.md for the Cloudflare self-host flow and deploy-button notes.
apps/api/wrangler.jsonc and apps/public/wrangler.jsonc before production deploy.BETTER_AUTH_SECRET, TOKEN_PEPPER, POLAR_ACCESS_TOKEN, and POLAR_WEBHOOK_SECRET; AUTOSEOPILOT_INTERNAL_SECRET is optional and only enables the managed AutoSEOPilot routes.gh workflow run deploy-production.yml --ref main -f release_sha= -f smoke_mode=authenticated, which runs pnpm deploy:prod: preflights and builds production artifacts, captures backup metadata, migrates D1, deploys OG → public → API, then smokes. Astro sessions are disabled (no SESSION KV).For self-hosted production, set SELF_HOSTED=true and only BETTER_AUTH_SECRET plus TOKEN_PEPPER are required as secrets; Polar access token/product/webhook secrets are hosted-SaaS only.
Current Cloudflare development resources are wired in apps/api/wrangler.jsonc and apps/public/wrangler.jsonc:
vibecms-api-dev at https://app.basedui.devvibecms-public-dev at https://basedui.dev and *.basedui.devvibecms_devvibecms-assetsRun the full dev deploy/test flow:
pnpm install
pnpm typecheck pnpm lint pnpm db:seed:dev pnpm deploy:dev
pnpm deploy:dev syncs the development token pepper, applies remote D1 migrations, builds the dashboard assets, deploys the Hono API Worker, deploys the OG Worker, then builds and deploys the Astro public Worker.
For Polar billing, create a sandbox product in Polar and update the dev vars. The committed dev vars already carry sandbox product and launch-discount ids; if you use your own Polar sandbox products, set all four — POLAR_MONTHLY_PRODUCT_ID, POLAR_YEARLY_PRODUCT_ID, POLAR_LAUNCH_DISCOUNT_MONTHLY_ID, and POLAR_LAUNCH_DISCOUNT_YEARLY_ID — in apps/api/wrangler.jsonc under env.development.vars. Checkout selects the configured discounts automatically, so create matching forever-duration discounts that produce $9/month and $75/year, or remove the two discount vars to test list-price checkout:
pnpm --filter @vc/api exec wrangler secret put POLAR_ACCESS_TOKEN
pnpm --filter @vc/api exec wrangler secret put POLAR_WEBHOOK_SECRET pnpm deploy:dev
Recommended sandbox product setup:
POLAR_MONTHLY_PRODUCT_ID. If yearly is a separate Polar product, set it as POLAR_YEARLY_PRODUCT_ID. Set both launch discount ids too, or checkout sends the committed sandbox discounts.SELF_HOSTED=true bypasses billing gates entirely and never shows the link.Recommended minimum Polar organization access token scopes:
checkouts:write for creating checkout sessions.customer_sessions:write for creating customer portal sessions.You do not need product, order, refund, file, meter, webhook, or subscription write scopes for the current app runtime. Webhooks are verified with POLAR_WEBHOOK_SECRET, not the API token.
In Polar, set the webhook endpoint to:
https://app.vibecms.dev/api/polar/webhook
Subscribe to these webhook events:
subscription.created, subscription.updated, subscription.active, subscription.past_due, subscription.canceled, subscription.revoked.checkout.updated.冒頭だけを表示しています。続きはリポジトリで読めます