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 |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| prompts | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| systemA | System actions for Coolify (health, version, verify, infrastructure_overview). Actions: health() · version() → { coolifyVersion, mcpVersion, serverName, capabilities } (not legacy { version }) · verify() · infrastructure_overview(format?, max_chars?) Safety: confirm for destructive ops · optional instance · reveal opt-in only |
| metaA | MCP server metadata (version). Actions: version() Safety: read-only meta tool |
| resourceA | Unified resource listing and cross-type discovery. Actions: list(type?, format?, page?, per_page?) · find(query?, uuid?, name?, domain?, ip?, format?, page?, per_page?) Safety: confirm for destructive ops · optional instance · reveal opt-in only |
| diagnoseA | Synthesizes diagnose views for applications and servers, or runs a global fleet scan. Actions: app(query?, uuid?, name?, domain?, limit?) · server(query?, uuid?, name?, ip?, trigger_validate?) · scan(format?, page?, per_page?) · logs(query?, uuid?, name?, domain?, mode?, deployment_uuid?, lines?, offset?, include_hidden?, type?, format?, max_chars?, instance?) · analyze(query?, uuid?, name?, domain?, deployment_uuid?, lines?, offset?, max_chars?, instance?) — pattern triage on runtime logs (advisory) Safety: confirm for destructive ops · analyze is advisory-only (no restart/redeploy/rollback) · optional instance · reveal opt-in only |
| intelligenceA | Instance health scorecard, dependency graph, impact analysis, and janitor cleanup. Actions: scorecard(format?, max_chars?, instance?) · graph(format?, max_chars?, instance?) · impact(uuid, type, intent?, max_depth?, instance?) · janitor(stopped_days?, format?, instance?) · cleanup(targets, confirm, delete_volumes?, delete_configurations?, instance?) Safety: cleanup requires confirm:true · delete_volumes/configurations default false · advisory impact only |
| applicationA | Application lifecycle, deploy, log, and environment-variable actions — list via resource tool. Actions: get(uuid, format?, projection?, reveal?) · start(uuid) · stop(uuid) · restart(uuid) · deploy(uuid, force?) · logs(uuid, lines?, follow?, timeout?, idle_timeout?, min_interval?, max_interval?) — follow runtime only; check system.version capabilities.application_logs_follow · create(source_type, server_uuid) · update(uuid) · delete(uuid, confirm) · delete_preview(uuid) · envs:list(uuid) · envs:get(uuid, key) · envs:create(uuid, key, value) · envs:update(uuid, key, value) · envs:delete(uuid, env_uuid, confirm) · envs:bulk-update(uuid, entries, confirm) · envs:sync(uuid, env_file?, env_content?, dry_run?, confirm?, conflict_policy?) · envs:promote(source_uuid, target_uuid, dry_run?, confirm?, conflict_policy?, reveal?) Safety: confirm for destructive ops · optional instance · reveal opt-in only |
| emergencyA | Emergency and bulk operations (stop_all, redeploy_project, restart_project). Actions: stop_all(confirm) · redeploy_project(project_uuid?, project_name?, confirm, force?, wait?) · restart_project(project_uuid?, project_name?, confirm) Safety: confirm for destructive ops · optional instance |
| deploymentA | List per-app deployments, get deployment details, or cancel an in-flight deployment. Actions: list(application_uuid, format?, page?, per_page?) · get(deployment_uuid, format?, projection?, reveal?) · cancel(deployment_uuid, format?, max_chars?) · watch(deployment_uuid, timeout?, min_interval?, max_interval?, include_logs?, format?, max_chars?, instance?) · logs(deployment_uuid|application_uuid, lines?, offset?, include_hidden?, type?, format?, max_chars?, instance?) · preflight(uuid|name|fqdn, format?, max_chars?, instance?) · rollback(uuid|name|fqdn, confirm?, force?, wait?, timeout?, format?, max_chars?, instance?) Safety: confirm for destructive ops · preflight is advisory read-only · rollback requires confirm:true · optional instance · reveal opt-in only |
| serviceA | Service CRUD, lifecycle, and environment-variable actions — list via resource tool. Actions: get(uuid, format?, projection?, reveal?) · list-types(format?, projection?) · create(server_uuid, type?, compose?) · update(uuid) · delete(uuid, confirm) · delete_preview(uuid) · start(uuid) · stop(uuid) · restart(uuid) · deploy(uuid) · envs:list(uuid) · envs:get(uuid, key) · envs:create(uuid, key, value) · envs:update(uuid, key, value) · envs:delete(uuid, env_uuid, confirm) · envs:bulk-update(uuid, entries, confirm) Safety: confirm for destructive ops · optional instance · reveal opt-in only |
| databaseA | Database CRUD, lifecycle, env vars, and backup-schedule actions — list via resource tool. Actions: get(uuid?, name?) · start(uuid?) · stop(uuid?) · restart(uuid?) · create(engine, server_uuid) · update(uuid?) · delete(uuid?, confirm) · delete_preview(uuid?, name?) · envs:list(uuid?) · envs:get(uuid?, env_uuid?, key?) · envs:create(uuid?, key, value) · envs:update(uuid?, env_uuid?, key?, value) · envs:delete(uuid?, env_uuid, confirm) · envs:bulk-update(uuid?, entries, confirm) · backup:create(uuid?, frequency) · backup:list(uuid?) · backup:history(uuid?, scheduled_backup_uuid) · backup:update(uuid?, scheduled_backup_uuid) · backup:delete(uuid?, scheduled_backup_uuid, confirm) · backup:now(uuid?, scheduled_backup_uuid) Safety: confirm for destructive ops · optional instance · reveal opt-in only |
| private_keyA | Private key CRUD for SSH keys registered in Coolify. Actions: list(format?, page?, per_page?) · get(uuid, format?, projection?, reveal?) · create(name, private_key?, key_file?) · update(uuid) · delete(uuid, confirm) · delete_preview(uuid) Safety: confirm for destructive ops · optional instance · reveal opt-in only |
| instanceA | Multi-instance registry CRUD for ~/.coolify-mcp/instances.json. Actions: list(reveal?) · get(name, reveal?) · add(name, url, token, type) · update(name) · delete(name, confirm) · set-default(name) · import-env(name?) · cloud-info(instance?) Safety: confirm for destructive ops · reveal opt-in only |
| manifestA | Local manifest cache CRUD and sync/diff for .coolify/manifest.json. Actions: get() · upsert(resource, project_uuid, environment_uuid) · set(manifest) · remove(uuid) · clear(confirm) · sync(dry_run?, confirm?, prune?) · diff() · audit() Safety: confirm for destructive ops · optional instance |
| serverA | Server CRUD and validate — servers listed via resource tool with type=server. Actions: get(uuid, format?, projection?, reveal?) · create(name, ip, private_key_uuid) · update(uuid) · delete(uuid, confirm) · delete_preview(uuid) · validate(uuid, timeout?) Safety: confirm for destructive ops · optional instance · reveal opt-in only |
| projectA | Project CRUD for Coolify organizational containers. Actions: list(format?, page?, per_page?) · get(uuid?, name?, format?, projection?, reveal?) · create(name, initial_environment?) · update(uuid?, name?) · delete(uuid?, name?, confirm) · delete_preview(uuid?, name?) Safety: confirm for destructive ops · optional instance · reveal opt-in only |
| environmentA | Environment CRUD scoped to a parent project — no update action. Actions: list(project_uuid?, project_name?, format?, page?, per_page?) · get(project_uuid?, project_name?, uuid?, name?) · create(project_uuid?, project_name?, name) · delete(project_uuid?, project_name?, uuid?, name?, confirm) · delete_preview(project_uuid?, project_name?, uuid?, name?) Safety: confirm for destructive ops · optional instance · reveal opt-in only |
| docsA | Search static Coolify documentation guides. Actions: search(query, format?, max_chars?) Safety: reveal opt-in only |
| recipeB | Multi-resource orchestration recipes & dynamic provisioning. Actions: create-git-app(server_uuid, git_repository, git_branch, repo_path?, build_pack?) · create-app-db(server_uuid, app_name, db_name, db_engine, env_key?) · create-one-click(server_uuid, type, instant_deploy?) · recommend(stack, server_uuid?, project_uuid?, environment_name?) Safety: optional instance · reveal opt-in only |
| setupB | Workspace setup: gh preflight, Coolify linkage, optional greenfield provisioning. Actions: preflight() · wire(mode, set_env?, env_file?, env_content?, ...) · resume(mode?, set_env?, env_file?, env_content?, ...) Safety: optional instance · no auto-push · gh soft-pause |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| deploy | Deploy an application on Coolify and monitor until terminal status. |
| diagnose | Investigate application, server, or fleet-wide issues with diagnose actions. |
| new-project | Create a project, environment, and optional server linkage for new infrastructure. |
| incident | Triage an incident with diagnose.analyze, logs, restart, or emergency redeploy steps. |
| rollback | Safely preview then confirm a Coolify application rollback via deployment tools. |
| maintenance-window | Stop a resource, perform maintenance work, then start/restart with confirm gates. |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 19 tools
While each tool targets a distinct domain (applications, databases, servers, etc.), there is notable cross-tool overlap: multiple tools expose `logs` actions (application, deployment, diagnose), and `version` appears in both `system` and `meta`. Also, `resource.list/find` competes with domain-specific listing tools, creating potential for agent misselection.
All tool names are lowercase nouns in a consistent singular style (application, private_key, environment), and actions follow a predictable verb pattern (get, list, create, update, delete, start, stop, restart, deploy). Child actions use a uniform colon syntax (envs:list, backup:now), with no mixed casing or stylistic chaos.
With 19 tools, the server is in the 'heavy but reasonable' range. Each tool addresses a meaningful aspect of Coolify administration, though some could be consolidated (e.g., meta/system overlap, resource vs domain-specific lists). The count is not excessive given the domain's complexity.
The tool surface covers a broad range of Coolify resources, including applications, services, databases, servers, projects, environments, private keys, and deployments. Minor gaps exist, such as no update action for environments and no application backup actions (database backups are covered), but these are workaround-able and core workflows are well supported.