Coolify MCP

io.github.frndchagas由 GitHub 帳號 frndchagas 發布v2.3.1更新於 Oct 24, 2026

MCP server for Coolify API operations.

概覽

AI 產生的概覽

一個 MCP 伺服器,讓助理管理 Coolify 執行個體:專案、伺服器、應用程式、資料庫、服務、部署與環境變數。

可以做什麼
列出、建立、更新與刪除專案、環境、伺服器、SSH 金鑰與 GitHub App,並檢視團隊、伺服器資源與網域。建立、設定、啟動、停止、重新啟動與刪除應用程式,支援公開 git、GitHub App、部署金鑰、Dockerfile 與 Docker 映像來源。管理八種引擎的資料庫及其備份與環境變數,以及服務、Docker Compose 部署、儲存、排程工作與預覽環境。觸發、取消與檢視部署,診斷應用程式與伺服器,並一次取得基礎設施總覽。管理帶遮罩的環境變數,並離線搜尋內建的 Coolify 文件。
適用情境
適合執行 Coolify 並希望助理在對話中處理部署工作的情境:從零建立專案、排查應用程式失敗原因、重新啟動或重新部署服務,或調整環境變數與備份,而不必在主控台逐項操作。
執行需求
透過 npm 套件以 stdio 在本機執行,需要 Node 18+。需要在 COOLIFY_BASE_URL 提供 Coolify API 位址,並在 COOLIFY_TOKEN 提供 Coolify 主控台產生的 API 權杖。需要能連線至 Coolify 執行個體的網路。另有選用的 HTTP 傳輸,具備獨立的連接埠與 Bearer 權杖設定。
安裝前請注意
此權杖可控制整個 Coolify 執行個體,且寫入操作預設開啟(COOLIFY_ALLOW_WRITE 預設為 true),助理可建立、修改、部署與刪除資源,包括連同磁碟區一併刪除專案、資料庫與伺服器。破壞性刪除僅在支援 elicitation 的用戶端上要求確認。可透過 showSecrets 略過機密遮罩,COOLIFY_ALLOW_UNSAFE_LOGS 可暴露未去識別化的日誌。將 HTTP 傳輸暴露到回送位址以外時,任何能存取該連接埠的人都能控制 Coolify。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Coolify MCP,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

coolify-mcp

[npm version] [npm downloads] [license] [node version] [typescript] [CI] [Glama score]

MCP server for Coolify API - enables full deployment workflows from zero to production.

[coolify-mcp demo]

Targets the Coolify v4.3.10 API. Types and schemas are generated directly from Coolify's official OpenAPI spec, so tool inputs always match what the API actually accepts.

Features

  • Full Deployment Workflow: Create projects, environments, servers, and applications from scratch
  • 5 Application Types: one createApplication tool covers public git, GitHub App, Deploy Key, Dockerfile, and Docker Image sources — plus Docker Compose deployments via createService (since Coolify v4.1, compose deployments are services)
  • Environment Management: Full CRUD for environment variables with secret masking
  • Deployment Control: Deploy (optionally waiting for the terminal status, with a log tail on failure), start, stop, restart applications
  • Diagnostics: diagnoseApp finds an app by UUID, name, or domain and aggregates status, recent deployments, failure log tails, runtime logs, and suggested next actions
  • Docs Search: searchDocs runs full-text search across the official Coolify documentation from a bundled local index — no network needed
  • Security: Write protection, secret redaction, and MCP annotations (readOnlyHint/destructiveHint) so clients can auto-approve reads and gate destructive calls
  • Near-full API coverage: databases (8 engines, backups, envs), services, storages, scheduled tasks, teams, previews, servers, SSH keys, and GitHub Apps
  • Token-efficient: 65 tools whose definitions cost ~9k tokens of context, with strict runtime validation against schemas generated from Coolify's OpenAPI spec

Requirements

  • Node 18+
  • A Coolify API token (Settings > API in your Coolify dashboard)

Install

Claude Desktop, one-click: download coolify-mcp.mcpb from the latest release and drag it into Settings → Extensions. You'll be prompted for your Coolify URL and token — no Node install, no JSON editing.

Via npm:

bash
npm install -g @fndchagas/coolify-mcp# ornpx -y @fndchagas/coolify-mcp

Quick Start

Claude Code CLI

bash
claude mcp add coolify \  --env COOLIFY_BASE_URL="https://coolify.example.com/api/v1" \  --env COOLIFY_TOKEN="<token>" \  -- npx -y @fndchagas/coolify-mcp

OpenAI Codex CLI

bash
codex mcp add coolify \  --env COOLIFY_BASE_URL="https://coolify.example.com/api/v1" \  --env COOLIFY_TOKEN="<token>" \  -- npx -y @fndchagas/coolify-mcp

Or edit ~/.codex/config.toml:

