Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Description from the maker (original English)
Edit a self-hosted Caelo CMS site from your agent. Changes land in a draft; a human publishes.
These three are never merged into one score: opinions, measurements and popularity are different things.
We have not written a plain-language summary for this one yet. Below are the facts we read from the registry.
Pick the AI app you use, then copy the settings.
CAELO_ADMIN_URL, CAELO_MCP_TOKEN, CAELO_IAP_SERVICE_ACCOUNTValues marked secret are keys to your account. Never share them or paste them into a chat.
You need
Which app do you use?
Pick your app above. We remember it, so next time the button says “Install in …”.
Open Claude Desktop → Settings → Developer → Edit Config, and paste this into 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"
}
}
}
}Run this in your terminal
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-serverFill in the empty values before running it.
Paste into .cursor/mcp.json in your project, or ~/.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"
}
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
Paste into .vscode/mcp.json in your project
{
"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"
}
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
This one runs on your computer, and ChatGPT can only connect to servers on the internet. Pick another app.
Your choice stays on this device in a cookie; no account needed.
CAELO_IAP_SERVICE_ACCOUNT envThese settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.
Runs on your computer; the tool list appears in your AI app after you install it.
We check information anyone can see; we have not read the code. Checks that do not apply are left out of the count. · Checked Nov 7, 2026
The registry name was verified with the GitHub account caelo-cms, which owns the repo
We have not read this repo from GitHub yet
We have not read this repo from GitHub yet
This one runs on your computer; there is no internet endpoint
Runs on your computer and uses local settings instead
Runs on your computer; we can only read tool lists from internet endpoints
Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.
It passed 1 of 1 applicable basic checks. We have not read the code. Before adding a key or token, see what access the server asks for and use a key with only the permissions you need.
You need to fill in: CAELO_ADMIN_URL, CAELO_MCP_TOKEN
It runs on your computer. Your AI app starts it when needed, and data does not pass through the maker’s servers (unless it calls an online service itself).
The GitHub repo last changed –, and the latest version (0.11.21) reached the registry yesterday.
Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. You also need Node.js on your computer.
In the same category: Spec Driven Development, Remote Desktop Commander, Agent Data Tools: Utilities
Servers in the same category from other makers, sorted by stars.
Reading a card:★ GitHub starsiThree pillars: reviews · checks · usageiUpdated = latest version published to the registryi
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.
103 tools: JSON repair, CSV, hashes, cron, dates, units, validators. 25 free calls.
Copied from the maker’s repo as written. PopNx MCP has not reviewed or endorsed it. HTML, images and scripts are removed. Links lead off this site.
@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.