About Coolify MCP Server
Coolify MCP Server is an MCP server published by kof70 in the Developer Tools category.
The repository has 28 stars and 4 forks, with the last commit a month ago. Recent commit activity is the strongest signal that reported issues will get attention.
Install
git clone https://github.com/kof70/coolify-mcp-serverThis server has no ConduID identity, so agent calls to it are not receipted. Pin the version you install and review the source before granting it credentials.
Ask AI
Ask AI about Coolify MCP Server
Powered by Claude · Grounded in docs
Security checks
Static checks derived from the repository 8 days ago. Heuristics on the source, not an audit.
- ✓README presentThe repository ships documentation.
- ✓License declaredUsable under a stated license.
- ✓Tests presentA test suite exists in the repository.
- ✓Dependencies pinnedA lockfile pins dependency versions.
- ✓No dynamic code executionSource scan found no eval, dynamic Function, or shell execution.
1 check has not been run yet.
Releases
README
Coolify MCP Server
A Model Context Protocol (MCP) server for Coolify API integration. Control your self-hosted PaaS directly from Claude, Kiro, or any MCP-compatible AI assistant.
Compatible with Coolify v4.0.0-beta.454+
Official npm package for this repository: coolify-mcp-server-kof70
🚀 Features
- Complete API Coverage: Applications, Databases, Servers, Projects, Services, Teams, Deployments, Private Keys
- MCP Resources: Direct resource access via
coolify://URIs - Version Detection: Automatic feature compatibility based on Coolify version
- Rate Limiting: Built-in rate limit handling with retry logic
- Minimal Dependencies: Only axios and MCP SDK
- TypeScript: Full type safety
📦 Installation
Quick Setup (Recommended)
Run the interactive setup wizard:
npx coolify-mcp-server-kof70 --setup
This will:
- Ask for your Coolify URL and API token
- Validate the connection
- Configure your IDE automatically (Kiro, Cursor, VS Code, Claude Desktop)
Quick Setup with Arguments
npx coolify-mcp-server-kof70 --setup --url https://coolify.example.com --token your-token --ide kiro
Global Installation
npm install -g coolify-mcp-server-kof70
coolify-mcp --setup
From Source
git clone https://github.com/kof70/coolify-mcp-server.git
cd coolify-mcp-server
npm install
npm run build
⚙️ Configuration
Environment Variables
| Variable | Required | Description |
|---|---|---|
COOLIFY_BASE_URL |
Yes | Your Coolify instance URL (e.g., https://coolify.example.com) |
COOLIFY_TOKEN |
Yes | API token from Coolify |
COOLIFY_TEAM_ID |
No | Team ID for multi-team setups |
COOLIFY_READONLY |
No | Set to true for read-only mode (safe monitoring) |
COOLIFY_REQUIRE_CONFIRM |
No | Set to true to require confirmation for dangerous operations |
COOLIFY_ACCOUNTS_FILE |
No | Path to a multi-account config file (default: ~/.config/coolify-mcp/accounts.json) |
COOLIFY_ACTIVE_ACCOUNT |
No | Which account to activate on startup, if the accounts file doesn't set a default |
🔀 Multiple accounts / teams / instances
If you manage several Coolify accounts (different teams, or even different
self-hosted instances), you don't need one MCP server config per account.
Create ~/.config/coolify-mcp/accounts.json:
{
"default": "work",
"accounts": [
{ "name": "work", "baseUrl": "https://coolify.example.com", "token": "1|xxxx" },
{ "name": "client-x", "baseUrl": "https://coolify.client-x.com", "token": "2|yyyy", "teamId": "3" }
]
}
Then use these tools from your assistant, no server restart required:
list_accounts— shows configured accounts (name, base URL, masked token) and which one is active.switch_account { name }— switches every subsequent tool call to that account for the rest of the session.add_account { name, base_url, token, team_id?, set_default? }— saves a new account to the file (does not switch to it automatically).
If no accounts file exists, the server falls back to the legacy single-account
COOLIFY_BASE_URL/COOLIFY_TOKEN environment variables, exposed as an
account named env — existing single-account setups keep working unchanged.
🔒 Read-Only Mode
For safe monitoring without risk of accidental changes, enable read-only mode:
{
"mcpServers": {
"coolify": {
"command": "coolify-mcp",
"env": {
"COOLIFY_BASE_URL": "https://your-coolify.com",
"COOLIFY_TOKEN": "your-api-token",
"COOLIFY_READONLY": "true"
}
}
}
}
In read-only mode, only these operations are available:
get_*- Get details of resourceslist_*- List resourceshealth_check- Check API health
All write operations (create_*, start_*, stop_*, restart_*, deploy_*, execute_command) are disabled.
⚠️ Confirmation for Dangerous Operations
For extra safety, you can require confirmation before executing dangerous operations:
{
"mcpServers": {
"coolify": {
"command": "coolify-mcp",
"env": {
"COOLIFY_BASE_URL": "https://your-coolify.com",
"COOLIFY_TOKEN": "your-api-token",
"COOLIFY_REQUIRE_CONFIRM": "true"
}
}
}
}
When enabled, these operations require explicit confirmation:
stop_application,restart_applicationstop_service,restart_servicedeploy_applicationexecute_command
Without confirm: true, these operations return a warning:
{
"confirmation_required": true,
"action": "stop_application",
"warning": "This will stop the application and make it unavailable until restarted.",
"message": "This is a dangerous operation. To proceed, call again with confirm: true",
"example": { "uuid": "abc123", "confirm": true }
}
To execute, call again with confirm: true:
stop_application({ uuid: "abc123", confirm: true })
Getting an API Token
- Go to your Coolify instance
- Navigate to Keys & Tokens → API tokens
- Create a new token with required permissions:
read- For listing resourceswrite- For creating/updating resourcesdeploy- For deployment operations
🔧 Usage
With Claude Desktop
Add to your claude_desktop_config.json:
{
"mcpServers": {
"coolify": {
"command": "coolify-mcp",
"env": {
"COOLIFY_BASE_URL": "https://your-coolify.com",
"COOLIFY_TOKEN": "your-api-token"
}
}
}
}
With Kiro
Add to your .kiro/settings/mcp.json:
{
"mcpServers": {
"coolify": {
"command": "coolify-mcp",
"env": {
"COOLIFY_BASE_URL": "https://your-coolify.com",
"COOLIFY_TOKEN": "your-api-token"
}
}
}
}
From Source
{
"mcpServers": {
"coolify": {
"command": "node",
"args": ["/path/to/coolify-mcp-server/build/index.js"],
"env": {
"COOLIFY_BASE_URL": "https://your-coolify.com",
"COOLIFY_TOKEN": "your-api-token"
}
}
}
}
🛠️ Available Tools
Accounts
| Tool | Description |
|---|---|
list_accounts |
List configured accounts and show the active one |
switch_account |
Switch the active account for the rest of the session |
add_account |
Save a new named account to the accounts file |
Version & Health
| Tool | Description |
|---|---|
get_version |
Get Coolify version information |
health_check |
Check API health status |
Teams
| Tool | Description |
|---|---|
list_teams |
List all accessible teams |
get_team |
Get team details by ID |
get_current_team |
Get current team details |
get_current_team_members |
Get current team members |
get_team_members |
Get members of a specific team |
Servers
| Tool | Description |
|---|---|
list_servers |
List all servers |
get_server |
Get server details by UUID |
create_server |
Create a new server |
update_server |
Update a server |
delete_server |
Delete a server |
validate_server |
Validate server connection |
get_server_resources |
Get server resource usage |
get_server_domains |
Get domains configured on a server |
Projects & Environments
| Tool | Description |
|---|---|
list_projects |
List all projects |
get_project |
Get project details |
create_project |
Create a new project |
update_project |
Update a project |
delete_project |
Delete a project |
list_environments |
List environments in a project |
get_environment |
Get environment details |
create_environment |
Create a new environment |
delete_environment |
Delete an environment |
Applications
| Tool | Description |
|---|---|
list_applications |
List all applications |
get_application |
Get application details |
create_public_application |
Create from a public Git repository |
create_private_github_app_application |
Create from private repo using GitHub App |
create_private_deploy_key_application |
Create from private repo using deploy key |
create_dockerfile_application |
Create from a Dockerfile |
create_dockerimage_application |
Create from a Docker image |
create_dockercompose_application |
Create from Docker Compose |
update_application |
Update an application |
delete_application |
Delete an application |
start_application |
Start an application |
stop_application |
Stop an application |
restart_application |
Restart an application |
deploy_application |
Deploy an application |
deploy |
Deploy resources by UUID or tag |
execute_command |
Execute command in container |
get_application_logs |
Get application logs |
get_application_deployments |
Get all deployments for an application |
Application Storages
| Tool | Description |
|---|---|
get_application_storages |
List persistent/file storages mounted on an application |
create_application_storage |
Mount a persistent volume or a single file |
update_application_storage |
Update an existing mounted storage |
delete_application_storage |
Remove a mounted storage |
Application Environment Variables
| Tool | Description |
|---|---|
get_application_envs |
Get environment variables for an application |
create_application_env |
Create an environment variable |
update_application_env |
Update an environment variable |
delete_application_env |
Delete an environment variable |
update_application_envs_bulk |
Update multiple environment variables in bulk |
Services
| Tool | Description |
|---|---|
list_services |
List all services |
get_service |
Get service details by UUID |
create_service |
Create a new service |
update_service |
Update a service |
delete_service |
Delete a service |
start_service |
Start a service |
stop_service |
Stop a service |
restart_service |
Restart a service |
Service Environment Variables
| Tool | Description |
|---|---|
get_service_envs |
Get environment variables for a service |
create_service_env |
Create an environment variable |
update_service_env |
Update an environment variable |
delete_service_env |
Delete an environment variable |
update_service_envs_bulk |
Update multiple environment variables in bulk |
Databases
| Tool | Description |
|---|---|
list_databases |
List all databases |
get_database |
Get database details by UUID |
create_database |
Create a new database (PostgreSQL, MySQL, MariaDB, MongoDB, Redis, ClickHouse, Dragonfly, KeyDB) |
update_database |
Update a database |
delete_database |
Delete a database |
start_database |
Start a database |
stop_database |
Stop a database |
restart_database |
Restart a database |
get_database_backups |
Get backup configurations for a database |
create_database_backup |
Create a backup configuration |
Deployments
| Tool | Description |
|---|---|
list_deployments |
List all deployments |
get_deployment |
Get deployment details |
cancel_deployment |
Cancel a deployment in progress |
Private Keys
| Tool | Description |
|---|---|
list_private_keys |
List all SSH private keys |
get_private_key |
Get a private key by UUID |
create_private_key |
Create a new SSH private key |
update_private_key |
Update a private key |
delete_private_key |
Delete a private key |
GitHub Apps
| Tool | Description |
|---|---|
list_github_apps |
List all GitHub Apps configured in Coolify |
get_github_app |
Get GitHub App details by ID |
create_github_app |
Create a new GitHub App configuration |
update_github_app |
Update a GitHub App configuration |
delete_github_app |
Delete a GitHub App configuration |
get_github_app_repositories |
Get repositories accessible by a GitHub App |
get_github_app_repository_branches |
Get branches of a repository |
Resources
| Tool | Description |
|---|---|
list_resources |
List all resources (applications, services, databases) |
📚 MCP Resources
Access data directly via MCP resources:
coolify://applications - List all applications
coolify://databases - List all databases
coolify://servers - List all servers
coolify://projects - List all projects
coolify://services - List all services
coolify://teams - List all teams
coolify://deployments - List all deployments
coolify://private-keys - List all private keys
💡 Example Prompts
Once configured, you can ask your AI assistant:
- "List all my Coolify applications"
- "Deploy the app with UUID abc123"
- "Show me the logs for my-app"
- "Create a new PostgreSQL database called mydb"
- "What servers do I have in Coolify?"
- "Restart the production application"
🤝 Contributing
Contributions are welcome! Please read our Contributing Guide for details.
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'feat: add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
📝 License
This project is licensed under the MIT License - see the LICENSE file for details.
🙏 Acknowledgments
- Coolify - The amazing self-hosted PaaS
- Model Context Protocol - The MCP specification
- All contributors who help improve this project
📮 Support
README fetched from the repository 8 days ago. The original is authoritative.