awesome-coolify-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| COOLIFY_URL | Yes | Coolify base URL, no trailing slash — e.g. https://coolify.example.com | |
| COOLIFY_TOKEN | Yes | Bearer API token, scoped to your team | |
| COOLIFY_MCP_LOG | No | Log verbosity: debug · info · error | info |
| COOLIFY_VERIFY_SSL | No | Set to false only for self-signed certs on local/dev instances | true |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| systemC | System actions for Coolify (health, version, verify) |
| meta | MCP server metadata (version) |
| resourceB | Unified resource listing and cross-type discovery |
| diagnoseA | Synthesizes diagnose views for applications and servers, or runs a global fleet scan. Full-projection app diagnose masks sensitive keys in raw_application as *** by default; pass reveal: true for plaintext only when needed — do not persist revealed secrets. Server action triggers validate with a non-blocking side-effect (D-10). |
| application | Application lifecycle, deploy, log, and environment-variable actions (get, start, stop, restart, deploy, logs, envs:list, envs:get, envs:create, envs:update, envs:delete, envs:bulk-update, envs:sync) — list via resource tool. envs:delete, envs:bulk-update, and envs:sync apply/prune require confirm:true. envs:sync accepts XOR env_file|env_content; dry_run defaults false (apply); optional prune with confirm; conflict_policy overwrite|keep_remote|abort when values conflict (abort skips conflicted keys only — other writes still apply). Env values masked as *** by default; pass reveal:true only after asking the human — do not persist revealed secrets. Log line content is not masked and may contain secrets printed by the application; do not persist logs to long-term storage. |
| emergencyA | Emergency and bulk operations (stop_all, redeploy_project, restart_project). High-impact destructive actions — require explicit confirm: true to execute. Call without confirm first to preview would_affect and sample_uuids; ask the human before retrying with confirm: true. Always ask the human before setting wait: true on redeploy_project. |
| deploymentA | List per-app deployments, get deployment details (status, commit, timestamps, optional capped inline logs), or cancel an in-flight deployment. Full-projection get masks sensitive keys as *** by default; pass reveal: true for plaintext only when needed — do not persist revealed secrets. Cancel on an already-terminal deployment returns { cancelled: false, already_finished: true, status } — no error thrown (D-21). |
| serviceA | Service CRUD, lifecycle, and environment-variable actions (get, start, stop, restart, deploy, create, update, delete, delete_preview, envs:list, envs:get, envs:create, envs:update, envs:delete, envs:bulk-update) — list via resource tool. Local .env sync is application-only (not on service). envs:delete and envs:bulk-update require confirm:true. Env values masked as *** by default; pass reveal:true only after asking the human — do not persist revealed secrets. create: one-click type XOR compose/compose_file; instant_deploy defaults true. update: curated fields + transparent compose I/O; HTTP 409 domain conflicts include recovery hint to retry with force_domain_override: true. delete requires confirm: true with safe defaults (delete_volumes/delete_configurations/docker_cleanup/delete_connected_networks default false). Full-projection get/update masks sensitive keys as *** by default; pass reveal: true for plaintext only when needed — do not persist revealed secrets. |
| databaseA | Database CRUD, lifecycle, environment-variable, and backup-schedule actions (get, start, stop, restart, create, update, delete, delete_preview, envs:list, envs:get, envs:create, envs:update, envs:delete, envs:bulk-update, backup:create, backup:list, backup:update, backup:delete, backup:now, backup:history) — list via resource tool. Local .env sync is application-only (not on database). Database envs:* omit is_preview (OpenAPI Pitfall 1). envs:delete and envs:bulk-update require confirm:true. Env values masked as *** by default; pass reveal:true only after asking the human — do not persist revealed secrets. backup:delete requires confirm:true; delete_s3 defaults false and delete_s3:true still requires confirm. backup:create frequency accepts OpenAPI presets or cron; backup:update frequency accepts presets only — cron on update returns COOLIFY_VALIDATION_ERROR. backup:now triggers immediate backup via PATCH with backup_now:true and requires scheduled_backup_uuid. Backup config S3 credentials masked as *** by default; pass reveal:true only after asking the human — do not persist revealed secrets. create: 8 engines via engine discriminator; instant_deploy defaults true. update: curated engine-specific fields; is_public: true requires confirm: true. delete requires confirm: true with safe defaults (delete_volumes/delete_configurations/docker_cleanup/delete_connected_networks default false). Full-projection get/create/update masks credentials and connection strings as *** by default; pass reveal: true for plaintext only when needed — do not persist revealed secrets. |
| private_key | Private key CRUD (list, get, create, update, delete, delete_preview) for SSH keys registered in Coolify. PEM material is never returned by any action — full projection masks the private_key field even with reveal:true (D-02). list accepts reveal on the schema but rejects reveal:true at the handler with COOLIFY_422 (D-11) — PEM material is never returned. delete requires confirm:true (D-14); deleting a key still referenced by servers returns COOLIFY_409 with dependent_server_uuids (D-15). delete_preview lists dependents without deleting. |
| server | Server CRUD + validate (get, create, update, delete, delete_preview, validate). Servers are listed via resource tool with type=server (D-10). create auto-validates SSH reachability with a 30s poll unless validate:false (D-05/D-06); unreachable hosts return ok:true with validation.reachable:false and a COOLIFY_SSH_UNREACHABLE recovery hint — no auto-rollback (D-07). validate uses the same wait/timeout model (D-08). delete requires confirm:true (D-14) and defaults delete_volumes:false (D-16). delete_preview lists child resources as a warning, not a block (D-16). |
| projectA | Project CRUD (list, get, create, update, delete, delete_preview) for Coolify organizational containers. create requires initial_environment (required — no default; agent must ask user for production vs custom name per D-09/D-10) — missing/empty → COOLIFY_422 with recovery hint; response returns { project, environment, environments? } (D-11); the auto-spawned production env is never auto-deleted. get/update/delete/delete_preview accept uuid XOR name; name multi-match → COOLIFY_AMBIGUOUS_MATCH (D-14). delete requires confirm:true (D-05); deleting a project with remaining environments returns COOLIFY_409 with environment_uuids — no force/cascade (D-07). delete_preview lists blockers without deleting (D-08). |
| environment | Environment CRUD (list, get, create, delete, delete_preview) scoped to a parent project — no update action (Coolify API has no PATCH). list accepts project_uuid XOR project_name; name multi-match → COOLIFY_AMBIGUOUS_MATCH (D-12). get/delete accept uuid XOR name within the parent project scope (D-13). create with a duplicate name returns COOLIFY_409 with a recovery hint (D-15). delete requires confirm:true (D-05); deleting a non-empty environment (has apps/services/databases) returns COOLIFY_409 with child_resource_uuids — no force/cascade (D-06). delete_preview lists child resources without deleting (D-08). |
| docs | Search static Coolify documentation guides |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- 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/clezcoding/awesome-coolify'
If you have feedback or need assistance with the MCP directory API, please join our Discord server