MCP server for Coolify v4.3.1 API — full coverage of all endpoints
The server provides 20 tools with explicit schemas and descriptions visible in src/index.ts. Naming follows verb_noun conventions consistently (get_, list_, create_, update_, delete_, enable_, disable_). Descriptions are present for all tools and most parameters, though several are generic or lack implementation guidance. Schemas are properly structured with type declarations and required fields. However, significant gaps exist: (1) Output schemas are NOT documented, the response structure from each tool is undisclosed, forcing LLMs to guess at downstream field names. This breaks tool composition and forces discovery overhead. (2) Parameter descriptions are minimal and lack validation constraints (ranges, formats, patterns). (3) Error handling is mentioned for rate limits in interceptor code but not reflected in tool descriptions. (4) Some tools (enable_api, disable_api, enable_mcp, disable_mcp) lack dependency/permission documentation despite modifying system state. (5) Destructive operations (delete_server) lack confirmation or dry-run patterns. The server is functional but incomplete for production agentic use.
Create a Hetzner Cloud server and register it in Coolify.
Register a new server in Coolify.
Delete a server by UUID.
Disable the Coolify API. Requires root-level token and Coolify >= 4.2.0.
Disable the built-in Coolify MCP server endpoint at /mcp. Requires root-level token.
Enable the Coolify API. Requires root-level token and Coolify >= 4.2.0.
Output schemas completely undocumented across all 20 tools. No response structure defined, forcing LLMs to guess field names, types, and nesting. Breaks downstream tool composition and discovery.
Parameter descriptions lack implementation guidance and validation constraints. E.g., 'Numeric team ID' does not specify format (string vs number), range, or invalid value handling. Descriptions under 50 chars are too terse for LLM decision-making.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | C | 69 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 0 | - | v1 |
Enable the built-in Coolify MCP server endpoint at /mcp. Requires root-level token.
Get the team associated with the current API token.
Get members of the current authenticated team.
Get details of a server by UUID.
Get all domains configured on a server.
Get all resources (applications, databases, services) running on a server.
Get details of a specific team by its numeric ID.
Get members of a specific team by its numeric ID.
Get the Coolify version string (e.g. "4.3.1").
Healthcheck endpoint. Does not require authentication. Returns "OK" when the API is up.
List all servers registered in Coolify.
List all teams the authenticated token has access to.
Update an existing server by UUID.
Validate server connectivity and configuration. Requires Coolify >= 4.2.0.
Destructive operation (delete_server) lacks confirmation, dry-run, or recovery guidance. Tool description does not mention data loss or audit logging. No confirmation-request or recovery-guide pattern implemented.
System-modification tools (enable_api, disable_api, enable_mcp, disable_mcp) do not document permission requirements or impact on other agents/services. Descriptions lack 'Requires root-level token' context that appears only in description, not in parameter requirements or error handling.
Error handling mentioned in code (rate limit interceptor in axios) but NOT reflected in tool descriptions. LLMs cannot see that 429 errors are caught and translated to McpError, they assume raw HTTP failures. No recovery guidance in tool descriptions.
Pagination not implemented for list_* tools. list_teams and list_servers lack limit, page, offset, and cursor parameters. No documentation of maximum returned items. Large result sets will blow context windows without pagination.
API token handled via environment variable (correct pattern), but server initialization code does not validate token presence before tool registration. No clear documentation of required env vars (COOLIFY_BASE_URL, COOLIFY_TOKEN) in tool descriptions.