toml
[mcp_servers.coolify]command = "npx"args = ["-y", "@fndchagas/coolify-mcp"]env = { COOLIFY_BASE_URL = "https://coolify.example.com/api/v1", COOLIFY_TOKEN = "<token>" }

Manual Configuration (~/.mcp.json)

json
{  "mcpServers": {    "coolify": {      "type": "stdio",      "command": "npx",      "args": ["-y", "@fndchagas/coolify-mcp"],      "env": {        "COOLIFY_BASE_URL": "https://coolify.example.com/api/v1",        "COOLIFY_TOKEN": "<token>",        "COOLIFY_ALLOW_WRITE": "true"      }    }  }}

Environment Variables

VariableDefaultDescription
COOLIFY_BASE_URLrequiredCoolify API URL (e.g., https://coolify.example.com/api/v1)
COOLIFY_TOKENrequiredAPI token from Coolify Settings > API
COOLIFY_ALLOW_WRITEtrueEnable write operations (create, update, delete, deploy)
COOLIFY_STRICT_VERSIONfalseFail on API version mismatch
COOLIFY_MCP_ELICITATIONonSet to off to skip human confirmation on destructive deletes (escape hatch for clients that advertise elicitation but do not implement it)
MCP_TRANSPORTstdioTransport: stdio, http, both
PORT7331HTTP port (when using http transport)
MCP_HTTP_TOKENunsetBearer token required on /mcp requests (HTTP transport). Setting it also switches the default bind to 0.0.0.0
MCP_HTTP_HOST127.0.0.1 (0.0.0.0 with token)Interface the HTTP transport binds to. Binding beyond loopback without a token logs a loud warning

Deploy from Zero

With this MCP, you can deploy an application from scratch:

1. listProjects / createProject       → Get or create a project2. listEnvironments / createEnvironment → Get or create an environment3. listServers / createServer         → Get or create a server4. listPrivateKeys / createPrivateKey → Get or create SSH keys (if needed)5. createApplication (type: public)   → Create the application6. applicationEnvs (action: upsert)   → Configure environment variables7. deploy                             → Trigger deployment

Tools Reference

Projects & Environments

ToolDescriptionWrite
listProjectsList all projects
createProjectCreate a new project✓
updateProjectUpdate project name/description✓
deleteProjectDelete a project and all its resources✓
listEnvironmentsList environments in a project
createEnvironmentCreate a new environment✓

Servers & Infrastructure

ToolDescriptionWrite
listServersList all servers
getServerGet server details
createServerCreate a new server✓
validateServerValidate server connection
listPrivateKeysList SSH private keys
createPrivateKeyCreate a new SSH key✓
listGithubAppsList configured GitHub Apps

Applications - Read

ToolDescription
listApplicationsList all applications (summarized by default)
getApplicationGet application details (secrets masked by default)
getLogsGet application runtime logs

Applications - Create

ToolDescriptionWrite
createApplicationCreate an application; type selects the source: public, private-github-app, private-deploy-key, dockerfile, or dockerimage. Long-tail fields go in extra and are validated per type.✓

Docker Compose deployments are created with createService passing docker_compose_raw — since Coolify v4.1 they are services, not applications.

Applications - Manage

ToolDescriptionWrite
updateApplicationUpdate application configuration✓
deleteApplicationDelete an application✓
startApplicationStart an application✓
stopApplicationStop an application✓
restartApplicationRestart an application✓

Environment Variables

ToolDescriptionWrite
applicationEnvsManage application env vars: list (masked by default), create, update, upsert by key, bulk_update, delete✓

Database and service env vars have their own tools: databaseEnvs and serviceEnvs.

Deployments

ToolDescriptionWrite
deployTrigger a deployment; wait: true polls to the terminal status and returns a log tail on failure✓
diagnoseAppDiagnose an app by UUID, name, or domain: status, recent deployments, failure log tail, runtime logs, hints
diagnoseServerDiagnose a server by UUID, name, or IP: resource status breakdown, domains, hints
listDeploymentsList running deployments
getDeploymentGet deployment status and logs
listAppDeploymentsList deployments for an application
cancelDeploymentCancel a running deployment✓

Databases

ToolDescriptionWrite
listDatabasesList all databases
getDatabaseGet database details
createDatabaseCreate a database; type selects the engine: postgresql, mysql, mariadb, mongodb, redis, keydb, dragonfly, clickhouse✓
updateDatabaseUpdate database configuration✓
deleteDatabaseDelete a database (volumes/configs deleted by default)✓
controlDatabaseStart, stop, or restart a database✓
databaseBackupsManage backup schedules and executions (list/create/update/delete/list_executions/delete_execution)✓
databaseEnvsManage database env vars (list/create/update/bulk_update/delete)✓

Services

ToolDescriptionWrite
listServicesList services
getServiceGet service details (secrets masked by default)
createServiceCreate a one-click service or Docker Compose deployment✓
updateServiceUpdate a service✓
deleteServiceDelete a service✓
controlServiceStart, stop, or restart a service✓
serviceEnvsManage service env vars (list/create/update/bulk_update/delete)✓

Storages, Scheduled Tasks & Previews

ToolDescriptionWrite
storagesManage persistent volumes and file mounts for applications, databases, and services✓
scheduledTasksManage cron tasks for applications and services, including execution history✓
deletePreviewDelete a preview deployment by pull request id✓

Teams, Servers & Git

ToolDescriptionWrite
teamsList teams, get current team, and list members
updateServerUpdate server configuration✓
deleteServerDelete a server✓
getServerResourcesList resources running on a server
getServerDomainsList domains configured on a server
getPrivateKeyGet SSH key metadata (key material masked by default)
updatePrivateKeyUpdate an SSH private key✓
deletePrivateKeyDelete an SSH private key✓
getGithubAppRepositoriesList repositories accessible to a GitHub App
getGithubAppBranchesList branches of a repository

Batch Operations

ToolDescriptionWrite
getInfrastructureOverviewOne-call summary of servers, projects, applications (status breakdown), databases, services, and running deployments
restartProjectAppsRestart every application in a project or environment (asks for confirmation)✓
redeployProjectTrigger a deployment for every application in a project or environment (asks for confirmation)✓
stopAllApplicationsEmergency stop of all running applications, optionally per project (asks for confirmation, stating the blast radius)✓

Other

ToolDescription
listResourcesList all resources with filtering
searchDocsFull-text search across the official Coolify docs (bundled index, no network)
getHealthCheck that the Coolify API is up

Security Features

Write Protection

Disable all write operations:

bash
COOLIFY_ALLOW_WRITE=false

Secret Masking

  • Environment variable values are masked by default
  • Database credentials are redacted
  • Use showSecrets: true only when necessary

HTTP Transport Hardening

The HTTP transport binds to 127.0.0.1 by default. To expose it beyond loopback, set MCP_HTTP_TOKEN — every request to /mcp must then carry Authorization: Bearer <token> (checked in constant time) — and the bind switches to 0.0.0.0 (override with MCP_HTTP_HOST). Binding to a non-loopback host without a token logs a loud warning: anyone who can reach the port controls your Coolify instance.

Human Confirmation on Destructive Deletes

On MCP clients that support elicitation (Claude Code, VS Code Copilot), deleting a project, application, database, service, server, or private key asks you to confirm first, stating what will be lost. Clients without elicitation behave exactly as before. A decline, cancel, or timeout aborts the call; set COOLIFY_MCP_ELICITATION=off to disable the prompts entirely.

Development

bash
git clone https://github.com/frndchagas/coolify-mcp.gitcd coolify-mcpnpm installnpm run dev

Scripts

bash
npm run dev            # Run in development modenpm run build          # Build TypeScriptnpm run generate       # Fetch the pinned OpenAPI spec and regenerate types

Pinned Coolify Version

Version is defined in src/coolify/constants.ts. To update:

  1. Edit COOLIFY_VERSION in src/coolify/constants.ts
  2. Run npm run generate

Registry Listings

MCP Client Examples

HTTP Client

ts
import { Client } from '@modelcontextprotocol/sdk/client/index.js';import { StreamableHTTPClientTransport } from '@modelcontextprotocol/sdk/client/streamableHttp.js';
const client = new Client({ name: 'coolify-client', version: '1.0.0' });const transport = new StreamableHTTPClientTransport(  new URL('http://localhost:7331/mcp'));
await client.connect(transport);
// List all applicationsconst apps = await client.callTool({  name: 'listApplications',  arguments: {},});console.log(apps.structuredContent);
// Deploy an applicationconst deploy = await client.callTool({  name: 'deploy',  arguments: { uuid: 'your-app-uuid' },});console.log(deploy.structuredContent);
await client.close();

Stdio Client

ts
import { Client } from '@modelcontextprotocol/sdk/client/index.js';import { StdioClientTransport } from '@modelcontextprotocol/sdk/client/stdio.js';
const client = new Client({ name: 'coolify-client', version: '1.0.0' });const transport = new StdioClientTransport({  command: 'npx',  args: ['-y', '@fndchagas/coolify-mcp'],  env: {    COOLIFY_BASE_URL: 'https://coolify.example.com/api/v1',    COOLIFY_TOKEN: '<token>',  },});
await client.connect(transport);
const result = await client.callTool({  name: 'getApplication',  arguments: { uuid: 'your-app-uuid' },});console.log(result.structuredContent);
await client.close();

License

MIT

來源:README.md,提交 c06fd15

工具

0
SourceWeft 尚未在沙箱中啟動過該軟體包,因此其工具未知。

版本歷史

1
  1. v2.3.1最新Sep 16, 2026

評分

已滿足適用檢查項的 50%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分

    請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。

  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分