deploy
Deploy applications and resources on Coolify self-hosted PaaS by specifying UUIDs or tags. Supports batch deployments for multiple resources simultaneously.
Instructions
Deploy resources by UUID or tag. Supports deploying multiple resources at once using comma-separated values.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| uuid | No | Resource UUID(s) to deploy (comma-separated for multiple) | |
| tag | No | Tag(s) to deploy (comma-separated for multiple) | |
| force | No | Force rebuild without cache | |
| confirm | No | Confirm the dangerous operation (required when COOLIFY_REQUIRE_CONFIRM=true) |
Implementation Reference
- src/tools/handlers.ts:235-246 (handler)The core handler logic for the 'deploy' tool. Constructs query parameters for uuid(s), tag(s), and force, then calls the Coolify /deploy API endpoint.case 'deploy': // Generic deploy endpoint supporting uuid and/or tag parameters const genericDeployParams = new URLSearchParams(); if (args.uuid) genericDeployParams.append('uuid', String(args.uuid)); if (args.tag) genericDeployParams.append('tag', String(args.tag)); if (args.force) genericDeployParams.append('force', 'true'); if (!args.uuid && !args.tag) { throw new McpError(ErrorCode.InvalidParams, 'Either uuid or tag parameter is required'); } const genericDeployQuery = genericDeployParams.toString(); return client.get(`/deploy?${genericDeployQuery}`);
- src/tools/definitions.ts:462-474 (schema)JSON Schema definition for the 'deploy' tool inputs, including parameters for uuid, tag, force, and confirm.name: 'deploy', description: 'Deploy resources by UUID or tag. Supports deploying multiple resources at once using comma-separated values.', inputSchema: { type: 'object', properties: { uuid: { type: 'string', description: 'Resource UUID(s) to deploy (comma-separated for multiple)' }, tag: { type: 'string', description: 'Tag(s) to deploy (comma-separated for multiple)' }, force: { type: 'boolean', description: 'Force rebuild without cache', default: false }, confirm: { type: 'boolean', description: 'Confirm the dangerous operation (required when COOLIFY_REQUIRE_CONFIRM=true)' } }, required: [] } },
- src/index.ts:36-38 (registration)MCP server registration of all tools (including 'deploy') via the listTools handler, sourcing from getToolDefinitions().this.server.setRequestHandler(ListToolsRequestSchema, async () => ({ tools: getToolDefinitions() }));
- src/tools/handlers.ts:11-30 (helper)Helper function that enforces confirmation for dangerous operations like 'deploy' before execution.function checkConfirmation(name: string, args: ToolArgs): { confirmed: boolean; response?: object } { if (!isConfirmRequired() || !isDangerousOperation(name)) { return { confirmed: true }; } if (args.confirm === true) { return { confirmed: true }; } return { confirmed: false, response: { confirmation_required: true, action: name, warning: getDangerWarning(name), message: `This is a dangerous operation. To proceed, call again with confirm: true`, example: { ...args, confirm: true } } }; }
- src/tools/definitions.ts:45-64 (helper)Lists 'deploy' as a dangerous operation requiring confirmation, with corresponding warning message.export const DANGEROUS_OPERATIONS = [ 'stop_application', 'restart_application', 'stop_service', 'restart_service', 'stop_database', 'restart_database', 'deploy_application', 'deploy', 'execute_command', 'delete_server', 'delete_project', 'delete_environment', 'delete_application', 'delete_service', 'delete_database', 'delete_private_key', 'delete_github_app', 'cancel_deployment' ];