Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
作者提供的说明(英文原文)
Edit a self-hosted Caelo CMS site from your agent. Changes land in a draft; a human publishes.
这三项永远不会合并成一个分数:意见、测量和人气是不同的东西。
我们还没有为它写通俗的介绍。下面是我们从注册中心读取到的事实。
选择你使用的 AI 应用,然后复制设置。
CAELO_ADMIN_URL, CAELO_MCP_TOKEN, CAELO_IAP_SERVICE_ACCOUNT标为机密的值是你账户的钥匙。千万不要分享给别人,也不要粘贴到聊天里。
你需要
你用的是哪个应用?
在上方选择你的应用。我们会记住它,下次按钮会显示“安装到 …”。
打开 Claude Desktop → Settings → Developer → Edit Config,把下面的内容粘贴到 claude_desktop_config.json
{
"mcpServers": {
"caelo": {
"command": "npx",
"args": [
"-y",
"@caelo-cms/mcp-server"
],
"env": {
"CAELO_ADMIN_URL": "your-value",
"CAELO_MCP_TOKEN": "your-value",
"CAELO_IAP_SERVICE_ACCOUNT": "your-value"
}
}
}
}在终端中运行这条命令
claude mcp add caelo --env CAELO_ADMIN_URL=your-value --env CAELO_MCP_TOKEN=your-value --env CAELO_IAP_SERVICE_ACCOUNT=your-value -- npx -y @caelo-cms/mcp-server运行前请先填写空着的值。
粘贴到项目中的 .cursor/mcp.json,或 ~/.cursor/mcp.json
{
"mcpServers": {
"caelo": {
"command": "npx",
"args": [
"-y",
"@caelo-cms/mcp-server"
],
"env": {
"CAELO_ADMIN_URL": "your-value",
"CAELO_MCP_TOKEN": "your-value",
"CAELO_IAP_SERVICE_ACCOUNT": "your-value"
}
}
}
}浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。
粘贴到项目中的 .vscode/mcp.json
{
"servers": {
"caelo": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@caelo-cms/mcp-server"
],
"env": {
"CAELO_ADMIN_URL": "your-value",
"CAELO_MCP_TOKEN": "your-value",
"CAELO_IAP_SERVICE_ACCOUNT": "your-value"
}
}
}
}浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。
这个服务器在你的电脑上运行,而 ChatGPT 只能连接互联网上的服务器。请选择其他应用。
你的选择通过 Cookie 保存在这台设备上,无需账户。
CAELO_IAP_SERVICE_ACCOUNT env这些设置是根据作者在注册中心的条目生成的。如果 README 的写法不同,请以 README 为准。
它在你的电脑上运行;安装后,工具列表会显示在你的 AI 应用中。
我们检查的是任何人都能看到的信息;我们没有阅读代码。不适用的检查项不计入总数。 · 检查于 2026年11月7日
注册名称已通过 GitHub 账户 caelo-cms 验证,该账户拥有此仓库
我们还没有从 GitHub 读取这个仓库
我们还没有从 GitHub 读取这个仓库
它在你的电脑上运行,没有互联网端点
在你的电脑上运行,改用本地设置
它在你的电脑上运行;我们只能读取互联网端点的工具列表
与注册中心里这个分类中所有活跃的服务器比较。只有当发布者拥有该仓库时,星标数才计入。
它在 1 项适用的基础检查中通过了 1 项。我们没有阅读代码。在添加密钥或令牌之前,请先看看这个服务器要求哪些权限,并使用只具备所需权限的密钥。
你需要填写:CAELO_ADMIN_URL, CAELO_MCP_TOKEN
它在你的电脑上运行。你的 AI 应用会在需要时启动它,数据不会经过作者的服务器(除非它自己调用在线服务)。
GitHub 仓库最后更新于–,最新版本(0.11.21)于昨天进入注册中心。
支持 MCP 的应用,例如 Claude Desktop、Claude Code、Cursor 和 VS Code。你的电脑上还需要有 Node.js。
同一分类中有:Spec Driven Development, Remote Desktop Commander, OpenTakeoff
同一分类中其他作者的服务器,按星标数排序。
如何看卡片:★ GitHub 星标i三大支柱:评价 · 检查 · 使用情况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.
Construction takeoff for AI agents: load plans, set scale, measure, count, export with provenance.
按原文从作者的仓库复制。PopNx MCP 没有审查或背书其内容。HTML、图片和脚本已被移除。链接会离开本站。
@caelo-cms/mcp-serverMCP servers for your Caelo CMS install. Two surfaces, selected by the token's scope:
chat) — talks to Caelo's own AI agent. You describe an outcome; Caelo's chat-runner does the work.caelo-admin-mcp binary / caelo-mcp-server admin, scope admin) — the full chat-runner tool catalogue exposed directly, so YOUR agent (Claude Code et al.) drives the tool loop and Caelo makes no provider calls of its own. caelo-mcp-server export additionally writes a CLAUDE.md + .claude/skills/ tree generated from the install's live context.Every mode is a thin shim: calls become HTTPS POSTs against your admin install's /api/mcp/* endpoints, which dispatch into the same chat-runner machinery that powers the live-edit overlay. See the MCP page in the docs for the full Power-MCP working model (work sessions, the shared draft, approval gates).
In your Caelo install:
/settings/mcp as an Owner.claude-code, laptop, ci, etc.), optionally set an AI-spend cap (microcents), and copy the bearer that's shown ONCE.Desktop apps (Claude Desktop, Cursor, VS Code) don't inherit your terminal's PATH: put the full path of bunx (which bunx) into their config instead of the bare name.
ChatGPT and claude.ai in the browser can't use this server: they only connect to MCP servers hosted on the internet (Streamable HTTP + OAuth), and this one runs on your machine over stdio. Tracked in #806.
Manual setup for any other MCP-aware client:
# stdio server invoked by your MCP-aware client
bunx @caelo-cms/mcp-server@latest
It switches to the exact release your install runs at startup (see the MCP page in the docs), so the command never needs a version; @latest keeps bunx from reusing an older cached install.
with these env vars set:
| Variable | Required | Notes |
|---|---|---|
CAELO_ADMIN_URL | yes | https://admin.example.com — point at your install. Must be https:// (plain http:// only for localhost). |
CAELO_MCP_TOKEN | yes | Bearer minted at /settings/mcp. |
CAELO_IAP_SERVICE_ACCOUNT | on GCP installs | The admin's MCP service account. /settings/mcp includes it in every client snippet when the admin is behind Google IAP. |
Without CAELO_ADMIN_URL or CAELO_MCP_TOKEN the server still starts and lists its tools (MCP directories inspect servers that way), but every tool call fails and names the variable to set. Power-MCP then lists the catalogue shipped with this release (power-catalogue.json); once configured it always lists your admin's live catalogue, including plugin tools. export exits instead.
On gcp and gcp-firebase installs the admin sits behind Identity-Aware Proxy, which rejects every request before Caelo sees it unless it carries a Google credential. With CAELO_IAP_SERVICE_ACCOUNT set, the server signs a short-lived JWT as that service account (IAM Credentials signJwt, using your Application Default Credentials) and sends it in Authorization next to x-caelo-mcp-token: IAP checks the first, Caelo the second.
One-time setup on your machine:
gcloud auth application-default login
The provisioner creates the service account (caelo-mcp@ ), allowlists it on IAP and lets everyone on the IAP allowlist sign as it — on new installs via Pulumi, on existing ones during cms-provision upgrade. No service-account keys are involved.
caelo_chat tool| Field | Type | Notes |
|---|---|---|
message | string, required | What you want to say to the Caelo agent. |
chatSessionId | uuid, optional | Continue an existing chat session. |
attachments | array, optional | Up to four image references returned by caelo_upload_images. |
pageId | uuid, optional | Bind a NEW chat to one page so the agent's page-context block populates. |
Output: assistant reply text + a JSON block with chatSessionId (for the next call), requestId (click through to /settings/audit/ for the full audit trail), the structured tool-call summaries the agent dispatched, the per-turn cost in microcents, and a pendingProposals count so the agent can surface "you have N things waiting for Owner approval".
Browse / publish / propose actions happen *through* the chat — "which pages exist?" → the Caelo agent calls pages.list internally → answers in text. Same auth surface, same RLS scoping, same audit trail, same propose-execute Owner gate as the browser. The remote agent talks to a human-equivalent agent, not to a programmatic API.
MPL-2.0.
Both modes expose caelo_upload_images. For example, call it with:
{"images":[{"filePath":"/home/me/Pictures/character.png","alt":"Main character reference"}]}
Paths are local to the MCP process. Alternatively use base64 plus an optional filename; supply exactly one of filePath and base64. Uploads support PNG/JPEG/WebP/GIF, up to 5 MiB each, with at most four files per call. The result contains per-file successes/errors and an attachments array. Pass that array to caelo_chat alongside message to send actual image content to Caelo's AI. In admin mode, the returned asset IDs can be used with regular media/page tools.
The token owner's current content.write permission is required for either scope. Images are stored in the shared CMS media library; admin previews require authentication. Uploading alone does not publish a page. A partial batch keeps successful uploads — retry only the failed entries. See the MCP page in the docs for HTTP examples and server limits.