Caelo CMS

io.github.caelo-cms由 GitHub 账号 caelo-cms 发布v0.11.21更新于 Nov 6, 2026

Edit a self-hosted Caelo CMS site from your agent. Changes land in a draft; a human publishes.

已验证STDIO仅桌面文件与存储开发者工具

概览

AI 生成的概览

让 AI 助手通过对话或直接管理工具编辑自托管的 Caelo CMS 站点,改动先进入草稿,由人工发布。

可以做什么
  • 向 Caelo 自带的 AI 代理发送消息、延续会话,并可附带页面上下文和图片
  • 通过对话浏览、发布和提议站点改动,带审计记录与 Owner 审批环节
  • 在 admin 模式下直接调用完整工具目录,由你自己的代理驱动工具循环
  • 从本地路径或 base64 上传图片到共享的 CMS 媒体库
  • 导出根据安装实时上下文生成的 CLAUDE.md 与技能目录
适用场景
适合自托管 Caelo CMS 的用户,希望让代理起草、修改或查看站点内容,同时保留人工发布控制。适用于 Claude Code、Cursor、VS Code 等桌面 MCP 客户端,而非浏览器内的助手。
运行要求
需要本地运行环境与 bunx(Bun)来启动 stdio 服务器,以及可访问的 Caelo 管理站点。需设置 CAELO_ADMIN_URL(https,仅 localhost 可用 http)和由 Owner 在 /settings/mcp 生成的 CAELO_MCP_TOKEN。Google Cloud IAP 安装还需 CAELO_IAP_SERVICE_ACCOUNT 及通过 gcloud 登录获得的 Application Default Credentials。桌面应用需填写 bunx 的完整路径。
安装前请注意
MCP 令牌是授予所有者 content.write 权限的机密,持有者即可操作站点,应妥善保管并限定范围。令牌可设置 AI 花费上限,对话会报告每轮费用,代理使用可能产生费用。改动进入共享草稿,部分操作需 Owner 审批,但内容与上传图片会存入 CMS,经对话处理时还会发送给 Caelo 的 AI。上传会写入媒体库。

安装

在 SourceWeft 中

  1. 打开 控制台中的 Caelo CMS,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。

其他 MCP 客户端

参照 仓库 中的启动说明。

README

@caelo-cms/mcp-server

MCP servers for your Caelo CMS install. Two surfaces, selected by the token's scope:

  • caelo_chat (default mode, scope chat) — talks to Caelo's own AI agent. You describe an outcome; Caelo's chat-runner does the work.
  • Power-MCP (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).

Install

In your Caelo install:

  1. Visit /settings/mcp as an Owner.
  2. Click New token, give it a name (claude-code, laptop, ci, etc.), optionally set an AI-spend cap (microcents), and copy the bearer that's shown ONCE.
  3. The page shows ready-to-copy setup for Claude Code, Claude Desktop, Codex CLI, Cursor, VS Code and Gemini CLI — a terminal command or a JSON config entry, plus how the client picks it up.

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:

bash
# stdio server invoked by your MCP-aware clientbunx @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:

VariableRequiredNotes
CAELO_ADMIN_URLyeshttps://admin.example.com — point at your install. Must be https:// (plain http:// only for localhost).
CAELO_MCP_TOKENyesBearer minted at /settings/mcp.
CAELO_IAP_SERVICE_ACCOUNTon GCP installsThe 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.

Installs behind Google IAP (GCP)

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:

bash
gcloud auth application-default login

The provisioner creates the service account (caelo-mcp@<project>), 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.

The caelo_chat tool

FieldTypeNotes
messagestring, requiredWhat you want to say to the Caelo agent.
chatSessionIduuid, optionalContinue an existing chat session.
attachmentsarray, optionalUp to four image references returned by caelo_upload_images.
pageIduuid, optionalBind 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/<requestId> 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".

Why route editing through chat?

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.

License

MPL-2.0.

Image uploads

Both modes expose caelo_upload_images. For example, call it with:

json
{"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.

来源:packages/mcp-server/README.md,提交 1149615

工具

0
SourceWeft 曾在隔离沙箱中以无凭据方式启动该软件包一次,以列出其工具,但未能完成:服务器未能启动。

版本历史

25
  1. v0.11.21最新Nov 6, 2026
  2. v0.11.20Nov 5, 2026
  3. v0.11.19Nov 5, 2026
  4. v0.11.17Nov 5, 2026
  5. v0.11.15Nov 4, 2026
  6. v0.11.12Nov 4, 2026
  7. v0.11.11Nov 3, 2026
  8. v0.11.10Nov 3, 2026
  9. v0.11.7Nov 1, 2026
  10. v0.11.6Oct 31, 2026
  11. v0.11.5Oct 30, 2026
  12. v0.11.4Oct 30, 2026
  13. v0.11.3Oct 29, 2026
  14. v0.11.0Oct 26, 2026
  15. v0.10.72Oct 25, 2026
  16. v0.10.71Oct 25, 2026
  17. v0.10.68Oct 24, 2026
  18. v0.10.67Oct 23, 2026
  19. v0.10.65Oct 23, 2026
  20. v0.10.64Oct 22, 2026
  21. v0.10.62Oct 21, 2026
  22. v0.10.61Oct 21, 2026
  23. v0.10.60Oct 21, 2026
  24. v0.10.59Oct 20, 2026
  25. v0.10.58Oct 20, 2026

评分

已满足适用检查项的 50%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通25 分

    请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。

  • 已声明认证方式10 分

    请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。

  • 已列出工具15 分

    请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。

  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分