coolify-mcp
This server provides a comprehensive MCP interface to manage Coolify, a self-hosted PaaS, enabling full application lifecycle management, infrastructure provisioning, and deployment operations.
Project and Environment Management: Create, list, update, and delete projects; create and list environments.
Server Management: Create, list, validate, update, and delete servers; manage SSH private keys and GitHub Apps for authentication.
Application Management: Create applications from various sources (public git, private GitHub App, deploy key, Dockerfile, Docker image, Docker Compose); list, get details, update, delete, start, stop, and restart applications.
Deployment Control: Trigger, cancel, and monitor deployments; list deployments and application-specific deployment history.
Environment Variables: List, create, update, upsert, and delete environment variables for applications (with secret masking).
Database Management: List, get, create, update, delete databases across multiple engines (PostgreSQL, MySQL, MariaDB, MongoDB, Redis, KeyDB, Dragonfly, ClickHouse); manage backups and environment variables for databases.
Service Management: List, create, get, update, delete services (one-click apps and Docker Compose deployments); control (start/stop/restart) services; manage service environment variables.
Health and Diagnostics: Check API health; diagnose applications and servers with aggregated status, logs, and suggested actions.
Logs: Retrieve runtime logs for applications.
Resources Overview: List resources with filters; get infrastructure overview across servers, projects, applications, databases, services, and deployments.
Batch Operations: Restart all apps in a project, redeploy a project, stop all applications, with confirmation prompts.
Additional Utilities: Search documentation offline, list teams and members, manage storages, scheduled tasks, and preview deployments.
Security Features: Write protection, secret masking, human confirmation for destructive actions, and HTTP transport hardening with token authentication.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@coolify-mcpdeploy my latest app to production"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
coolify-mcp
MCP server for Coolify API - enables full deployment workflows from zero to production.
Targets the Coolify v4.1.2 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
createApplicationtool covers public git, GitHub App, Deploy Key, Dockerfile, and Docker Image sources — plus Docker Compose deployments viacreateService(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:
diagnoseAppfinds an app by UUID, name, or domain and aggregates status, recent deployments, failure log tails, runtime logs, and suggested next actionsDocs Search:
searchDocsruns full-text search across the official Coolify documentation from a bundled local index — no network neededSecurity: Write protection, secret redaction, and MCP annotations (
readOnlyHint/destructiveHint) so clients can auto-approve reads and gate destructive callsNear-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
Related MCP server: coolify-mcp
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:
npm install -g @fndchagas/coolify-mcp
# or
npx -y @fndchagas/coolify-mcpQuick Start
Claude Code CLI
claude mcp add coolify \
--env COOLIFY_BASE_URL="https://coolify.example.com/api/v1" \
--env COOLIFY_TOKEN="<token>" \
-- npx -y @fndchagas/coolify-mcpOpenAI Codex CLI
codex mcp add coolify \
--env COOLIFY_BASE_URL="https://coolify.example.com/api/v1" \
--env COOLIFY_TOKEN="<token>" \
-- npx -y @fndchagas/coolify-mcpOr edit ~/.codex/config.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)
{
"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
Variable | Default | Description |
| required | Coolify API URL (e.g., |
| required | API token from Coolify Settings > API |
|
| Enable write operations (create, update, delete, deploy) |
|
| Fail on API version mismatch |
|
| Set to |
|
| Transport: |
|
| HTTP port (when using http transport) |
| unset | Bearer token required on |
|
| 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 project
2. listEnvironments / createEnvironment → Get or create an environment
3. listServers / createServer → Get or create a server
4. listPrivateKeys / createPrivateKey → Get or create SSH keys (if needed)
5. createApplication (type: public) → Create the application
6. applicationEnvs (action: upsert) → Configure environment variables
7. deploy → Trigger deploymentTools Reference
Projects & Environments
Tool | Description | Write |
| List all projects | |
| Create a new project | ✓ |
| Update project name/description | ✓ |
| Delete a project and all its resources | ✓ |
| List environments in a project | |
| Create a new environment | ✓ |
Servers & Infrastructure
Tool | Description | Write |
| List all servers | |
| Get server details | |
| Create a new server | ✓ |
| Validate server connection | |
| List SSH private keys | |
| Create a new SSH key | ✓ |
| List configured GitHub Apps |
Applications - Read
Tool | Description |
| List all applications (summarized by default) |
| Get application details (secrets masked by default) |
| Get application runtime logs |
Applications - Create
Tool | Description | Write |
| Create an application; | ✓ |
Docker Compose deployments are created with
createServicepassingdocker_compose_raw— since Coolify v4.1 they are services, not applications.
Applications - Manage
Tool | Description | Write |
| Update application configuration | ✓ |
| Delete an application | ✓ |
| Start an application | ✓ |
| Stop an application | ✓ |
| Restart an application | ✓ |
Environment Variables
Tool | Description | Write |
| Manage application env vars: list (masked by default), create, update, upsert by key, bulk_update, delete | ✓ |
Database and service env vars have their own tools:
databaseEnvsandserviceEnvs.
Deployments
Tool | Description | Write |
| Trigger a deployment; | ✓ |
| Diagnose an app by UUID, name, or domain: status, recent deployments, failure log tail, runtime logs, hints | |
| Diagnose a server by UUID, name, or IP: resource status breakdown, domains, hints | |
| List running deployments | |
| Get deployment status and logs | |
| List deployments for an application | |
| Cancel a running deployment | ✓ |
Databases
Tool | Description | Write |
| List all databases | |
| Get database details | |
| Create a database; | ✓ |
| Update database configuration | ✓ |
| Delete a database (volumes/configs deleted by default) | ✓ |
| Start, stop, or restart a database | ✓ |
| Manage backup schedules and executions (list/create/update/delete/list_executions/delete_execution) | ✓ |
| Manage database env vars (list/create/update/bulk_update/delete) | ✓ |
Services
Tool | Description | Write |
| List services | |
| Get service details (secrets masked by default) | |
| Create a one-click service or Docker Compose deployment | ✓ |
| Update a service | ✓ |
| Delete a service | ✓ |
| Start, stop, or restart a service | ✓ |
| Manage service env vars (list/create/update/bulk_update/delete) | ✓ |
Storages, Scheduled Tasks & Previews
Tool | Description | Write |
| Manage persistent volumes and file mounts for applications, databases, and services | ✓ |
| Manage cron tasks for applications and services, including execution history | ✓ |
| Delete a preview deployment by pull request id | ✓ |
Teams, Servers & Git
Tool | Description | Write |
| List teams, get current team, and list members | |
| Update server configuration | ✓ |
| Delete a server | ✓ |
| List resources running on a server | |
| List domains configured on a server | |
| Get SSH key metadata (key material masked by default) | |
| Update an SSH private key | ✓ |
| Delete an SSH private key | ✓ |
| List repositories accessible to a GitHub App | |
| List branches of a repository |
Batch Operations
Tool | Description | Write |
| One-call summary of servers, projects, applications (status breakdown), databases, services, and running deployments | |
| Restart every application in a project or environment (asks for confirmation) | ✓ |
| Trigger a deployment for every application in a project or environment (asks for confirmation) | ✓ |
| Emergency stop of all running applications, optionally per project (asks for confirmation, stating the blast radius) | ✓ |
Other
Tool | Description |
| List all resources with filtering |
| Full-text search across the official Coolify docs (bundled index, no network) |
| Check that the Coolify API is up |
Security Features
Write Protection
Disable all write operations:
COOLIFY_ALLOW_WRITE=falseSecret Masking
Environment variable values are masked by default
Database credentials are redacted
Use
showSecrets: trueonly 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
git clone https://github.com/frndchagas/coolify-mcp.git
cd coolify-mcp
npm install
npm run devScripts
npm run dev # Run in development mode
npm run build # Build TypeScript
npm run generate # Fetch the pinned OpenAPI spec and regenerate typesPinned Coolify Version
Version is defined in src/coolify/constants.ts. To update:
Edit
COOLIFY_VERSIONinsrc/coolify/constants.tsRun
npm run generate
Registry Listings
MCP Registry:
io.github.frndchagas/coolify-mcp
MCP Client Examples
HTTP Client
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 applications
const apps = await client.callTool({
name: 'listApplications',
arguments: {},
});
console.log(apps.structuredContent);
// Deploy an application
const deploy = await client.callTool({
name: 'deploy',
arguments: { uuid: 'your-app-uuid' },
});
console.log(deploy.structuredContent);
await client.close();Stdio Client
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
Maintenance
Related MCP Servers
- AlicenseAqualityDmaintenanceA Model Context Protocol server that provides integration with the Coolify API, enabling DevOps teams to manage Coolify deployments, applications, services, and servers through MCP tools.Last updated3216542MIT
- Alicense-qualityAmaintenanceMCP server for Coolify infrastructure management, providing 45 tools for servers, applications, databases, deployments, and diagnostics via natural language.Last updated24MIT
- AlicenseAqualityBmaintenanceMCP server for managing a self-hosted Coolify instance. Provides full REST CRUD, deploy/watch capabilities, and an optional host-ops tier for live log streaming, SSH, Docker, and database access.Last updated228MIT
- Alicense-qualityCmaintenanceMCP server for managing Coolify instances, enabling control of applications, databases, services, servers, and more via natural language.Last updated16MIT
Related MCP Connectors
MCP server for interacting with the Supabase platform
MCP server for AI agents to plan, verify, and deploy Cloudflare-native apps.
MCP (Model Context Protocol) server for Appwrite
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/frndchagas/coolify-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server