coolify-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| COOLIFY_URL | Yes | Instance URL, e.g. https://coolify.example.com. A trailing slash or /api/v1 is stripped; /api/v1 is added. | |
| COOLIFY_TOKEN | Yes | API token (sent as Authorization: Bearer). | |
| COOLIFY_READ_ONLY | No | 1 refuses every mutating tool. Dry runs are still allowed. | |
| COOLIFY_TIMEOUT_MS | No | Per-request timeout in ms. Default 30000. | 30000 |
| COOLIFY_ALLOW_REVEAL | No | 1 lets list_envs return plaintext when called with reveal: true. Off by default. |
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
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| get_versionA | Check connectivity: returns the Coolify version, the health endpoint result, the API base URL in use and whether this MCP server is read-only / allows revealing secrets. Call this first when other tools fail. |
| list_projectsA | List Coolify projects with their environments (e.g. production, staging). |
| list_serversA | List servers attached to Coolify with IP, reachability and proxy type. |
| list_applicationsA | List applications with name, uuid, domain(s) (fqdn), status (e.g. running:healthy, exited), git repo/branch, build pack, project and environment. Use |
| get_applicationA | Get one application's details (domains, status, git, build/start commands, ports, health check, limits, project/environment). Accepts a uuid, exact name, or a unique name/domain substring; errors with the candidates when ambiguous. Secrets (webhook secrets, basic-auth password, compose files) are never returned. |
| list_servicesA | List one-click / docker-compose services (name, uuid, type, status, project/environment). |
| list_databasesA | List standalone databases (name, uuid, type, status, public exposure, project/environment). Connection URLs and passwords are never returned. |
| list_envsA | List the environment variables of an application or service: key, uuid and flags (is_build_time, is_runtime, is_preview, is_literal, is_multiline, is_shown_once). Values are MASKED (short prefix + length, or "(empty)") so secrets stay out of the conversation. |
| set_envsA | Upsert one or many environment variables on an application or service in a single call: existing keys are updated, missing keys created, identical ones left alone. Returns per key created / updated / unchanged plus which fields changed — values are never echoed. Flags you omit keep their current value on update. For applications, the main and preview copies of a key are separate (use is_preview). Use dry_run to preview. Changes only take effect after restart_application / restart_service, or deploy for build-time variables. |
| delete_envA | Delete one environment variable from an application or service, by key. For applications, is_preview selects the preview copy (default: the main one). Use dry_run to check first. Takes effect after a restart/redeploy. |
| deployA | Queue a (re)deployment — rebuilds and restarts. Target either |
| restart_applicationA | Restart an application's containers without rebuilding (picks up runtime env var changes; build-time changes need deploy). Returns a deployment uuid to follow with get_deployment. |
| start_applicationB | Start (deploy) a stopped application. |
| stop_applicationA | Stop an application's containers (the site goes down until start_application or deploy). |
| restart_serviceA | Restart a service (all its containers), e.g. after changing its env vars. |
| list_deploymentsA | With |
| get_deploymentA | Status of one deployment plus the last |
| get_application_logsA | Last |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 18 tools
Each tool targets a distinct resource and action, with clear separation between list/get/set/delete and lifecycle actions. Potential overlaps like restart_application vs restart_service vs deploy are disambiguated by resource type and rebuild semantics.
Tool names consistently use lower_snake_case with a verb_noun pattern (list_, get_, set_, delete_, start_, stop_, restart_). The only minor deviation is the bare 'deploy', but it remains an acceptable imperative verb in the same style.
At 18 tools, the set is slightly above the ideal 3-15 range but not bloated, since each tool covers a distinct area of Coolify's domain such as resources, environment variables, deployments, and logs. The count is reasonable for the platform's breadth.
The toolset provides strong operational coverage: resource listing/status, env var management, start/stop/restart/deploy, deployment tracking, and logs. However, it lacks create/update/delete operations for projects, servers, databases, and applications, and has no get for services/databases, leaving notable lifecycle gaps.