
Awesome Coolify
io.github.clezcoding由 GitHub 账号 clezcoding 发布v0.1.2更新于 Oct 24, 2026
Coolify 4.1.x MCP server — deploy, diagnose, and manage apps, services, and databases
发布方自己的服务:Awesome Tools
概览
让助手通过基于动作的工具部署、诊断和管理 Coolify 应用、服务、数据库与服务器。
- 可以做什么
- 将 Coolify 4.1.x 的操作封装为 19 个基于动作的工具,涵盖系统健康、资源发现、诊断、应用与部署生命周期、服务、数据库、项目、环境、服务器、SSH 密钥、配方以及离线文档搜索。它可以触发部署、监视部署、读取有界日志、管理环境变量、运行数据库备份,并执行需确认的高危应急操作。多实例注册表可按调用解析凭据,将请求路由到不同 Coolify 实例。
- 适用场景
- 当助手需要操作或排查自托管 Coolify 实例时使用:部署应用、检查整体健康、处理故障、管理环境变量或运行数据库备份。适合已在运行 Coolify、希望由助手驱动运维而非手动操作面板的团队。
- 运行要求
- 需要 Node.js 24+ 以及运行 4.1.x 的自托管 Coolify 实例,并需要来自 Coolify「Keys & Tokens」的 API 令牌。单实例在 MCP env 中设置 COOLIFY_URL 与 COOLIFY_TOKEN,可选 COOLIFY_VERIFY_SSL、COOLIFY_MCP_LOG。多实例需在 ~/.coolify-mcp/instances.json 注册实例。仅支持桌面客户端。
安装
在 SourceWeft 中
- 打开 控制台中的 Awesome Coolify,将其添加到工作区。
- 为需要使用其工具的对话启用该服务。
Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。
其他 MCP 客户端
参照 仓库 中的启动说明。
README
awesome-coolify-mcp
Operate Coolify from your coding agent.
Verify connectivity, discover infrastructure, create workloads, deploy, follow logs, diagnose incidents, and run gated emergency ops — across one or many self-hosted or Cloud instances —
straight from Cursor, Claude, VS Code, Windsurf, or any MCP-speaking agent.
🇩🇪 Deutsch · Coolify · Model Context Protocol · Install configurator ↗
[npm version] [npm downloads] [Node.js >= 24] [TypeScript] [Coolify API 4.1.x] [19 tools] [CI status] [Latest GitHub release] [MIT License]
Overview · Why · Features · Architecture · Quick start · Install · Cloud · Tools · Prompts · Safety · Roadmap
[Add awesome-coolify-mcp to Cursor] [Install awesome-coolify-mcp in VS Code]
One click installs with placeholder credentials — see Install for the full walkthrough, or use the browser configurator to fill in real values safely.
📋 Table of contents
- Overview
- Why awesome-coolify-mcp
- Features
- How it works
- Quick start
- Install
- Coolify Cloud
- Supported clients
- Environment variables
- MCP Prompts
- Tools reference
- Safety model
- Structured errors & retries
- Example agent workflows
- Status today
- Coming soon
- Local development
- Links
🔭 Overview
Self-hosted Coolify is one of the best open-source alternatives to Heroku/Vercel-style PaaS platforms — but wiring it up to an AI coding agent has historically meant piecing together several small, overlapping community MCP integrations, each with its own schema, its own error format, and its own idea of what "safe" looks like.
awesome-coolify-mcp 1.1.4 replaces that patchwork with a single, community-maintained MCP server that speaks Coolify's REST API 4.1.x through a clean, action-based tool surface. Source, docs, and npm distribution live in one public repo — clezcoding/awesome-coolify — while the installable package stays awesome-coolify-mcp. Instead of memorizing dozens of near-identical tool names, your agent calls one of 19 tools with an action field:
Under the hood, every call goes through the same request pipeline: Zod-validated input, retrying HTTP client, secret-aware output masking, and structured error envelopes with recovery hints — so your agent fails gracefully instead of guessing.
[!NOTE] This is a community project built for people who run their own Coolify instances. It is not affiliated with or endorsed by Coolify Labs.
🆚 Why awesome-coolify-mcp
Today, the shipped surface covers day-2 operations and infrastructure creation: verify connectivity, discover fleets, deploy and watch builds, inspect bounded logs, diagnose incidents, run gated emergency ops, and manage applications, services, databases, SSH keys, servers, projects, environments, backups, and environment variables.
✨ Features
[Feature highlights: action-based tools, safety gates, diagnose, deploy and logs]
- 19 action-based tools — call
application({ action: "deploy", uuid })instead of hunting through dozens of granular tool names. The registered surface issystem,meta,resource,diagnose,application,emergency,deployment,service,database,private_key,instance,manifest,server,project,environment,docs,recipe,setup, andintelligence. - Multi-instance registry & routing — register every Coolify instance you own in
~/.coolify-mcp/instances.jsonvia theinstancetool; per-call credential resolution with no cross-instance leakage. - Coolify Cloud aware —
instance({ action: "cloud-info" })for local discovery, team-scoped tokens, and structured cloud error codes (COOLIFY_CLOUD_FORBIDDEN,COOLIFY_CLOUD_UNSUPPORTED). - Local manifest cache —
.coolify/manifest.jsonsync viamanifest({ action: "sync" }), best-effort auto-hooks on app/service/DB mutations, and_meta.manifestWarningwhen the cache is stale. - Server branding — MCP list icon via
serverInfo.icons(embedded data URI + jsDelivr CDN entries fromdocs/assets/). - Ops workflows that mirror real incidents — a single
system.infrastructure_overviewcall for the big picture, fuzzyresource.findwhen you only remember a name or domain,diagnose.app/diagnose.serverfor a specific suspect, anddiagnose.scanwhen you just know something is wrong fleet-wide. - Deploy lifecycle agents can drive — start/stop/restart, force rebuild,
deployment.watchwith bounded backoff,deployment.logsfor builds, boundedapplication.logs, and runtime follow with idle/overall timeouts. - Full workload CRUD — create, inspect, update, delete, and operate applications, services, and databases; discover live one-click IDs with
service.list-types. - Recipes and guided setup — create git apps, app-plus-database stacks, and one-click services; run
setup.preflight,setup.wire, orsetup.resume; install four matching IDE workflow skills. - Safety by default, not by convention — emergency mutations require an explicit
confirm: true; sensitive keys (password,token,secret,private,env) render as***unless you opt in withreveal: true. - Agent-friendly failure modes — every error is a parseable envelope with a
code, a humanmessage, andrecoveryHints; transient network/429/5xx failures retry automatically with exponential backoff. - Broad client coverage out of the box — Cursor, VS Code / GitHub Copilot, Claude Desktop, Claude Code, Windsurf, and 15+ more via the install configurator.
🏗️ How it works
The server itself is intentionally boring: it holds no long-lived state and never touches your IDE's config files. Your MCP host (Cursor, Claude, VS Code, …) injects COOLIFY_URL and COOLIFY_TOKEN through its MCP config's env block — or you register named instances in ~/.coolify-mcp/instances.json via the instance tool. The process reads credentials from its environment (or the registry) and forwards authenticated requests to your Coolify instance over HTTPS.
🚀 Quick start
Prerequisites
- Node.js 24+ (Active LTS; CI uses Node 24)
- A self-hosted Coolify instance on 4.1.x
- An API token from Coolify → Keys & Tokens (authorization docs)
Run it directly with npx — no global install needed:
Wire the two required environment variables into your MCP host (see Install for every client). Once connected, a minimal smoke test looks like this:
[!NOTE] Multi-instance users: register each Coolify instance first with
instance({ action: "add", name, url, token }), then callsystem({ action: "verify" }). Single-instance setups can skip the registry and useCOOLIFY_URL/COOLIFY_TOKENin MCP env.
[!IMPORTANT] Emergency actions (
stop_all,redeploy_project,restart_project) requireconfirm: true. Call them withoutconfirmfirst — you'll get awould_affectpreview and no mutation runs. Only passreveal: truewhen you genuinely need plaintext secrets back.
📦 Install
There are three equally supported paths — pick whichever fits your workflow.
1. One-click deeplink
Best when you already have your Coolify URL and token handy. Placeholder credentials work fine too — you'll be prompted to fill them in, or you can swap them afterwards.
[Add awesome-coolify-mcp to Cursor] [Install awesome-coolify-mcp in VS Code]
How these links work (click to expand)
Both editors implement a protocol handler that reads a JSON server configuration straight out of the URL:
Clicking the button opens your editor, shows the server it's about to add, and lets you review or edit the command/env before accepting — nothing is installed silently.
2. Install configurator (GitHub Pages)
Use the browser configurator to type in your real COOLIFY_URL / COOLIFY_TOKEN and generate a ready-to-paste snippet for your exact client — JSON, TOML, or YAML depending on what that client expects.
Everything runs client-side in your browser. Your token is never sent to a backend, logged, or stored anywhere but the config file you paste it into.
3. Manual MCP config
Paste this into your host's MCP configuration file. Cursor example (~/.cursor/mcp.json for global, or .cursor/mcp.json in a project):
A ready-made copy-paste template also lives at docs/mcp.example.json.
[!TIP] Using Coolify Cloud? Generate a team-scoped token and follow the registry setup in docs/en/cloud.md.
IDE skills (Cursor, Claude Code, Codex)
Install Coolify workflow skills for Cursor, Claude Code, and Codex:
After MCP install, run setup({ action: "preflight" }) or see the Setup guide for gh preflight, project linkage, and greenfield provisioning.
🖥️ Supported clients
The install configurator covers a much wider matrix — OpenCode, Codex CLI, Gemini CLI, Cline, Kilo Code, Goose, LM Studio, Hermes Agent, Kimi Code, Google Antigravity, OpenClaw, and more — with the correct config shape for each.
[!NOTE] Claude Desktop currently uses manual JSON or configurator output.
🔐 Environment variables
Credentials are read from the process environment (your IDE's MCP env block) or an optional local .env file when running the CLI directly. They are never echoed back inside tool responses.
[!NOTE] With the multi-instance registry (
~/.coolify-mcp/instances.json),COOLIFY_URLandCOOLIFY_TOKENbecome optional — theinstancetool resolves credentials per call. Env vars remain the simplest path for single-instance setups.
☁️ Coolify Cloud
awesome-coolify-mcp works with Coolify Cloud using the same 19 tools — team-scoped tokens, structured cloud error codes (COOLIFY_CLOUD_FORBIDDEN, COOLIFY_CLOUD_UNSUPPORTED), and local instance action cloud-info for discovery.
Run instance({ action: "cloud-info" }) before your first Cloud session — it returns isCloud, resolved url, credential source (registry | env | infer), knownLimits, and a docs link. No live API call.
Full setup, smoke test, and known limits → docs/en/cloud.md
💬 MCP Prompts
Six parameterized workflow prompts return numbered step guidance (English bodies) that orchestrate existing tools. Most arguments are optional — open any prompt without prefill.
Prompt handlers never read .coolify/manifest.json from disk — they steer the agent to resolve UUIDs from manifest or ask the user. Playbooks never auto-set confirm: true.
🧰 Tools reference
Every domain is exposed as one MCP tool with an action discriminator, so your agent's tool list stays short while the capability surface stays wide.
🖥️ system — connectivity & overview
Your first call in any session: is Coolify reachable, and what does the fleet look like right now?
🏷️ meta — server identity
🔎 resource — discovery
For when you know roughly what you're looking for but not its exact UUID.
🩺 diagnose — investigation
The tool you reach for when something feels wrong but you don't yet know what.
🚀 application — app operations
📈 deployment — deploy tracking
🛡️ Deploy guard (preflight + rollback)
⏱️ Watch — bounded deploy monitoring
After application.deploy with wait: false, call deployment.watch — do not loop deployment.get manually.
The shipped IDE skill packs use this same bounded watch flow and document timeout recovery.
🧩 service / database — sidecar lifecycle
🍳 recipe — multi-resource orchestration
One MCP call to stand up common workload patterns — application + database wiring, git apps, or validated one-click services.
Safety: Recipe creates are intentional — no confirm gate. No dry-run / preview. Partial failure does not auto-rollback; created UUIDs are returned in error.data. Connection strings are masked unless reveal: true. recommend is read-only / advisory.
Also use service.list-types to discover valid one-click type IDs before create-one-click.
🌱 Resource environment variables (envs:*)
Manage Coolify runtime configuration on applications, services, and databases through envs:* actions on the existing domain tools — no separate env MCP tool.
Confirm gates: envs:delete and envs:bulk-update always require confirm: true on all three tools. On application only, envs:sync requires confirm: true when applying (dry_run: false, the default) or when prune: true. envs:promote requires confirm: true when applying (dry_run: false).
Reveal policy: Env values render as *** by default. Pass reveal: true only after the human explicitly asks for plaintext — the agent must not auto-set reveal: true.
envs:sync semantics (application only): Supply exactly one of env_file (local path) or env_content (inline .env text). dry_run: true returns a diff (added, updated, unchanged, removed, optional conflicts) with no API writes; default dry_run: false applies changes. Remote keys missing locally are never deleted unless prune: true (also requires confirm: true). When local and remote values differ, set conflict_policy to overwrite, keep_remote, or abort after asking the human — apply with conflicts and no policy returns COOLIFY_CONFIRM_REQUIRED.
envs:promote semantics (application only, same instance): Product docs may say env.promote; the implemented action is application.envs:promote. Compare env vars between source_uuid and target_uuid (two applications in one Coolify instance — no cross-instance fan-out). Default dry_run: true returns preview buckets (only_in_source, only_in_target, value_mismatches) plus structured promotion_suggestions with follow-up tool/action hints; values are masked unless reveal: true. Applying copies into the target requires confirm: true. Default conflict_policy is keep_remote — mismatched target keys are skipped unless the human opts into overwrite or abort.
💾 Database backups (backup:*)
Configure, list, update, delete, and trigger backup schedules — and inspect execution history — on the existing database tool. No separate backup MCP tool.
Parent identity: All backup actions require the parent database via uuid or name. Schedule-scoped actions (backup:update, backup:delete, backup:now, backup:history) also require scheduled_backup_uuid.
Confirm gates: backup:delete requires confirm: true — otherwise COOLIFY_CONFIRM_REQUIRED. delete_s3 defaults false (config-only delete). When delete_s3: true, deletion still requires confirm: true — purging S3 artifacts is treated as destructive.
Frequency (Pitfall 1): backup:create accepts OpenAPI named presets (every_minute, hourly, daily, weekly, monthly, yearly) or a cron expression. backup:update accepts presets only — passing cron on update returns COOLIFY_VALIDATION_ERROR.
backup:now semantics: Maps to Coolify PATCH with { backup_now: true } on the schedule — no separate trigger endpoint. Requires scheduled_backup_uuid.
Reveal policy: S3-related credentials in backup config responses are masked as *** by default. Pass reveal: true only after the human explicitly asks for plaintext — the agent must not auto-set reveal: true.
Out of scope (v2.x+): Backup execution delete, restore/import from backup, and S3 storage destination CRUD are not available in this release.
🔑 private_key — SSH key CRUD
Manage Coolify private keys with PEM content masked by default.
🖧 server — server CRUD & validation
📁 project — project CRUD
🌍 environment — environment CRUD
📚 docs — offline guides
🚨 emergency — high-impact ops (gated)
Reach for these only when you mean it — every action below is behind a confirmation gate.
🗂️ instance — multi-instance registry
Manage named Coolify instances in ~/.coolify-mcp/instances.json. Per-call credential resolution — no cross-instance leakage.
📜 manifest — local cache
Read/write/sync .coolify/manifest.json — a workspace cache, not source of truth. Remote wins on UUID conflict.
[!NOTE]
manifest.auditcompares local.coolify/manifest.jsonvs live Coolify inventory for the scoped instance. Findings name follow-up actions such asmanifest.syncormanifest.upsert— hints are advisory only; nothing auto-heals. Keep usingmanifest.difffor the raw structural reconciliation report. Best-effort auto-hooks update the manifest after app/service/DB mutations. Stale UUID 404s elsewhere surface_meta.manifestWarning— runmanifest({ action: "sync" })to reconcile.
🧭 setup — guided project wiring
wire never auto-pushes. The setup flow pauses cleanly when gh authentication is missing and resumes from completed steps.
🎨 Branding (serverInfo.icons)
The MCP server advertises icons in initialize via an embedded PNG data URI (primary) and jsDelivr CDN URLs for mcp-icon-192.png and favicon-32.png. Cursor may still show a letter fallback — see maintainer verify record. Not a Coolify API call.
🛡️ Safety model
Confirmation gate
Destructive emergency actions follow a strict two-step pattern:
- Call with
confirmomitted orfalse→ you get back awould_affectpreview and error codeCOOLIFY_CONFIRM_REQUIRED— nothing is mutated. - Call again with
confirm: true→ the action actually executes.
Regular app/service/database mutations (start, stop, deploy, …) are not behind this gate — they simply follow Coolify's own API semantics, since they're scoped to one resource rather than your whole fleet.
Environment variables: envs:delete and envs:bulk-update require confirm: true on application, service, and database. envs:sync apply (dry_run: false) and envs:sync with prune: true require confirm: true on application only. dry_run: true sync previews never mutate. envs:promote apply (dry_run: false) requires confirm: true on application; default conflict_policy is keep_remote.
Drift & heal (read-only audit, preview-first promote): manifest.audit is advisory-only — it never writes manifest or live state. application.envs:promote (product name env.promote) previews by default; values stay masked unless reveal: true. Both stay within one Coolify instance per call.
Deploy guard (advisory preflight, confirm-gated rollback): deployment.preflight is read-only and returns a risk_score with four named factors — no external DNS/HTTP probes. deployment.rollback requires confirm: true before mutating; git rollbacks PATCH the target commit then POST /deploy (MCP composite, not a Coolify rollback API).
Secret masking
- Keys matching
password,token,secret,private, orenvrender as***by default in tool output. - Pass
reveal: trueonly when you explicitly need plaintext — for example, to copy an env var into another system. Ask the human first before settingreveal: trueon anyenvs:*call. - Log line bodies are not masked. Treat raw logs like you would any other sensitive output: don't paste them into long-lived agent memory or public tickets.
[!WARNING] Registry files (
~/.coolify-mcp/instances.json) are written with0o700directory and0o600file permissions. Tokens are never echoed in tool output unless you explicitly passreveal: true.
⚠️ Structured errors & retries
Every API failure comes back as a parseable envelope your agent can reason about, instead of a raw stack trace:
Transient failures (HTTP 429, 5xx, or network errors) retry automatically up to 3 times with exponential backoff (1s → 2s → 4s) before giving up and returning the error to your agent.
💬 Example agent workflows
"Is my Coolify reachable, and what do I have?"
"Find the nginx app, deploy it, then show me the logs."
"Something feels wrong across the fleet."
"Emergency: stop everything, but let me see the blast radius first."
"Multi-instance: list registered instances and verify each."
✅ Status today
Package 1.1.4 ships 19 tools and six MCP prompts for Coolify API 4.1.x:
Capability discovery & build logs:
system({ action: "version" })returnscoolifyVersion(replacing the legacyversionfield),mcpVersion, and acapabilitiesmap of Coolify 4.1.2 feature flags. For app triage + bounded runtime tail in one call, usediagnose({ action: "logs", mode: "full", uuid: "..." })— checkcapabilities.diagnose_logs. For Log Brain pattern triage, usediagnose({ action: "analyze", uuid: "..." })— checkcapabilities.diagnose_analyze. For advisory stack picks from the live catalog, userecipe({ action: "recommend", stack: "..." })— checkcapabilities.recipe_recommend. For instance health, dependency graph, impact, and janitor/cleanup, useintelligence({ action: "scorecard" | "graph" | "impact" | "janitor" | "cleanup", ... })— checkcapabilities.intelligence_scorecard(and siblingintelligence_*keys);cleanuprequiresconfirm: true. For manifest drift audit and cross-app env promote, usemanifest({ action: "audit" })andapplication({ action: "envs:promote", source_uuid, target_uuid, ... })— checkcapabilities.manifest_auditandcapabilities.envs_promote(MCP composites over existing reads/env CRUD, not Coolify-native REST endpoints). For deployment build logs, preferdeployment({ action: "logs", deployment_uuid: "..." })(orapplication_uuidto resolve the newest deployment). Theapplication.logspath withdeployment_uuidstill works for back-compat. For runtime log follow, useapplication({ action: "logs", uuid: "...", follow: true })— bounded MCP polling until idle or timeout; checkcapabilities.application_logs_followviasystem.version.
[!WARNING] Coolify 4.1.x does not expose stable service or database log endpoints. This server therefore does not claim or register service/database log actions. Use application runtime logs and deployment build logs until compatible upstream APIs are available.
🔮 Coming soon
Future work stays bounded by verifiable upstream and repository constraints:
- Add service/database logs when compatible Coolify APIs are stable and available.
- Close tracked REST mappings in
docs/COVERAGE.mdwhere they add useful agent workflows. - Revisit cross-instance fan-out only with explicit rate-limit and credential-isolation guarantees.
No release date or compatibility promise is attached to these boundaries. Use GitHub Issues for concrete requests.
🛠️ Local development
Logs go to stderr only — stdout is reserved exclusively for the MCP protocol.
The maintainer publish flow (build → pack --dry-run → publish) is documented in CONTRIBUTING.md.
[!NOTE] Maintainers can run live UAT against a real Coolify instance with
npm run uat:live. See CONTRIBUTING.md — Live UAT Harness for prerequisites and report output — do not duplicate the runbook here.
🔗 Links
来源:README.md,提交 d891bb8
工具
0版本历史
1- v0.1.2最新Sep 16, 2026
评分
已满足适用检查项的 50%
该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。
- 近 30 天内可连通25 分
请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。
- 已声明认证方式10 分
请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。
- 已列出工具15 分
请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。
- 描述必需15 分
- 图标10 分
- 文档15 分
- 许可证10 分
其他 Awesome 集成
Awesome Tools
tools.awesome官方发布者
搜索精选的 SaaS 与 AI 工具目录,查看分类与标签,提交自己的产品,并验证回链徽章。

Awesome JEV
由 GitHub 账号 daftAI2026 发布
搜索 Jev / System One 项目并查看其记录的纳入证据。AI 翻译

Awesome Report
由 GitHub 账号 ks0430 发布
让助手把调查结果发布成包含表格、图表和图解的整洁网页,并提供一个可分享的链接。

Awesome Agent Skills
由 GitHub 账号 shadowrootdev 发布
一个本地 MCP 服务器,为助手提供 100 多个精选 AI 智能体技能目录,可列出、查看、调用和刷新这些技能。

Awesome Copilot MCP Server
由 GitHub 账号 microsoft 发布
一个本地 MCP 服务器,从 Awesome Copilot 仓库获取 GitHub Copilot 自定义文件,供助手使用。