Skip to main content
Glama

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
NameRequiredDescriptionDefault
uuidNoResource UUID(s) to deploy (comma-separated for multiple)
tagNoTag(s) to deploy (comma-separated for multiple)
forceNoForce rebuild without cache
confirmNoConfirm the dangerous operation (required when COOLIFY_REQUIRE_CONFIRM=true)

Implementation Reference

  • 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}`);
  • 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() }));
  • 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 } } }; }
  • 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' ];

Other Tools

Latest Blog Posts

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/kof70/coolify-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server