Coolify MCP Server
The Coolify MCP Server enables AI assistants to fully manage Coolify infrastructure through 64 comprehensive tools covering all API endpoints.
Core Capabilities:
Health & System Monitoring: Check system health and get API version information
Team Management: List, get, and manage teams and their members
Project Management: Create, list, get, delete projects, and manage project environments
Application Lifecycle: Create applications (public, private GitHub, Dockerfile, Docker image), manage state (start/stop/restart), view logs, and handle deployments
Environment Variables: List, create, bulk update, and delete application environment variables with secret handling
Database Management: Create and manage multiple database types (PostgreSQL, MySQL, MongoDB, Redis, MariaDB, etc.) with full lifecycle control
Server Management: Create, list, update, delete, and validate servers, plus manage server domains and resources
Service Management: Create and manage Docker Compose services with complete lifecycle control
Deployment Management: List deployments, get application-specific deployments, and trigger new deployments
Security & Keys: Manage SSH security keys for server authentication and access control
Enables management of Docker applications and containers through Coolify, including creating Dockerfile and Docker image applications, and controlling their deployment lifecycle.
Allows creation and deployment of private GitHub applications through Coolify's platform, enabling automated deployment workflows from GitHub repositories.
Provides tools for creating, managing, and controlling MongoDB databases through Coolify, including database lifecycle operations like start, stop, and restart.
Enables creation and management of MySQL databases through Coolify's platform, with full control over database operations and configuration.
Allows creation, configuration, and management of PostgreSQL databases through Coolify, including database lifecycle management and administrative operations.
Provides tools for creating and managing Redis databases through Coolify's infrastructure, with support for database operations and configuration management.
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 MCP Serverdeploy the latest version of my e-commerce 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.
CoolifyMCP
A comprehensive Model Context Protocol (MCP) server that provides complete access to all Coolify API endpoints. CoolifyMCP enables AI assistants to interact with Coolify for managing applications, databases, servers, deployments, and more.
Built for Coolify - An open-source & self-hostable Heroku / Netlify / Vercel alternative
📖 Table of Contents
Related MCP server: Coolify MCP Tools
✨ Features
🎯 100% API Coverage: Complete implementation of all Coolify API endpoints
🛠️ 18 Consolidated MCP Tools: Streamlined access to Coolify's functionality through MCP protocol
🔒 Type Safety: Built with TypeScript for robust error handling and development experience
🚀 Production Ready: Health checks, proper logging, and monitoring
📦 Modular Architecture: Clean, maintainable codebase with separated concerns
🔧 Comprehensive: Supports all Coolify features including:
👥 Team and Project Management
🚀 Application Lifecycle Management
🗄️ Database Management (PostgreSQL, MySQL, MongoDB, Redis, etc.)
🖥️ Server Management and Validation
🐳 Service Management
📦 Deployment Management
🔐 Environment Variables
🔑 Security Keys Management
🚀 Quick Start
Install in Your AI IDE
CoolifyMCP works with all major AI IDEs that support the Model Context Protocol (MCP). Choose your preferred IDE:
Cursor IDE (Recommended)
Open Cursor and go to Settings → Extensions → MCP
Add this configuration to your
~/.cursor/mcp.json:
{
"mcpServers": {
"coolifymcp": {
"command": "npx",
"args": ["coolifymcp"],
"env": {
"COOLIFY_API_TOKEN": "your_coolify_api_token_here",
"COOLIFY_BASE_URL": "https://your-coolify-instance.com/api/v1"
}
}
}
}Claude Desktop
Open Claude Desktop settings
Add this configuration to your MCP settings:
{
"mcpServers": {
"coolifymcp": {
"command": "npx",
"args": ["coolifymcp"],
"env": {
"COOLIFY_API_TOKEN": "your_coolify_api_token_here",
"COOLIFY_BASE_URL": "https://your-coolify-instance.com/api/v1"
}
}
}
}JetBrains AI Assistant
Open your JetBrains IDE (IntelliJ, WebStorm, etc.)
Go to Settings → Tools → AI Assistant → Model Context Protocol (MCP)
Click "Add" and configure:
Name:
coolifymcpCommand:
npxArguments:
["coolifymcp"]Environment Variables:
COOLIFY_API_TOKEN:your_coolify_api_token_hereCOOLIFY_BASE_URL:https://your-coolify-instance.com/api/v1
Other MCP-Compatible IDEs
LibreChat: Add MCP server configuration in settings
Klavis AI: Configure in your platform's MCP settings
Custom MCP Clients: Use the same configuration format
Local Development
# Clone and install
git clone https://github.com/howieduhzit/coolifymcp.git
cd coolifymcp
npm install
npm run build
# Run with environment variables
COOLIFY_API_TOKEN="your_token_here" COOLIFY_BASE_URL="https://your-coolify-instance.com/api/v1" npm start📋 Prerequisites
Node.js 20+ - Download
npm 9+ or yarn - Package manager
Coolify API token - Get from your Coolify dashboard
Coolify instance URL - Your Coolify instance (default:
https://app.coolify.io/api/v1)
🛠️ Installation
NPM Installation (Recommended)
Install and run with npx (no installation needed):
npx coolifymcpOr install globally:
npm install -g coolifymcp
coolifymcpLocal Development
Clone the repository:
git clone https://github.com/howieduhzit/coolifymcp.git
cd coolifymcpInstall dependencies:
npm installBuild the project:
npm run buildRun with environment variables:
COOLIFY_API_TOKEN="your_token_here" COOLIFY_BASE_URL="https://your-coolify-instance.com/api/v1" npm start⚙️ Configuration
Environment Variables
Variable | Description | Required | Default |
| Your Coolify API token | Yes | - |
| Coolify API base URL | No |
|
| Environment mode | No |
|
| Health check server port | No |
|
MCP Client Configuration
The configuration format is consistent across all MCP-compatible IDEs. Here are the common locations:
Configuration File Locations:
Cursor:
~/.cursor/mcp.jsonClaude Desktop: MCP settings in the app
JetBrains: Settings → Tools → AI Assistant → MCP
LibreChat: Settings → MCP Servers
Custom Clients: Refer to your client's documentation
Standard Configuration:
{
"mcpServers": {
"coolifymcp": {
"command": "npx",
"args": ["coolifymcp"],
"env": {
"COOLIFY_API_TOKEN": "your_token_here",
"COOLIFY_BASE_URL": "https://your-coolify-instance.com/api/v1"
}
}
}
}Environment Variables:
COOLIFY_API_TOKEN(required): Your Coolify API tokenCOOLIFY_BASE_URL(optional): Your Coolify instance URL (defaults tohttps://app.coolify.io/api/v1)
🎯 Available Tools
The Coolify MCP Server provides 18 consolidated tools that cover all Coolify functionality through action-based parameters:
System Management (1 tool)
coolify_system- System health, version, and information managementActions:
health,version,info
Team Management (1 tool)
coolify_teams- Complete team management operationsActions:
list,current,get,members
Project Management (2 tools)
coolify_projects- Project CRUD operationsActions:
list,create,get,update,delete
coolify_project_environments- Project environment managementActions:
list,create,get,delete
Application Management (5 tools)
coolify_applications- Application CRUD operations (all types)Actions:
list,create,update,get,deleteSupports: public, private_github, private_deploy_key, dockerfile, dockerimage, dockercompose
coolify_application_lifecycle- Application lifecycle managementActions:
start,stop,restart
coolify_application_envs- Application environment variablesActions:
list,create,bulk_update,delete
coolify_logs- Application logs retrievalActions:
get
coolify_application_deployments- Application deployment managementActions:
list,get,trigger
Database Management (3 tools)
coolify_databases- Database CRUD operationsActions:
list,create,get,update,delete
coolify_database_lifecycle- Database lifecycle managementActions:
start,stop,restart
coolify_database_types- Specific database type creationActions:
create(PostgreSQL, MySQL, MongoDB, Redis)
Server Management (2 tools)
coolify_servers- Server CRUD operationsActions:
list,create,get,update,delete
coolify_server_management- Server operations and resourcesActions:
validate,domains,resources
Service Management (3 tools)
coolify_services- Service CRUD operationsActions:
list,create,get,update,delete
coolify_service_lifecycle- Service lifecycle managementActions:
start,stop,restart
coolify_service_envs- Service environment variablesActions:
list,create,update,bulk_update,delete
Security Management (1 tool)
coolify_security_keys- Security key managementActions:
list,create,get,update,delete
🏗️ Development
Scripts
npm run build- Build TypeScript to JavaScriptnpm start- Start the production servernpm run dev- Start development server with hot reload
Project Structure
coolify-mcp-server/
├── src/
│ └── index.ts # Main MCP server implementation
├── dist/ # Compiled JavaScript output
├── Dockerfile # Docker configuration
├── docker-compose.yaml # Docker Compose configuration
├── package.json # Dependencies and scripts
├── tsconfig.json # TypeScript configuration
├── config.example.env # Environment variables template
└── README.md # This file🔧 API Coverage
This MCP server provides 100% coverage of the Coolify API with 18 consolidated tools covering all 83+ API endpoints:
✅ System Management (1 tool) - Health, version, and system information
✅ Team Management (1 tool) - Complete team operations
✅ Project Management (2 tools) - Projects and environments
✅ Application Management (5 tools) - All application types and lifecycle
✅ Database Management (3 tools) - All database types and operations
✅ Server Management (2 tools) - Server operations and resources
✅ Service Management (3 tools) - Service operations and lifecycle
✅ Security Management (1 tool) - Security keys and authentication
Key Benefits of Consolidation:
🎯 Reduced Complexity: 18 tools instead of 83+ individual tools
🚀 Better Performance: Fewer tool definitions and cleaner API
🔧 Easier Maintenance: Action-based parameters for better organization
📚 Simplified Documentation: Clear tool categories and actions
🚀 Production Deployment
Health Checks
The server includes a health check endpoint at /health when running in production mode (NODE_ENV=production).
Environment Configuration
For production deployment, ensure:
Set
NODE_ENV=productionProvide valid
COOLIFY_API_TOKENSet correct
COOLIFY_BASE_URLConfigure proper logging
Set up monitoring and alerting
📝 License
MIT License - see LICENSE file for details.
🤝 Contributing
Fork the repository
Create a feature branch
Make your changes
Add tests if applicable
Submit a pull request
📚 Documentation
README.md - Complete documentation and usage examples
GitHub Repository - Source code and issue tracking
📞 Support
For issues and questions:
📝 Create an issue in the repository
📖 Check the Coolify documentation
💬 Join the Coolify community
🙏 Acknowledgments
This project is built for and powered by Coolify - an amazing open-source platform that makes self-hosting applications incredibly easy. Special thanks to the Coolify team and community for creating such a powerful tool.
🌟 Coolify on GitHub - The main Coolify project
🌐 Coolify Website - Official website and documentation
📚 Coolify Documentation - Complete documentation
💬 Coolify Discord - Community support
📄 License
This project is licensed under the MIT License - see the LICENSE file for details.
Built with ❤️ for the Coolify community
Powered by Coolify - An open-source & self-hostable Heroku / Netlify / Vercel alternative with 45.2k+ stars ⭐
Available Tools
18 toolscoolify_application_deploymentsC
Application deployment management - list, get, and trigger deployments
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | Action to perform: list (list all deployments), get (get deployment by UUID), trigger (trigger deployment) | |
| uuid | No | Application UUID (required for trigger action) | |
| deployment_uuid | No | Deployment UUID (required for get action) | |
| force_rebuild | No | Force rebuild (optional for trigger action, default: false) | |
| page | No | Page number (optional for list action) | |
| per_page | No | Items per page (optional for list action) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. While 'list, get, and trigger deployments' implies read and write operations, the description doesn't disclose critical behavioral traits such as authentication requirements, rate limits, whether 'trigger' is destructive or reversible, or what happens on success/failure. For a multi-action tool with no annotation coverage, this leaves significant gaps in understanding its behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the core purpose. Every word earns its place by specifying the three actions. However, it could be slightly more structured by explicitly separating the actions or adding minimal context, but it's appropriately concise for its content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (6 parameters, 3 distinct actions including a write operation 'trigger'), no annotations, and no output schema, the description is incomplete. It doesn't address behavioral aspects like side effects, error handling, or return formats, leaving the agent with insufficient context to use the tool effectively beyond basic parameter passing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the input schema already documents all six parameters thoroughly with descriptions and enum values. The description adds no parameter-specific information beyond what's in the schema (e.g., it doesn't explain relationships between parameters like how 'uuid' and 'deployment_uuid' differ). With high schema coverage, the baseline score of 3 is appropriate as the description doesn't compensate but doesn't need to.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Application deployment management - list, get, and trigger deployments' clearly states the tool's purpose as managing deployments with three specific actions, but it doesn't distinguish this tool from its many siblings (like coolify_application_lifecycle or coolify_service_lifecycle) that might also handle deployment-related tasks. The description is accurate but lacks sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. With 17 sibling tools including several that might overlap with deployment management (e.g., coolify_application_lifecycle, coolify_service_lifecycle), the agent receives no help in selecting this specific tool over others. The description merely states what the tool does, not when to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
coolify_application_envsC
Application environment variables management - list, create, bulk update, and delete environment variables
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | Action to perform: list (list environment variables), create (create environment variable), bulk_update (bulk update environment variables), delete (delete environment variable) | |
| uuid | Yes | Application UUID (required for all actions) | |
| key | No | Environment variable key (required for create action) | |
| value | No | Environment variable value (required for create action) | |
| env_uuid | No | Environment variable UUID (required for delete action) | |
| envs | No | Array of environment variables (required for bulk_update action) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. While it indicates the tool performs CRUD operations, it lacks critical information about permissions needed, whether operations are destructive, rate limits, error handling, or what happens to existing variables during bulk updates. For a multi-action tool with mutation capabilities, this is insufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is efficiently structured as a single phrase listing the four actions. It's front-loaded with the core purpose and avoids unnecessary elaboration. However, it could be slightly more structured by separating actions with clearer formatting.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex multi-action tool with 6 parameters, no annotations, and no output schema, the description is inadequate. It doesn't explain return values, error conditions, or the relationship between actions and parameters. The agent must rely entirely on the schema for operational details, which is insufficient for safe tool invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, providing complete parameter documentation. The description adds minimal value beyond the schema by listing the four action types, but doesn't explain parameter interactions, dependencies, or provide usage examples. Baseline 3 is appropriate when schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose as 'Application environment variables management' with specific verbs (list, create, bulk update, delete) and resource (environment variables). It distinguishes from siblings like coolify_service_envs by specifying 'application' scope, but doesn't explicitly contrast with other environment-related tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like coolify_service_envs or other application management tools. It lists actions but offers no context about appropriate use cases, prerequisites, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
coolify_application_lifecycleC
Application lifecycle management - start, stop, and restart applications
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | Action to perform: start (start application), stop (stop application), restart (restart application) | |
| uuid | Yes | Application UUID (required for all actions) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states the actions but doesn't describe effects (e.g., whether stop is graceful, if restart preserves state), permissions required, error conditions, or rate limits. For a mutation tool with zero annotation coverage, this is a significant gap in transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the core functionality ('Application lifecycle management') and lists the specific actions. There is zero waste or redundancy, making it highly concise and well-structured for quick understanding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (mutation operations with no annotations and no output schema), the description is incomplete. It lacks information on behavioral traits, error handling, return values, and usage context. While the schema covers parameters well, the overall description fails to provide sufficient context for safe and effective use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with clear descriptions for both parameters (action with enum values and UUID as required). The description adds no additional parameter semantics beyond what the schema provides, such as UUID format or action-specific behaviors. Baseline 3 is appropriate when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with specific verbs ('start, stop, and restart applications') and identifies the resource ('applications'). It distinguishes from siblings like 'coolify_application_deployments' or 'coolify_service_lifecycle' by focusing on lifecycle operations rather than deployments or service management. However, it doesn't explicitly differentiate from 'coolify_service_lifecycle' which might have overlapping functionality.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., application must exist), exclusions (e.g., cannot be used for databases), or compare to siblings like 'coolify_service_lifecycle' or 'coolify_database_lifecycle'. Usage is implied by the action names but lacks explicit context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
coolify_applicationsC
Application CRUD operations - list, create, update, get, and delete applications of all types
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | Action to perform: list (list all applications), create (create new application), update (update application), get (get application by UUID), delete (delete application) | |
| type | No | Application type (required for create action): public, private_github, private_deploy_key, dockerfile, dockerimage, dockercompose | |
| uuid | No | Application UUID (required for update, get, delete actions) | |
| name | No | Application name (required for create, optional for update) | |
| description | No | Application description (optional for create and update) | |
| page | No | Page number (optional for list action) | |
| per_page | No | Items per page (optional for list action) | |
| project_uuid | No | Project UUID (required for create) | |
| server_uuid | No | Server UUID (required for create) | |
| environment_name | No | Environment name (required for create) | |
| git_repository | No | Git repository URL (required for create) | |
| git_branch | No | Git branch (optional for create, default: main) | |
| build_pack | No | Build pack type (required for create) | |
| ports_exposes | No | Port configuration (required for create) | |
| github_app_uuid | No | GitHub App UUID (required for private_github type) | |
| private_key_uuid | No | Private key UUID (required for private_deploy_key type) | |
| docker_registry_image_name | No | Docker registry image name (required for dockerimage type) | |
| docker_registry_image_tag | No | Docker registry image tag (optional for dockerimage type, default: latest) | |
| docker_compose_raw | No | Docker Compose configuration (required for dockercompose type) | |
| dockerfile_location | No | Dockerfile location (optional for dockerfile type, default: /Dockerfile) | |
| destination_uuid | No | Destination UUID (optional for private_deploy_key type) | |
| domains | No | Domains configuration (optional for private_deploy_key type) | |
| git_commit_sha | No | Git commit SHA (optional for private_deploy_key type) | |
| is_static | No | Is static application (optional for private_deploy_key type) | |
| static_image | No | Static image (optional for private_deploy_key type) | |
| install_command | No | Install command (optional for private_deploy_key type) | |
| build_command | No | Build command (optional for private_deploy_key type) | |
| start_command | No | Start command (optional for private_deploy_key type) | |
| ports_mappings | No | Port mappings (optional for private_deploy_key type) | |
| base_directory | No | Base directory (optional for private_deploy_key type) | |
| publish_directory | No | Publish directory (optional for private_deploy_key type) | |
| health_check_enabled | No | Enable health checks (optional for private_deploy_key type) | |
| health_check_path | No | Health check path (optional for private_deploy_key type) | |
| health_check_port | No | Health check port (optional for private_deploy_key type) | |
| health_check_host | No | Health check host (optional for private_deploy_key type) | |
| health_check_method | No | Health check method (optional for private_deploy_key type) | |
| health_check_return_code | No | Health check return code (optional for private_deploy_key type) | |
| health_check_scheme | No | Health check scheme (optional for private_deploy_key type) | |
| health_check_response_text | No | Health check response text (optional for private_deploy_key type) | |
| health_check_interval | No | Health check interval (optional for private_deploy_key type) | |
| health_check_timeout | No | Health check timeout (optional for private_deploy_key type) | |
| health_check_retries | No | Health check retries (optional for private_deploy_key type) | |
| health_check_start_period | No | Health check start period (optional for private_deploy_key type) | |
| limits_memory | No | Memory limits (optional for private_deploy_key type) | |
| limits_memory_swap | No | Memory swap limits (optional for private_deploy_key type) | |
| limits_memory_swappiness | No | Memory swappiness (optional for private_deploy_key type) | |
| limits_memory_reservation | No | Memory reservation (optional for private_deploy_key type) | |
| limits_cpus | No | CPU limits (optional for private_deploy_key type) | |
| limits_cpuset | No | CPU set limits (optional for private_deploy_key type) | |
| limits_cpu_shares | No | CPU shares (optional for private_deploy_key type) | |
| custom_labels | No | Custom labels (optional for private_deploy_key type) | |
| custom_docker_run_options | No | Custom Docker run options (optional for private_deploy_key type) | |
| post_deployment_command | No | Post deployment command (optional for private_deploy_key type) | |
| post_deployment_command_container | No | Post deployment command container (optional for private_deploy_key type) | |
| pre_deployment_command | No | Pre deployment command (optional for private_deploy_key type) | |
| pre_deployment_command_container | No | Pre deployment command container (optional for private_deploy_key type) | |
| manual_webhook_secret_github | No | GitHub webhook secret (optional for private_deploy_key type) | |
| manual_webhook_secret_gitlab | No | GitLab webhook secret (optional for private_deploy_key type) | |
| manual_webhook_secret_bitbucket | No | Bitbucket webhook secret (optional for private_deploy_key type) | |
| manual_webhook_secret_gitea | No | Gitea webhook secret (optional for private_deploy_key type) | |
| redirect | No | Redirect configuration (optional for private_deploy_key type) | |
| instant_deploy | No | Instant deploy (optional for private_deploy_key type) | |
| dockerfile | No | Dockerfile content (optional for private_deploy_key type) | |
| docker_compose_location | No | Docker Compose location (optional for private_deploy_key type) | |
| docker_compose_custom_start_command | No | Docker Compose custom start command (optional for private_deploy_key type) | |
| docker_compose_custom_build_command | No | Docker Compose custom build command (optional for private_deploy_key type) | |
| docker_compose_domains | No | Docker Compose domains (optional for private_deploy_key type) | |
| watch_paths | No | Watch paths (optional for private_deploy_key type) | |
| use_build_server | No | Use build server (optional for private_deploy_key type) | |
| is_http_basic_auth_enabled | No | Enable HTTP basic auth (optional for private_deploy_key type) | |
| http_basic_auth_username | No | HTTP basic auth username (optional for private_deploy_key type) | |
| http_basic_auth_password | No | HTTP basic auth password (optional for private_deploy_key type) | |
| connect_to_docker_network | No | Connect to Docker network (optional for private_deploy_key type) | |
| force_domain_override | No | Force domain override (optional for private_deploy_key type) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. While 'CRUD operations' implies both read and write capabilities, it doesn't specify authentication requirements, rate limits, side effects (e.g., whether deletions are permanent), or error handling. For a tool with 74 parameters and complex operations, this is a significant gap in behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise—a single sentence that efficiently summarizes the tool's scope. It's front-loaded with the core purpose and wastes no words. Every part of the sentence earns its place by clarifying the action types and resource scope.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the high complexity (74 parameters, multiple action types, no annotations, no output schema), the description is insufficiently complete. It doesn't explain return values, error conditions, or how different actions interact with parameters. For such a multifaceted tool, more contextual information is needed to guide proper usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all 74 parameters thoroughly with descriptions and enums. The description adds no parameter-specific information beyond what's in the schema, but since the schema does the heavy lifting, the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool performs CRUD operations (list, create, update, get, delete) on applications, which is a specific verb+resource combination. However, it doesn't differentiate from sibling tools like 'coolify_application_lifecycle' or 'coolify_application_deployments' that might handle related application operations, so it doesn't fully distinguish from alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus the many sibling tools listed. There's no mention of prerequisites, alternative tools for specific scenarios, or contextual limitations. The agent must infer usage solely from the tool name and description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
coolify_database_lifecycleC
Database lifecycle management - start, stop, and restart databases
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | Action to perform: start (start database), stop (stop database), restart (restart database) | |
| uuid | Yes | Database UUID (required for all actions) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states the actions (start, stop, restart) but doesn't cover critical aspects like required permissions, side effects (e.g., downtime during stop/restart), error handling, or response format. For a lifecycle management tool with potential destructive operations, this is a significant gap in transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise and front-loaded, using a single sentence that efficiently lists all actions and the resource. Every word earns its place, with no redundant or vague language, making it easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of lifecycle management (potentially destructive operations) and the lack of annotations and output schema, the description is incomplete. It doesn't address safety considerations, expected outcomes, or error scenarios, which are crucial for an agent to use this tool correctly in a production environment.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, clearly documenting both parameters (action with enum values and uuid as required). The description adds no additional parameter semantics beyond what's in the schema, such as format details for UUID or action-specific behaviors. Baseline 3 is appropriate since the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with specific verbs (start, stop, restart) and resource (databases), making it easy to understand what it does. However, it doesn't explicitly differentiate from sibling tools like 'coolify_application_lifecycle' or 'coolify_service_lifecycle', which likely manage different resource types but share similar lifecycle operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites, dependencies, or comparisons to sibling tools (e.g., 'coolify_databases' for listing databases or 'coolify_application_lifecycle' for applications), leaving the agent to infer usage context from the tool name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
coolify_databasesC
Database CRUD operations - list, create, get, update, and delete databases
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | Action to perform: list (list all databases), create (create new database), get (get database by UUID), update (update database), delete (delete database) | |
| uuid | No | Database UUID (required for get, update, delete actions) | |
| name | No | Database name (required for create, optional for update) | |
| description | No | Database description (optional for create and update) | |
| type | No | Database type (required for create action) | |
| server_uuid | No | Server UUID (required for create action) | |
| project_uuid | No | Project UUID (required for create action) | |
| environment_name | No | Environment name (required for create action) | |
| page | No | Page number (optional for list action) | |
| per_page | No | Items per page (optional for list action) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but offers minimal behavioral disclosure. It states the operations but doesn't describe side effects (e.g., delete is irreversible), authentication needs, rate limits, error handling, or response formats. For a multi-action tool with destructive operations, this is a significant gap in transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the core purpose. It wastes no words but could be more structured by separating operations or adding brief context. For a multi-action tool, it's appropriately concise though slightly dense.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (10 parameters, multiple actions including destructive ones), no annotations, and no output schema, the description is incomplete. It doesn't address behavioral aspects, error cases, or return values. For a CRUD tool with delete/update operations, more context is needed to use it safely and effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, providing detailed parameter documentation. The description adds no additional parameter semantics beyond the schema's action list. It doesn't explain dependencies between parameters (e.g., uuid required for specific actions) or provide usage examples. Baseline 3 is appropriate as the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool performs 'Database CRUD operations' with specific verbs (list, create, get, update, delete) and the resource (databases). It distinguishes from siblings like coolify_database_types or coolify_database_lifecycle by focusing on core database management rather than types or lifecycle states. However, it doesn't explicitly differentiate from all siblings (e.g., coolify_applications also manages resources).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing server/project UUIDs from other tools), when to choose list vs get, or how it relates to siblings like coolify_database_lifecycle for state changes. Usage is implied through the action parameter but not explicitly stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
coolify_database_typesC
Specific database type creation - create PostgreSQL, MySQL, MongoDB, and Redis databases with type-specific parameters
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | Action to perform: create (create database of specific type) | |
| type | Yes | Database type (required for create action) | |
| name | Yes | Database name (required for create action) | |
| server_uuid | Yes | Server UUID (required for create action) | |
| project_uuid | Yes | Project UUID (required for create action) | |
| environment_name | Yes | Environment name (required for create action) | |
| postgresql_user | No | PostgreSQL user (optional for postgresql type) | |
| postgresql_password | No | PostgreSQL password (optional for postgresql type) | |
| postgresql_db | No | PostgreSQL database name (optional for postgresql type) | |
| mysql_user | No | MySQL user (optional for mysql type) | |
| mysql_password | No | MySQL password (optional for mysql type) | |
| mysql_database | No | MySQL database name (optional for mysql type) | |
| mysql_root_password | No | MySQL root password (optional for mysql type) | |
| mongodb_root_username | No | MongoDB root username (optional for mongodb type) | |
| mongodb_root_password | No | MongoDB root password (optional for mongodb type) | |
| mongodb_database | No | MongoDB database name (optional for mongodb type) | |
| mongodb_username | No | MongoDB username (optional for mongodb type) | |
| mongodb_password | No | MongoDB password (optional for mongodb type) | |
| redis_password | No | Redis password (optional for redis type) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states this is a creation tool but doesn't mention permission requirements, whether it's idempotent, what happens on failure, or typical response format. For a tool with 19 parameters and no output schema, this leaves significant behavioral gaps for the agent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the core purpose. It wastes no words but could potentially benefit from slightly more context given the tool's complexity. Every word earns its place, though it might be too concise for a tool with 19 parameters.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex creation tool with 19 parameters, no annotations, and no output schema, the description is inadequate. It doesn't explain what happens after creation, error conditions, or how this tool relates to the broader database management context provided by sibling tools. The agent would struggle to use this effectively without additional context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all 19 parameters thoroughly. The description adds minimal value beyond the schema by mentioning 'type-specific parameters' and listing the four database types, but doesn't provide additional context about parameter relationships or usage patterns. This meets the baseline for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Specific database type creation - create PostgreSQL, MySQL, MongoDB, and Redis databases with type-specific parameters.' It specifies the verb ('create') and resources (four database types), but doesn't explicitly differentiate from sibling tools like 'coolify_databases' or 'coolify_database_lifecycle' which might handle other database operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites, dependencies, or compare it to sibling tools like 'coolify_databases' (which might list databases) or 'coolify_database_lifecycle' (which might manage existing databases). The agent must infer usage from the name and description alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
coolify_logsC
Application logs and monitoring - get application logs
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | Action to perform: get (get application logs) | |
| uuid | Yes | Application UUID (required for get action) | |
| lines | No | Number of log lines to retrieve (optional for get action) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool is for 'get application logs' but doesn't describe what 'get' entails—e.g., whether it returns real-time or historical logs, if there are rate limits, authentication requirements, or pagination behavior. The mention of 'monitoring' in the description is vague and adds little actionable context, leaving significant gaps in understanding the tool's behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with two phrases ('Application logs and monitoring' and 'get application logs'), which are front-loaded and to the point. However, 'Application logs and monitoring' is somewhat redundant with 'get application logs', and the monitoring aspect isn't elaborated, slightly reducing efficiency. Overall, it avoids unnecessary verbosity but could be more streamlined.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of a logging tool with no annotations and no output schema, the description is incomplete. It doesn't explain what the logs contain (e.g., format, timestamps), how to interpret them, or any limitations (e.g., log retention periods). With siblings like coolify_application_lifecycle that might overlap, more context is needed to ensure the agent can use this tool effectively without confusion.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, with clear documentation for each parameter (action, uuid, lines). The description adds no additional meaning beyond what's in the schema—it doesn't explain parameter interactions (e.g., how lines affects output) or provide examples. Since schema coverage is high, the baseline score of 3 is appropriate, as the description doesn't compensate but also doesn't detract from the schema's clarity.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose as 'get application logs', which is a specific verb+resource combination. It distinguishes this tool from siblings like coolify_application_deployments or coolify_application_lifecycle by focusing on logs rather than deployments or lifecycle management. However, it doesn't explicitly differentiate from all siblings (e.g., monitoring aspect isn't clarified versus other tools).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention any prerequisites, such as needing an application UUID from another tool like coolify_applications, or specify scenarios where logs are needed (e.g., debugging vs. monitoring). With siblings like coolify_application_lifecycle that might involve logs, the lack of explicit usage context leaves the agent guessing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
coolify_project_environmentsC
Project environment management - list, create, get, and delete project environments
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | Action to perform: list (list all environments in project), create (create new environment), get (get environment details), delete (delete environment) | |
| project_uuid | Yes | Project UUID (required for all actions) | |
| environment_name_or_uuid | No | Environment name or UUID (required for get and delete actions) | |
| name | No | Environment name (required for create action) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. While it mentions the four operations (list, create, get, delete), it doesn't explain important behavioral aspects like: what permissions are needed for each action, whether deletions are permanent or reversible, if there are rate limits, what the response format looks like, or any side effects of these operations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately concise - a single sentence that efficiently communicates the core functionality. It's front-loaded with the main purpose. However, it could be slightly more structured by separating the different action types more clearly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 4 parameters, no annotations, and no output schema, the description is inadequate. It doesn't explain the relationships between parameters (e.g., which parameters are needed for which actions beyond what the schema indicates), doesn't describe return values or error conditions, and doesn't provide context about how this fits within the broader Coolify ecosystem relative to sibling tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, so the schema already documents all four parameters thoroughly. The description doesn't add any meaningful parameter semantics beyond what's in the schema - it just lists the four action types without explaining parameter dependencies or usage patterns. The baseline of 3 is appropriate when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose as 'Project environment management - list, create, get, and delete project environments', which is a specific verb+resource combination. However, it doesn't distinguish this tool from its sibling tools like 'coolify_application_envs' or 'coolify_service_envs', which might handle similar environment operations for different resource types.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. There are multiple sibling tools with 'envs' in their names (coolify_application_envs, coolify_service_envs), but the description doesn't explain whether this tool is for project-level environments specifically or how it differs from those other environment tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
coolify_projectsC
Project CRUD operations - list, create, get, update, and delete projects
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | Action to perform: list (list all projects), create (create new project), get (get project by UUID), update (update project), delete (delete project) | |
| uuid | No | Project UUID (required for get, update, delete actions) | |
| name | No | Project name (required for create, optional for update) | |
| description | No | Project description (optional for create and update) | |
| page | No | Page number (optional for list action) | |
| per_page | No | Items per page (optional for list action) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It mentions CRUD operations but lacks behavioral details: it doesn't specify permissions needed, whether deletions are irreversible, rate limits, or what the output looks like (e.g., format of listed projects). This is inadequate for a mutation-heavy tool with no annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the core purpose (CRUD operations on projects) and enumerates the five actions. Every word earns its place with zero waste, making it easy to scan and understand quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 6 parameters, no annotations, and no output schema, the description is incomplete. It covers the basic actions but misses critical context: behavioral traits (e.g., destructive effects of delete), usage scenarios, and output expectations. This leaves significant gaps for an agent to operate safely and effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents all 6 parameters. The description adds no parameter-specific information beyond the high-level action list, which is already covered in the schema's enum description. Baseline 3 is appropriate as the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool performs 'CRUD operations' on 'projects', specifying the five actions (list, create, get, update, delete). It distinguishes the resource (projects) and verbs, but doesn't explicitly differentiate from sibling tools like 'coolify_applications' or 'coolify_servers' that might handle similar operations on different resources.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. The description lists actions but doesn't indicate context, prerequisites, or exclusions. For example, it doesn't clarify if this is the primary tool for project management or if siblings like 'coolify_project_environments' should be used for specific aspects.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
coolify_security_keysC
Security keys management - list, create, get, update, and delete security keys
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | Action to perform: list (list all security keys), create (create new security key), get (get security key by UUID), update (update security key), delete (delete security key) | |
| uuid | No | Security key UUID (required for get, update, delete actions) | |
| name | No | Key name (required for create, optional for update) | |
| description | No | Key description (optional for create and update) | |
| key | No | SSH private key content (required for create, optional for update) | |
| page | No | Page number (optional for list action) | |
| per_page | No | Items per page (optional for list action) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It lists actions but doesn't describe critical traits like authentication requirements, rate limits, side effects (e.g., deletion permanence), or response formats. For a multi-action tool with potential mutations, this is a significant gap in transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the core purpose. It avoids redundancy and wastes no words, though it could be slightly more structured by separating actions or adding brief context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (7 parameters, multiple actions including mutations) and lack of annotations and output schema, the description is incomplete. It doesn't address behavioral aspects, error handling, or return values, leaving the agent under-informed for safe and effective use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with each parameter well-documented in the schema. The description adds no additional parameter semantics beyond what's in the schema (e.g., it doesn't clarify dependencies between parameters). Baseline 3 is appropriate as the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose as 'Security keys management - list, create, get, update, and delete security keys', which is a specific verb+resource combination. However, it doesn't differentiate this tool from its siblings (like coolify_servers or coolify_services) beyond the security keys domain, missing explicit sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It lists actions but doesn't specify prerequisites, contexts, or exclusions (e.g., when to use this over other security or management tools). This leaves the agent without usage direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
coolify_server_managementC
Server operations and resources - validate server connection, list domains, and list resources
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | Action to perform: validate (validate server connection), domains (list server domains), resources (list server resources) | |
| uuid | Yes | Server UUID (required for all actions) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions operations like 'validate server connection' and 'list domains/resources', but doesn't describe what these actions entail—e.g., whether validation is a lightweight ping or a full audit, if listing returns all data or is paginated, or if there are rate limits or authentication requirements. For a tool with multiple actions and no annotations, this leaves significant gaps in understanding behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and front-loaded, stating the tool's purpose in a single sentence with three bullet-like actions. There's no wasted text, and it efficiently communicates the scope. However, it could be slightly more structured by explicitly separating the actions or adding brief context, but it remains appropriately sized for its content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (multiple actions, no output schema, no annotations), the description is incomplete. It lacks details on what each action returns, error conditions, or behavioral traits like whether operations are read-only or have side effects. Without annotations or output schema, the description should compensate more by explaining expected outputs or usage constraints, which it doesn't do adequately.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with clear descriptions for both parameters: 'action' with enum values and 'uuid' as required. The description adds minimal value beyond the schema by naming the actions (validate, domains, resources), but doesn't provide additional context like what 'validate' checks or what 'resources' includes. With high schema coverage, the baseline is 3, as the description doesn't significantly enhance parameter understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool performs server operations and resources with three specific actions: validate server connection, list domains, and list resources. It provides a verb+resource combination that distinguishes it from siblings like coolify_servers (likely listing servers) or coolify_system (broader system operations). However, it doesn't explicitly differentiate from all siblings, such as coolify_logs which might also involve server resources.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites, such as needing a valid server UUID from another tool like coolify_servers, or clarify when to choose this over siblings like coolify_servers for server-level operations versus coolify_applications for application-level tasks. Usage is implied through action names but not explicitly stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
coolify_serversC
Server CRUD operations - list, create, get, update, and delete servers
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | Action to perform: list (list all servers), create (create new server), get (get server by UUID), update (update server), delete (delete server) | |
| uuid | No | Server UUID (required for get, update, delete actions) | |
| name | No | Server name (required for create, optional for update) | |
| description | No | Server description (optional for create and update) | |
| ip | No | Server IP address (required for create, optional for update) | |
| port | No | SSH port (optional for create and update, default: 22) | |
| user | No | SSH user (optional for create and update, default: root) | |
| private_key_id | No | Private key ID (optional for create action) | |
| page | No | Page number (optional for list action) | |
| per_page | No | Items per page (optional for list action) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions CRUD operations but doesn't specify authentication requirements, rate limits, side effects (e.g., what happens when deleting a server), or response formats. For a tool with 10 parameters and multiple actions including destructive ones like 'delete,' this leaves significant gaps in understanding how the tool behaves in practice.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise—a single sentence that efficiently lists all five actions. It's front-loaded with the core purpose and wastes no words. Every part of the description earns its place by clearly communicating the scope of operations.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (10 parameters, multiple actions including destructive ones), lack of annotations, and no output schema, the description is insufficient. It doesn't cover behavioral aspects like authentication, error handling, or what the tool returns. For a CRUD tool with 'delete' action and no structured safety hints, more context is needed to ensure safe and correct usage by an AI agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 100%, with each parameter well-documented in the schema itself (e.g., action enum values, required conditions for uuid). The description adds no additional parameter semantics beyond stating it handles CRUD operations, which is already implied by the action parameter. This meets the baseline of 3 since the schema does the heavy lifting, but the description doesn't enhance understanding of parameter usage beyond what's in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool performs 'Server CRUD operations - list, create, get, update, and delete servers,' which is a specific verb+resource combination. It distinguishes itself from sibling tools like 'coolify_application_deployments' or 'coolify_projects' by focusing specifically on servers rather than applications, databases, or projects. However, it doesn't explicitly differentiate from 'coolify_server_management' which might have overlapping functionality.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. There's no mention of prerequisites, when to choose specific actions (like 'list' vs 'get'), or how it relates to sibling tools such as 'coolify_server_management' or other server-related operations. The agent must infer usage solely from the action parameter description in the schema.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
coolify_service_envsC
Service environment variables management - list, create, update, bulk update, and delete environment variables
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | Action to perform: list (list environment variables), create (create environment variable), update (update environment variable), bulk_update (bulk update environment variables), delete (delete environment variable) | |
| uuid | Yes | Service UUID (required for all actions) | |
| key | No | Environment variable key (required for create and update actions) | |
| value | No | Environment variable value (required for create and update actions) | |
| env_uuid | No | Environment variable UUID (required for delete action) | |
| envs | No | Array of environment variables (required for bulk_update action) | |
| is_preview | No | Is preview variable (optional for update action, default: false) | |
| is_build_time | No | Is build time variable (optional for update action, default: false) | |
| is_literal | No | Is literal variable (optional for update action, default: false) | |
| is_multiline | No | Is multiline variable (optional for update action, default: false) | |
| is_shown_once | No | Is shown once variable (optional for update action, default: false) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. While it lists the available actions, it doesn't describe important behavioral traits: what permissions are required, whether operations are destructive (delete action), how changes affect running services, rate limits, or error conditions. For a multi-action tool with destructive operations, this is a significant gap in transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is efficiently structured in a single sentence that lists all available actions. It's front-loaded with the core purpose and wastes no words. However, it could be slightly more structured by grouping related actions or indicating which are read vs write operations.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex multi-action tool with 11 parameters, no annotations, and no output schema, the description is inadequate. It doesn't explain the tool's scope (service vs application), doesn't provide behavioral context for destructive operations, and offers no guidance on action selection. The agent would struggle to use this tool correctly without trial and error.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all 11 parameters thoroughly. The description adds no additional parameter semantics beyond what's in the schema - it doesn't explain parameter relationships, dependencies between action and other parameters, or provide usage examples. Baseline 3 is appropriate when schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose as 'Service environment variables management' with specific verbs (list, create, update, bulk update, delete) and resource (environment variables). It distinguishes from sibling tools like 'coolify_application_envs' by specifying 'service' rather than 'application' environment variables, though it doesn't explicitly mention this distinction in the description text itself.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites, appropriate contexts, or when to choose specific actions (like bulk_update vs individual updates). There's no comparison to sibling tools like 'coolify_application_envs' that might handle similar functionality for different resource types.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
coolify_service_lifecycleC
Service lifecycle management - start, stop, and restart services
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | Action to perform: start (start service), stop (stop service), restart (restart service) | |
| uuid | Yes | Service UUID (required for all actions) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the actions (start, stop, restart) but doesn't cover critical aspects like required permissions, side effects (e.g., downtime for stop/restart), error handling, or response format. For a mutation tool with zero annotation coverage, this leaves significant gaps in understanding its behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the core purpose ('Service lifecycle management') and lists the specific actions. Every word earns its place with zero waste, making it easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (managing service states, which implies mutations) and lack of annotations or output schema, the description is incomplete. It doesn't address behavioral traits like safety, permissions, or response details, leaving the agent with insufficient context to use it effectively beyond basic parameter input.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, with clear documentation for both parameters (action with enum values and uuid as required). The description adds no additional parameter semantics beyond what's in the schema, such as explaining UUID format or action nuances. Baseline 3 is appropriate since the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose as 'Service lifecycle management - start, stop, and restart services', which specifies the verb (manage lifecycle) and resource (services) with concrete actions. However, it doesn't differentiate from sibling tools like 'coolify_application_lifecycle' or 'coolify_database_lifecycle', which likely manage similar lifecycle operations for different resource types.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites, distinguish it from sibling tools (e.g., 'coolify_application_lifecycle'), or specify contexts like which services are eligible. Usage is implied by the action names but lacks explicit when/when-not instructions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
coolify_servicesC
Service CRUD operations - list, create, get, update, and delete services
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | Action to perform: list (list all services), create (create new service), get (get service by UUID), update (update service), delete (delete service) | |
| uuid | No | Service UUID (required for get, update, delete actions) | |
| name | No | Service name (required for create, optional for update) | |
| description | No | Service description (optional for create and update) | |
| server_uuid | No | Server UUID (required for create action) | |
| project_uuid | No | Project UUID (required for create action) | |
| environment_name | No | Environment name (required for create action) | |
| docker_compose_raw | No | Docker Compose configuration (required for create, optional for update) | |
| page | No | Page number (optional for list action) | |
| per_page | No | Items per page (optional for list action) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It mentions CRUD operations but doesn't disclose behavioral traits like authentication requirements, rate limits, side effects, or what happens during deletion. For a multi-action tool with destructive operations, this leaves significant gaps in understanding how the tool behaves.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the core functionality. It wastes no words but could be slightly more structured by separating the different action types for better readability.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex multi-action tool with 10 parameters, no annotations, and no output schema, the description is inadequate. It doesn't explain return values, error conditions, or behavioral implications of different actions. The agent must rely entirely on the input schema without guidance on how to interpret results or handle different operation types.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 100% schema description coverage, the schema already documents all 10 parameters thoroughly. The description adds no additional parameter semantics beyond what's in the schema - it doesn't explain relationships between parameters, provide examples, or clarify edge cases. The baseline of 3 is appropriate when schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool performs 'Service CRUD operations' with specific verbs (list, create, get, update, delete) and resource (services). It distinguishes from siblings like coolify_servers or coolify_projects by focusing on services, but doesn't explicitly differentiate from other service-related tools like coolify_service_lifecycle.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. With 16 sibling tools including service-specific ones like coolify_service_lifecycle and coolify_service_envs, the description offers no context about use cases, prerequisites, or relationships to other tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
coolify_systemB
System management operations - health check, version, and system information
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | Action to perform: health (check system health), version (get API version), info (get system information) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It mentions 'operations' but doesn't disclose whether these are read-only queries or potentially disruptive actions, what permissions are required, rate limits, or what format the information returns. For a system management tool with zero annotation coverage, this leaves significant behavioral questions unanswered.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is perfectly concise - a single sentence that efficiently communicates the core functionality. Every word earns its place with no redundancy or unnecessary elaboration. It's appropriately sized for a tool with one parameter and clear scope.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter tool with 100% schema coverage but no annotations or output schema, the description provides adequate but minimal context. It covers what the tool does but lacks behavioral details (permissions, side effects) and doesn't explain what information each action returns. Given the simplicity of the tool, this is minimally viable but has clear gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with the single parameter 'action' fully documented in the schema with enum values and descriptions. The description mentions the three operations (health, version, info) but adds no additional semantic context beyond what the schema already provides. Baseline 3 is appropriate when schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose as 'System management operations' with specific functions listed (health check, version, system information). It distinguishes from siblings by focusing on system-level operations rather than application/database/project management. However, it doesn't explicitly contrast with 'coolify_server_management' which might have overlapping scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. With siblings like 'coolify_server_management' that might handle similar system operations, there's no indication of scope boundaries or prerequisites. The description only lists what the tool does, not when it's appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
coolify_teamsC
Complete team management - list teams, get current team, get team details, and list team members
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | Action to perform: list (list all teams), current (get current team), get (get specific team), members (list team members) | |
| team_id | No | Team ID (required for get and members actions, optional for others) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions actions but doesn't describe behavioral traits such as required permissions, rate limits, response formats, or whether operations are read-only or mutative. For a tool with multiple actions, this is a significant gap in transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that lists all key actions without unnecessary words. It's front-loaded with the main purpose ('Complete team management') and structured clearly. However, it could be slightly more polished by using bullet points or clearer formatting for the actions.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (multiple actions), lack of annotations, and no output schema, the description is incomplete. It doesn't address behavioral aspects, usage context, or return values, leaving gaps that could hinder an AI agent's ability to use the tool effectively in a broader context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 100%, with clear descriptions for both parameters (action and team_id). The description doesn't add any additional semantic context beyond what's in the schema, such as examples or edge cases. Since the schema does the heavy lifting, the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose as 'Complete team management' and enumerates four specific actions (list teams, get current team, get team details, list team members), providing a comprehensive overview. However, it doesn't explicitly differentiate this team management tool from sibling tools like coolify_projects or coolify_servers, which prevents a perfect score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It lists actions but doesn't specify prerequisites, contexts, or comparisons to sibling tools (e.g., when to use coolify_teams vs. coolify_projects for related data). This lack of usage context limits its effectiveness for an AI agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Each tool has a clearly distinct purpose targeting specific resources (applications, databases, projects, servers, services, etc.) and actions (CRUD, lifecycle, envs, logs, etc.). There is no ambiguity or overlap; for example, coolify_application_envs and coolify_service_envs are clearly separated by resource type, and lifecycle tools are distinct from CRUD tools.
All tools follow a consistent 'coolify_<resource>_<action>' naming pattern with snake_case throughout. The pattern is predictable and readable, making it easy to identify the resource and operation type, such as coolify_applications for CRUD and coolify_application_lifecycle for lifecycle management.
With 18 tools, the count is slightly high but reasonable for a comprehensive server management system covering applications, databases, projects, servers, services, and more. Each tool earns its place by addressing specific aspects of the domain, though it borders on being heavy.
The tool set provides complete coverage for the Coolify domain, including CRUD operations, lifecycle management, environment variables, logs, security, and system info across all key resources (applications, databases, projects, servers, services). There are no obvious gaps; agents can perform full workflows without dead ends.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Deploy and manage your apps, databases, storage, and scheduled jobs from your AI agent
The agent-native cloud: database, functions, AI, storage, computers. 50 tools, one API key.
Query your team's drift, vulnerability, and upgrade data from any AI assistant. OAuth 2.1, 51 tools.
Your AI Agent's Infrastructure Layer. Connect Claude, Copilot, Codex, or ChatGPT to 200+ managed open source services. Start databases, pipelines, and applications through natural language.
Related MCP Servers
- AlicenseAqualityDmaintenanceEnables AI assistants to interact with Coolify self-hosted instances for application deployment, management, and monitoring. Features 4 unified tools optimized for VS Code's limits, covering app management, environment configuration, system administration, and built-in documentation.41691MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to manage Coolify infrastructure including servers, applications, databases, deployments, and 80+ one-click services through 98 comprehensive tools for both cloud and self-hosted instances.MIT
- AlicenseBqualityCmaintenanceEnables control and management of Coolify self-hosted PaaS instances, allowing you to deploy applications, manage databases, monitor servers, and execute operations directly from AI assistants.893228MIT
- AlicenseBqualityDmaintenanceEnables management of Coolify instances to control applications, databases, and servers through the Model Context Protocol. It provides a comprehensive set of tools for deploying services and monitoring self-hosted infrastructure using natural language.18213MIT
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/HowieDuhzit/CoolifyMCP'
If you have feedback or need assistance with the MCP directory API, please join our Discord server