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 分