@jurislm/coolify-plugin 3.7.10 → 4.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,16 +1,39 @@
1
1
  // Generated by scripts/generate-openapi.ts.
2
2
  import { z } from "zod";
3
3
  export const operations = [
4
- { name: "coolify_list_applications", method: "GET", path: "/applications", description: "List", inputSchema: z.object({ "tag": z.string().optional() }), responseSchema: z.array(z.object({ "id": z.number().int().describe("The application identifier in the database.").optional(), "description": z.union([z.string().describe("The application description."), z.null()]).optional(), "repository_project_id": z.union([z.number().int().describe("The repository project identifier."), z.null()]).optional(), "uuid": z.string().describe("The application UUID.").optional(), "name": z.string().describe("The application name.").optional(), "fqdn": z.union([z.string().describe("The application domains."), z.null()]).optional(), "noindex_domains": z.union([z.array(z.string()).describe("The subset of the application domains served with an X-Robots-Tag: noindex, nofollow response header."), z.null()]).optional(), "config_hash": z.string().describe("Configuration hash.").optional(), "git_repository": z.string().describe("Git repository URL.").optional(), "git_branch": z.string().describe("Git branch.").optional(), "git_commit_sha": z.string().describe("Git commit SHA.").optional(), "git_full_url": z.union([z.string().describe("Git full URL."), z.null()]).optional(), "docker_registry_image_name": z.union([z.string().describe("Docker registry image name."), z.null()]).optional(), "docker_registry_image_tag": z.union([z.string().describe("Docker registry image tag."), z.null()]).optional(), "build_pack": z.enum(["nixpacks", "railpack", "static", "dockerfile", "dockercompose"]).describe("Build pack.").optional(), "static_image": z.string().describe("Static image used when static site is deployed.").optional(), "install_command": z.string().describe("Install command.").optional(), "build_command": z.string().describe("Build command.").optional(), "start_command": z.string().describe("Start command.").optional(), "ports_exposes": z.string().describe("Ports exposes.").optional(), "ports_mappings": z.union([z.string().describe("Ports mappings."), z.null()]).optional(), "custom_network_aliases": z.union([z.string().describe("Network aliases for Docker container."), z.null()]).optional(), "base_directory": z.string().describe("Base directory for all commands.").optional(), "publish_directory": z.string().describe("Publish directory.").optional(), "health_check_enabled": z.boolean().describe("Health check enabled.").optional(), "health_check_path": z.string().describe("Health check path.").optional(), "health_check_port": z.union([z.string().describe("Health check port."), z.null()]).optional(), "health_check_host": z.union([z.string().describe("Health check host."), z.null()]).optional(), "health_check_method": z.string().describe("Health check method.").optional(), "health_check_return_code": z.number().int().describe("Health check return code.").optional(), "health_check_scheme": z.string().describe("Health check scheme.").optional(), "health_check_response_text": z.union([z.string().describe("Health check response text."), z.null()]).optional(), "health_check_interval": z.number().int().describe("Health check interval in seconds.").optional(), "health_check_timeout": z.number().int().describe("Health check timeout in seconds.").optional(), "health_check_retries": z.number().int().describe("Health check retries count.").optional(), "health_check_start_period": z.number().int().describe("Health check start period in seconds.").optional(), "health_check_type": z.enum(["http", "cmd"]).describe("Health check type: http or cmd.").optional(), "health_check_command": z.union([z.string().describe("Health check command for CMD type."), z.null()]).optional(), "limits_memory": z.string().describe("Memory limit.").optional(), "limits_memory_swap": z.string().describe("Memory swap limit.").optional(), "limits_memory_swappiness": z.number().int().describe("Memory swappiness.").optional(), "limits_memory_reservation": z.string().describe("Memory reservation.").optional(), "limits_cpus": z.string().describe("CPU limit.").optional(), "limits_cpuset": z.union([z.string().describe("CPU set."), z.null()]).optional(), "limits_cpu_shares": z.number().int().describe("CPU shares.").optional(), "status": z.string().describe("Application status.").optional(), "preview_url_template": z.string().describe("Preview URL template.").optional(), "max_restart_count": z.number().int().describe("Maximum container restart count before stopping.").optional(), "destination_type": z.string().describe("Destination type.").optional(), "destination_id": z.number().int().describe("Destination identifier.").optional(), "source_id": z.union([z.number().int().describe("Source identifier."), z.null()]).optional(), "private_key_id": z.union([z.number().int().describe("Private key identifier."), z.null()]).optional(), "environment_id": z.number().int().describe("Environment identifier.").optional(), "dockerfile": z.union([z.string().describe("Dockerfile content. Used for dockerfile build pack."), z.null()]).optional(), "dockerfile_location": z.string().describe("Dockerfile location.").optional(), "custom_labels": z.union([z.string().describe("Custom labels."), z.null()]).optional(), "dockerfile_target_build": z.union([z.string().describe("Dockerfile target build."), z.null()]).optional(), "manual_webhook_secret_github": z.union([z.string().describe("Manual webhook secret for GitHub."), z.null()]).optional(), "manual_webhook_secret_gitlab": z.union([z.string().describe("Manual webhook secret for GitLab."), z.null()]).optional(), "manual_webhook_secret_bitbucket": z.union([z.string().describe("Manual webhook secret for Bitbucket."), z.null()]).optional(), "manual_webhook_secret_gitea": z.union([z.string().describe("Manual webhook secret for Gitea."), z.null()]).optional(), "docker_compose_location": z.string().describe("Docker compose location.").optional(), "docker_compose": z.union([z.string().describe("Docker compose content. Used for docker compose build pack."), z.null()]).optional(), "docker_compose_raw": z.union([z.string().describe("Docker compose raw content."), z.null()]).optional(), "docker_compose_domains": z.union([z.string().describe("Docker compose domains."), z.null()]).optional(), "docker_compose_custom_start_command": z.union([z.string().describe("Docker compose custom start command."), z.null()]).optional(), "docker_compose_custom_build_command": z.union([z.string().describe("Docker compose custom build command."), z.null()]).optional(), "swarm_replicas": z.union([z.number().int().describe("Swarm replicas. Only used for swarm deployments."), z.null()]).optional(), "swarm_placement_constraints": z.union([z.string().describe("Swarm placement constraints. Only used for swarm deployments."), z.null()]).optional(), "custom_docker_run_options": z.union([z.string().describe("Custom docker run options."), z.null()]).optional(), "post_deployment_command": z.union([z.string().describe("Post deployment command."), z.null()]).optional(), "post_deployment_command_container": z.union([z.string().describe("Post deployment command container."), z.null()]).optional(), "pre_deployment_command": z.union([z.string().describe("Pre deployment command."), z.null()]).optional(), "pre_deployment_command_container": z.union([z.string().describe("Pre deployment command container."), z.null()]).optional(), "watch_paths": z.union([z.string().describe("Watch paths."), z.null()]).optional(), "custom_healthcheck_found": z.boolean().describe("Custom healthcheck found.").optional(), "redirect": z.union([z.enum(["www", "non-www", "both"]).describe("How to set redirect with Traefik / Caddy. www<->non-www."), z.null()]).optional(), "created_at": z.string().datetime({ offset: true }).describe("The date and time when the application was created.").optional(), "updated_at": z.string().datetime({ offset: true }).describe("The date and time when the application was last updated.").optional(), "deleted_at": z.union([z.string().datetime({ offset: true }).describe("The date and time when the application was deleted."), z.null()]).optional(), "compose_parsing_version": z.string().describe("How Coolify parse the compose file.").optional(), "custom_nginx_configuration": z.union([z.string().describe("Custom Nginx configuration base64 encoded."), z.null()]).optional(), "is_http_basic_auth_enabled": z.boolean().describe("HTTP Basic Authentication enabled.").optional(), "http_basic_auth_username": z.union([z.string().describe("Username for HTTP Basic Authentication"), z.null()]).optional(), "http_basic_auth_password": z.union([z.string().describe("Password for HTTP Basic Authentication"), z.null()]).optional(), "settings": z.object({ "is_static": z.boolean().optional(), "is_git_submodules_enabled": z.boolean().optional(), "is_git_lfs_enabled": z.boolean().optional(), "is_auto_deploy_enabled": z.boolean().optional(), "is_force_https_enabled": z.boolean().optional(), "is_debug_enabled": z.boolean().optional(), "is_preview_deployments_enabled": z.boolean().optional(), "is_log_drain_enabled": z.boolean().optional(), "is_gpu_enabled": z.boolean().optional(), "gpu_driver": z.union([z.string(), z.null()]).optional(), "gpu_count": z.union([z.string(), z.null()]).optional(), "gpu_device_ids": z.union([z.string(), z.null()]).optional(), "gpu_options": z.union([z.string(), z.null()]).optional(), "is_include_timestamps": z.boolean().optional(), "is_swarm_only_worker_nodes": z.boolean().optional(), "is_raw_compose_deployment_enabled": z.boolean().optional(), "is_build_server_enabled": z.boolean().optional(), "is_consistent_container_name_enabled": z.boolean().optional(), "is_gzip_enabled": z.boolean().optional(), "is_stripprefix_enabled": z.boolean().optional(), "connect_to_docker_network": z.boolean().optional(), "custom_internal_name": z.union([z.string(), z.null()]).optional(), "is_container_label_escape_enabled": z.boolean().optional(), "is_env_sorting_enabled": z.boolean().optional(), "is_container_label_readonly_enabled": z.boolean().optional(), "is_preserve_repository_enabled": z.boolean().optional(), "disable_build_cache": z.boolean().optional(), "is_spa": z.boolean().optional(), "is_git_shallow_clone_enabled": z.boolean().optional(), "is_pr_deployments_public_enabled": z.boolean().optional(), "use_build_secrets": z.boolean().optional(), "inject_build_args_to_dockerfile": z.boolean().optional(), "include_source_commit_in_build": z.boolean().optional(), "docker_images_to_keep": z.number().int().optional(), "stop_grace_period": z.union([z.number().int(), z.null()]).optional() }).describe("Application settings.").optional() }).describe("Application model")), responseKind: "json", parameters: [{ location: "query", name: "tag" }], annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false } },
4
+ { name: "coolify_list_applications", method: "GET", path: "/applications", description: "List", inputSchema: z.object({ "tag": z.string().optional() }), responseSchema: z.array(z.object({ "id": z.number().int().describe("The application identifier in the database.").optional(), "description": z.union([z.string().describe("The application description."), z.null()]).optional(), "repository_project_id": z.union([z.number().int().describe("The repository project identifier."), z.null()]).optional(), "uuid": z.string().describe("The application UUID.").optional(), "name": z.string().describe("The application name.").optional(), "fqdn": z.union([z.string().describe("The application domains."), z.null()]).optional(), "noindex_domains": z.union([z.array(z.string()).describe("The subset of the application domains served with an X-Robots-Tag: noindex, nofollow response header."), z.null()]).optional(), "config_hash": z.string().describe("Configuration hash.").optional(), "git_repository": z.string().describe("Git repository URL.").optional(), "git_branch": z.string().describe("Git branch.").optional(), "git_commit_sha": z.string().describe("Git commit SHA.").optional(), "git_full_url": z.union([z.string().describe("Git full URL."), z.null()]).optional(), "docker_registry_image_name": z.union([z.string().describe("Docker registry image name."), z.null()]).optional(), "docker_registry_image_tag": z.union([z.string().describe("Docker registry image tag."), z.null()]).optional(), "build_pack": z.enum(["nixpacks", "railpack", "static", "dockerfile", "dockercompose"]).describe("Build pack.").optional(), "static_image": z.string().describe("Static image used when static site is deployed.").optional(), "install_command": z.union([z.string().describe("Install command."), z.null()]).optional(), "build_command": z.union([z.string().describe("Build command."), z.null()]).optional(), "start_command": z.union([z.string().describe("Start command."), z.null()]).optional(), "ports_exposes": z.string().describe("Ports exposes.").optional(), "ports_mappings": z.union([z.string().describe("Ports mappings."), z.null()]).optional(), "custom_network_aliases": z.union([z.string().describe("Network aliases for Docker container."), z.null()]).optional(), "base_directory": z.string().describe("Base directory for all commands.").optional(), "publish_directory": z.union([z.string().describe("Publish directory."), z.null()]).optional(), "health_check_enabled": z.boolean().describe("Health check enabled.").optional(), "health_check_path": z.string().describe("Health check path.").optional(), "health_check_port": z.union([z.string().describe("Health check port."), z.null()]).optional(), "health_check_host": z.union([z.string().describe("Health check host."), z.null()]).optional(), "health_check_method": z.string().describe("Health check method.").optional(), "health_check_return_code": z.number().int().describe("Health check return code.").optional(), "health_check_scheme": z.string().describe("Health check scheme.").optional(), "health_check_response_text": z.union([z.string().describe("Health check response text."), z.null()]).optional(), "health_check_interval": z.number().int().describe("Health check interval in seconds.").optional(), "health_check_timeout": z.number().int().describe("Health check timeout in seconds.").optional(), "health_check_retries": z.number().int().describe("Health check retries count.").optional(), "health_check_start_period": z.number().int().describe("Health check start period in seconds.").optional(), "health_check_type": z.enum(["http", "cmd"]).describe("Health check type: http or cmd.").optional(), "health_check_command": z.union([z.string().describe("Health check command for CMD type."), z.null()]).optional(), "limits_memory": z.string().describe("Memory limit.").optional(), "limits_memory_swap": z.string().describe("Memory swap limit.").optional(), "limits_memory_swappiness": z.number().int().describe("Memory swappiness.").optional(), "limits_memory_reservation": z.string().describe("Memory reservation.").optional(), "limits_cpus": z.string().describe("CPU limit.").optional(), "limits_cpuset": z.union([z.string().describe("CPU set."), z.null()]).optional(), "limits_cpu_shares": z.number().int().describe("CPU shares.").optional(), "status": z.string().describe("Application status.").optional(), "preview_url_template": z.string().describe("Preview URL template.").optional(), "max_restart_count": z.number().int().describe("Maximum container restart count before stopping.").optional(), "destination_type": z.string().describe("Destination type.").optional(), "destination_id": z.number().int().describe("Destination identifier.").optional(), "source_id": z.union([z.number().int().describe("Source identifier."), z.null()]).optional(), "private_key_id": z.union([z.string().describe("Private key identifier."), z.null()]).optional(), "environment_id": z.number().int().describe("Environment identifier.").optional(), "dockerfile": z.union([z.string().describe("Dockerfile content. Used for dockerfile build pack."), z.null()]).optional(), "dockerfile_location": z.union([z.string().describe("Dockerfile location."), z.null()]).optional(), "custom_labels": z.union([z.string().describe("Custom labels."), z.null()]).optional(), "dockerfile_target_build": z.union([z.string().describe("Dockerfile target build."), z.null()]).optional(), "manual_webhook_secret_github": z.union([z.string().describe("Manual webhook secret for GitHub."), z.null()]).optional(), "manual_webhook_secret_gitlab": z.union([z.string().describe("Manual webhook secret for GitLab."), z.null()]).optional(), "manual_webhook_secret_bitbucket": z.union([z.string().describe("Manual webhook secret for Bitbucket."), z.null()]).optional(), "manual_webhook_secret_gitea": z.union([z.string().describe("Manual webhook secret for Gitea."), z.null()]).optional(), "docker_compose_location": z.string().describe("Docker compose location.").optional(), "docker_compose": z.union([z.string().describe("Docker compose content. Used for docker compose build pack."), z.null()]).optional(), "docker_compose_raw": z.union([z.string().describe("Docker compose raw content."), z.null()]).optional(), "docker_compose_domains": z.union([z.string().describe("Docker compose domains."), z.null()]).optional(), "docker_compose_custom_start_command": z.union([z.string().describe("Docker compose custom start command."), z.null()]).optional(), "docker_compose_custom_build_command": z.union([z.string().describe("Docker compose custom build command."), z.null()]).optional(), "swarm_replicas": z.union([z.number().int().describe("Swarm replicas. Only used for swarm deployments."), z.null()]).optional(), "swarm_placement_constraints": z.union([z.string().describe("Swarm placement constraints. Only used for swarm deployments."), z.null()]).optional(), "custom_docker_run_options": z.union([z.string().describe("Custom docker run options."), z.null()]).optional(), "post_deployment_command": z.union([z.string().describe("Post deployment command."), z.null()]).optional(), "post_deployment_command_container": z.union([z.string().describe("Post deployment command container."), z.null()]).optional(), "pre_deployment_command": z.union([z.string().describe("Pre deployment command."), z.null()]).optional(), "pre_deployment_command_container": z.union([z.string().describe("Pre deployment command container."), z.null()]).optional(), "watch_paths": z.union([z.string().describe("Watch paths."), z.null()]).optional(), "custom_healthcheck_found": z.boolean().describe("Custom healthcheck found.").optional(), "redirect": z.union([z.enum(["www", "non-www", "both"]).describe("How to set redirect with Traefik / Caddy. www<->non-www."), z.null()]).optional(), "created_at": z.string().datetime({ offset: true }).describe("The date and time when the application was created.").optional(), "updated_at": z.string().datetime({ offset: true }).describe("The date and time when the application was last updated.").optional(), "deleted_at": z.union([z.string().datetime({ offset: true }).describe("The date and time when the application was deleted."), z.null()]).optional(), "compose_parsing_version": z.string().describe("How Coolify parse the compose file.").optional(), "custom_nginx_configuration": z.union([z.string().describe("Custom Nginx configuration base64 encoded."), z.null()]).optional(), "is_http_basic_auth_enabled": z.boolean().describe("HTTP Basic Authentication enabled.").optional(), "http_basic_auth_username": z.union([z.string().describe("Username for HTTP Basic Authentication"), z.null()]).optional(), "http_basic_auth_password": z.union([z.string().describe("Password for HTTP Basic Authentication"), z.null()]).optional(), "settings": z.object({ "is_static": z.boolean().optional(), "is_git_submodules_enabled": z.boolean().optional(), "is_git_lfs_enabled": z.boolean().optional(), "is_auto_deploy_enabled": z.boolean().optional(), "is_force_https_enabled": z.boolean().optional(), "is_debug_enabled": z.boolean().optional(), "is_preview_deployments_enabled": z.boolean().optional(), "is_log_drain_enabled": z.boolean().optional(), "is_gpu_enabled": z.boolean().optional(), "gpu_driver": z.union([z.string(), z.null()]).optional(), "gpu_count": z.union([z.string(), z.null()]).optional(), "gpu_device_ids": z.union([z.string(), z.null()]).optional(), "gpu_options": z.union([z.string(), z.null()]).optional(), "is_include_timestamps": z.boolean().optional(), "is_swarm_only_worker_nodes": z.boolean().optional(), "is_raw_compose_deployment_enabled": z.boolean().optional(), "is_build_server_enabled": z.boolean().optional(), "is_consistent_container_name_enabled": z.boolean().optional(), "is_gzip_enabled": z.boolean().optional(), "is_stripprefix_enabled": z.boolean().optional(), "connect_to_docker_network": z.boolean().optional(), "custom_internal_name": z.union([z.string(), z.null()]).optional(), "is_container_label_escape_enabled": z.boolean().optional(), "is_env_sorting_enabled": z.boolean().optional(), "is_container_label_readonly_enabled": z.boolean().optional(), "is_preserve_repository_enabled": z.boolean().optional(), "disable_build_cache": z.boolean().optional(), "is_spa": z.boolean().optional(), "is_git_shallow_clone_enabled": z.boolean().optional(), "is_pr_deployments_public_enabled": z.boolean().optional(), "use_build_secrets": z.boolean().optional(), "inject_build_args_to_dockerfile": z.boolean().optional(), "include_source_commit_in_build": z.boolean().optional(), "docker_images_to_keep": z.number().int().optional(), "stop_grace_period": z.union([z.number().int(), z.null()]).optional() }).describe("Application settings.").optional() }).describe("Application model")), responseKind: "json", parameters: [{ location: "query", name: "tag" }], annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false } },
5
5
  { name: "coolify_create_public_application", method: "POST", path: "/applications/public", description: "Create (Public)", inputSchema: z.object({ body: z.object({ "project_uuid": z.string().describe("The project UUID."), "server_uuid": z.string().describe("The server UUID."), "environment_name": z.string().describe("The environment name. You need to provide at least one of environment_name or environment_uuid."), "environment_uuid": z.string().describe("The environment UUID. You need to provide at least one of environment_name or environment_uuid."), "git_repository": z.string().describe("The git repository URL."), "git_branch": z.string().describe("The git branch."), "build_pack": z.enum(["nixpacks", "railpack", "static", "dockerfile", "dockercompose"]).describe("The build pack type."), "ports_exposes": z.string().describe("The ports to expose.").optional(), "destination_uuid": z.string().describe("The destination UUID.").optional(), "name": z.string().describe("The application name.").optional(), "description": z.string().describe("The application description.").optional(), "domains": z.string().describe("The application URLs in a comma-separated list.").optional(), "noindex_domains": z.array(z.string()).describe("The subset of the application domains served with an X-Robots-Tag: noindex, nofollow response header, keeping them out of search engines. Entries that are not among the application domains are ignored.").optional(), "git_commit_sha": z.string().describe("The git commit SHA.").optional(), "docker_registry_image_name": z.string().describe("The docker registry image name.").optional(), "docker_registry_image_tag": z.string().describe("The docker registry image tag.").optional(), "is_static": z.boolean().describe("The flag to indicate if the application is static.").optional(), "is_spa": z.boolean().describe("The flag to indicate if the application is a single-page application (SPA). Only relevant when is_static is true.").optional(), "is_auto_deploy_enabled": z.boolean().describe("The flag to indicate if auto-deploy is enabled on git push. Defaults to true.").optional(), "is_force_https_enabled": z.boolean().describe("The flag to indicate if HTTPS is forced. Defaults to true.").optional(), "is_preview_deployments_enabled": z.boolean().describe("Enable preview deployments for pull requests.").optional(), "static_image": z.literal("nginx:alpine").describe("The static image.").optional(), "install_command": z.string().describe("The install command.").optional(), "build_command": z.string().describe("The build command.").optional(), "start_command": z.string().describe("The start command.").optional(), "ports_mappings": z.string().describe("The ports mappings.").optional(), "base_directory": z.string().describe("The base directory for all commands.").optional(), "publish_directory": z.string().describe("The publish directory.").optional(), "health_check_enabled": z.boolean().describe("Health check enabled.").optional(), "health_check_path": z.string().describe("Health check path.").optional(), "health_check_port": z.union([z.string().describe("Health check port."), z.null()]).optional(), "health_check_host": z.union([z.string().describe("Health check host."), z.null()]).optional(), "health_check_method": z.string().describe("Health check method.").optional(), "health_check_return_code": z.number().int().describe("Health check return code.").optional(), "health_check_scheme": z.string().describe("Health check scheme.").optional(), "health_check_response_text": z.union([z.string().describe("Health check response text."), z.null()]).optional(), "health_check_interval": z.number().int().describe("Health check interval in seconds.").optional(), "health_check_timeout": z.number().int().describe("Health check timeout in seconds.").optional(), "health_check_retries": z.number().int().describe("Health check retries count.").optional(), "health_check_start_period": z.number().int().describe("Health check start period in seconds.").optional(), "limits_memory": z.string().describe("Memory limit.").optional(), "limits_memory_swap": z.string().describe("Memory swap limit.").optional(), "limits_memory_swappiness": z.number().int().describe("Memory swappiness.").optional(), "limits_memory_reservation": z.string().describe("Memory reservation.").optional(), "limits_cpus": z.string().describe("CPU limit.").optional(), "limits_cpuset": z.union([z.string().describe("CPU set."), z.null()]).optional(), "limits_cpu_shares": z.number().int().describe("CPU shares.").optional(), "custom_labels": z.string().describe("Custom labels.").optional(), "custom_docker_run_options": z.string().describe("Custom docker run options.").optional(), "post_deployment_command": z.string().describe("Post deployment command.").optional(), "post_deployment_command_container": z.string().describe("Post deployment command container.").optional(), "pre_deployment_command": z.string().describe("Pre deployment command.").optional(), "pre_deployment_command_container": z.string().describe("Pre deployment command container.").optional(), "manual_webhook_secret_github": z.string().describe("Manual webhook secret for Github.").optional(), "manual_webhook_secret_gitlab": z.string().describe("Manual webhook secret for Gitlab.").optional(), "manual_webhook_secret_bitbucket": z.string().describe("Manual webhook secret for Bitbucket.").optional(), "manual_webhook_secret_gitea": z.string().describe("Manual webhook secret for Gitea.").optional(), "redirect": z.union([z.enum(["www", "non-www", "both"]).describe("How to set redirect with Traefik / Caddy. www<->non-www."), z.null()]).optional(), "instant_deploy": z.boolean().describe("The flag to indicate if the application should be deployed instantly.").optional(), "dockerfile": z.string().describe("The Dockerfile content.").optional(), "dockerfile_location": z.string().describe("The Dockerfile location in the repository.").optional(), "docker_compose_location": z.string().describe("The Docker Compose location.").optional(), "docker_compose_custom_start_command": z.string().describe("The Docker Compose custom start command.").optional(), "docker_compose_custom_build_command": z.string().describe("The Docker Compose custom build command.").optional(), "docker_compose_domains": z.array(z.object({ "name": z.string().describe("The service name as defined in docker-compose.").optional(), "domain": z.string().describe("Comma-separated list of URLs (e.g. \"https://app.coolify.io,https://app2.coolify.io\")").optional(), "redirect": z.union([z.enum(["www", "non-www", "both"]).describe("Per-service www/non-www redirect for this compose service."), z.null()]).optional() })).describe("Array of URLs to be applied to containers of a dockercompose application.").optional(), "watch_paths": z.string().describe("The watch paths.").optional(), "use_build_server": z.union([z.boolean().describe("Use build server."), z.null()]).optional(), "use_build_secrets": z.boolean().describe("Use Docker Build Secrets for build-time environment variables.").default(false), "is_git_submodules_enabled": z.boolean().describe("Clone Git submodules.").optional(), "is_git_lfs_enabled": z.boolean().describe("Enable Git LFS.").optional(), "is_git_shallow_clone_enabled": z.boolean().describe("Use a shallow Git clone.").optional(), "disable_build_cache": z.boolean().describe("Disable the build cache.").optional(), "inject_build_args_to_dockerfile": z.boolean().describe("Inject build arguments into the Dockerfile build.").optional(), "include_source_commit_in_build": z.boolean().describe("Include the source commit in the build.").optional(), "is_env_sorting_enabled": z.boolean().describe("Sort environment variables.").optional(), "is_pr_deployments_public_enabled": z.boolean().describe("Make pull request deployments public.").optional(), "stop_grace_period": z.union([z.number().int().gte(1).lte(3600).describe("Container stop grace period in seconds."), z.null()]).optional(), "docker_images_to_keep": z.number().int().gte(0).lte(100).describe("Number of Docker images to retain.").optional(), "is_gzip_enabled": z.boolean().describe("Enable gzip compression.").optional(), "is_stripprefix_enabled": z.boolean().describe("Enable path prefix stripping.").optional(), "is_raw_compose_deployment_enabled": z.boolean().describe("Deploy the raw Docker Compose definition.").optional(), "is_log_drain_enabled": z.boolean().describe("Enable log drain for the application.").optional(), "is_gpu_enabled": z.boolean().describe("Enable GPU support.").optional(), "gpu_driver": z.union([z.string().describe("GPU driver name."), z.null()]).optional(), "gpu_count": z.union([z.string().describe("Number of GPUs to allocate."), z.null()]).optional(), "gpu_device_ids": z.union([z.string().describe("Comma-separated GPU device IDs."), z.null()]).optional(), "gpu_options": z.union([z.string().describe("Additional GPU options."), z.null()]).optional(), "is_consistent_container_name_enabled": z.boolean().describe("Use a consistent container name across deployments.").optional(), "custom_internal_name": z.union([z.string().describe("Custom internal container name."), z.null()]).optional(), "preview_url_template": z.string().describe("Preview URL template.").optional(), "max_restart_count": z.number().int().gte(0).describe("Maximum container restart count before stopping.").optional(), "is_http_basic_auth_enabled": z.boolean().describe("HTTP Basic Authentication enabled.").optional(), "http_basic_auth_username": z.union([z.string().describe("Username for HTTP Basic Authentication"), z.null()]).optional(), "http_basic_auth_password": z.union([z.string().describe("Password for HTTP Basic Authentication"), z.null()]).optional(), "connect_to_docker_network": z.boolean().describe("The flag to connect the service to the predefined Docker network.").optional(), "force_domain_override": z.boolean().describe("Force domain usage even if conflicts are detected. Default is false.").optional(), "autogenerate_domain": z.boolean().describe("If true and domains is empty, auto-generate a domain using the server's wildcard domain or sslip.io fallback. Default: true.").default(true), "is_container_label_escape_enabled": z.boolean().describe("Escape special characters in labels. By default, $ (and other chars) is escaped. So if you write $ in the labels, it will be saved as $$. If you want to use env variables inside the labels, turn this off.").default(true), "tags": z.array(z.string()).describe("Tags to assign to the application.").optional(), "is_preserve_repository_enabled": z.boolean().describe("Preserve repository during deployment.").default(false) }) }), responseSchema: z.object({ "uuid": z.string().optional() }), responseKind: "json", parameters: [], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
6
6
  { name: "coolify_create_private_github_app_application", method: "POST", path: "/applications/private-github-app", description: "Create (Private - GH App)", inputSchema: z.object({ body: z.object({ "project_uuid": z.string().describe("The project UUID."), "server_uuid": z.string().describe("The server UUID."), "environment_name": z.string().describe("The environment name. You need to provide at least one of environment_name or environment_uuid."), "environment_uuid": z.string().describe("The environment UUID. You need to provide at least one of environment_name or environment_uuid."), "github_app_uuid": z.string().describe("The Github App UUID."), "git_repository": z.string().describe("The git repository URL."), "git_branch": z.string().describe("The git branch."), "ports_exposes": z.string().describe("The ports to expose.").optional(), "destination_uuid": z.string().describe("The destination UUID.").optional(), "build_pack": z.enum(["nixpacks", "railpack", "static", "dockerfile", "dockercompose"]).describe("The build pack type."), "name": z.string().describe("The application name.").optional(), "description": z.string().describe("The application description.").optional(), "domains": z.string().describe("The application URLs in a comma-separated list.").optional(), "noindex_domains": z.array(z.string()).describe("The subset of the application domains served with an X-Robots-Tag: noindex, nofollow response header, keeping them out of search engines. Entries that are not among the application domains are ignored.").optional(), "git_commit_sha": z.string().describe("The git commit SHA.").optional(), "docker_registry_image_name": z.string().describe("The docker registry image name.").optional(), "docker_registry_image_tag": z.string().describe("The docker registry image tag.").optional(), "is_static": z.boolean().describe("The flag to indicate if the application is static.").optional(), "is_spa": z.boolean().describe("The flag to indicate if the application is a single-page application (SPA). Only relevant when is_static is true.").optional(), "is_auto_deploy_enabled": z.boolean().describe("The flag to indicate if auto-deploy is enabled on git push. Defaults to true.").optional(), "is_force_https_enabled": z.boolean().describe("The flag to indicate if HTTPS is forced. Defaults to true.").optional(), "is_preview_deployments_enabled": z.boolean().describe("Enable preview deployments for pull requests.").optional(), "static_image": z.literal("nginx:alpine").describe("The static image.").optional(), "install_command": z.string().describe("The install command.").optional(), "build_command": z.string().describe("The build command.").optional(), "start_command": z.string().describe("The start command.").optional(), "ports_mappings": z.string().describe("The ports mappings.").optional(), "base_directory": z.string().describe("The base directory for all commands.").optional(), "publish_directory": z.string().describe("The publish directory.").optional(), "health_check_enabled": z.boolean().describe("Health check enabled.").optional(), "health_check_path": z.string().describe("Health check path.").optional(), "health_check_port": z.union([z.string().describe("Health check port."), z.null()]).optional(), "health_check_host": z.union([z.string().describe("Health check host."), z.null()]).optional(), "health_check_method": z.string().describe("Health check method.").optional(), "health_check_return_code": z.number().int().describe("Health check return code.").optional(), "health_check_scheme": z.string().describe("Health check scheme.").optional(), "health_check_response_text": z.union([z.string().describe("Health check response text."), z.null()]).optional(), "health_check_interval": z.number().int().describe("Health check interval in seconds.").optional(), "health_check_timeout": z.number().int().describe("Health check timeout in seconds.").optional(), "health_check_retries": z.number().int().describe("Health check retries count.").optional(), "health_check_start_period": z.number().int().describe("Health check start period in seconds.").optional(), "limits_memory": z.string().describe("Memory limit.").optional(), "limits_memory_swap": z.string().describe("Memory swap limit.").optional(), "limits_memory_swappiness": z.number().int().describe("Memory swappiness.").optional(), "limits_memory_reservation": z.string().describe("Memory reservation.").optional(), "limits_cpus": z.string().describe("CPU limit.").optional(), "limits_cpuset": z.union([z.string().describe("CPU set."), z.null()]).optional(), "limits_cpu_shares": z.number().int().describe("CPU shares.").optional(), "custom_labels": z.string().describe("Custom labels.").optional(), "custom_docker_run_options": z.string().describe("Custom docker run options.").optional(), "post_deployment_command": z.string().describe("Post deployment command.").optional(), "post_deployment_command_container": z.string().describe("Post deployment command container.").optional(), "pre_deployment_command": z.string().describe("Pre deployment command.").optional(), "pre_deployment_command_container": z.string().describe("Pre deployment command container.").optional(), "manual_webhook_secret_github": z.string().describe("Manual webhook secret for Github.").optional(), "manual_webhook_secret_gitlab": z.string().describe("Manual webhook secret for Gitlab.").optional(), "manual_webhook_secret_bitbucket": z.string().describe("Manual webhook secret for Bitbucket.").optional(), "manual_webhook_secret_gitea": z.string().describe("Manual webhook secret for Gitea.").optional(), "redirect": z.union([z.enum(["www", "non-www", "both"]).describe("How to set redirect with Traefik / Caddy. www<->non-www."), z.null()]).optional(), "instant_deploy": z.boolean().describe("The flag to indicate if the application should be deployed instantly.").optional(), "dockerfile": z.string().describe("The Dockerfile content.").optional(), "dockerfile_location": z.string().describe("The Dockerfile location in the repository").optional(), "docker_compose_location": z.string().describe("The Docker Compose location.").optional(), "docker_compose_custom_start_command": z.string().describe("The Docker Compose custom start command.").optional(), "docker_compose_custom_build_command": z.string().describe("The Docker Compose custom build command.").optional(), "docker_compose_domains": z.array(z.object({ "name": z.string().describe("The service name as defined in docker-compose.").optional(), "domain": z.string().describe("Comma-separated list of URLs (e.g. \"https://app.coolify.io,https://app2.coolify.io\")").optional(), "redirect": z.union([z.enum(["www", "non-www", "both"]).describe("Per-service www/non-www redirect for this compose service."), z.null()]).optional() })).describe("Array of URLs to be applied to containers of a dockercompose application.").optional(), "watch_paths": z.string().describe("The watch paths.").optional(), "use_build_server": z.union([z.boolean().describe("Use build server."), z.null()]).optional(), "use_build_secrets": z.boolean().describe("Use Docker Build Secrets for build-time environment variables.").default(false), "is_git_submodules_enabled": z.boolean().describe("Clone Git submodules.").optional(), "is_git_lfs_enabled": z.boolean().describe("Enable Git LFS.").optional(), "is_git_shallow_clone_enabled": z.boolean().describe("Use a shallow Git clone.").optional(), "disable_build_cache": z.boolean().describe("Disable the build cache.").optional(), "inject_build_args_to_dockerfile": z.boolean().describe("Inject build arguments into the Dockerfile build.").optional(), "include_source_commit_in_build": z.boolean().describe("Include the source commit in the build.").optional(), "is_env_sorting_enabled": z.boolean().describe("Sort environment variables.").optional(), "is_pr_deployments_public_enabled": z.boolean().describe("Make pull request deployments public.").optional(), "stop_grace_period": z.union([z.number().int().gte(1).lte(3600).describe("Container stop grace period in seconds."), z.null()]).optional(), "docker_images_to_keep": z.number().int().gte(0).lte(100).describe("Number of Docker images to retain.").optional(), "is_gzip_enabled": z.boolean().describe("Enable gzip compression.").optional(), "is_stripprefix_enabled": z.boolean().describe("Enable path prefix stripping.").optional(), "is_raw_compose_deployment_enabled": z.boolean().describe("Deploy the raw Docker Compose definition.").optional(), "is_log_drain_enabled": z.boolean().describe("Enable log drain for the application.").optional(), "is_gpu_enabled": z.boolean().describe("Enable GPU support.").optional(), "gpu_driver": z.union([z.string().describe("GPU driver name."), z.null()]).optional(), "gpu_count": z.union([z.string().describe("Number of GPUs to allocate."), z.null()]).optional(), "gpu_device_ids": z.union([z.string().describe("Comma-separated GPU device IDs."), z.null()]).optional(), "gpu_options": z.union([z.string().describe("Additional GPU options."), z.null()]).optional(), "is_consistent_container_name_enabled": z.boolean().describe("Use a consistent container name across deployments.").optional(), "custom_internal_name": z.union([z.string().describe("Custom internal container name."), z.null()]).optional(), "preview_url_template": z.string().describe("Preview URL template.").optional(), "max_restart_count": z.number().int().gte(0).describe("Maximum container restart count before stopping.").optional(), "is_http_basic_auth_enabled": z.boolean().describe("HTTP Basic Authentication enabled.").optional(), "http_basic_auth_username": z.union([z.string().describe("Username for HTTP Basic Authentication"), z.null()]).optional(), "http_basic_auth_password": z.union([z.string().describe("Password for HTTP Basic Authentication"), z.null()]).optional(), "connect_to_docker_network": z.boolean().describe("The flag to connect the service to the predefined Docker network.").optional(), "force_domain_override": z.boolean().describe("Force domain usage even if conflicts are detected. Default is false.").optional(), "autogenerate_domain": z.boolean().describe("If true and domains is empty, auto-generate a domain using the server's wildcard domain or sslip.io fallback. Default: true.").default(true), "is_container_label_escape_enabled": z.boolean().describe("Escape special characters in labels. By default, $ (and other chars) is escaped. So if you write $ in the labels, it will be saved as $$. If you want to use env variables inside the labels, turn this off.").default(true), "tags": z.array(z.string()).describe("Tags to assign to the application.").optional(), "is_preserve_repository_enabled": z.boolean().describe("Preserve repository during deployment.").default(false) }) }), responseSchema: z.object({ "uuid": z.string().optional() }), responseKind: "json", parameters: [], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
7
7
  { name: "coolify_create_private_deploy_key_application", method: "POST", path: "/applications/private-deploy-key", description: "Create (Private - Deploy Key)", inputSchema: z.object({ body: z.object({ "project_uuid": z.string().describe("The project UUID."), "server_uuid": z.string().describe("The server UUID."), "environment_name": z.string().describe("The environment name. You need to provide at least one of environment_name or environment_uuid."), "environment_uuid": z.string().describe("The environment UUID. You need to provide at least one of environment_name or environment_uuid."), "private_key_uuid": z.string().describe("The private key UUID."), "git_repository": z.string().describe("The git repository URL."), "git_branch": z.string().describe("The git branch."), "ports_exposes": z.string().describe("The ports to expose.").optional(), "destination_uuid": z.string().describe("The destination UUID.").optional(), "build_pack": z.enum(["nixpacks", "railpack", "static", "dockerfile", "dockercompose"]).describe("The build pack type."), "name": z.string().describe("The application name.").optional(), "description": z.string().describe("The application description.").optional(), "domains": z.string().describe("The application URLs in a comma-separated list.").optional(), "noindex_domains": z.array(z.string()).describe("The subset of the application domains served with an X-Robots-Tag: noindex, nofollow response header, keeping them out of search engines. Entries that are not among the application domains are ignored.").optional(), "git_commit_sha": z.string().describe("The git commit SHA.").optional(), "docker_registry_image_name": z.string().describe("The docker registry image name.").optional(), "docker_registry_image_tag": z.string().describe("The docker registry image tag.").optional(), "is_static": z.boolean().describe("The flag to indicate if the application is static.").optional(), "is_spa": z.boolean().describe("The flag to indicate if the application is a single-page application (SPA). Only relevant when is_static is true.").optional(), "is_auto_deploy_enabled": z.boolean().describe("The flag to indicate if auto-deploy is enabled on git push. Defaults to true.").optional(), "is_force_https_enabled": z.boolean().describe("The flag to indicate if HTTPS is forced. Defaults to true.").optional(), "is_preview_deployments_enabled": z.boolean().describe("Enable preview deployments for pull requests.").optional(), "static_image": z.literal("nginx:alpine").describe("The static image.").optional(), "install_command": z.string().describe("The install command.").optional(), "build_command": z.string().describe("The build command.").optional(), "start_command": z.string().describe("The start command.").optional(), "ports_mappings": z.string().describe("The ports mappings.").optional(), "base_directory": z.string().describe("The base directory for all commands.").optional(), "publish_directory": z.string().describe("The publish directory.").optional(), "health_check_enabled": z.boolean().describe("Health check enabled.").optional(), "health_check_path": z.string().describe("Health check path.").optional(), "health_check_port": z.union([z.string().describe("Health check port."), z.null()]).optional(), "health_check_host": z.union([z.string().describe("Health check host."), z.null()]).optional(), "health_check_method": z.string().describe("Health check method.").optional(), "health_check_return_code": z.number().int().describe("Health check return code.").optional(), "health_check_scheme": z.string().describe("Health check scheme.").optional(), "health_check_response_text": z.union([z.string().describe("Health check response text."), z.null()]).optional(), "health_check_interval": z.number().int().describe("Health check interval in seconds.").optional(), "health_check_timeout": z.number().int().describe("Health check timeout in seconds.").optional(), "health_check_retries": z.number().int().describe("Health check retries count.").optional(), "health_check_start_period": z.number().int().describe("Health check start period in seconds.").optional(), "limits_memory": z.string().describe("Memory limit.").optional(), "limits_memory_swap": z.string().describe("Memory swap limit.").optional(), "limits_memory_swappiness": z.number().int().describe("Memory swappiness.").optional(), "limits_memory_reservation": z.string().describe("Memory reservation.").optional(), "limits_cpus": z.string().describe("CPU limit.").optional(), "limits_cpuset": z.union([z.string().describe("CPU set."), z.null()]).optional(), "limits_cpu_shares": z.number().int().describe("CPU shares.").optional(), "custom_labels": z.string().describe("Custom labels.").optional(), "custom_docker_run_options": z.string().describe("Custom docker run options.").optional(), "post_deployment_command": z.string().describe("Post deployment command.").optional(), "post_deployment_command_container": z.string().describe("Post deployment command container.").optional(), "pre_deployment_command": z.string().describe("Pre deployment command.").optional(), "pre_deployment_command_container": z.string().describe("Pre deployment command container.").optional(), "manual_webhook_secret_github": z.string().describe("Manual webhook secret for Github.").optional(), "manual_webhook_secret_gitlab": z.string().describe("Manual webhook secret for Gitlab.").optional(), "manual_webhook_secret_bitbucket": z.string().describe("Manual webhook secret for Bitbucket.").optional(), "manual_webhook_secret_gitea": z.string().describe("Manual webhook secret for Gitea.").optional(), "redirect": z.union([z.enum(["www", "non-www", "both"]).describe("How to set redirect with Traefik / Caddy. www<->non-www."), z.null()]).optional(), "instant_deploy": z.boolean().describe("The flag to indicate if the application should be deployed instantly.").optional(), "dockerfile": z.string().describe("The Dockerfile content.").optional(), "dockerfile_location": z.string().describe("The Dockerfile location in the repository.").optional(), "docker_compose_location": z.string().describe("The Docker Compose location.").optional(), "docker_compose_custom_start_command": z.string().describe("The Docker Compose custom start command.").optional(), "docker_compose_custom_build_command": z.string().describe("The Docker Compose custom build command.").optional(), "docker_compose_domains": z.array(z.object({ "name": z.string().describe("The service name as defined in docker-compose.").optional(), "domain": z.string().describe("Comma-separated list of URLs (e.g. \"https://app.coolify.io,https://app2.coolify.io\")").optional(), "redirect": z.union([z.enum(["www", "non-www", "both"]).describe("Per-service www/non-www redirect for this compose service."), z.null()]).optional() })).describe("Array of URLs to be applied to containers of a dockercompose application.").optional(), "watch_paths": z.string().describe("The watch paths.").optional(), "use_build_server": z.union([z.boolean().describe("Use build server."), z.null()]).optional(), "use_build_secrets": z.boolean().describe("Use Docker Build Secrets for build-time environment variables.").default(false), "is_git_submodules_enabled": z.boolean().describe("Clone Git submodules.").optional(), "is_git_lfs_enabled": z.boolean().describe("Enable Git LFS.").optional(), "is_git_shallow_clone_enabled": z.boolean().describe("Use a shallow Git clone.").optional(), "disable_build_cache": z.boolean().describe("Disable the build cache.").optional(), "inject_build_args_to_dockerfile": z.boolean().describe("Inject build arguments into the Dockerfile build.").optional(), "include_source_commit_in_build": z.boolean().describe("Include the source commit in the build.").optional(), "is_env_sorting_enabled": z.boolean().describe("Sort environment variables.").optional(), "is_pr_deployments_public_enabled": z.boolean().describe("Make pull request deployments public.").optional(), "stop_grace_period": z.union([z.number().int().gte(1).lte(3600).describe("Container stop grace period in seconds."), z.null()]).optional(), "docker_images_to_keep": z.number().int().gte(0).lte(100).describe("Number of Docker images to retain.").optional(), "is_gzip_enabled": z.boolean().describe("Enable gzip compression.").optional(), "is_stripprefix_enabled": z.boolean().describe("Enable path prefix stripping.").optional(), "is_raw_compose_deployment_enabled": z.boolean().describe("Deploy the raw Docker Compose definition.").optional(), "is_log_drain_enabled": z.boolean().describe("Enable log drain for the application.").optional(), "is_gpu_enabled": z.boolean().describe("Enable GPU support.").optional(), "gpu_driver": z.union([z.string().describe("GPU driver name."), z.null()]).optional(), "gpu_count": z.union([z.string().describe("Number of GPUs to allocate."), z.null()]).optional(), "gpu_device_ids": z.union([z.string().describe("Comma-separated GPU device IDs."), z.null()]).optional(), "gpu_options": z.union([z.string().describe("Additional GPU options."), z.null()]).optional(), "is_consistent_container_name_enabled": z.boolean().describe("Use a consistent container name across deployments.").optional(), "custom_internal_name": z.union([z.string().describe("Custom internal container name."), z.null()]).optional(), "preview_url_template": z.string().describe("Preview URL template.").optional(), "max_restart_count": z.number().int().gte(0).describe("Maximum container restart count before stopping.").optional(), "is_http_basic_auth_enabled": z.boolean().describe("HTTP Basic Authentication enabled.").optional(), "http_basic_auth_username": z.union([z.string().describe("Username for HTTP Basic Authentication"), z.null()]).optional(), "http_basic_auth_password": z.union([z.string().describe("Password for HTTP Basic Authentication"), z.null()]).optional(), "connect_to_docker_network": z.boolean().describe("The flag to connect the service to the predefined Docker network.").optional(), "force_domain_override": z.boolean().describe("Force domain usage even if conflicts are detected. Default is false.").optional(), "autogenerate_domain": z.boolean().describe("If true and domains is empty, auto-generate a domain using the server's wildcard domain or sslip.io fallback. Default: true.").default(true), "is_container_label_escape_enabled": z.boolean().describe("Escape special characters in labels. By default, $ (and other chars) is escaped. So if you write $ in the labels, it will be saved as $$. If you want to use env variables inside the labels, turn this off.").default(true), "tags": z.array(z.string()).describe("Tags to assign to the application.").optional(), "is_preserve_repository_enabled": z.boolean().describe("Preserve repository during deployment.").default(false) }) }), responseSchema: z.object({ "uuid": z.string().optional() }), responseKind: "json", parameters: [], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
8
8
  { name: "coolify_create_dockerfile_application", method: "POST", path: "/applications/dockerfile", description: "Create (Dockerfile without git)", inputSchema: z.object({ body: z.object({ "project_uuid": z.string().describe("The project UUID."), "server_uuid": z.string().describe("The server UUID."), "environment_name": z.string().describe("The environment name. You need to provide at least one of environment_name or environment_uuid."), "environment_uuid": z.string().describe("The environment UUID. You need to provide at least one of environment_name or environment_uuid."), "dockerfile": z.string().describe("The Dockerfile content."), "build_pack": z.literal("dockerfile").describe("The build pack type.").optional(), "ports_exposes": z.string().describe("The ports to expose.").optional(), "destination_uuid": z.string().describe("The destination UUID.").optional(), "name": z.string().describe("The application name.").optional(), "description": z.string().describe("The application description.").optional(), "domains": z.string().describe("The application URLs in a comma-separated list.").optional(), "noindex_domains": z.array(z.string()).describe("The subset of the application domains served with an X-Robots-Tag: noindex, nofollow response header, keeping them out of search engines. Entries that are not among the application domains are ignored.").optional(), "docker_registry_image_name": z.string().describe("The docker registry image name.").optional(), "docker_registry_image_tag": z.string().describe("The docker registry image tag.").optional(), "ports_mappings": z.string().describe("The ports mappings.").optional(), "base_directory": z.string().describe("The base directory for all commands.").optional(), "health_check_enabled": z.boolean().describe("Health check enabled.").optional(), "health_check_path": z.string().describe("Health check path.").optional(), "health_check_port": z.union([z.string().describe("Health check port."), z.null()]).optional(), "health_check_host": z.union([z.string().describe("Health check host."), z.null()]).optional(), "health_check_method": z.string().describe("Health check method.").optional(), "health_check_return_code": z.number().int().describe("Health check return code.").optional(), "health_check_scheme": z.string().describe("Health check scheme.").optional(), "health_check_response_text": z.union([z.string().describe("Health check response text."), z.null()]).optional(), "health_check_interval": z.number().int().describe("Health check interval in seconds.").optional(), "health_check_timeout": z.number().int().describe("Health check timeout in seconds.").optional(), "health_check_retries": z.number().int().describe("Health check retries count.").optional(), "health_check_start_period": z.number().int().describe("Health check start period in seconds.").optional(), "limits_memory": z.string().describe("Memory limit.").optional(), "limits_memory_swap": z.string().describe("Memory swap limit.").optional(), "limits_memory_swappiness": z.number().int().describe("Memory swappiness.").optional(), "limits_memory_reservation": z.string().describe("Memory reservation.").optional(), "limits_cpus": z.string().describe("CPU limit.").optional(), "limits_cpuset": z.union([z.string().describe("CPU set."), z.null()]).optional(), "limits_cpu_shares": z.number().int().describe("CPU shares.").optional(), "custom_labels": z.string().describe("Custom labels.").optional(), "custom_docker_run_options": z.string().describe("Custom docker run options.").optional(), "post_deployment_command": z.string().describe("Post deployment command.").optional(), "post_deployment_command_container": z.string().describe("Post deployment command container.").optional(), "pre_deployment_command": z.string().describe("Pre deployment command.").optional(), "pre_deployment_command_container": z.string().describe("Pre deployment command container.").optional(), "manual_webhook_secret_github": z.string().describe("Manual webhook secret for Github.").optional(), "manual_webhook_secret_gitlab": z.string().describe("Manual webhook secret for Gitlab.").optional(), "manual_webhook_secret_bitbucket": z.string().describe("Manual webhook secret for Bitbucket.").optional(), "manual_webhook_secret_gitea": z.string().describe("Manual webhook secret for Gitea.").optional(), "redirect": z.union([z.enum(["www", "non-www", "both"]).describe("How to set redirect with Traefik / Caddy. www<->non-www."), z.null()]).optional(), "instant_deploy": z.boolean().describe("The flag to indicate if the application should be deployed instantly.").optional(), "is_force_https_enabled": z.boolean().describe("The flag to indicate if HTTPS is forced. Defaults to true.").optional(), "is_preview_deployments_enabled": z.boolean().describe("Enable preview deployments for pull requests.").optional(), "use_build_server": z.union([z.boolean().describe("Use build server."), z.null()]).optional(), "use_build_secrets": z.boolean().describe("Use Docker Build Secrets for build-time environment variables.").default(false), "is_git_submodules_enabled": z.boolean().describe("Clone Git submodules.").optional(), "is_git_lfs_enabled": z.boolean().describe("Enable Git LFS.").optional(), "is_git_shallow_clone_enabled": z.boolean().describe("Use a shallow Git clone.").optional(), "disable_build_cache": z.boolean().describe("Disable the build cache.").optional(), "inject_build_args_to_dockerfile": z.boolean().describe("Inject build arguments into the Dockerfile build.").optional(), "include_source_commit_in_build": z.boolean().describe("Include the source commit in the build.").optional(), "is_env_sorting_enabled": z.boolean().describe("Sort environment variables.").optional(), "is_pr_deployments_public_enabled": z.boolean().describe("Make pull request deployments public.").optional(), "stop_grace_period": z.union([z.number().int().gte(1).lte(3600).describe("Container stop grace period in seconds."), z.null()]).optional(), "docker_images_to_keep": z.number().int().gte(0).lte(100).describe("Number of Docker images to retain.").optional(), "is_gzip_enabled": z.boolean().describe("Enable gzip compression.").optional(), "is_stripprefix_enabled": z.boolean().describe("Enable path prefix stripping.").optional(), "is_raw_compose_deployment_enabled": z.boolean().describe("Deploy the raw Docker Compose definition.").optional(), "is_log_drain_enabled": z.boolean().describe("Enable log drain for the application.").optional(), "is_gpu_enabled": z.boolean().describe("Enable GPU support.").optional(), "gpu_driver": z.union([z.string().describe("GPU driver name."), z.null()]).optional(), "gpu_count": z.union([z.string().describe("Number of GPUs to allocate."), z.null()]).optional(), "gpu_device_ids": z.union([z.string().describe("Comma-separated GPU device IDs."), z.null()]).optional(), "gpu_options": z.union([z.string().describe("Additional GPU options."), z.null()]).optional(), "is_consistent_container_name_enabled": z.boolean().describe("Use a consistent container name across deployments.").optional(), "custom_internal_name": z.union([z.string().describe("Custom internal container name."), z.null()]).optional(), "preview_url_template": z.string().describe("Preview URL template.").optional(), "max_restart_count": z.number().int().gte(0).describe("Maximum container restart count before stopping.").optional(), "is_http_basic_auth_enabled": z.boolean().describe("HTTP Basic Authentication enabled.").optional(), "http_basic_auth_username": z.union([z.string().describe("Username for HTTP Basic Authentication"), z.null()]).optional(), "http_basic_auth_password": z.union([z.string().describe("Password for HTTP Basic Authentication"), z.null()]).optional(), "connect_to_docker_network": z.boolean().describe("The flag to connect the service to the predefined Docker network.").optional(), "force_domain_override": z.boolean().describe("Force domain usage even if conflicts are detected. Default is false.").optional(), "autogenerate_domain": z.boolean().describe("If true and domains is empty, auto-generate a domain using the server's wildcard domain or sslip.io fallback. Default: true.").default(true), "is_container_label_escape_enabled": z.boolean().describe("Escape special characters in labels. By default, $ (and other chars) is escaped. So if you write $ in the labels, it will be saved as $$. If you want to use env variables inside the labels, turn this off.").default(true), "tags": z.array(z.string()).describe("Tags to assign to the application.").optional() }) }), responseSchema: z.object({ "uuid": z.string().optional() }), responseKind: "json", parameters: [], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
9
9
  { name: "coolify_create_dockerimage_application", method: "POST", path: "/applications/dockerimage", description: "Create (Docker Image without git)", inputSchema: z.object({ body: z.object({ "project_uuid": z.string().describe("The project UUID."), "server_uuid": z.string().describe("The server UUID."), "environment_name": z.string().describe("The environment name. You need to provide at least one of environment_name or environment_uuid."), "environment_uuid": z.string().describe("The environment UUID. You need to provide at least one of environment_name or environment_uuid."), "docker_registry_image_name": z.string().describe("The docker registry image name."), "docker_registry_image_tag": z.string().describe("The docker registry image tag.").optional(), "ports_exposes": z.string().describe("The ports to expose.").optional(), "destination_uuid": z.string().describe("The destination UUID.").optional(), "name": z.string().describe("The application name.").optional(), "description": z.string().describe("The application description.").optional(), "domains": z.string().describe("The application URLs in a comma-separated list.").optional(), "noindex_domains": z.array(z.string()).describe("The subset of the application domains served with an X-Robots-Tag: noindex, nofollow response header, keeping them out of search engines. Entries that are not among the application domains are ignored.").optional(), "ports_mappings": z.string().describe("The ports mappings.").optional(), "health_check_enabled": z.boolean().describe("Health check enabled.").optional(), "health_check_path": z.string().describe("Health check path.").optional(), "health_check_port": z.union([z.string().describe("Health check port."), z.null()]).optional(), "health_check_host": z.union([z.string().describe("Health check host."), z.null()]).optional(), "health_check_method": z.string().describe("Health check method.").optional(), "health_check_return_code": z.number().int().describe("Health check return code.").optional(), "health_check_scheme": z.string().describe("Health check scheme.").optional(), "health_check_response_text": z.union([z.string().describe("Health check response text."), z.null()]).optional(), "health_check_interval": z.number().int().describe("Health check interval in seconds.").optional(), "health_check_timeout": z.number().int().describe("Health check timeout in seconds.").optional(), "health_check_retries": z.number().int().describe("Health check retries count.").optional(), "health_check_start_period": z.number().int().describe("Health check start period in seconds.").optional(), "limits_memory": z.string().describe("Memory limit.").optional(), "limits_memory_swap": z.string().describe("Memory swap limit.").optional(), "limits_memory_swappiness": z.number().int().describe("Memory swappiness.").optional(), "limits_memory_reservation": z.string().describe("Memory reservation.").optional(), "limits_cpus": z.string().describe("CPU limit.").optional(), "limits_cpuset": z.union([z.string().describe("CPU set."), z.null()]).optional(), "limits_cpu_shares": z.number().int().describe("CPU shares.").optional(), "custom_labels": z.string().describe("Custom labels.").optional(), "custom_docker_run_options": z.string().describe("Custom docker run options.").optional(), "post_deployment_command": z.string().describe("Post deployment command.").optional(), "post_deployment_command_container": z.string().describe("Post deployment command container.").optional(), "pre_deployment_command": z.string().describe("Pre deployment command.").optional(), "pre_deployment_command_container": z.string().describe("Pre deployment command container.").optional(), "manual_webhook_secret_github": z.string().describe("Manual webhook secret for Github.").optional(), "manual_webhook_secret_gitlab": z.string().describe("Manual webhook secret for Gitlab.").optional(), "manual_webhook_secret_bitbucket": z.string().describe("Manual webhook secret for Bitbucket.").optional(), "manual_webhook_secret_gitea": z.string().describe("Manual webhook secret for Gitea.").optional(), "redirect": z.union([z.enum(["www", "non-www", "both"]).describe("How to set redirect with Traefik / Caddy. www<->non-www."), z.null()]).optional(), "instant_deploy": z.boolean().describe("The flag to indicate if the application should be deployed instantly.").optional(), "is_force_https_enabled": z.boolean().describe("The flag to indicate if HTTPS is forced. Defaults to true.").optional(), "is_preview_deployments_enabled": z.boolean().describe("Enable preview deployments for pull requests.").optional(), "use_build_server": z.union([z.boolean().describe("Use build server."), z.null()]).optional(), "use_build_secrets": z.boolean().describe("Use Docker Build Secrets for build-time environment variables.").default(false), "is_git_submodules_enabled": z.boolean().describe("Clone Git submodules.").optional(), "is_git_lfs_enabled": z.boolean().describe("Enable Git LFS.").optional(), "is_git_shallow_clone_enabled": z.boolean().describe("Use a shallow Git clone.").optional(), "disable_build_cache": z.boolean().describe("Disable the build cache.").optional(), "inject_build_args_to_dockerfile": z.boolean().describe("Inject build arguments into the Dockerfile build.").optional(), "include_source_commit_in_build": z.boolean().describe("Include the source commit in the build.").optional(), "is_env_sorting_enabled": z.boolean().describe("Sort environment variables.").optional(), "is_pr_deployments_public_enabled": z.boolean().describe("Make pull request deployments public.").optional(), "stop_grace_period": z.union([z.number().int().gte(1).lte(3600).describe("Container stop grace period in seconds."), z.null()]).optional(), "docker_images_to_keep": z.number().int().gte(0).lte(100).describe("Number of Docker images to retain.").optional(), "is_gzip_enabled": z.boolean().describe("Enable gzip compression.").optional(), "is_stripprefix_enabled": z.boolean().describe("Enable path prefix stripping.").optional(), "is_raw_compose_deployment_enabled": z.boolean().describe("Deploy the raw Docker Compose definition.").optional(), "is_log_drain_enabled": z.boolean().describe("Enable log drain for the application.").optional(), "is_gpu_enabled": z.boolean().describe("Enable GPU support.").optional(), "gpu_driver": z.union([z.string().describe("GPU driver name."), z.null()]).optional(), "gpu_count": z.union([z.string().describe("Number of GPUs to allocate."), z.null()]).optional(), "gpu_device_ids": z.union([z.string().describe("Comma-separated GPU device IDs."), z.null()]).optional(), "gpu_options": z.union([z.string().describe("Additional GPU options."), z.null()]).optional(), "is_consistent_container_name_enabled": z.boolean().describe("Use a consistent container name across deployments.").optional(), "custom_internal_name": z.union([z.string().describe("Custom internal container name."), z.null()]).optional(), "preview_url_template": z.string().describe("Preview URL template.").optional(), "max_restart_count": z.number().int().gte(0).describe("Maximum container restart count before stopping.").optional(), "is_http_basic_auth_enabled": z.boolean().describe("HTTP Basic Authentication enabled.").optional(), "http_basic_auth_username": z.union([z.string().describe("Username for HTTP Basic Authentication"), z.null()]).optional(), "http_basic_auth_password": z.union([z.string().describe("Password for HTTP Basic Authentication"), z.null()]).optional(), "connect_to_docker_network": z.boolean().describe("The flag to connect the service to the predefined Docker network.").optional(), "force_domain_override": z.boolean().describe("Force domain usage even if conflicts are detected. Default is false.").optional(), "autogenerate_domain": z.boolean().describe("If true and domains is empty, auto-generate a domain using the server's wildcard domain or sslip.io fallback. Default: true.").default(true), "is_container_label_escape_enabled": z.boolean().describe("Escape special characters in labels. By default, $ (and other chars) is escaped. So if you write $ in the labels, it will be saved as $$. If you want to use env variables inside the labels, turn this off.").default(true), "tags": z.array(z.string()).describe("Tags to assign to the application.").optional() }) }), responseSchema: z.object({ "uuid": z.string().optional() }), responseKind: "json", parameters: [], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
10
- { name: "coolify_get_application_by_uuid", method: "GET", path: "/applications/{uuid}", description: "Get", inputSchema: z.object({ "uuid": z.string() }), responseSchema: z.object({ "id": z.number().int().describe("The application identifier in the database.").optional(), "description": z.union([z.string().describe("The application description."), z.null()]).optional(), "repository_project_id": z.union([z.number().int().describe("The repository project identifier."), z.null()]).optional(), "uuid": z.string().describe("The application UUID.").optional(), "name": z.string().describe("The application name.").optional(), "fqdn": z.union([z.string().describe("The application domains."), z.null()]).optional(), "noindex_domains": z.union([z.array(z.string()).describe("The subset of the application domains served with an X-Robots-Tag: noindex, nofollow response header."), z.null()]).optional(), "config_hash": z.string().describe("Configuration hash.").optional(), "git_repository": z.string().describe("Git repository URL.").optional(), "git_branch": z.string().describe("Git branch.").optional(), "git_commit_sha": z.string().describe("Git commit SHA.").optional(), "git_full_url": z.union([z.string().describe("Git full URL."), z.null()]).optional(), "docker_registry_image_name": z.union([z.string().describe("Docker registry image name."), z.null()]).optional(), "docker_registry_image_tag": z.union([z.string().describe("Docker registry image tag."), z.null()]).optional(), "build_pack": z.enum(["nixpacks", "railpack", "static", "dockerfile", "dockercompose"]).describe("Build pack.").optional(), "static_image": z.string().describe("Static image used when static site is deployed.").optional(), "install_command": z.string().describe("Install command.").optional(), "build_command": z.string().describe("Build command.").optional(), "start_command": z.string().describe("Start command.").optional(), "ports_exposes": z.string().describe("Ports exposes.").optional(), "ports_mappings": z.union([z.string().describe("Ports mappings."), z.null()]).optional(), "custom_network_aliases": z.union([z.string().describe("Network aliases for Docker container."), z.null()]).optional(), "base_directory": z.string().describe("Base directory for all commands.").optional(), "publish_directory": z.string().describe("Publish directory.").optional(), "health_check_enabled": z.boolean().describe("Health check enabled.").optional(), "health_check_path": z.string().describe("Health check path.").optional(), "health_check_port": z.union([z.string().describe("Health check port."), z.null()]).optional(), "health_check_host": z.union([z.string().describe("Health check host."), z.null()]).optional(), "health_check_method": z.string().describe("Health check method.").optional(), "health_check_return_code": z.number().int().describe("Health check return code.").optional(), "health_check_scheme": z.string().describe("Health check scheme.").optional(), "health_check_response_text": z.union([z.string().describe("Health check response text."), z.null()]).optional(), "health_check_interval": z.number().int().describe("Health check interval in seconds.").optional(), "health_check_timeout": z.number().int().describe("Health check timeout in seconds.").optional(), "health_check_retries": z.number().int().describe("Health check retries count.").optional(), "health_check_start_period": z.number().int().describe("Health check start period in seconds.").optional(), "health_check_type": z.enum(["http", "cmd"]).describe("Health check type: http or cmd.").optional(), "health_check_command": z.union([z.string().describe("Health check command for CMD type."), z.null()]).optional(), "limits_memory": z.string().describe("Memory limit.").optional(), "limits_memory_swap": z.string().describe("Memory swap limit.").optional(), "limits_memory_swappiness": z.number().int().describe("Memory swappiness.").optional(), "limits_memory_reservation": z.string().describe("Memory reservation.").optional(), "limits_cpus": z.string().describe("CPU limit.").optional(), "limits_cpuset": z.union([z.string().describe("CPU set."), z.null()]).optional(), "limits_cpu_shares": z.number().int().describe("CPU shares.").optional(), "status": z.string().describe("Application status.").optional(), "preview_url_template": z.string().describe("Preview URL template.").optional(), "max_restart_count": z.number().int().describe("Maximum container restart count before stopping.").optional(), "destination_type": z.string().describe("Destination type.").optional(), "destination_id": z.number().int().describe("Destination identifier.").optional(), "source_id": z.union([z.number().int().describe("Source identifier."), z.null()]).optional(), "private_key_id": z.union([z.number().int().describe("Private key identifier."), z.null()]).optional(), "environment_id": z.number().int().describe("Environment identifier.").optional(), "dockerfile": z.union([z.string().describe("Dockerfile content. Used for dockerfile build pack."), z.null()]).optional(), "dockerfile_location": z.string().describe("Dockerfile location.").optional(), "custom_labels": z.union([z.string().describe("Custom labels."), z.null()]).optional(), "dockerfile_target_build": z.union([z.string().describe("Dockerfile target build."), z.null()]).optional(), "manual_webhook_secret_github": z.union([z.string().describe("Manual webhook secret for GitHub."), z.null()]).optional(), "manual_webhook_secret_gitlab": z.union([z.string().describe("Manual webhook secret for GitLab."), z.null()]).optional(), "manual_webhook_secret_bitbucket": z.union([z.string().describe("Manual webhook secret for Bitbucket."), z.null()]).optional(), "manual_webhook_secret_gitea": z.union([z.string().describe("Manual webhook secret for Gitea."), z.null()]).optional(), "docker_compose_location": z.string().describe("Docker compose location.").optional(), "docker_compose": z.union([z.string().describe("Docker compose content. Used for docker compose build pack."), z.null()]).optional(), "docker_compose_raw": z.union([z.string().describe("Docker compose raw content."), z.null()]).optional(), "docker_compose_domains": z.union([z.string().describe("Docker compose domains."), z.null()]).optional(), "docker_compose_custom_start_command": z.union([z.string().describe("Docker compose custom start command."), z.null()]).optional(), "docker_compose_custom_build_command": z.union([z.string().describe("Docker compose custom build command."), z.null()]).optional(), "swarm_replicas": z.union([z.number().int().describe("Swarm replicas. Only used for swarm deployments."), z.null()]).optional(), "swarm_placement_constraints": z.union([z.string().describe("Swarm placement constraints. Only used for swarm deployments."), z.null()]).optional(), "custom_docker_run_options": z.union([z.string().describe("Custom docker run options."), z.null()]).optional(), "post_deployment_command": z.union([z.string().describe("Post deployment command."), z.null()]).optional(), "post_deployment_command_container": z.union([z.string().describe("Post deployment command container."), z.null()]).optional(), "pre_deployment_command": z.union([z.string().describe("Pre deployment command."), z.null()]).optional(), "pre_deployment_command_container": z.union([z.string().describe("Pre deployment command container."), z.null()]).optional(), "watch_paths": z.union([z.string().describe("Watch paths."), z.null()]).optional(), "custom_healthcheck_found": z.boolean().describe("Custom healthcheck found.").optional(), "redirect": z.union([z.enum(["www", "non-www", "both"]).describe("How to set redirect with Traefik / Caddy. www<->non-www."), z.null()]).optional(), "created_at": z.string().datetime({ offset: true }).describe("The date and time when the application was created.").optional(), "updated_at": z.string().datetime({ offset: true }).describe("The date and time when the application was last updated.").optional(), "deleted_at": z.union([z.string().datetime({ offset: true }).describe("The date and time when the application was deleted."), z.null()]).optional(), "compose_parsing_version": z.string().describe("How Coolify parse the compose file.").optional(), "custom_nginx_configuration": z.union([z.string().describe("Custom Nginx configuration base64 encoded."), z.null()]).optional(), "is_http_basic_auth_enabled": z.boolean().describe("HTTP Basic Authentication enabled.").optional(), "http_basic_auth_username": z.union([z.string().describe("Username for HTTP Basic Authentication"), z.null()]).optional(), "http_basic_auth_password": z.union([z.string().describe("Password for HTTP Basic Authentication"), z.null()]).optional(), "settings": z.object({ "is_static": z.boolean().optional(), "is_git_submodules_enabled": z.boolean().optional(), "is_git_lfs_enabled": z.boolean().optional(), "is_auto_deploy_enabled": z.boolean().optional(), "is_force_https_enabled": z.boolean().optional(), "is_debug_enabled": z.boolean().optional(), "is_preview_deployments_enabled": z.boolean().optional(), "is_log_drain_enabled": z.boolean().optional(), "is_gpu_enabled": z.boolean().optional(), "gpu_driver": z.union([z.string(), z.null()]).optional(), "gpu_count": z.union([z.string(), z.null()]).optional(), "gpu_device_ids": z.union([z.string(), z.null()]).optional(), "gpu_options": z.union([z.string(), z.null()]).optional(), "is_include_timestamps": z.boolean().optional(), "is_swarm_only_worker_nodes": z.boolean().optional(), "is_raw_compose_deployment_enabled": z.boolean().optional(), "is_build_server_enabled": z.boolean().optional(), "is_consistent_container_name_enabled": z.boolean().optional(), "is_gzip_enabled": z.boolean().optional(), "is_stripprefix_enabled": z.boolean().optional(), "connect_to_docker_network": z.boolean().optional(), "custom_internal_name": z.union([z.string(), z.null()]).optional(), "is_container_label_escape_enabled": z.boolean().optional(), "is_env_sorting_enabled": z.boolean().optional(), "is_container_label_readonly_enabled": z.boolean().optional(), "is_preserve_repository_enabled": z.boolean().optional(), "disable_build_cache": z.boolean().optional(), "is_spa": z.boolean().optional(), "is_git_shallow_clone_enabled": z.boolean().optional(), "is_pr_deployments_public_enabled": z.boolean().optional(), "use_build_secrets": z.boolean().optional(), "inject_build_args_to_dockerfile": z.boolean().optional(), "include_source_commit_in_build": z.boolean().optional(), "docker_images_to_keep": z.number().int().optional(), "stop_grace_period": z.union([z.number().int(), z.null()]).optional() }).describe("Application settings.").optional() }).describe("Application model"), responseKind: "json", parameters: [{ location: "path", name: "uuid" }], annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false } },
10
+ { name: "coolify_get_application_by_uuid", method: "GET", path: "/applications/{uuid}", description: "Get", inputSchema: z.object({ "uuid": z.string() }), responseSchema: z.object({ "id": z.number().int().describe("The application identifier in the database.").optional(), "description": z.union([z.string().describe("The application description."), z.null()]).optional(), "repository_project_id": z.union([z.number().int().describe("The repository project identifier."), z.null()]).optional(), "uuid": z.string().describe("The application UUID.").optional(), "name": z.string().describe("The application name.").optional(), "fqdn": z.union([z.string().describe("The application domains."), z.null()]).optional(), "noindex_domains": z.union([z.array(z.string()).describe("The subset of the application domains served with an X-Robots-Tag: noindex, nofollow response header."), z.null()]).optional(), "config_hash": z.string().describe("Configuration hash.").optional(), "git_repository": z.string().describe("Git repository URL.").optional(), "git_branch": z.string().describe("Git branch.").optional(), "git_commit_sha": z.string().describe("Git commit SHA.").optional(), "git_full_url": z.union([z.string().describe("Git full URL."), z.null()]).optional(), "docker_registry_image_name": z.union([z.string().describe("Docker registry image name."), z.null()]).optional(), "docker_registry_image_tag": z.union([z.string().describe("Docker registry image tag."), z.null()]).optional(), "build_pack": z.enum(["nixpacks", "railpack", "static", "dockerfile", "dockercompose"]).describe("Build pack.").optional(), "static_image": z.string().describe("Static image used when static site is deployed.").optional(), "install_command": z.union([z.string().describe("Install command."), z.null()]).optional(), "build_command": z.union([z.string().describe("Build command."), z.null()]).optional(), "start_command": z.union([z.string().describe("Start command."), z.null()]).optional(), "ports_exposes": z.string().describe("Ports exposes.").optional(), "ports_mappings": z.union([z.string().describe("Ports mappings."), z.null()]).optional(), "custom_network_aliases": z.union([z.string().describe("Network aliases for Docker container."), z.null()]).optional(), "base_directory": z.string().describe("Base directory for all commands.").optional(), "publish_directory": z.union([z.string().describe("Publish directory."), z.null()]).optional(), "health_check_enabled": z.boolean().describe("Health check enabled.").optional(), "health_check_path": z.string().describe("Health check path.").optional(), "health_check_port": z.union([z.string().describe("Health check port."), z.null()]).optional(), "health_check_host": z.union([z.string().describe("Health check host."), z.null()]).optional(), "health_check_method": z.string().describe("Health check method.").optional(), "health_check_return_code": z.number().int().describe("Health check return code.").optional(), "health_check_scheme": z.string().describe("Health check scheme.").optional(), "health_check_response_text": z.union([z.string().describe("Health check response text."), z.null()]).optional(), "health_check_interval": z.number().int().describe("Health check interval in seconds.").optional(), "health_check_timeout": z.number().int().describe("Health check timeout in seconds.").optional(), "health_check_retries": z.number().int().describe("Health check retries count.").optional(), "health_check_start_period": z.number().int().describe("Health check start period in seconds.").optional(), "health_check_type": z.enum(["http", "cmd"]).describe("Health check type: http or cmd.").optional(), "health_check_command": z.union([z.string().describe("Health check command for CMD type."), z.null()]).optional(), "limits_memory": z.string().describe("Memory limit.").optional(), "limits_memory_swap": z.string().describe("Memory swap limit.").optional(), "limits_memory_swappiness": z.number().int().describe("Memory swappiness.").optional(), "limits_memory_reservation": z.string().describe("Memory reservation.").optional(), "limits_cpus": z.string().describe("CPU limit.").optional(), "limits_cpuset": z.union([z.string().describe("CPU set."), z.null()]).optional(), "limits_cpu_shares": z.number().int().describe("CPU shares.").optional(), "status": z.string().describe("Application status.").optional(), "preview_url_template": z.string().describe("Preview URL template.").optional(), "max_restart_count": z.number().int().describe("Maximum container restart count before stopping.").optional(), "destination_type": z.string().describe("Destination type.").optional(), "destination_id": z.number().int().describe("Destination identifier.").optional(), "source_id": z.union([z.number().int().describe("Source identifier."), z.null()]).optional(), "private_key_id": z.union([z.string().describe("Private key identifier."), z.null()]).optional(), "environment_id": z.number().int().describe("Environment identifier.").optional(), "dockerfile": z.union([z.string().describe("Dockerfile content. Used for dockerfile build pack."), z.null()]).optional(), "dockerfile_location": z.union([z.string().describe("Dockerfile location."), z.null()]).optional(), "custom_labels": z.union([z.string().describe("Custom labels."), z.null()]).optional(), "dockerfile_target_build": z.union([z.string().describe("Dockerfile target build."), z.null()]).optional(), "manual_webhook_secret_github": z.union([z.string().describe("Manual webhook secret for GitHub."), z.null()]).optional(), "manual_webhook_secret_gitlab": z.union([z.string().describe("Manual webhook secret for GitLab."), z.null()]).optional(), "manual_webhook_secret_bitbucket": z.union([z.string().describe("Manual webhook secret for Bitbucket."), z.null()]).optional(), "manual_webhook_secret_gitea": z.union([z.string().describe("Manual webhook secret for Gitea."), z.null()]).optional(), "docker_compose_location": z.string().describe("Docker compose location.").optional(), "docker_compose": z.union([z.string().describe("Docker compose content. Used for docker compose build pack."), z.null()]).optional(), "docker_compose_raw": z.union([z.string().describe("Docker compose raw content."), z.null()]).optional(), "docker_compose_domains": z.union([z.string().describe("Docker compose domains."), z.null()]).optional(), "docker_compose_custom_start_command": z.union([z.string().describe("Docker compose custom start command."), z.null()]).optional(), "docker_compose_custom_build_command": z.union([z.string().describe("Docker compose custom build command."), z.null()]).optional(), "swarm_replicas": z.union([z.number().int().describe("Swarm replicas. Only used for swarm deployments."), z.null()]).optional(), "swarm_placement_constraints": z.union([z.string().describe("Swarm placement constraints. Only used for swarm deployments."), z.null()]).optional(), "custom_docker_run_options": z.union([z.string().describe("Custom docker run options."), z.null()]).optional(), "post_deployment_command": z.union([z.string().describe("Post deployment command."), z.null()]).optional(), "post_deployment_command_container": z.union([z.string().describe("Post deployment command container."), z.null()]).optional(), "pre_deployment_command": z.union([z.string().describe("Pre deployment command."), z.null()]).optional(), "pre_deployment_command_container": z.union([z.string().describe("Pre deployment command container."), z.null()]).optional(), "watch_paths": z.union([z.string().describe("Watch paths."), z.null()]).optional(), "custom_healthcheck_found": z.boolean().describe("Custom healthcheck found.").optional(), "redirect": z.union([z.enum(["www", "non-www", "both"]).describe("How to set redirect with Traefik / Caddy. www<->non-www."), z.null()]).optional(), "created_at": z.string().datetime({ offset: true }).describe("The date and time when the application was created.").optional(), "updated_at": z.string().datetime({ offset: true }).describe("The date and time when the application was last updated.").optional(), "deleted_at": z.union([z.string().datetime({ offset: true }).describe("The date and time when the application was deleted."), z.null()]).optional(), "compose_parsing_version": z.string().describe("How Coolify parse the compose file.").optional(), "custom_nginx_configuration": z.union([z.string().describe("Custom Nginx configuration base64 encoded."), z.null()]).optional(), "is_http_basic_auth_enabled": z.boolean().describe("HTTP Basic Authentication enabled.").optional(), "http_basic_auth_username": z.union([z.string().describe("Username for HTTP Basic Authentication"), z.null()]).optional(), "http_basic_auth_password": z.union([z.string().describe("Password for HTTP Basic Authentication"), z.null()]).optional(), "settings": z.object({ "is_static": z.boolean().optional(), "is_git_submodules_enabled": z.boolean().optional(), "is_git_lfs_enabled": z.boolean().optional(), "is_auto_deploy_enabled": z.boolean().optional(), "is_force_https_enabled": z.boolean().optional(), "is_debug_enabled": z.boolean().optional(), "is_preview_deployments_enabled": z.boolean().optional(), "is_log_drain_enabled": z.boolean().optional(), "is_gpu_enabled": z.boolean().optional(), "gpu_driver": z.union([z.string(), z.null()]).optional(), "gpu_count": z.union([z.string(), z.null()]).optional(), "gpu_device_ids": z.union([z.string(), z.null()]).optional(), "gpu_options": z.union([z.string(), z.null()]).optional(), "is_include_timestamps": z.boolean().optional(), "is_swarm_only_worker_nodes": z.boolean().optional(), "is_raw_compose_deployment_enabled": z.boolean().optional(), "is_build_server_enabled": z.boolean().optional(), "is_consistent_container_name_enabled": z.boolean().optional(), "is_gzip_enabled": z.boolean().optional(), "is_stripprefix_enabled": z.boolean().optional(), "connect_to_docker_network": z.boolean().optional(), "custom_internal_name": z.union([z.string(), z.null()]).optional(), "is_container_label_escape_enabled": z.boolean().optional(), "is_env_sorting_enabled": z.boolean().optional(), "is_container_label_readonly_enabled": z.boolean().optional(), "is_preserve_repository_enabled": z.boolean().optional(), "disable_build_cache": z.boolean().optional(), "is_spa": z.boolean().optional(), "is_git_shallow_clone_enabled": z.boolean().optional(), "is_pr_deployments_public_enabled": z.boolean().optional(), "use_build_secrets": z.boolean().optional(), "inject_build_args_to_dockerfile": z.boolean().optional(), "include_source_commit_in_build": z.boolean().optional(), "docker_images_to_keep": z.number().int().optional(), "stop_grace_period": z.union([z.number().int(), z.null()]).optional() }).describe("Application settings.").optional() }).describe("Application model"), responseKind: "json", parameters: [{ location: "path", name: "uuid" }], annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false } },
11
11
  { name: "coolify_delete_application_by_uuid", method: "DELETE", path: "/applications/{uuid}", description: "Delete", inputSchema: z.object({ "uuid": z.string(), "delete_configurations": z.boolean().default(true), "delete_volumes": z.boolean().default(true), "docker_cleanup": z.boolean().default(true), "delete_connected_networks": z.boolean().default(true) }), responseSchema: z.object({ "message": z.string().optional() }), responseKind: "json", parameters: [{ location: "path", name: "uuid" }, { location: "query", name: "delete_configurations" }, { location: "query", name: "delete_volumes" }, { location: "query", name: "docker_cleanup" }, { location: "query", name: "delete_connected_networks" }], annotations: { readOnlyHint: false, destructiveHint: true, idempotentHint: true, openWorldHint: false } },
12
12
  { name: "coolify_update_application_by_uuid", method: "PATCH", path: "/applications/{uuid}", description: "Update", inputSchema: z.object({ "uuid": z.string(), body: z.object({ "project_uuid": z.string().describe("The project UUID.").optional(), "server_uuid": z.string().describe("The server UUID.").optional(), "environment_name": z.string().describe("The environment name.").optional(), "github_app_uuid": z.string().describe("The Github App UUID.").optional(), "git_repository": z.string().describe("The git repository URL.").optional(), "git_branch": z.string().describe("The git branch.").optional(), "ports_exposes": z.string().describe("The ports to expose.").optional(), "destination_uuid": z.string().describe("The destination UUID.").optional(), "build_pack": z.enum(["nixpacks", "railpack", "static", "dockerfile", "dockercompose"]).describe("The build pack type.").optional(), "name": z.string().describe("The application name.").optional(), "description": z.string().describe("The application description.").optional(), "domains": z.string().describe("The application URLs in a comma-separated list.").optional(), "noindex_domains": z.array(z.string()).describe("The subset of the application domains served with an X-Robots-Tag: noindex, nofollow response header, keeping them out of search engines. Entries that are not among the application domains are ignored.").optional(), "git_commit_sha": z.string().describe("The git commit SHA.").optional(), "docker_registry_image_name": z.string().describe("The docker registry image name.").optional(), "docker_registry_image_tag": z.string().describe("The docker registry image tag.").optional(), "is_static": z.boolean().describe("The flag to indicate if the application is static.").optional(), "is_spa": z.boolean().describe("The flag to indicate if the application is a single-page application (SPA). Only relevant when is_static is true.").optional(), "is_auto_deploy_enabled": z.boolean().describe("The flag to indicate if auto-deploy is enabled on git push. Defaults to true.").optional(), "is_force_https_enabled": z.boolean().describe("The flag to indicate if HTTPS is forced. Defaults to true.").optional(), "is_preview_deployments_enabled": z.boolean().describe("Enable preview deployments for pull requests.").optional(), "install_command": z.string().describe("The install command.").optional(), "build_command": z.string().describe("The build command.").optional(), "start_command": z.string().describe("The start command.").optional(), "ports_mappings": z.string().describe("The ports mappings.").optional(), "base_directory": z.string().describe("The base directory for all commands.").optional(), "publish_directory": z.string().describe("The publish directory.").optional(), "health_check_enabled": z.boolean().describe("Health check enabled.").optional(), "health_check_path": z.string().describe("Health check path.").optional(), "health_check_port": z.union([z.string().describe("Health check port."), z.null()]).optional(), "health_check_host": z.union([z.string().describe("Health check host."), z.null()]).optional(), "health_check_method": z.string().describe("Health check method.").optional(), "health_check_return_code": z.number().int().describe("Health check return code.").optional(), "health_check_scheme": z.string().describe("Health check scheme.").optional(), "health_check_response_text": z.union([z.string().describe("Health check response text."), z.null()]).optional(), "health_check_interval": z.number().int().describe("Health check interval in seconds.").optional(), "health_check_timeout": z.number().int().describe("Health check timeout in seconds.").optional(), "health_check_retries": z.number().int().describe("Health check retries count.").optional(), "health_check_start_period": z.number().int().describe("Health check start period in seconds.").optional(), "limits_memory": z.string().describe("Memory limit.").optional(), "limits_memory_swap": z.string().describe("Memory swap limit.").optional(), "limits_memory_swappiness": z.number().int().describe("Memory swappiness.").optional(), "limits_memory_reservation": z.string().describe("Memory reservation.").optional(), "limits_cpus": z.string().describe("CPU limit.").optional(), "limits_cpuset": z.union([z.string().describe("CPU set."), z.null()]).optional(), "limits_cpu_shares": z.number().int().describe("CPU shares.").optional(), "custom_labels": z.string().describe("Custom labels.").optional(), "custom_docker_run_options": z.string().describe("Custom docker run options.").optional(), "post_deployment_command": z.string().describe("Post deployment command.").optional(), "post_deployment_command_container": z.string().describe("Post deployment command container.").optional(), "pre_deployment_command": z.string().describe("Pre deployment command.").optional(), "pre_deployment_command_container": z.string().describe("Pre deployment command container.").optional(), "manual_webhook_secret_github": z.string().describe("Manual webhook secret for Github.").optional(), "manual_webhook_secret_gitlab": z.string().describe("Manual webhook secret for Gitlab.").optional(), "manual_webhook_secret_bitbucket": z.string().describe("Manual webhook secret for Bitbucket.").optional(), "manual_webhook_secret_gitea": z.string().describe("Manual webhook secret for Gitea.").optional(), "redirect": z.union([z.enum(["www", "non-www", "both"]).describe("How to set redirect with Traefik / Caddy. www<->non-www."), z.null()]).optional(), "instant_deploy": z.boolean().describe("The flag to indicate if the application should be deployed instantly.").optional(), "dockerfile": z.string().describe("The Dockerfile content.").optional(), "dockerfile_location": z.string().describe("The Dockerfile location in the repository.").optional(), "docker_compose_location": z.string().describe("The Docker Compose location.").optional(), "docker_compose_custom_start_command": z.string().describe("The Docker Compose custom start command.").optional(), "docker_compose_custom_build_command": z.string().describe("The Docker Compose custom build command.").optional(), "docker_compose_domains": z.array(z.object({ "name": z.string().describe("The service name as defined in docker-compose.").optional(), "domain": z.string().describe("Comma-separated list of URLs (e.g. \"https://app.coolify.io,https://app2.coolify.io\")").optional(), "redirect": z.union([z.enum(["www", "non-www", "both"]).describe("Per-service www/non-www redirect for this compose service."), z.null()]).optional() })).describe("Array of URLs to be applied to containers of a dockercompose application.").optional(), "watch_paths": z.string().describe("The watch paths.").optional(), "use_build_server": z.union([z.boolean().describe("Use build server."), z.null()]).optional(), "use_build_secrets": z.boolean().describe("Use Docker Build Secrets for build-time environment variables.").optional(), "is_git_submodules_enabled": z.boolean().describe("Clone Git submodules.").optional(), "is_git_lfs_enabled": z.boolean().describe("Enable Git LFS.").optional(), "is_git_shallow_clone_enabled": z.boolean().describe("Use a shallow Git clone.").optional(), "disable_build_cache": z.boolean().describe("Disable the build cache.").optional(), "inject_build_args_to_dockerfile": z.boolean().describe("Inject build arguments into the Dockerfile build.").optional(), "include_source_commit_in_build": z.boolean().describe("Include the source commit in the build.").optional(), "is_env_sorting_enabled": z.boolean().describe("Sort environment variables.").optional(), "is_pr_deployments_public_enabled": z.boolean().describe("Make pull request deployments public.").optional(), "stop_grace_period": z.union([z.number().int().gte(1).lte(3600).describe("Container stop grace period in seconds."), z.null()]).optional(), "docker_images_to_keep": z.number().int().gte(0).lte(100).describe("Number of Docker images to retain.").optional(), "is_gzip_enabled": z.boolean().describe("Enable gzip compression.").optional(), "is_stripprefix_enabled": z.boolean().describe("Enable path prefix stripping.").optional(), "is_raw_compose_deployment_enabled": z.boolean().describe("Deploy the raw Docker Compose definition.").optional(), "is_log_drain_enabled": z.boolean().describe("Enable log drain for the application.").optional(), "is_gpu_enabled": z.boolean().describe("Enable GPU support.").optional(), "gpu_driver": z.union([z.string().describe("GPU driver name."), z.null()]).optional(), "gpu_count": z.union([z.string().describe("Number of GPUs to allocate."), z.null()]).optional(), "gpu_device_ids": z.union([z.string().describe("Comma-separated GPU device IDs."), z.null()]).optional(), "gpu_options": z.union([z.string().describe("Additional GPU options."), z.null()]).optional(), "is_consistent_container_name_enabled": z.boolean().describe("Use a consistent container name across deployments.").optional(), "custom_internal_name": z.union([z.string().describe("Custom internal container name."), z.null()]).optional(), "preview_url_template": z.string().describe("Preview URL template.").optional(), "max_restart_count": z.number().int().gte(0).describe("Maximum container restart count before stopping.").optional(), "connect_to_docker_network": z.boolean().describe("The flag to connect the service to the predefined Docker network.").optional(), "force_domain_override": z.boolean().describe("Force domain usage even if conflicts are detected. Default is false.").optional(), "is_container_label_escape_enabled": z.boolean().describe("Escape special characters in labels. By default, $ (and other chars) is escaped. So if you write $ in the labels, it will be saved as $$. If you want to use env variables inside the labels, turn this off.").default(true), "is_preserve_repository_enabled": z.boolean().describe("Preserve git repository during application update. If false, the existing repository will be removed and replaced with the new one. If true, the existing repository will be kept and the new one will be ignored. Default is false.").optional() }) }), responseSchema: z.object({ "uuid": z.string().optional() }), responseKind: "json", parameters: [{ location: "path", name: "uuid" }], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
13
13
  { name: "coolify_get_application_logs_by_uuid", method: "GET", path: "/applications/{uuid}/logs", description: "Get application logs.", inputSchema: z.object({ "uuid": z.string(), "lines": z.number().int().default(100), "show_timestamps": z.boolean().default(false) }), responseSchema: z.object({ "logs": z.string().optional() }), responseKind: "json", parameters: [{ location: "path", name: "uuid" }, { location: "query", name: "lines" }, { location: "query", name: "show_timestamps" }], annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false } },
14
+ { name: "coolify_get_preview_application_logs_by_pull_request_id", method: "GET", path: "/applications/{uuid}/previews/{pull_request_id}/logs", description: "Get preview application logs.", inputSchema: z.object({ "uuid": z.string(), "pull_request_id": z.number().int().gte(1), "lines": z.any().superRefine((x, ctx) => {
15
+ const schemas = [z.number().int().gte(-1).lte(10000).default(100), z.literal("all")];
16
+ const { errors, failed } = schemas.reduce(({ errors, failed }, schema) => ((result) => result.error
17
+ ? {
18
+ errors: [...errors, ...result.error.issues],
19
+ failed: failed + 1,
20
+ }
21
+ : { errors, failed })(schema.safeParse(x)), { errors: [], failed: 0 });
22
+ const passed = schemas.length - failed;
23
+ if (passed !== 1) {
24
+ ctx.addIssue(errors.length ? {
25
+ path: [],
26
+ code: "invalid_union",
27
+ errors: [errors],
28
+ message: "Invalid input: Should pass single schema. Passed " + passed,
29
+ } : {
30
+ path: [],
31
+ code: "custom",
32
+ errors: [errors],
33
+ message: "Invalid input: Should pass single schema. Passed " + passed,
34
+ });
35
+ }
36
+ }).optional(), "show_timestamps": z.boolean().default(false) }), responseSchema: z.object({ "logs": z.string().optional() }), responseKind: "json", parameters: [{ location: "path", name: "uuid" }, { location: "path", name: "pull_request_id" }, { location: "query", name: "lines" }, { location: "query", name: "show_timestamps" }], annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false } },
14
37
  { name: "coolify_list_envs_by_application_uuid", method: "GET", path: "/applications/{uuid}/envs", description: "List Envs", inputSchema: z.object({ "uuid": z.string() }), responseSchema: z.array(z.object({ "id": z.number().int().optional(), "uuid": z.string().optional(), "resourceable_type": z.string().optional(), "resourceable_id": z.number().int().optional(), "is_literal": z.boolean().optional(), "is_multiline": z.boolean().optional(), "is_preview": z.boolean().optional(), "is_runtime": z.boolean().optional(), "is_buildtime": z.boolean().optional(), "is_shared": z.boolean().optional(), "is_shown_once": z.boolean().optional(), "key": z.string().optional(), "value": z.string().optional(), "real_value": z.string().optional(), "comment": z.union([z.string(), z.null()]).optional(), "version": z.string().optional(), "created_at": z.string().optional(), "updated_at": z.string().optional() }).describe("Environment Variable model")), responseKind: "json", parameters: [{ location: "path", name: "uuid" }], annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false } },
15
38
  { name: "coolify_create_env_by_application_uuid", method: "POST", path: "/applications/{uuid}/envs", description: "Create Env", inputSchema: z.object({ "uuid": z.string(), body: z.object({ "key": z.string().describe("The key of the environment variable.").optional(), "value": z.string().describe("The value of the environment variable.").optional(), "is_preview": z.boolean().describe("The flag to indicate if the environment variable is used in preview deployments.").optional(), "is_literal": z.boolean().describe("The flag to indicate if the environment variable is a literal, nothing espaced.").optional(), "is_multiline": z.boolean().describe("The flag to indicate if the environment variable is multiline.").optional(), "is_shown_once": z.boolean().describe("The flag to indicate if the environment variable's value is shown on the UI.").optional() }) }), responseSchema: z.object({ "uuid": z.string().optional() }), responseKind: "json", parameters: [{ location: "path", name: "uuid" }], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
16
39
  { name: "coolify_update_env_by_application_uuid", method: "PATCH", path: "/applications/{uuid}/envs", description: "Update Env", inputSchema: z.object({ "uuid": z.string(), body: z.object({ "key": z.string().describe("The key of the environment variable."), "value": z.string().describe("The value of the environment variable."), "is_preview": z.boolean().describe("The flag to indicate if the environment variable is used in preview deployments.").optional(), "is_literal": z.boolean().describe("The flag to indicate if the environment variable is a literal, nothing espaced.").optional(), "is_multiline": z.boolean().describe("The flag to indicate if the environment variable is multiline.").optional(), "is_shown_once": z.boolean().describe("The flag to indicate if the environment variable's value is shown on the UI.").optional() }) }), responseSchema: z.object({ "id": z.number().int().optional(), "uuid": z.string().optional(), "resourceable_type": z.string().optional(), "resourceable_id": z.number().int().optional(), "is_literal": z.boolean().optional(), "is_multiline": z.boolean().optional(), "is_preview": z.boolean().optional(), "is_runtime": z.boolean().optional(), "is_buildtime": z.boolean().optional(), "is_shared": z.boolean().optional(), "is_shown_once": z.boolean().optional(), "key": z.string().optional(), "value": z.string().optional(), "real_value": z.string().optional(), "comment": z.union([z.string(), z.null()]).optional(), "version": z.string().optional(), "created_at": z.string().optional(), "updated_at": z.string().optional() }).describe("Environment Variable model"), responseKind: "json", parameters: [{ location: "path", name: "uuid" }], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
@@ -22,8 +45,8 @@ export const operations = [
22
45
  { name: "coolify_move_application_by_uuid", method: "POST", path: "/applications/{uuid}/move", description: "Move", inputSchema: z.object({ "uuid": z.string(), body: z.object({ "environment_uuid": z.string().describe("UUID of the target environment.") }) }), responseSchema: z.object({ "message": z.string().optional(), "uuid": z.string().optional(), "project_uuid": z.string().optional(), "environment_uuid": z.string().optional() }), responseKind: "json", parameters: [{ location: "path", name: "uuid" }], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
23
46
  { name: "coolify_migrate_application_by_uuid", method: "POST", path: "/applications/{uuid}/migrate", description: "Migrate to Server", inputSchema: z.object({ "uuid": z.string(), body: z.object({ "destination_uuid": z.string().describe("UUID of the target destination."), "migrate_volumes": z.boolean().describe("Whether to transfer persistent volume data when migrating across servers.").default(true) }) }), responseSchema: z.null(), responseKind: "empty", parameters: [{ location: "path", name: "uuid" }], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
24
47
  { name: "coolify_list_storages_by_application_uuid", method: "GET", path: "/applications/{uuid}/storages", description: "List Storages", inputSchema: z.object({ "uuid": z.string() }), responseSchema: z.object({ "persistent_storages": z.array(z.record(z.string(), z.any())).optional(), "file_storages": z.array(z.record(z.string(), z.any())).optional() }), responseKind: "json", parameters: [{ location: "path", name: "uuid" }], annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false } },
25
- { name: "coolify_create_storage_by_application_uuid", method: "POST", path: "/applications/{uuid}/storages", description: "Create Storage", inputSchema: z.object({ "uuid": z.string(), body: z.object({ "type": z.enum(["persistent", "file"]).describe("The type of storage."), "name": z.string().describe("Volume name (persistent only, required for persistent).").optional(), "mount_path": z.string().describe("The container mount path."), "host_path": z.union([z.string().describe("The host path (persistent only, optional)."), z.null()]).optional(), "content": z.union([z.string().describe("File content (file only, optional)."), z.null()]).optional(), "is_directory": z.boolean().describe("Whether this is a directory mount (file only, default false).").optional(), "fs_path": z.string().describe("Host directory path (required when is_directory is true).").optional() }).strict() }), responseSchema: z.record(z.string(), z.any()), responseKind: "json", parameters: [{ location: "path", name: "uuid" }], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
26
- { name: "coolify_update_storage_by_application_uuid", method: "PATCH", path: "/applications/{uuid}/storages", description: "Update Storage", inputSchema: z.object({ "uuid": z.string(), body: z.object({ "uuid": z.string().describe("The UUID of the storage (preferred).").optional(), "id": z.number().int().describe("The ID of the storage (deprecated, use uuid instead).").optional(), "type": z.enum(["persistent", "file"]).describe("The type of storage: persistent or file."), "is_preview_suffix_enabled": z.boolean().describe("Whether to add -pr-N suffix for preview deployments.").optional(), "name": z.string().describe("The volume name (persistent only, not allowed for read-only storages).").optional(), "mount_path": z.string().describe("The container mount path (not allowed for read-only storages).").optional(), "host_path": z.union([z.string().describe("The host path (persistent only, not allowed for read-only storages)."), z.null()]).optional(), "content": z.union([z.string().describe("The file content (file only, not allowed for read-only storages)."), z.null()]).optional() }).strict() }), responseSchema: z.record(z.string(), z.any()), responseKind: "json", parameters: [{ location: "path", name: "uuid" }], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
48
+ { name: "coolify_create_storage_by_application_uuid", method: "POST", path: "/applications/{uuid}/storages", description: "Create Storage", inputSchema: z.object({ "uuid": z.string(), body: z.object({ "type": z.enum(["persistent", "file"]).describe("The type of storage."), "name": z.string().describe("Volume name (persistent only, required for persistent).").optional(), "mount_path": z.string().describe("The container mount path."), "content": z.union([z.string().describe("File content (file only, optional)."), z.null()]).optional(), "is_directory": z.boolean().describe("Whether this is a directory mount (file only, default false).").optional(), "fs_path": z.string().describe("Host directory path (required when is_directory is true).").optional() }).strict() }), responseSchema: z.record(z.string(), z.any()), responseKind: "json", parameters: [{ location: "path", name: "uuid" }], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
49
+ { name: "coolify_update_storage_by_application_uuid", method: "PATCH", path: "/applications/{uuid}/storages", description: "Update Storage", inputSchema: z.object({ "uuid": z.string(), body: z.object({ "uuid": z.string().describe("The UUID of the storage (preferred).").optional(), "id": z.number().int().describe("The ID of the storage (deprecated, use uuid instead).").optional(), "type": z.enum(["persistent", "file"]).describe("The type of storage: persistent or file."), "is_preview_suffix_enabled": z.boolean().describe("Whether to add -pr-N suffix for preview deployments.").optional(), "name": z.string().describe("The volume name (persistent only, not allowed for read-only storages).").optional(), "mount_path": z.string().describe("The container mount path (not allowed for read-only storages).").optional(), "content": z.union([z.string().describe("The file content (file only, not allowed for read-only storages)."), z.null()]).optional() }).strict() }), responseSchema: z.record(z.string(), z.any()), responseKind: "json", parameters: [{ location: "path", name: "uuid" }], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
27
50
  { name: "coolify_delete_storage_by_application_uuid", method: "DELETE", path: "/applications/{uuid}/storages/{storage_uuid}", description: "Delete Storage", inputSchema: z.object({ "uuid": z.string(), "storage_uuid": z.string() }), responseSchema: z.object({ "message": z.string().optional() }), responseKind: "json", parameters: [{ location: "path", name: "uuid" }, { location: "path", name: "storage_uuid" }], annotations: { readOnlyHint: false, destructiveHint: true, idempotentHint: true, openWorldHint: false } },
28
51
  { name: "coolify_delete_preview_deployment_by_pull_request_id", method: "DELETE", path: "/applications/{uuid}/previews/{pull_request_id}", description: "Delete Preview Deployment", inputSchema: z.object({ "uuid": z.string(), "pull_request_id": z.number().int() }), responseSchema: z.object({ "message": z.string().optional() }), responseKind: "json", parameters: [{ location: "path", name: "uuid" }, { location: "path", name: "pull_request_id" }], annotations: { readOnlyHint: false, destructiveHint: true, idempotentHint: true, openWorldHint: false } },
29
52
  { name: "coolify_list_tags_by_application_uuid", method: "GET", path: "/applications/{uuid}/tags", description: "List Tags", inputSchema: z.object({ "uuid": z.string() }), responseSchema: z.array(z.object({ "uuid": z.string().optional(), "name": z.string().optional(), "created_at": z.string().optional(), "updated_at": z.string().optional() }).describe("Tag model")), responseKind: "json", parameters: [{ location: "path", name: "uuid" }], annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false } },
@@ -46,12 +69,12 @@ export const operations = [
46
69
  { name: "coolify_delete_cloud_token_by_uuid", method: "DELETE", path: "/cloud-tokens/{uuid}", description: "Delete Cloud Provider Token", inputSchema: z.object({ "uuid": z.string() }), responseSchema: z.object({ "message": z.string().optional() }), responseKind: "json", parameters: [{ location: "path", name: "uuid" }], annotations: { readOnlyHint: false, destructiveHint: true, idempotentHint: true, openWorldHint: false } },
47
70
  { name: "coolify_update_cloud_token_by_uuid", method: "PATCH", path: "/cloud-tokens/{uuid}", description: "Update Cloud Provider Token", inputSchema: z.object({ "uuid": z.string(), body: z.object({ "name": z.string().describe("The friendly name for the token.").optional() }) }), responseSchema: z.object({ "uuid": z.string().optional() }), responseKind: "json", parameters: [{ location: "path", name: "uuid" }], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
48
71
  { name: "coolify_validate_cloud_token_by_uuid", method: "POST", path: "/cloud-tokens/{uuid}/validate", description: "Validate Cloud Provider Token", inputSchema: z.object({ "uuid": z.string() }), responseSchema: z.object({ "valid": z.boolean().optional(), "message": z.string().optional() }), responseKind: "json", parameters: [{ location: "path", name: "uuid" }], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
49
- { name: "coolify_list_databases", method: "GET", path: "/databases", description: "List", inputSchema: z.object({}), responseSchema: z.array(z.unknown()), responseKind: "json", parameters: [], annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false } },
72
+ { name: "coolify_list_databases", method: "GET", path: "/databases", description: "List", inputSchema: z.object({}), responseSchema: z.array(z.object({ "uuid": z.string(), "name": z.string().optional(), "database_type": z.string().optional(), "environment_id": z.number().int().optional(), "status": z.string().optional() }).catchall(z.any())), responseKind: "json", parameters: [], annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false } },
50
73
  { name: "coolify_get_database_backups_by_uuid", method: "GET", path: "/databases/{uuid}/backups", description: "Get", inputSchema: z.object({ "uuid": z.string() }), responseSchema: z.string(), responseKind: "json", parameters: [{ location: "path", name: "uuid" }], annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false } },
51
74
  { name: "coolify_create_database_backup", method: "POST", path: "/databases/{uuid}/backups", description: "Create Backup", inputSchema: z.object({ "uuid": z.string(), body: z.object({ "frequency": z.string().describe("Backup frequency (cron expression or: every_minute, hourly, daily, weekly, monthly, yearly)"), "enabled": z.boolean().describe("Whether the backup is enabled").default(true), "save_s3": z.boolean().describe("Whether to save backups to S3").default(false), "s3_storage_uuid": z.string().describe("S3 storage UUID (required if save_s3 is true)").optional(), "databases_to_backup": z.string().describe("Comma separated list of databases to backup").optional(), "dump_all": z.boolean().describe("Whether to dump all databases").default(false), "backup_now": z.boolean().describe("Whether to trigger backup immediately after creation").optional(), "database_backup_retention_amount_locally": z.number().int().describe("Number of backups to retain locally").optional(), "database_backup_retention_days_locally": z.number().int().describe("Number of days to retain backups locally").optional(), "database_backup_retention_max_storage_locally": z.number().describe("Max storage (GB) for local backups").optional(), "database_backup_retention_amount_s3": z.number().int().describe("Number of backups to retain in S3").optional(), "database_backup_retention_days_s3": z.number().int().describe("Number of days to retain backups in S3").optional(), "database_backup_retention_max_storage_s3": z.number().describe("Max storage (GB) for S3 backups").optional(), "timeout": z.number().int().describe("Backup job timeout in seconds (min: 60, max: 36000)").default(3600) }) }), responseSchema: z.object({ "uuid": z.string().uuid().optional(), "message": z.string().optional() }), responseKind: "json", parameters: [{ location: "path", name: "uuid" }], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
52
75
  { name: "coolify_get_database_by_uuid", method: "GET", path: "/databases/{uuid}", description: "Get", inputSchema: z.object({ "uuid": z.string() }), responseSchema: z.string(), responseKind: "json", parameters: [{ location: "path", name: "uuid" }], annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false } },
53
76
  { name: "coolify_delete_database_by_uuid", method: "DELETE", path: "/databases/{uuid}", description: "Delete", inputSchema: z.object({ "uuid": z.string(), "delete_configurations": z.boolean().default(true), "delete_volumes": z.boolean().default(true), "docker_cleanup": z.boolean().default(true), "delete_connected_networks": z.boolean().default(true) }), responseSchema: z.object({ "message": z.string().optional() }), responseKind: "json", parameters: [{ location: "path", name: "uuid" }, { location: "query", name: "delete_configurations" }, { location: "query", name: "delete_volumes" }, { location: "query", name: "docker_cleanup" }, { location: "query", name: "delete_connected_networks" }], annotations: { readOnlyHint: false, destructiveHint: true, idempotentHint: true, openWorldHint: false } },
54
- { name: "coolify_update_database_by_uuid", method: "PATCH", path: "/databases/{uuid}", description: "Update", inputSchema: z.object({ "uuid": z.string(), body: z.object({ "name": z.string().describe("Name of the database").optional(), "description": z.string().describe("Description of the database").optional(), "image": z.string().describe("Docker Image of the database").optional(), "is_public": z.boolean().describe("Is the database public?").optional(), "public_port": z.number().int().describe("Public port of the database").optional(), "public_port_timeout": z.number().int().describe("Public port timeout in seconds (default: 3600)").optional(), "limits_memory": z.string().describe("Memory limit of the database").optional(), "limits_memory_swap": z.string().describe("Memory swap limit of the database").optional(), "limits_memory_swappiness": z.number().int().describe("Memory swappiness of the database").optional(), "limits_memory_reservation": z.string().describe("Memory reservation of the database").optional(), "limits_cpus": z.string().describe("CPU limit of the database").optional(), "limits_cpuset": z.string().describe("CPU set of the database").optional(), "limits_cpu_shares": z.number().int().describe("CPU shares of the database").optional(), "postgres_user": z.string().describe("PostgreSQL user").optional(), "postgres_password": z.string().describe("PostgreSQL password").optional(), "postgres_db": z.string().describe("PostgreSQL database").optional(), "postgres_initdb_args": z.string().describe("PostgreSQL initdb args").optional(), "postgres_host_auth_method": z.string().describe("PostgreSQL host auth method").optional(), "postgres_conf": z.string().describe("PostgreSQL conf").optional(), "clickhouse_admin_user": z.string().describe("Clickhouse admin user").optional(), "clickhouse_admin_password": z.string().describe("Clickhouse admin password").optional(), "dragonfly_password": z.string().describe("DragonFly password").optional(), "redis_password": z.string().describe("Redis password").optional(), "redis_conf": z.string().describe("Redis conf").optional(), "keydb_password": z.string().describe("KeyDB password").optional(), "keydb_conf": z.string().describe("KeyDB conf").optional(), "mariadb_conf": z.string().describe("MariaDB conf").optional(), "mariadb_root_password": z.string().describe("MariaDB root password").optional(), "mariadb_user": z.string().describe("MariaDB user").optional(), "mariadb_password": z.string().describe("MariaDB password").optional(), "mariadb_database": z.string().describe("MariaDB database").optional(), "mongo_conf": z.string().describe("Mongo conf").optional(), "mongo_initdb_root_username": z.string().describe("Mongo initdb root username").optional(), "mongo_initdb_root_password": z.string().describe("Mongo initdb root password").optional(), "mongo_initdb_database": z.string().describe("Mongo initdb init database").optional(), "mysql_root_password": z.string().describe("MySQL root password").optional(), "mysql_password": z.string().describe("MySQL password").optional(), "mysql_user": z.string().describe("MySQL user").optional(), "mysql_database": z.string().describe("MySQL database").optional(), "mysql_conf": z.string().describe("MySQL conf").optional(), "health_check_enabled": z.boolean().describe("Enable the database healthcheck probe.").default(true), "health_check_interval": z.number().int().gte(1).describe("Healthcheck interval in seconds.").default(15), "health_check_timeout": z.number().int().gte(1).describe("Healthcheck timeout in seconds.").default(5), "health_check_retries": z.number().int().gte(1).describe("Healthcheck retries count.").default(5), "health_check_start_period": z.number().int().gte(0).describe("Healthcheck start period in seconds.").default(5) }) }), responseSchema: z.null(), responseKind: "empty", parameters: [{ location: "path", name: "uuid" }], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
77
+ { name: "coolify_update_database_by_uuid", method: "PATCH", path: "/databases/{uuid}", description: "Update", inputSchema: z.object({ "uuid": z.string(), body: z.object({ "name": z.string().describe("Name of the database").optional(), "description": z.string().describe("Description of the database").optional(), "image": z.string().describe("Docker Image of the database").optional(), "is_public": z.boolean().describe("Is the database public?").optional(), "public_port": z.number().int().describe("Public port of the database").optional(), "public_port_timeout": z.number().int().describe("Public port timeout in seconds (default: 3600)").optional(), "limits_memory": z.string().describe("Memory limit of the database").optional(), "limits_memory_swap": z.string().describe("Memory swap limit of the database").optional(), "limits_memory_swappiness": z.number().int().describe("Memory swappiness of the database").optional(), "limits_memory_reservation": z.string().describe("Memory reservation of the database").optional(), "limits_cpus": z.string().describe("CPU limit of the database").optional(), "limits_cpuset": z.string().describe("CPU set of the database").optional(), "limits_cpu_shares": z.number().int().describe("CPU shares of the database").optional(), "postgres_user": z.string().describe("PostgreSQL user").optional(), "postgres_password": z.string().describe("PostgreSQL password").optional(), "postgres_db": z.string().describe("PostgreSQL database").optional(), "postgres_initdb_args": z.string().describe("PostgreSQL initdb args").optional(), "postgres_host_auth_method": z.string().describe("PostgreSQL host auth method").optional(), "postgres_conf": z.string().describe("PostgreSQL conf").optional(), "clickhouse_admin_user": z.string().describe("Clickhouse admin user").optional(), "clickhouse_admin_password": z.string().describe("Clickhouse admin password").optional(), "dragonfly_password": z.string().describe("DragonFly password").optional(), "redis_password": z.string().describe("Redis password").optional(), "redis_conf": z.string().describe("Redis conf").optional(), "keydb_password": z.string().describe("KeyDB password").optional(), "keydb_conf": z.string().describe("KeyDB conf").optional(), "mariadb_conf": z.string().describe("MariaDB conf").optional(), "mariadb_root_password": z.string().describe("MariaDB root password").optional(), "mariadb_user": z.string().describe("MariaDB user").optional(), "mariadb_password": z.string().describe("MariaDB password").optional(), "mariadb_database": z.string().describe("MariaDB database").optional(), "mongo_conf": z.string().describe("Mongo conf").optional(), "mongo_initdb_root_username": z.string().describe("Mongo initdb root username").optional(), "mongo_initdb_root_password": z.string().describe("Mongo initdb root password").optional(), "mongo_initdb_database": z.string().describe("Mongo initdb init database").optional(), "mysql_root_password": z.string().describe("MySQL root password").optional(), "mysql_password": z.string().describe("MySQL password").optional(), "mysql_user": z.string().describe("MySQL user").optional(), "mysql_database": z.string().describe("MySQL database").optional(), "mysql_conf": z.string().describe("MySQL conf").optional(), "health_check_enabled": z.boolean().describe("Enable the database healthcheck probe.").optional(), "health_check_interval": z.number().int().gte(1).describe("Healthcheck interval in seconds.").optional(), "health_check_timeout": z.number().int().gte(1).describe("Healthcheck timeout in seconds.").optional(), "health_check_retries": z.number().int().gte(1).describe("Healthcheck retries count.").optional(), "health_check_start_period": z.number().int().gte(0).describe("Healthcheck start period in seconds.").optional(), "custom_docker_run_options": z.string().describe("Docker run options for the database container.").optional() }) }), responseSchema: z.null(), responseKind: "empty", parameters: [{ location: "path", name: "uuid" }], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
55
78
  { name: "coolify_delete_backup_configuration_by_uuid", method: "DELETE", path: "/databases/{uuid}/backups/{scheduled_backup_uuid}", description: "Delete backup configuration", inputSchema: z.object({ "uuid": z.string(), "scheduled_backup_uuid": z.string(), "delete_s3": z.boolean().default(false) }), responseSchema: z.object({ "message": z.string().optional() }), responseKind: "json", parameters: [{ location: "path", name: "uuid" }, { location: "path", name: "scheduled_backup_uuid" }, { location: "query", name: "delete_s3" }], annotations: { readOnlyHint: false, destructiveHint: true, idempotentHint: true, openWorldHint: false } },
56
79
  { name: "coolify_update_database_backup", method: "PATCH", path: "/databases/{uuid}/backups/{scheduled_backup_uuid}", description: "Update", inputSchema: z.object({ "uuid": z.string(), "scheduled_backup_uuid": z.string(), body: z.object({ "save_s3": z.boolean().describe("Whether data is saved in s3 or not").optional(), "s3_storage_uuid": z.string().describe("S3 storage UUID").optional(), "backup_now": z.boolean().describe("Whether to take a backup now or not").optional(), "enabled": z.boolean().describe("Whether the backup is enabled or not").optional(), "databases_to_backup": z.string().describe("Comma separated list of databases to backup").optional(), "dump_all": z.boolean().describe("Whether all databases are dumped or not").optional(), "frequency": z.string().describe("Frequency of the backup").optional(), "database_backup_retention_amount_locally": z.number().int().describe("Retention amount of the backup locally").optional(), "database_backup_retention_days_locally": z.number().int().describe("Retention days of the backup locally").optional(), "database_backup_retention_max_storage_locally": z.number().describe("Max storage of the backup locally").optional(), "database_backup_retention_amount_s3": z.number().int().describe("Retention amount of the backup in s3").optional(), "database_backup_retention_days_s3": z.number().int().describe("Retention days of the backup in s3").optional(), "database_backup_retention_max_storage_s3": z.number().describe("Max storage of the backup in S3").optional(), "timeout": z.number().int().describe("Backup job timeout in seconds (min: 60, max: 36000)").default(3600) }) }), responseSchema: z.null(), responseKind: "empty", parameters: [{ location: "path", name: "uuid" }, { location: "path", name: "scheduled_backup_uuid" }], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
57
80
  { name: "coolify_create_database_postgresql", method: "POST", path: "/databases/postgresql", description: "Create (PostgreSQL)", inputSchema: z.object({ body: z.object({ "server_uuid": z.string().describe("UUID of the server"), "project_uuid": z.string().describe("UUID of the project"), "environment_name": z.string().describe("Name of the environment. You need to provide at least one of environment_name or environment_uuid."), "environment_uuid": z.string().describe("UUID of the environment. You need to provide at least one of environment_name or environment_uuid."), "postgres_user": z.string().describe("PostgreSQL user").optional(), "postgres_password": z.string().describe("PostgreSQL password").optional(), "postgres_db": z.string().describe("PostgreSQL database").optional(), "postgres_initdb_args": z.string().describe("PostgreSQL initdb args").optional(), "postgres_host_auth_method": z.string().describe("PostgreSQL host auth method").optional(), "postgres_conf": z.string().describe("PostgreSQL conf").optional(), "destination_uuid": z.string().describe("UUID of the destination if the server has multiple destinations").optional(), "name": z.string().describe("Name of the database").optional(), "description": z.string().describe("Description of the database").optional(), "image": z.string().describe("Docker Image of the database").optional(), "is_public": z.boolean().describe("Is the database public?").optional(), "public_port": z.number().int().describe("Public port of the database").optional(), "public_port_timeout": z.number().int().describe("Public port timeout in seconds (default: 3600)").optional(), "limits_memory": z.string().describe("Memory limit of the database").optional(), "limits_memory_swap": z.string().describe("Memory swap limit of the database").optional(), "limits_memory_swappiness": z.number().int().describe("Memory swappiness of the database").optional(), "limits_memory_reservation": z.string().describe("Memory reservation of the database").optional(), "limits_cpus": z.string().describe("CPU limit of the database").optional(), "limits_cpuset": z.string().describe("CPU set of the database").optional(), "limits_cpu_shares": z.number().int().describe("CPU shares of the database").optional(), "instant_deploy": z.boolean().describe("Instant deploy the database").optional(), "tags": z.array(z.string()).describe("Tags to assign to the database.").optional() }) }), responseSchema: z.null(), responseKind: "empty", parameters: [], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
@@ -76,18 +99,18 @@ export const operations = [
76
99
  { name: "coolify_update_envs_by_database_uuid", method: "PATCH", path: "/databases/{uuid}/envs/bulk", description: "Update Envs (Bulk)", inputSchema: z.object({ "uuid": z.string(), body: z.object({ "data": z.array(z.object({ "key": z.string().describe("The key of the environment variable.").optional(), "value": z.string().describe("The value of the environment variable.").optional(), "is_literal": z.boolean().describe("The flag to indicate if the environment variable is a literal, nothing espaced.").optional(), "is_multiline": z.boolean().describe("The flag to indicate if the environment variable is multiline.").optional(), "is_shown_once": z.boolean().describe("The flag to indicate if the environment variable's value is shown on the UI.").optional() })) }) }), responseSchema: z.array(z.object({ "id": z.number().int().optional(), "uuid": z.string().optional(), "resourceable_type": z.string().optional(), "resourceable_id": z.number().int().optional(), "is_literal": z.boolean().optional(), "is_multiline": z.boolean().optional(), "is_preview": z.boolean().optional(), "is_runtime": z.boolean().optional(), "is_buildtime": z.boolean().optional(), "is_shared": z.boolean().optional(), "is_shown_once": z.boolean().optional(), "key": z.string().optional(), "value": z.string().optional(), "real_value": z.string().optional(), "comment": z.union([z.string(), z.null()]).optional(), "version": z.string().optional(), "created_at": z.string().optional(), "updated_at": z.string().optional() }).describe("Environment Variable model")), responseKind: "json", parameters: [{ location: "path", name: "uuid" }], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
77
100
  { name: "coolify_delete_env_by_database_uuid", method: "DELETE", path: "/databases/{uuid}/envs/{env_uuid}", description: "Delete Env", inputSchema: z.object({ "uuid": z.string(), "env_uuid": z.string() }), responseSchema: z.object({ "message": z.string().optional() }), responseKind: "json", parameters: [{ location: "path", name: "uuid" }, { location: "path", name: "env_uuid" }], annotations: { readOnlyHint: false, destructiveHint: true, idempotentHint: true, openWorldHint: false } },
78
101
  { name: "coolify_list_storages_by_database_uuid", method: "GET", path: "/databases/{uuid}/storages", description: "List Storages", inputSchema: z.object({ "uuid": z.string() }), responseSchema: z.object({ "persistent_storages": z.array(z.record(z.string(), z.any())).optional(), "file_storages": z.array(z.record(z.string(), z.any())).optional() }), responseKind: "json", parameters: [{ location: "path", name: "uuid" }], annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false } },
79
- { name: "coolify_create_storage_by_database_uuid", method: "POST", path: "/databases/{uuid}/storages", description: "Create Storage", inputSchema: z.object({ "uuid": z.string(), body: z.object({ "type": z.enum(["persistent", "file"]).describe("The type of storage."), "name": z.string().describe("Volume name (persistent only, required for persistent).").optional(), "mount_path": z.string().describe("The container mount path."), "host_path": z.union([z.string().describe("The host path (persistent only, optional)."), z.null()]).optional(), "content": z.union([z.string().describe("File content (file only, optional)."), z.null()]).optional(), "is_directory": z.boolean().describe("Whether this is a directory mount (file only, default false).").optional(), "fs_path": z.string().describe("Host directory path (required when is_directory is true).").optional() }).strict() }), responseSchema: z.record(z.string(), z.any()), responseKind: "json", parameters: [{ location: "path", name: "uuid" }], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
80
- { name: "coolify_update_storage_by_database_uuid", method: "PATCH", path: "/databases/{uuid}/storages", description: "Update Storage", inputSchema: z.object({ "uuid": z.string(), body: z.object({ "uuid": z.string().describe("The UUID of the storage (preferred).").optional(), "id": z.number().int().describe("The ID of the storage (deprecated, use uuid instead).").optional(), "type": z.enum(["persistent", "file"]).describe("The type of storage: persistent or file."), "is_preview_suffix_enabled": z.boolean().describe("Whether to add -pr-N suffix for preview deployments.").optional(), "name": z.string().describe("The volume name (persistent only, not allowed for read-only storages).").optional(), "mount_path": z.string().describe("The container mount path (not allowed for read-only storages).").optional(), "host_path": z.union([z.string().describe("The host path (persistent only, not allowed for read-only storages)."), z.null()]).optional(), "content": z.union([z.string().describe("The file content (file only, not allowed for read-only storages)."), z.null()]).optional() }).strict() }), responseSchema: z.record(z.string(), z.any()), responseKind: "json", parameters: [{ location: "path", name: "uuid" }], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
102
+ { name: "coolify_create_storage_by_database_uuid", method: "POST", path: "/databases/{uuid}/storages", description: "Create Storage", inputSchema: z.object({ "uuid": z.string(), body: z.object({ "type": z.enum(["persistent", "file"]).describe("The type of storage."), "name": z.string().describe("Volume name (persistent only, required for persistent).").optional(), "mount_path": z.string().describe("The container mount path."), "content": z.union([z.string().describe("File content (file only, optional)."), z.null()]).optional(), "is_directory": z.boolean().describe("Whether this is a directory mount (file only, default false).").optional(), "fs_path": z.string().describe("Host directory path (required when is_directory is true).").optional() }).strict() }), responseSchema: z.record(z.string(), z.any()), responseKind: "json", parameters: [{ location: "path", name: "uuid" }], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
103
+ { name: "coolify_update_storage_by_database_uuid", method: "PATCH", path: "/databases/{uuid}/storages", description: "Update Storage", inputSchema: z.object({ "uuid": z.string(), body: z.object({ "uuid": z.string().describe("The UUID of the storage (preferred).").optional(), "id": z.number().int().describe("The ID of the storage (deprecated, use uuid instead).").optional(), "type": z.enum(["persistent", "file"]).describe("The type of storage: persistent or file."), "is_preview_suffix_enabled": z.boolean().describe("Whether to add -pr-N suffix for preview deployments.").optional(), "name": z.string().describe("The volume name (persistent only, not allowed for read-only storages).").optional(), "mount_path": z.string().describe("The container mount path (not allowed for read-only storages).").optional(), "content": z.union([z.string().describe("The file content (file only, not allowed for read-only storages)."), z.null()]).optional() }).strict() }), responseSchema: z.record(z.string(), z.any()), responseKind: "json", parameters: [{ location: "path", name: "uuid" }], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
81
104
  { name: "coolify_delete_storage_by_database_uuid", method: "DELETE", path: "/databases/{uuid}/storages/{storage_uuid}", description: "Delete Storage", inputSchema: z.object({ "uuid": z.string(), "storage_uuid": z.string() }), responseSchema: z.object({ "message": z.string().optional() }), responseKind: "json", parameters: [{ location: "path", name: "uuid" }, { location: "path", name: "storage_uuid" }], annotations: { readOnlyHint: false, destructiveHint: true, idempotentHint: true, openWorldHint: false } },
82
105
  { name: "coolify_list_tags_by_database_uuid", method: "GET", path: "/databases/{uuid}/tags", description: "List Tags", inputSchema: z.object({ "uuid": z.string() }), responseSchema: z.array(z.object({ "uuid": z.string().optional(), "name": z.string().optional(), "created_at": z.string().optional(), "updated_at": z.string().optional() }).describe("Tag model")), responseKind: "json", parameters: [{ location: "path", name: "uuid" }], annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false } },
83
106
  { name: "coolify_create_tag_by_database_uuid", method: "POST", path: "/databases/{uuid}/tags", description: "Create Tag", inputSchema: z.object({ "uuid": z.string(), body: z.object({ "tag_name": z.string().describe("The tag name (min 2 characters). Required if tag_names is not provided.").optional(), "tag_names": z.array(z.string()).describe("Array of tag names (each min 2 characters). Required if tag_name is not provided.").optional() }) }), responseSchema: z.array(z.object({ "uuid": z.string().optional(), "name": z.string().optional(), "created_at": z.string().optional(), "updated_at": z.string().optional() }).describe("Tag model")), responseKind: "json", parameters: [{ location: "path", name: "uuid" }], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
84
107
  { name: "coolify_delete_tag_by_database_uuid", method: "DELETE", path: "/databases/{uuid}/tags/{tag_uuid}", description: "Delete Tag", inputSchema: z.object({ "uuid": z.string(), "tag_uuid": z.string() }), responseSchema: z.null(), responseKind: "empty", parameters: [{ location: "path", name: "uuid" }, { location: "path", name: "tag_uuid" }], annotations: { readOnlyHint: false, destructiveHint: true, idempotentHint: true, openWorldHint: false } },
85
108
  { name: "coolify_clone_database_by_uuid", method: "POST", path: "/databases/{uuid}/clone", description: "Clone", inputSchema: z.object({ "uuid": z.string(), body: z.object({ "destination_uuid": z.string(), "name": z.union([z.string(), z.null()]).optional(), "clone_volumes": z.boolean().default(false) }) }), responseSchema: z.null(), responseKind: "empty", parameters: [{ location: "path", name: "uuid" }], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
86
- { name: "coolify_list_deployments", method: "GET", path: "/deployments", description: "List", inputSchema: z.object({}), responseSchema: z.array(z.unknown()), responseKind: "json", parameters: [], annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false } },
87
- { name: "coolify_get_deployment_by_uuid", method: "GET", path: "/deployments/{uuid}", description: "Get", inputSchema: z.object({ "uuid": z.string() }), responseSchema: z.object({ "id": z.number().int().optional(), "application_id": z.string().optional(), "deployment_uuid": z.string().optional(), "pull_request_id": z.number().int().optional(), "docker_registry_image_tag": z.union([z.string(), z.null()]).optional(), "configuration_hash": z.union([z.string(), z.null()]).optional(), "configuration_snapshot": z.union([z.record(z.string(), z.any()), z.null()]).optional(), "configuration_diff": z.union([z.record(z.string(), z.any()), z.null()]).optional(), "force_rebuild": z.boolean().optional(), "commit": z.string().optional(), "status": z.string().optional(), "is_webhook": z.boolean().optional(), "is_api": z.boolean().optional(), "created_at": z.string().optional(), "updated_at": z.string().optional(), "logs": z.string().optional(), "current_process_id": z.string().optional(), "restart_only": z.boolean().optional(), "git_type": z.string().optional(), "server_id": z.number().int().optional(), "application_name": z.string().optional(), "server_name": z.string().optional(), "deployment_url": z.string().optional(), "destination_id": z.string().optional(), "only_this_server": z.boolean().optional(), "rollback": z.boolean().optional(), "commit_message": z.string().optional() }).describe("Project model"), responseKind: "json", parameters: [{ location: "path", name: "uuid" }], annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false } },
109
+ { name: "coolify_list_deployments", method: "GET", path: "/deployments", description: "List", inputSchema: z.object({}), responseSchema: z.array(z.object({ "id": z.number().int().optional(), "application_id": z.string().optional(), "deployment_uuid": z.string().optional(), "pull_request_id": z.number().int().optional(), "docker_registry_image_tag": z.union([z.string(), z.null()]).optional(), "configuration_hash": z.union([z.string(), z.null()]).optional(), "configuration_snapshot": z.union([z.record(z.string(), z.any()), z.null()]).optional(), "configuration_diff": z.union([z.record(z.string(), z.any()), z.null()]).optional(), "force_rebuild": z.boolean().optional(), "commit": z.string().optional(), "status": z.string().optional(), "is_webhook": z.boolean().optional(), "is_api": z.boolean().optional(), "created_at": z.string().optional(), "updated_at": z.string().optional(), "logs": z.string().optional(), "current_process_id": z.string().optional(), "restart_only": z.boolean().optional(), "git_type": z.union([z.string(), z.null()]).optional(), "server_id": z.number().int().optional(), "application_name": z.string().optional(), "server_name": z.string().optional(), "deployment_url": z.string().optional(), "destination_id": z.string().optional(), "only_this_server": z.boolean().optional(), "rollback": z.boolean().optional(), "commit_message": z.string().optional(), "build_server_id": z.union([z.number().int(), z.null()]).optional(), "horizon_job_id": z.union([z.string(), z.null()]).optional(), "horizon_job_worker": z.union([z.string(), z.null()]).optional(), "finished_at": z.union([z.string(), z.null()]).optional() }).describe("Project model")), responseKind: "json", parameters: [], annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false } },
110
+ { name: "coolify_get_deployment_by_uuid", method: "GET", path: "/deployments/{uuid}", description: "Get", inputSchema: z.object({ "uuid": z.string() }), responseSchema: z.object({ "id": z.number().int().optional(), "application_id": z.string().optional(), "deployment_uuid": z.string().optional(), "pull_request_id": z.number().int().optional(), "docker_registry_image_tag": z.union([z.string(), z.null()]).optional(), "configuration_hash": z.union([z.string(), z.null()]).optional(), "configuration_snapshot": z.union([z.record(z.string(), z.any()), z.null()]).optional(), "configuration_diff": z.union([z.record(z.string(), z.any()), z.null()]).optional(), "force_rebuild": z.boolean().optional(), "commit": z.string().optional(), "status": z.string().optional(), "is_webhook": z.boolean().optional(), "is_api": z.boolean().optional(), "created_at": z.string().optional(), "updated_at": z.string().optional(), "logs": z.string().optional(), "current_process_id": z.string().optional(), "restart_only": z.boolean().optional(), "git_type": z.union([z.string(), z.null()]).optional(), "server_id": z.number().int().optional(), "application_name": z.string().optional(), "server_name": z.string().optional(), "deployment_url": z.string().optional(), "destination_id": z.string().optional(), "only_this_server": z.boolean().optional(), "rollback": z.boolean().optional(), "commit_message": z.string().optional(), "build_server_id": z.union([z.number().int(), z.null()]).optional(), "horizon_job_id": z.union([z.string(), z.null()]).optional(), "horizon_job_worker": z.union([z.string(), z.null()]).optional(), "finished_at": z.union([z.string(), z.null()]).optional() }).describe("Project model"), responseKind: "json", parameters: [{ location: "path", name: "uuid" }], annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false } },
88
111
  { name: "coolify_cancel_deployment_by_uuid", method: "POST", path: "/deployments/{uuid}/cancel", description: "Cancel", inputSchema: z.object({ "uuid": z.string() }), responseSchema: z.object({ "message": z.string().optional(), "deployment_uuid": z.string().optional(), "status": z.string().optional() }), responseKind: "json", parameters: [{ location: "path", name: "uuid" }], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
89
112
  { name: "coolify_deploy_by_tag_or_uuid", method: "POST", path: "/deploy", description: "Deploy", inputSchema: z.object({ "tag": z.string().optional(), "uuid": z.string().optional(), "force": z.boolean().optional(), "pr": z.number().int().optional(), "pull_request_id": z.number().int().optional(), "docker_tag": z.string().optional() }), responseSchema: z.object({ "deployments": z.array(z.object({ "message": z.string().optional(), "resource_uuid": z.string().optional(), "deployment_uuid": z.string().optional() })).optional() }), responseKind: "json", parameters: [{ location: "query", name: "tag" }, { location: "query", name: "uuid" }, { location: "query", name: "force" }, { location: "query", name: "pr" }, { location: "query", name: "pull_request_id" }, { location: "query", name: "docker_tag" }], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
90
- { name: "coolify_list_deployments_by_app_uuid", method: "GET", path: "/deployments/applications/{uuid}", description: "List application deployments", inputSchema: z.object({ "uuid": z.string(), "skip": z.number().int().gte(0).default(0), "take": z.number().int().gte(1).default(10) }), responseSchema: z.array(z.unknown()), responseKind: "json", parameters: [{ location: "path", name: "uuid" }, { location: "query", name: "skip" }, { location: "query", name: "take" }], annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false } },
113
+ { name: "coolify_list_deployments_by_app_uuid", method: "GET", path: "/deployments/applications/{uuid}", description: "List application deployments", inputSchema: z.object({ "uuid": z.string(), "skip": z.number().int().gte(0).default(0), "take": z.number().int().gte(1).default(10) }), responseSchema: z.object({ "count": z.number().int(), "deployments": z.array(z.object({ "id": z.number().int().optional(), "application_id": z.string().optional(), "deployment_uuid": z.string().optional(), "pull_request_id": z.number().int().optional(), "docker_registry_image_tag": z.union([z.string(), z.null()]).optional(), "configuration_hash": z.union([z.string(), z.null()]).optional(), "configuration_snapshot": z.union([z.record(z.string(), z.any()), z.null()]).optional(), "configuration_diff": z.union([z.record(z.string(), z.any()), z.null()]).optional(), "force_rebuild": z.boolean().optional(), "commit": z.string().optional(), "status": z.string().optional(), "is_webhook": z.boolean().optional(), "is_api": z.boolean().optional(), "created_at": z.string().optional(), "updated_at": z.string().optional(), "logs": z.string().optional(), "current_process_id": z.string().optional(), "restart_only": z.boolean().optional(), "git_type": z.union([z.string(), z.null()]).optional(), "server_id": z.number().int().optional(), "application_name": z.string().optional(), "server_name": z.string().optional(), "deployment_url": z.string().optional(), "destination_id": z.string().optional(), "only_this_server": z.boolean().optional(), "rollback": z.boolean().optional(), "commit_message": z.string().optional(), "build_server_id": z.union([z.number().int(), z.null()]).optional(), "horizon_job_id": z.union([z.string(), z.null()]).optional(), "horizon_job_worker": z.union([z.string(), z.null()]).optional(), "finished_at": z.union([z.string(), z.null()]).optional() }).describe("Project model")) }), responseKind: "json", parameters: [{ location: "path", name: "uuid" }, { location: "query", name: "skip" }, { location: "query", name: "take" }], annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false } },
91
114
  { name: "coolify_list_destinations", method: "GET", path: "/destinations", description: "List destinations", inputSchema: z.object({}), responseSchema: z.array(z.object({ "uuid": z.string().optional(), "name": z.string().optional(), "network": z.string().optional(), "type": z.enum(["standalone", "swarm"]).optional(), "server_uuid": z.string().optional(), "created_at": z.string().datetime({ offset: true }).optional(), "updated_at": z.string().datetime({ offset: true }).optional() }).describe("A Docker network destination attached to a server.")), responseKind: "json", parameters: [], annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false } },
92
115
  { name: "coolify_list_server_destinations", method: "GET", path: "/servers/{server_uuid}/destinations", description: "List destinations by server", inputSchema: z.object({ "server_uuid": z.string() }), responseSchema: z.array(z.object({ "uuid": z.string().optional(), "name": z.string().optional(), "network": z.string().optional(), "type": z.enum(["standalone", "swarm"]).optional(), "server_uuid": z.string().optional(), "created_at": z.string().datetime({ offset: true }).optional(), "updated_at": z.string().datetime({ offset: true }).optional() }).describe("A Docker network destination attached to a server.")), responseKind: "json", parameters: [{ location: "path", name: "server_uuid" }], annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false } },
93
116
  { name: "coolify_create_server_destination", method: "POST", path: "/servers/{server_uuid}/destinations", description: "Create destination", inputSchema: z.object({ "server_uuid": z.string(), body: z.object({ "name": z.string().max(255).optional(), "network": z.string().regex(new RegExp("^[a-zA-Z0-9][a-zA-Z0-9._-]*$")).max(255), "type": z.enum(["standalone", "swarm"]).optional() }) }), responseSchema: z.object({ "uuid": z.string().optional(), "name": z.string().optional(), "network": z.string().optional(), "type": z.enum(["standalone", "swarm"]).optional(), "server_uuid": z.string().optional(), "created_at": z.string().datetime({ offset: true }).optional(), "updated_at": z.string().datetime({ offset: true }).optional() }).describe("A Docker network destination attached to a server."), responseKind: "json", parameters: [{ location: "path", name: "server_uuid" }], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
@@ -139,12 +162,12 @@ export const operations = [
139
162
  { name: "coolify_get_project_by_uuid", method: "GET", path: "/projects/{uuid}", description: "Get", inputSchema: z.object({ "uuid": z.string() }), responseSchema: z.object({ "id": z.number().int().optional(), "uuid": z.string().optional(), "name": z.string().optional(), "description": z.string().optional() }).describe("Project model"), responseKind: "json", parameters: [{ location: "path", name: "uuid" }], annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false } },
140
163
  { name: "coolify_delete_project_by_uuid", method: "DELETE", path: "/projects/{uuid}", description: "Delete", inputSchema: z.object({ "uuid": z.string() }), responseSchema: z.object({ "message": z.string().optional() }), responseKind: "json", parameters: [{ location: "path", name: "uuid" }], annotations: { readOnlyHint: false, destructiveHint: true, idempotentHint: true, openWorldHint: false } },
141
164
  { name: "coolify_update_project_by_uuid", method: "PATCH", path: "/projects/{uuid}", description: "Update", inputSchema: z.object({ "uuid": z.string(), body: z.object({ "name": z.string().describe("The name of the project.").optional(), "description": z.string().describe("The description of the project.").optional() }) }), responseSchema: z.object({ "uuid": z.string().optional(), "name": z.string().optional(), "description": z.string().optional() }), responseKind: "json", parameters: [{ location: "path", name: "uuid" }], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
142
- { name: "coolify_get_environment_by_name_or_uuid", method: "GET", path: "/projects/{uuid}/{environment_name_or_uuid}", description: "Environment", inputSchema: z.object({ "uuid": z.string(), "environment_name_or_uuid": z.string() }), responseSchema: z.object({ "id": z.number().int().optional(), "name": z.string().optional(), "project_id": z.number().int().optional(), "created_at": z.string().optional(), "updated_at": z.string().optional(), "description": z.string().optional() }).describe("Environment model"), responseKind: "json", parameters: [{ location: "path", name: "uuid" }, { location: "path", name: "environment_name_or_uuid" }], annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false } },
143
- { name: "coolify_get_environments", method: "GET", path: "/projects/{uuid}/environments", description: "List Environments", inputSchema: z.object({ "uuid": z.string() }), responseSchema: z.array(z.object({ "id": z.number().int().optional(), "name": z.string().optional(), "project_id": z.number().int().optional(), "created_at": z.string().optional(), "updated_at": z.string().optional(), "description": z.string().optional() }).describe("Environment model")), responseKind: "json", parameters: [{ location: "path", name: "uuid" }], annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false } },
165
+ { name: "coolify_get_environment_by_name_or_uuid", method: "GET", path: "/projects/{uuid}/{environment_name_or_uuid}", description: "Environment", inputSchema: z.object({ "uuid": z.string(), "environment_name_or_uuid": z.string() }), responseSchema: z.object({ "id": z.number().int().optional(), "name": z.string().optional(), "project_id": z.number().int().optional(), "created_at": z.string().optional(), "updated_at": z.string().optional(), "description": z.union([z.string(), z.null()]).optional() }).describe("Environment model"), responseKind: "json", parameters: [{ location: "path", name: "uuid" }, { location: "path", name: "environment_name_or_uuid" }], annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false } },
166
+ { name: "coolify_get_environments", method: "GET", path: "/projects/{uuid}/environments", description: "List Environments", inputSchema: z.object({ "uuid": z.string() }), responseSchema: z.array(z.object({ "id": z.number().int().optional(), "name": z.string().optional(), "project_id": z.number().int().optional(), "created_at": z.string().optional(), "updated_at": z.string().optional(), "description": z.union([z.string(), z.null()]).optional() }).describe("Environment model")), responseKind: "json", parameters: [{ location: "path", name: "uuid" }], annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false } },
144
167
  { name: "coolify_create_environment", method: "POST", path: "/projects/{uuid}/environments", description: "Create Environment", inputSchema: z.object({ "uuid": z.string(), body: z.object({ "name": z.string().describe("The name of the environment.").optional() }) }), responseSchema: z.object({ "uuid": z.string().describe("The UUID of the environment.").optional() }), responseKind: "json", parameters: [{ location: "path", name: "uuid" }], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
145
168
  { name: "coolify_delete_environment", method: "DELETE", path: "/projects/{uuid}/environments/{environment_name_or_uuid}", description: "Delete Environment", inputSchema: z.object({ "uuid": z.string(), "environment_name_or_uuid": z.string() }), responseSchema: z.object({ "message": z.string().optional() }), responseKind: "json", parameters: [{ location: "path", name: "uuid" }, { location: "path", name: "environment_name_or_uuid" }], annotations: { readOnlyHint: false, destructiveHint: true, idempotentHint: true, openWorldHint: false } },
146
169
  { name: "coolify_update_environment", method: "PATCH", path: "/projects/{uuid}/environments/{environment_name_or_uuid}", description: "Update Environment", inputSchema: z.object({ "uuid": z.string(), "environment_name_or_uuid": z.string(), body: z.object({ "name": z.string().describe("The name of the environment.").optional(), "description": z.string().describe("The description of the environment.").optional() }) }), responseSchema: z.object({ "uuid": z.string().optional(), "name": z.string().optional(), "description": z.string().optional() }), responseKind: "json", parameters: [{ location: "path", name: "uuid" }, { location: "path", name: "environment_name_or_uuid" }], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
147
- { name: "coolify_list_resources", method: "GET", path: "/resources", description: "List", inputSchema: z.object({}), responseSchema: z.array(z.unknown()), responseKind: "json", parameters: [], annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false } },
170
+ { name: "coolify_list_resources", method: "GET", path: "/resources", description: "List", inputSchema: z.object({}), responseSchema: z.array(z.object({ "uuid": z.string(), "name": z.string().optional(), "type": z.string().optional(), "status": z.string().optional() }).catchall(z.any())), responseKind: "json", parameters: [], annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false } },
148
171
  { name: "coolify_list_s3_storages", method: "GET", path: "/s3-storages", description: "List S3 Storages", inputSchema: z.object({}), responseSchema: z.array(z.object({ "uuid": z.string().optional(), "name": z.string().optional(), "description": z.union([z.string(), z.null()]).optional(), "endpoint": z.string().optional(), "bucket": z.string().optional(), "region": z.string().optional(), "is_usable": z.boolean().optional(), "team_id": z.number().int().optional(), "created_at": z.string().optional(), "updated_at": z.string().optional() })), responseKind: "json", parameters: [], annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false } },
149
172
  { name: "coolify_create_s3_storage", method: "POST", path: "/s3-storages", description: "Create S3 Storage", inputSchema: z.object({ body: z.object({ "name": z.string().describe("A friendly name for the storage."), "description": z.union([z.string().describe("Optional description."), z.null()]).optional(), "endpoint": z.string().describe("S3-compatible endpoint URL."), "bucket": z.string().describe("S3 bucket name."), "region": z.string().describe("S3 region."), "key": z.string().describe("Access key."), "secret": z.string().describe("Secret key."), "is_usable": z.boolean().describe("Whether the storage is marked usable.").optional() }) }), responseSchema: z.object({ "uuid": z.string().describe("The UUID of the S3 storage.").optional() }), responseKind: "json", parameters: [], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
150
173
  { name: "coolify_get_s3_storage_by_uuid", method: "GET", path: "/s3-storages/{uuid}", description: "Get S3 Storage", inputSchema: z.object({ "uuid": z.string() }), responseSchema: z.object({ "uuid": z.string().optional(), "name": z.string().optional(), "description": z.union([z.string(), z.null()]).optional(), "endpoint": z.string().optional(), "bucket": z.string().optional(), "region": z.string().optional(), "is_usable": z.boolean().optional(), "team_id": z.number().int().optional(), "created_at": z.string().optional(), "updated_at": z.string().optional() }), responseKind: "json", parameters: [{ location: "path", name: "uuid" }], annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false } },
@@ -190,14 +213,13 @@ export const operations = [
190
213
  { name: "coolify_claim_server", method: "POST", path: "/servers/{uuid}/claim", description: "Claim imported server", inputSchema: z.object({ "uuid": z.string(), body: z.object({ "write_remote": z.boolean().default(true), "rebind_sentinel": z.boolean().default(true) }).optional() }), responseSchema: z.null(), responseKind: "empty", parameters: [{ location: "path", name: "uuid" }], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
191
214
  { name: "coolify_complete_server_transfer", method: "POST", path: "/servers/{uuid}/transfer/complete", description: "Mark server transferred", inputSchema: z.object({ "uuid": z.string(), body: z.object({ "export_id": z.union([z.string(), z.null()]).optional(), "target_instance_url": z.union([z.string(), z.null()]).optional() }).optional() }), responseSchema: z.null(), responseKind: "empty", parameters: [{ location: "path", name: "uuid" }], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
192
215
  { name: "coolify_export_server_transfer_mailbox", method: "POST", path: "/servers/{uuid}/export/mailbox", description: "Write transfer bundle to server mailbox", inputSchema: z.object({ "uuid": z.string(), body: z.object({ "passphrase": z.union([z.string(), z.null()]).optional() }).optional() }), responseSchema: z.null(), responseKind: "empty", parameters: [{ location: "path", name: "uuid" }], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
193
- { name: "coolify_list_servers", method: "GET", path: "/servers", description: "List", inputSchema: z.object({}), responseSchema: z.array(z.object({ "id": z.number().int().describe("The server ID.").optional(), "uuid": z.string().describe("The server UUID.").optional(), "name": z.string().describe("The server name.").optional(), "description": z.string().describe("The server description.").optional(), "ip": z.string().describe("The IP address.").optional(), "user": z.string().describe("The user.").optional(), "port": z.number().int().describe("The port number.").optional(), "proxy": z.record(z.string(), z.any()).describe("The proxy configuration.").optional(), "proxy_type": z.enum(["traefik", "caddy", "none"]).describe("The proxy type.").optional(), "high_disk_usage_notification_sent": z.boolean().describe("The flag to indicate if the high disk usage notification has been sent.").optional(), "unreachable_notification_sent": z.boolean().describe("The flag to indicate if the unreachable notification has been sent.").optional(), "unreachable_count": z.number().int().describe("The unreachable count for your server.").optional(), "validation_logs": z.string().describe("The validation logs.").optional(), "log_drain_notification_sent": z.boolean().describe("The flag to indicate if the log drain notification has been sent.").optional(), "swarm_cluster": z.string().describe("The swarm cluster configuration.").optional(), "settings": z.object({ "id": z.number().int().optional(), "concurrent_builds": z.number().int().optional(), "deployment_queue_limit": z.number().int().optional(), "dynamic_timeout": z.number().int().optional(), "force_disabled": z.boolean().optional(), "force_server_cleanup": z.boolean().optional(), "is_build_server": z.boolean().optional(), "is_cloudflare_tunnel": z.boolean().optional(), "is_jump_server": z.boolean().optional(), "is_logdrain_axiom_enabled": z.boolean().optional(), "is_logdrain_custom_enabled": z.boolean().optional(), "is_logdrain_highlight_enabled": z.boolean().optional(), "is_logdrain_newrelic_enabled": z.boolean().optional(), "is_metrics_enabled": z.boolean().optional(), "is_reachable": z.boolean().optional(), "is_sentinel_enabled": z.boolean().optional(), "is_swarm_manager": z.boolean().optional(), "is_swarm_worker": z.boolean().optional(), "is_terminal_enabled": z.boolean().optional(), "is_usable": z.boolean().optional(), "logdrain_axiom_api_key": z.string().optional(), "logdrain_axiom_dataset_name": z.string().optional(), "logdrain_custom_config": z.string().optional(), "logdrain_custom_config_parser": z.string().optional(), "logdrain_highlight_project_id": z.string().optional(), "logdrain_newrelic_base_uri": z.string().optional(), "logdrain_newrelic_license_key": z.string().optional(), "sentinel_metrics_history_days": z.number().int().optional(), "sentinel_metrics_refresh_rate_seconds": z.number().int().optional(), "sentinel_token": z.string().optional(), "docker_cleanup_frequency": z.string().optional(), "docker_cleanup_threshold": z.number().int().optional(), "server_id": z.number().int().optional(), "wildcard_domain": z.string().optional(), "created_at": z.string().optional(), "updated_at": z.string().optional(), "delete_unused_volumes": z.boolean().describe("The flag to indicate if the unused volumes should be deleted.").optional(), "delete_unused_networks": z.boolean().describe("The flag to indicate if the unused networks should be deleted.").optional(), "connection_timeout": z.number().int().describe("SSH connection timeout in seconds.").optional() }).describe("Server Settings model").optional() }).describe("Server model")), responseKind: "json", parameters: [], annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false } },
216
+ { name: "coolify_list_servers", method: "GET", path: "/servers", description: "List", inputSchema: z.object({}), responseSchema: z.array(z.object({ "id": z.number().int().describe("The server ID.").optional(), "uuid": z.string().describe("The server UUID.").optional(), "name": z.string().describe("The server name.").optional(), "description": z.string().describe("The server description.").optional(), "ip": z.string().describe("The IP address.").optional(), "user": z.string().describe("The user.").optional(), "port": z.number().int().describe("The port number.").optional(), "proxy": z.record(z.string(), z.any()).describe("The proxy configuration.").optional(), "proxy_type": z.enum(["traefik", "caddy", "none"]).describe("The proxy type.").optional(), "high_disk_usage_notification_sent": z.boolean().describe("The flag to indicate if the high disk usage notification has been sent.").optional(), "unreachable_notification_sent": z.boolean().describe("The flag to indicate if the unreachable notification has been sent.").optional(), "unreachable_count": z.number().int().describe("The unreachable count for your server.").optional(), "validation_logs": z.union([z.string().describe("The validation logs."), z.null()]).optional(), "log_drain_notification_sent": z.boolean().describe("The flag to indicate if the log drain notification has been sent.").optional(), "swarm_cluster": z.union([z.string().describe("The swarm cluster configuration."), z.null()]).optional(), "settings": z.object({ "id": z.number().int().optional(), "concurrent_builds": z.number().int().optional(), "deployment_queue_limit": z.number().int().optional(), "dynamic_timeout": z.number().int().optional(), "force_disabled": z.boolean().optional(), "force_server_cleanup": z.boolean().optional(), "is_build_server": z.boolean().optional(), "is_cloudflare_tunnel": z.boolean().optional(), "is_jump_server": z.boolean().optional(), "is_logdrain_axiom_enabled": z.boolean().optional(), "is_logdrain_custom_enabled": z.boolean().optional(), "is_logdrain_highlight_enabled": z.boolean().optional(), "is_logdrain_newrelic_enabled": z.boolean().optional(), "is_metrics_enabled": z.boolean().optional(), "is_reachable": z.boolean().optional(), "is_sentinel_enabled": z.boolean().optional(), "is_swarm_manager": z.boolean().optional(), "is_swarm_worker": z.boolean().optional(), "is_terminal_enabled": z.boolean().optional(), "is_usable": z.boolean().optional(), "logdrain_axiom_api_key": z.union([z.string(), z.null()]).optional(), "logdrain_axiom_dataset_name": z.union([z.string(), z.null()]).optional(), "logdrain_custom_config": z.union([z.string(), z.null()]).optional(), "logdrain_custom_config_parser": z.union([z.string(), z.null()]).optional(), "logdrain_highlight_project_id": z.union([z.string(), z.null()]).optional(), "logdrain_newrelic_base_uri": z.union([z.string(), z.null()]).optional(), "logdrain_newrelic_license_key": z.union([z.string(), z.null()]).optional(), "sentinel_metrics_history_days": z.number().int().optional(), "sentinel_metrics_refresh_rate_seconds": z.number().int().optional(), "sentinel_token": z.string().optional(), "docker_cleanup_frequency": z.string().optional(), "docker_cleanup_threshold": z.number().int().optional(), "server_id": z.number().int().optional(), "wildcard_domain": z.union([z.string(), z.null()]).optional(), "created_at": z.string().optional(), "updated_at": z.string().optional(), "delete_unused_volumes": z.boolean().describe("The flag to indicate if the unused volumes should be deleted.").optional(), "delete_unused_networks": z.boolean().describe("The flag to indicate if the unused networks should be deleted.").optional(), "connection_timeout": z.number().int().describe("SSH connection timeout in seconds.").optional() }).describe("Server Settings model").optional(), "is_reachable": z.boolean().optional(), "is_usable": z.boolean().optional() }).describe("Server model")), responseKind: "json", parameters: [], annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false } },
194
217
  { name: "coolify_create_server", method: "POST", path: "/servers", description: "Create", inputSchema: z.object({ body: z.object({ "name": z.string().describe("The name of the server.").optional(), "description": z.string().describe("The description of the server.").optional(), "ip": z.string().describe("The IP of the server.").optional(), "port": z.number().int().describe("The port of the server.").optional(), "user": z.string().describe("The user of the server.").optional(), "private_key_uuid": z.string().describe("The UUID of the private key.").optional(), "is_build_server": z.boolean().describe("Is build server.").optional(), "instant_validate": z.boolean().describe("Instant validate.").optional(), "proxy_type": z.enum(["traefik", "caddy", "none"]).describe("The proxy type.").optional() }) }), responseSchema: z.object({ "uuid": z.string().describe("The UUID of the server.").optional() }), responseKind: "json", parameters: [], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
195
- { name: "coolify_get_server_by_uuid", method: "GET", path: "/servers/{uuid}", description: "Get", inputSchema: z.object({ "uuid": z.string() }), responseSchema: z.object({ "id": z.number().int().describe("The server ID.").optional(), "uuid": z.string().describe("The server UUID.").optional(), "name": z.string().describe("The server name.").optional(), "description": z.string().describe("The server description.").optional(), "ip": z.string().describe("The IP address.").optional(), "user": z.string().describe("The user.").optional(), "port": z.number().int().describe("The port number.").optional(), "proxy": z.record(z.string(), z.any()).describe("The proxy configuration.").optional(), "proxy_type": z.enum(["traefik", "caddy", "none"]).describe("The proxy type.").optional(), "high_disk_usage_notification_sent": z.boolean().describe("The flag to indicate if the high disk usage notification has been sent.").optional(), "unreachable_notification_sent": z.boolean().describe("The flag to indicate if the unreachable notification has been sent.").optional(), "unreachable_count": z.number().int().describe("The unreachable count for your server.").optional(), "validation_logs": z.string().describe("The validation logs.").optional(), "log_drain_notification_sent": z.boolean().describe("The flag to indicate if the log drain notification has been sent.").optional(), "swarm_cluster": z.string().describe("The swarm cluster configuration.").optional(), "settings": z.object({ "id": z.number().int().optional(), "concurrent_builds": z.number().int().optional(), "deployment_queue_limit": z.number().int().optional(), "dynamic_timeout": z.number().int().optional(), "force_disabled": z.boolean().optional(), "force_server_cleanup": z.boolean().optional(), "is_build_server": z.boolean().optional(), "is_cloudflare_tunnel": z.boolean().optional(), "is_jump_server": z.boolean().optional(), "is_logdrain_axiom_enabled": z.boolean().optional(), "is_logdrain_custom_enabled": z.boolean().optional(), "is_logdrain_highlight_enabled": z.boolean().optional(), "is_logdrain_newrelic_enabled": z.boolean().optional(), "is_metrics_enabled": z.boolean().optional(), "is_reachable": z.boolean().optional(), "is_sentinel_enabled": z.boolean().optional(), "is_swarm_manager": z.boolean().optional(), "is_swarm_worker": z.boolean().optional(), "is_terminal_enabled": z.boolean().optional(), "is_usable": z.boolean().optional(), "logdrain_axiom_api_key": z.string().optional(), "logdrain_axiom_dataset_name": z.string().optional(), "logdrain_custom_config": z.string().optional(), "logdrain_custom_config_parser": z.string().optional(), "logdrain_highlight_project_id": z.string().optional(), "logdrain_newrelic_base_uri": z.string().optional(), "logdrain_newrelic_license_key": z.string().optional(), "sentinel_metrics_history_days": z.number().int().optional(), "sentinel_metrics_refresh_rate_seconds": z.number().int().optional(), "sentinel_token": z.string().optional(), "docker_cleanup_frequency": z.string().optional(), "docker_cleanup_threshold": z.number().int().optional(), "server_id": z.number().int().optional(), "wildcard_domain": z.string().optional(), "created_at": z.string().optional(), "updated_at": z.string().optional(), "delete_unused_volumes": z.boolean().describe("The flag to indicate if the unused volumes should be deleted.").optional(), "delete_unused_networks": z.boolean().describe("The flag to indicate if the unused networks should be deleted.").optional(), "connection_timeout": z.number().int().describe("SSH connection timeout in seconds.").optional() }).describe("Server Settings model").optional() }).describe("Server model"), responseKind: "json", parameters: [{ location: "path", name: "uuid" }], annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false } },
218
+ { name: "coolify_get_server_by_uuid", method: "GET", path: "/servers/{uuid}", description: "Get", inputSchema: z.object({ "uuid": z.string() }), responseSchema: z.object({ "id": z.number().int().describe("The server ID.").optional(), "uuid": z.string().describe("The server UUID.").optional(), "name": z.string().describe("The server name.").optional(), "description": z.string().describe("The server description.").optional(), "ip": z.string().describe("The IP address.").optional(), "user": z.string().describe("The user.").optional(), "port": z.number().int().describe("The port number.").optional(), "proxy": z.record(z.string(), z.any()).describe("The proxy configuration.").optional(), "proxy_type": z.enum(["traefik", "caddy", "none"]).describe("The proxy type.").optional(), "high_disk_usage_notification_sent": z.boolean().describe("The flag to indicate if the high disk usage notification has been sent.").optional(), "unreachable_notification_sent": z.boolean().describe("The flag to indicate if the unreachable notification has been sent.").optional(), "unreachable_count": z.number().int().describe("The unreachable count for your server.").optional(), "validation_logs": z.union([z.string().describe("The validation logs."), z.null()]).optional(), "log_drain_notification_sent": z.boolean().describe("The flag to indicate if the log drain notification has been sent.").optional(), "swarm_cluster": z.union([z.string().describe("The swarm cluster configuration."), z.null()]).optional(), "settings": z.object({ "id": z.number().int().optional(), "concurrent_builds": z.number().int().optional(), "deployment_queue_limit": z.number().int().optional(), "dynamic_timeout": z.number().int().optional(), "force_disabled": z.boolean().optional(), "force_server_cleanup": z.boolean().optional(), "is_build_server": z.boolean().optional(), "is_cloudflare_tunnel": z.boolean().optional(), "is_jump_server": z.boolean().optional(), "is_logdrain_axiom_enabled": z.boolean().optional(), "is_logdrain_custom_enabled": z.boolean().optional(), "is_logdrain_highlight_enabled": z.boolean().optional(), "is_logdrain_newrelic_enabled": z.boolean().optional(), "is_metrics_enabled": z.boolean().optional(), "is_reachable": z.boolean().optional(), "is_sentinel_enabled": z.boolean().optional(), "is_swarm_manager": z.boolean().optional(), "is_swarm_worker": z.boolean().optional(), "is_terminal_enabled": z.boolean().optional(), "is_usable": z.boolean().optional(), "logdrain_axiom_api_key": z.union([z.string(), z.null()]).optional(), "logdrain_axiom_dataset_name": z.union([z.string(), z.null()]).optional(), "logdrain_custom_config": z.union([z.string(), z.null()]).optional(), "logdrain_custom_config_parser": z.union([z.string(), z.null()]).optional(), "logdrain_highlight_project_id": z.union([z.string(), z.null()]).optional(), "logdrain_newrelic_base_uri": z.union([z.string(), z.null()]).optional(), "logdrain_newrelic_license_key": z.union([z.string(), z.null()]).optional(), "sentinel_metrics_history_days": z.number().int().optional(), "sentinel_metrics_refresh_rate_seconds": z.number().int().optional(), "sentinel_token": z.string().optional(), "docker_cleanup_frequency": z.string().optional(), "docker_cleanup_threshold": z.number().int().optional(), "server_id": z.number().int().optional(), "wildcard_domain": z.union([z.string(), z.null()]).optional(), "created_at": z.string().optional(), "updated_at": z.string().optional(), "delete_unused_volumes": z.boolean().describe("The flag to indicate if the unused volumes should be deleted.").optional(), "delete_unused_networks": z.boolean().describe("The flag to indicate if the unused networks should be deleted.").optional(), "connection_timeout": z.number().int().describe("SSH connection timeout in seconds.").optional() }).describe("Server Settings model").optional(), "is_reachable": z.boolean().optional(), "is_usable": z.boolean().optional() }).describe("Server model"), responseKind: "json", parameters: [{ location: "path", name: "uuid" }], annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false } },
196
219
  { name: "coolify_delete_server_by_uuid", method: "DELETE", path: "/servers/{uuid}", description: "Delete", inputSchema: z.object({ "uuid": z.string() }), responseSchema: z.object({ "message": z.string().optional() }), responseKind: "json", parameters: [{ location: "path", name: "uuid" }], annotations: { readOnlyHint: false, destructiveHint: true, idempotentHint: true, openWorldHint: false } },
197
- { name: "coolify_update_server_by_uuid", method: "PATCH", path: "/servers/{uuid}", description: "Update", inputSchema: z.object({ "uuid": z.string(), body: z.object({ "name": z.string().describe("The name of the server.").optional(), "description": z.string().describe("The description of the server.").optional(), "ip": z.string().describe("The IP of the server.").optional(), "port": z.number().int().describe("The port of the server.").optional(), "user": z.string().describe("The user of the server.").optional(), "private_key_uuid": z.string().describe("The UUID of the private key.").optional(), "is_build_server": z.boolean().describe("Is build server.").optional(), "instant_validate": z.boolean().describe("Instant validate.").optional(), "proxy_type": z.enum(["traefik", "caddy", "none"]).describe("The proxy type.").optional(), "concurrent_builds": z.number().int().describe("Number of concurrent builds.").optional(), "dynamic_timeout": z.number().int().describe("Deployment timeout in seconds.").optional(), "deployment_queue_limit": z.number().int().describe("Maximum number of queued deployments.").optional(), "server_disk_usage_notification_threshold": z.number().int().describe("Server disk usage notification threshold (%).").optional(), "server_disk_usage_check_frequency": z.string().describe("Cron expression for disk usage check frequency.").optional(), "connection_timeout": z.number().int().describe("SSH connection timeout in seconds (1-300). Default: 10.").optional() }) }), responseSchema: z.object({ "id": z.number().int().describe("The server ID.").optional(), "uuid": z.string().describe("The server UUID.").optional(), "name": z.string().describe("The server name.").optional(), "description": z.string().describe("The server description.").optional(), "ip": z.string().describe("The IP address.").optional(), "user": z.string().describe("The user.").optional(), "port": z.number().int().describe("The port number.").optional(), "proxy": z.record(z.string(), z.any()).describe("The proxy configuration.").optional(), "proxy_type": z.enum(["traefik", "caddy", "none"]).describe("The proxy type.").optional(), "high_disk_usage_notification_sent": z.boolean().describe("The flag to indicate if the high disk usage notification has been sent.").optional(), "unreachable_notification_sent": z.boolean().describe("The flag to indicate if the unreachable notification has been sent.").optional(), "unreachable_count": z.number().int().describe("The unreachable count for your server.").optional(), "validation_logs": z.string().describe("The validation logs.").optional(), "log_drain_notification_sent": z.boolean().describe("The flag to indicate if the log drain notification has been sent.").optional(), "swarm_cluster": z.string().describe("The swarm cluster configuration.").optional(), "settings": z.object({ "id": z.number().int().optional(), "concurrent_builds": z.number().int().optional(), "deployment_queue_limit": z.number().int().optional(), "dynamic_timeout": z.number().int().optional(), "force_disabled": z.boolean().optional(), "force_server_cleanup": z.boolean().optional(), "is_build_server": z.boolean().optional(), "is_cloudflare_tunnel": z.boolean().optional(), "is_jump_server": z.boolean().optional(), "is_logdrain_axiom_enabled": z.boolean().optional(), "is_logdrain_custom_enabled": z.boolean().optional(), "is_logdrain_highlight_enabled": z.boolean().optional(), "is_logdrain_newrelic_enabled": z.boolean().optional(), "is_metrics_enabled": z.boolean().optional(), "is_reachable": z.boolean().optional(), "is_sentinel_enabled": z.boolean().optional(), "is_swarm_manager": z.boolean().optional(), "is_swarm_worker": z.boolean().optional(), "is_terminal_enabled": z.boolean().optional(), "is_usable": z.boolean().optional(), "logdrain_axiom_api_key": z.string().optional(), "logdrain_axiom_dataset_name": z.string().optional(), "logdrain_custom_config": z.string().optional(), "logdrain_custom_config_parser": z.string().optional(), "logdrain_highlight_project_id": z.string().optional(), "logdrain_newrelic_base_uri": z.string().optional(), "logdrain_newrelic_license_key": z.string().optional(), "sentinel_metrics_history_days": z.number().int().optional(), "sentinel_metrics_refresh_rate_seconds": z.number().int().optional(), "sentinel_token": z.string().optional(), "docker_cleanup_frequency": z.string().optional(), "docker_cleanup_threshold": z.number().int().optional(), "server_id": z.number().int().optional(), "wildcard_domain": z.string().optional(), "created_at": z.string().optional(), "updated_at": z.string().optional(), "delete_unused_volumes": z.boolean().describe("The flag to indicate if the unused volumes should be deleted.").optional(), "delete_unused_networks": z.boolean().describe("The flag to indicate if the unused networks should be deleted.").optional(), "connection_timeout": z.number().int().describe("SSH connection timeout in seconds.").optional() }).describe("Server Settings model").optional() }).describe("Server model"), responseKind: "json", parameters: [{ location: "path", name: "uuid" }], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
220
+ { name: "coolify_update_server_by_uuid", method: "PATCH", path: "/servers/{uuid}", description: "Update", inputSchema: z.object({ "uuid": z.string(), body: z.object({ "name": z.string().describe("The name of the server.").optional(), "description": z.string().describe("The description of the server.").optional(), "ip": z.string().describe("The IP of the server.").optional(), "port": z.number().int().describe("The port of the server.").optional(), "user": z.string().describe("The user of the server.").optional(), "private_key_uuid": z.string().describe("The UUID of the private key.").optional(), "is_build_server": z.boolean().describe("Is build server.").optional(), "instant_validate": z.boolean().describe("Instant validate.").optional(), "proxy_type": z.enum(["traefik", "caddy", "none"]).describe("The proxy type.").optional(), "concurrent_builds": z.number().int().describe("Number of concurrent builds.").optional(), "dynamic_timeout": z.number().int().describe("Deployment timeout in seconds.").optional(), "deployment_queue_limit": z.number().int().describe("Maximum number of queued deployments.").optional(), "server_disk_usage_notification_threshold": z.number().int().describe("Server disk usage notification threshold (%).").optional(), "server_disk_usage_check_frequency": z.string().describe("Cron expression for disk usage check frequency.").optional(), "connection_timeout": z.number().int().describe("SSH connection timeout in seconds (1-300). Default: 10.").optional() }) }), responseSchema: z.object({ "id": z.number().int().describe("The server ID.").optional(), "uuid": z.string().describe("The server UUID.").optional(), "name": z.string().describe("The server name.").optional(), "description": z.string().describe("The server description.").optional(), "ip": z.string().describe("The IP address.").optional(), "user": z.string().describe("The user.").optional(), "port": z.number().int().describe("The port number.").optional(), "proxy": z.record(z.string(), z.any()).describe("The proxy configuration.").optional(), "proxy_type": z.enum(["traefik", "caddy", "none"]).describe("The proxy type.").optional(), "high_disk_usage_notification_sent": z.boolean().describe("The flag to indicate if the high disk usage notification has been sent.").optional(), "unreachable_notification_sent": z.boolean().describe("The flag to indicate if the unreachable notification has been sent.").optional(), "unreachable_count": z.number().int().describe("The unreachable count for your server.").optional(), "validation_logs": z.union([z.string().describe("The validation logs."), z.null()]).optional(), "log_drain_notification_sent": z.boolean().describe("The flag to indicate if the log drain notification has been sent.").optional(), "swarm_cluster": z.union([z.string().describe("The swarm cluster configuration."), z.null()]).optional(), "settings": z.object({ "id": z.number().int().optional(), "concurrent_builds": z.number().int().optional(), "deployment_queue_limit": z.number().int().optional(), "dynamic_timeout": z.number().int().optional(), "force_disabled": z.boolean().optional(), "force_server_cleanup": z.boolean().optional(), "is_build_server": z.boolean().optional(), "is_cloudflare_tunnel": z.boolean().optional(), "is_jump_server": z.boolean().optional(), "is_logdrain_axiom_enabled": z.boolean().optional(), "is_logdrain_custom_enabled": z.boolean().optional(), "is_logdrain_highlight_enabled": z.boolean().optional(), "is_logdrain_newrelic_enabled": z.boolean().optional(), "is_metrics_enabled": z.boolean().optional(), "is_reachable": z.boolean().optional(), "is_sentinel_enabled": z.boolean().optional(), "is_swarm_manager": z.boolean().optional(), "is_swarm_worker": z.boolean().optional(), "is_terminal_enabled": z.boolean().optional(), "is_usable": z.boolean().optional(), "logdrain_axiom_api_key": z.union([z.string(), z.null()]).optional(), "logdrain_axiom_dataset_name": z.union([z.string(), z.null()]).optional(), "logdrain_custom_config": z.union([z.string(), z.null()]).optional(), "logdrain_custom_config_parser": z.union([z.string(), z.null()]).optional(), "logdrain_highlight_project_id": z.union([z.string(), z.null()]).optional(), "logdrain_newrelic_base_uri": z.union([z.string(), z.null()]).optional(), "logdrain_newrelic_license_key": z.union([z.string(), z.null()]).optional(), "sentinel_metrics_history_days": z.number().int().optional(), "sentinel_metrics_refresh_rate_seconds": z.number().int().optional(), "sentinel_token": z.string().optional(), "docker_cleanup_frequency": z.string().optional(), "docker_cleanup_threshold": z.number().int().optional(), "server_id": z.number().int().optional(), "wildcard_domain": z.union([z.string(), z.null()]).optional(), "created_at": z.string().optional(), "updated_at": z.string().optional(), "delete_unused_volumes": z.boolean().describe("The flag to indicate if the unused volumes should be deleted.").optional(), "delete_unused_networks": z.boolean().describe("The flag to indicate if the unused networks should be deleted.").optional(), "connection_timeout": z.number().int().describe("SSH connection timeout in seconds.").optional() }).describe("Server Settings model").optional(), "is_reachable": z.boolean().optional(), "is_usable": z.boolean().optional() }).describe("Server model"), responseKind: "json", parameters: [{ location: "path", name: "uuid" }], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
198
221
  { name: "coolify_get_resources_by_server_uuid", method: "GET", path: "/servers/{uuid}/resources", description: "Resources", inputSchema: z.object({ "uuid": z.string() }), responseSchema: z.array(z.object({ "id": z.number().int().optional(), "uuid": z.string().optional(), "name": z.string().optional(), "type": z.string().optional(), "created_at": z.string().optional(), "updated_at": z.string().optional(), "status": z.string().optional() })), responseKind: "json", parameters: [{ location: "path", name: "uuid" }], annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false } },
199
222
  { name: "coolify_get_domains_by_server_uuid", method: "GET", path: "/servers/{uuid}/domains", description: "Domains", inputSchema: z.object({ "uuid": z.string() }), responseSchema: z.array(z.object({ "ip": z.string().optional(), "domains": z.array(z.string()).optional() })), responseKind: "json", parameters: [{ location: "path", name: "uuid" }], annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false } },
200
- { name: "coolify_validate_server_by_uuid", method: "POST", path: "/servers/{uuid}/validate", description: "Validate", inputSchema: z.object({ "uuid": z.string(), body: z.object({ "install": z.boolean().describe("Install missing prerequisites and Docker. This can restart the Docker daemon.").default(false) }).optional() }), responseSchema: z.object({ "message": z.string().optional() }), responseKind: "json", parameters: [{ location: "path", name: "uuid" }], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
201
223
  { name: "coolify_list_service_applications_by_service_uuid", method: "GET", path: "/services/{uuid}/applications", description: "List service applications", inputSchema: z.object({ "uuid": z.string() }), responseSchema: z.array(z.record(z.string(), z.any())), responseKind: "json", parameters: [{ location: "path", name: "uuid" }], annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false } },
202
224
  { name: "coolify_get_service_application_by_service_and_app_uuid", method: "GET", path: "/services/{uuid}/applications/{app_uuid}", description: "Get service application", inputSchema: z.object({ "uuid": z.string(), "app_uuid": z.string() }), responseSchema: z.record(z.string(), z.any()), responseKind: "json", parameters: [{ location: "path", name: "uuid" }, { location: "path", name: "app_uuid" }], annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false } },
203
225
  { name: "coolify_patch_service_application_by_service_and_app_uuid", method: "PATCH", path: "/services/{uuid}/applications/{app_uuid}", description: "Update service application", inputSchema: z.object({ "uuid": z.string(), "app_uuid": z.string(), "force_domain_override": z.boolean().default(false), body: z.object({ "url": z.union([z.string().describe("Comma-separated list of URLs (e.g. \"http://app.example.com:8080,https://app2.example.com\"). Stored as fqdn."), z.null().describe("Comma-separated list of URLs (e.g. \"http://app.example.com:8080,https://app2.example.com\"). Stored as fqdn.")]).describe("Comma-separated list of URLs (e.g. \"http://app.example.com:8080,https://app2.example.com\"). Stored as fqdn.").optional(), "noindex_domains": z.union([z.array(z.string()).describe("The subset of the service application domains served with an X-Robots-Tag: noindex, nofollow response header, keeping them out of search engines. Entries that are not among the domains are ignored."), z.null().describe("The subset of the service application domains served with an X-Robots-Tag: noindex, nofollow response header, keeping them out of search engines. Entries that are not among the domains are ignored.")]).describe("The subset of the service application domains served with an X-Robots-Tag: noindex, nofollow response header, keeping them out of search engines. Entries that are not among the domains are ignored.").optional(), "human_name": z.union([z.string(), z.null()]).optional(), "description": z.union([z.string(), z.null()]).optional(), "image": z.union([z.string(), z.null()]).optional(), "exclude_from_status": z.union([z.boolean(), z.null()]).optional(), "is_log_drain_enabled": z.union([z.boolean(), z.null()]).optional(), "is_gzip_enabled": z.union([z.boolean(), z.null()]).optional(), "is_stripprefix_enabled": z.union([z.boolean(), z.null()]).optional(), "max_restart_count": z.union([z.number().int().gte(0).describe("Maximum Docker restart count before Coolify stops the container. Set to 0 to disable the limit."), z.null().describe("Maximum Docker restart count before Coolify stops the container. Set to 0 to disable the limit.")]).describe("Maximum Docker restart count before Coolify stops the container. Set to 0 to disable the limit.").optional() }).optional() }), responseSchema: z.record(z.string(), z.any()), responseKind: "json", parameters: [{ location: "path", name: "uuid" }, { location: "path", name: "app_uuid" }, { location: "query", name: "force_domain_override" }], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
@@ -213,9 +235,9 @@ export const operations = [
213
235
  { name: "coolify_start_service_database_by_service_and_database_uuid", method: "POST", path: "/services/{uuid}/databases/{database_uuid}/start", description: "Start or redeploy service database container", inputSchema: z.object({ "uuid": z.string(), "database_uuid": z.string(), "force": z.boolean().default(false), "latest": z.boolean().default(false) }), responseSchema: z.object({ "message": z.string().optional() }), responseKind: "json", parameters: [{ location: "path", name: "uuid" }, { location: "path", name: "database_uuid" }, { location: "query", name: "force" }, { location: "query", name: "latest" }], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
214
236
  { name: "coolify_restart_service_database_by_service_and_database_uuid", method: "POST", path: "/services/{uuid}/databases/{database_uuid}/restart", description: "Restart service database container", inputSchema: z.object({ "uuid": z.string(), "database_uuid": z.string() }), responseSchema: z.object({ "message": z.string().optional() }), responseKind: "json", parameters: [{ location: "path", name: "uuid" }, { location: "path", name: "database_uuid" }], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
215
237
  { name: "coolify_stop_service_database_by_service_and_database_uuid", method: "POST", path: "/services/{uuid}/databases/{database_uuid}/stop", description: "Stop service database container", inputSchema: z.object({ "uuid": z.string(), "database_uuid": z.string() }), responseSchema: z.object({ "message": z.string().optional() }), responseKind: "json", parameters: [{ location: "path", name: "uuid" }, { location: "path", name: "database_uuid" }], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
216
- { name: "coolify_list_services", method: "GET", path: "/services", description: "List", inputSchema: z.object({}), responseSchema: z.array(z.object({ "id": z.number().int().describe("The unique identifier of the service. Only used for database identification.").optional(), "uuid": z.string().describe("The unique identifier of the service.").optional(), "name": z.string().describe("The name of the service.").optional(), "environment_id": z.number().int().describe("The unique identifier of the environment where the service is attached to.").optional(), "server_id": z.number().int().describe("The unique identifier of the server where the service is running.").optional(), "description": z.string().describe("The description of the service.").optional(), "docker_compose_raw": z.string().describe("The raw docker-compose.yml file of the service.").optional(), "docker_compose": z.string().describe("The docker-compose.yml file that is parsed and modified by Coolify.").optional(), "destination_type": z.string().describe("Destination type.").optional(), "destination_id": z.number().int().describe("The unique identifier of the destination where the service is running.").optional(), "connect_to_docker_network": z.boolean().describe("The flag to connect the service to the predefined Docker network.").optional(), "is_container_label_escape_enabled": z.boolean().describe("The flag to enable the container label escape.").optional(), "is_container_label_readonly_enabled": z.boolean().describe("The flag to enable the container label readonly.").optional(), "config_hash": z.string().describe("The hash of the service configuration.").optional(), "service_type": z.string().describe("The type of the service.").optional(), "created_at": z.string().describe("The date and time when the service was created.").optional(), "updated_at": z.string().describe("The date and time when the service was last updated.").optional(), "deleted_at": z.string().describe("The date and time when the service was deleted.").optional() }).describe("Service model")), responseKind: "json", parameters: [], annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false } },
238
+ { name: "coolify_list_services", method: "GET", path: "/services", description: "List", inputSchema: z.object({}), responseSchema: z.array(z.object({ "id": z.number().int().describe("The unique identifier of the service. Only used for database identification.").optional(), "uuid": z.string().describe("The unique identifier of the service.").optional(), "name": z.string().describe("The name of the service.").optional(), "environment_id": z.number().int().describe("The unique identifier of the environment where the service is attached to.").optional(), "server_id": z.number().int().describe("The unique identifier of the server where the service is running.").optional(), "description": z.string().describe("The description of the service.").optional(), "docker_compose_raw": z.string().describe("The raw docker-compose.yml file of the service.").optional(), "docker_compose": z.string().describe("The docker-compose.yml file that is parsed and modified by Coolify.").optional(), "destination_type": z.string().describe("Destination type.").optional(), "destination_id": z.number().int().describe("The unique identifier of the destination where the service is running.").optional(), "connect_to_docker_network": z.boolean().describe("The flag to connect the service to the predefined Docker network.").optional(), "is_container_label_escape_enabled": z.boolean().describe("The flag to enable the container label escape.").optional(), "is_container_label_readonly_enabled": z.boolean().describe("The flag to enable the container label readonly.").optional(), "config_hash": z.string().describe("The hash of the service configuration.").optional(), "service_type": z.union([z.string().describe("The type of the service."), z.null()]).optional(), "created_at": z.string().describe("The date and time when the service was created.").optional(), "updated_at": z.string().describe("The date and time when the service was last updated.").optional(), "deleted_at": z.union([z.string().describe("The date and time when the service was deleted."), z.null()]).optional(), "status": z.string().optional() }).describe("Service model")), responseKind: "json", parameters: [], annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false } },
217
239
  { name: "coolify_create_service", method: "POST", path: "/services", description: "Create service", inputSchema: z.object({ body: z.object({ "type": z.string().describe("The one-click service type (e.g. \"actualbudget\", \"calibre-web\", \"gitea-with-mysql\" ...)").optional(), "name": z.string().max(255).describe("Name of the service.").optional(), "description": z.union([z.string().describe("Description of the service."), z.null()]).optional(), "project_uuid": z.string().describe("Project UUID."), "environment_name": z.string().describe("Environment name. You need to provide at least one of environment_name or environment_uuid."), "environment_uuid": z.string().describe("Environment UUID. You need to provide at least one of environment_name or environment_uuid."), "server_uuid": z.string().describe("Server UUID."), "destination_uuid": z.string().describe("Destination UUID. Required if server has multiple destinations.").optional(), "instant_deploy": z.boolean().describe("Start the service immediately after creation.").default(false), "docker_compose_raw": z.string().describe("The base64 encoded Docker Compose content.").optional(), "urls": z.array(z.object({ "name": z.string().describe("The service name as defined in docker-compose.").optional(), "url": z.string().describe("Comma-separated list of URLs (e.g. \"https://app.coolify.io,https://app2.coolify.io\").").optional() })).describe("Array of URLs to be applied to containers of a service.").optional(), "force_domain_override": z.boolean().describe("Force domain override even if conflicts are detected.").default(false), "is_container_label_escape_enabled": z.boolean().describe("Escape special characters in labels. By default, $ (and other chars) is escaped. If you want to use env variables inside the labels, turn this off.").default(true), "tags": z.array(z.string()).describe("Tags to assign to the service.").optional() }) }), responseSchema: z.object({ "uuid": z.string().describe("Service UUID.").optional(), "domains": z.array(z.string()).describe("Service domains.").optional() }), responseKind: "json", parameters: [], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
218
- { name: "coolify_get_service_by_uuid", method: "GET", path: "/services/{uuid}", description: "Get", inputSchema: z.object({ "uuid": z.string() }), responseSchema: z.object({ "id": z.number().int().describe("The unique identifier of the service. Only used for database identification.").optional(), "uuid": z.string().describe("The unique identifier of the service.").optional(), "name": z.string().describe("The name of the service.").optional(), "environment_id": z.number().int().describe("The unique identifier of the environment where the service is attached to.").optional(), "server_id": z.number().int().describe("The unique identifier of the server where the service is running.").optional(), "description": z.string().describe("The description of the service.").optional(), "docker_compose_raw": z.string().describe("The raw docker-compose.yml file of the service.").optional(), "docker_compose": z.string().describe("The docker-compose.yml file that is parsed and modified by Coolify.").optional(), "destination_type": z.string().describe("Destination type.").optional(), "destination_id": z.number().int().describe("The unique identifier of the destination where the service is running.").optional(), "connect_to_docker_network": z.boolean().describe("The flag to connect the service to the predefined Docker network.").optional(), "is_container_label_escape_enabled": z.boolean().describe("The flag to enable the container label escape.").optional(), "is_container_label_readonly_enabled": z.boolean().describe("The flag to enable the container label readonly.").optional(), "config_hash": z.string().describe("The hash of the service configuration.").optional(), "service_type": z.string().describe("The type of the service.").optional(), "created_at": z.string().describe("The date and time when the service was created.").optional(), "updated_at": z.string().describe("The date and time when the service was last updated.").optional(), "deleted_at": z.string().describe("The date and time when the service was deleted.").optional() }).describe("Service model"), responseKind: "json", parameters: [{ location: "path", name: "uuid" }], annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false } },
240
+ { name: "coolify_get_service_by_uuid", method: "GET", path: "/services/{uuid}", description: "Get", inputSchema: z.object({ "uuid": z.string() }), responseSchema: z.object({ "id": z.number().int().describe("The unique identifier of the service. Only used for database identification.").optional(), "uuid": z.string().describe("The unique identifier of the service.").optional(), "name": z.string().describe("The name of the service.").optional(), "environment_id": z.number().int().describe("The unique identifier of the environment where the service is attached to.").optional(), "server_id": z.number().int().describe("The unique identifier of the server where the service is running.").optional(), "description": z.string().describe("The description of the service.").optional(), "docker_compose_raw": z.string().describe("The raw docker-compose.yml file of the service.").optional(), "docker_compose": z.string().describe("The docker-compose.yml file that is parsed and modified by Coolify.").optional(), "destination_type": z.string().describe("Destination type.").optional(), "destination_id": z.number().int().describe("The unique identifier of the destination where the service is running.").optional(), "connect_to_docker_network": z.boolean().describe("The flag to connect the service to the predefined Docker network.").optional(), "is_container_label_escape_enabled": z.boolean().describe("The flag to enable the container label escape.").optional(), "is_container_label_readonly_enabled": z.boolean().describe("The flag to enable the container label readonly.").optional(), "config_hash": z.string().describe("The hash of the service configuration.").optional(), "service_type": z.union([z.string().describe("The type of the service."), z.null()]).optional(), "created_at": z.string().describe("The date and time when the service was created.").optional(), "updated_at": z.string().describe("The date and time when the service was last updated.").optional(), "deleted_at": z.union([z.string().describe("The date and time when the service was deleted."), z.null()]).optional(), "status": z.string().optional() }).describe("Service model"), responseKind: "json", parameters: [{ location: "path", name: "uuid" }], annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false } },
219
241
  { name: "coolify_delete_service_by_uuid", method: "DELETE", path: "/services/{uuid}", description: "Delete", inputSchema: z.object({ "uuid": z.string(), "delete_configurations": z.boolean().default(true), "delete_volumes": z.boolean().default(true), "docker_cleanup": z.boolean().default(true), "delete_connected_networks": z.boolean().default(true) }), responseSchema: z.object({ "message": z.string().optional() }), responseKind: "json", parameters: [{ location: "path", name: "uuid" }, { location: "query", name: "delete_configurations" }, { location: "query", name: "delete_volumes" }, { location: "query", name: "docker_cleanup" }, { location: "query", name: "delete_connected_networks" }], annotations: { readOnlyHint: false, destructiveHint: true, idempotentHint: true, openWorldHint: false } },
220
242
  { name: "coolify_update_service_by_uuid", method: "PATCH", path: "/services/{uuid}", description: "Update", inputSchema: z.object({ "uuid": z.string(), body: z.object({ "name": z.string().describe("The service name.").optional(), "description": z.string().describe("The service description.").optional(), "instant_deploy": z.boolean().describe("The flag to indicate if the service should be deployed instantly.").optional(), "connect_to_docker_network": z.boolean().describe("Connect the service to the predefined docker network.").default(false), "docker_compose_raw": z.string().describe("The base64 encoded Docker Compose content.").optional(), "urls": z.array(z.object({ "name": z.string().describe("The service name as defined in docker-compose.").optional(), "url": z.string().describe("Comma-separated list of URLs (e.g. \"https://app.coolify.io,https://app2.coolify.io\").").optional() })).describe("Array of URLs to be applied to containers of a service.").optional(), "force_domain_override": z.boolean().describe("Force domain override even if conflicts are detected.").default(false), "is_container_label_escape_enabled": z.boolean().describe("Escape special characters in labels. By default, $ (and other chars) is escaped. If you want to use env variables inside the labels, turn this off.").default(true) }) }), responseSchema: z.object({ "uuid": z.string().describe("Service UUID.").optional(), "domains": z.array(z.string()).describe("Service domains.").optional() }), responseKind: "json", parameters: [{ location: "path", name: "uuid" }], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
221
243
  { name: "coolify_get_service_logs_by_uuid", method: "GET", path: "/services/{uuid}/logs", description: "Get service logs.", inputSchema: z.object({ "uuid": z.string().uuid(), "sub_service_name": z.string(), "lines": z.number().int().default(100), "show_timestamps": z.boolean().default(false) }), responseSchema: z.object({ "logs": z.string().optional() }), responseKind: "json", parameters: [{ location: "path", name: "uuid" }, { location: "query", name: "sub_service_name" }, { location: "query", name: "lines" }, { location: "query", name: "show_timestamps" }], annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false } },
@@ -230,8 +252,8 @@ export const operations = [
230
252
  { name: "coolify_stop_service_by_uuid", method: "POST", path: "/services/{uuid}/stop", description: "Stop", inputSchema: z.object({ "uuid": z.string(), "docker_cleanup": z.boolean().default(true) }), responseSchema: z.object({ "message": z.string().optional() }), responseKind: "json", parameters: [{ location: "path", name: "uuid" }, { location: "query", name: "docker_cleanup" }], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
231
253
  { name: "coolify_restart_service_by_uuid", method: "POST", path: "/services/{uuid}/restart", description: "Restart", inputSchema: z.object({ "uuid": z.string(), "latest": z.boolean().default(false) }), responseSchema: z.object({ "message": z.string().optional() }), responseKind: "json", parameters: [{ location: "path", name: "uuid" }, { location: "query", name: "latest" }], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
232
254
  { name: "coolify_list_storages_by_service_uuid", method: "GET", path: "/services/{uuid}/storages", description: "List Storages", inputSchema: z.object({ "uuid": z.string() }), responseSchema: z.object({ "persistent_storages": z.array(z.record(z.string(), z.any())).optional(), "file_storages": z.array(z.record(z.string(), z.any())).optional() }), responseKind: "json", parameters: [{ location: "path", name: "uuid" }], annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false } },
233
- { name: "coolify_create_storage_by_service_uuid", method: "POST", path: "/services/{uuid}/storages", description: "Create Storage", inputSchema: z.object({ "uuid": z.string(), body: z.object({ "type": z.enum(["persistent", "file"]).describe("The type of storage."), "resource_uuid": z.string().describe("UUID of the service application or database sub-resource."), "name": z.string().describe("Volume name (persistent only, required for persistent).").optional(), "mount_path": z.string().describe("The container mount path."), "host_path": z.union([z.string().describe("The host path (persistent only, optional)."), z.null()]).optional(), "content": z.union([z.string().describe("File content (file only, optional)."), z.null()]).optional(), "is_directory": z.boolean().describe("Whether this is a directory mount (file only, default false).").optional(), "fs_path": z.string().describe("Host directory path (required when is_directory is true).").optional() }).strict() }), responseSchema: z.record(z.string(), z.any()), responseKind: "json", parameters: [{ location: "path", name: "uuid" }], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
234
- { name: "coolify_update_storage_by_service_uuid", method: "PATCH", path: "/services/{uuid}/storages", description: "Update Storage", inputSchema: z.object({ "uuid": z.string(), body: z.object({ "uuid": z.string().describe("The UUID of the storage (preferred).").optional(), "id": z.number().int().describe("The ID of the storage (deprecated, use uuid instead).").optional(), "type": z.enum(["persistent", "file"]).describe("The type of storage: persistent or file."), "is_preview_suffix_enabled": z.boolean().describe("Whether to add -pr-N suffix for preview deployments.").optional(), "name": z.string().describe("The volume name (persistent only, not allowed for read-only storages).").optional(), "mount_path": z.string().describe("The container mount path (not allowed for read-only storages).").optional(), "host_path": z.union([z.string().describe("The host path (persistent only, not allowed for read-only storages)."), z.null()]).optional(), "content": z.union([z.string().describe("The file content (file only, not allowed for read-only storages)."), z.null()]).optional() }).strict() }), responseSchema: z.record(z.string(), z.any()), responseKind: "json", parameters: [{ location: "path", name: "uuid" }], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
255
+ { name: "coolify_create_storage_by_service_uuid", method: "POST", path: "/services/{uuid}/storages", description: "Create Storage", inputSchema: z.object({ "uuid": z.string(), body: z.object({ "type": z.enum(["persistent", "file"]).describe("The type of storage."), "resource_uuid": z.string().describe("UUID of the service application or database sub-resource."), "name": z.string().describe("Volume name (persistent only, required for persistent).").optional(), "mount_path": z.string().describe("The container mount path."), "content": z.union([z.string().describe("File content (file only, optional)."), z.null()]).optional(), "is_directory": z.boolean().describe("Whether this is a directory mount (file only, default false).").optional(), "fs_path": z.string().describe("Host directory path (required when is_directory is true).").optional() }).strict() }), responseSchema: z.record(z.string(), z.any()), responseKind: "json", parameters: [{ location: "path", name: "uuid" }], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
256
+ { name: "coolify_update_storage_by_service_uuid", method: "PATCH", path: "/services/{uuid}/storages", description: "Update Storage", inputSchema: z.object({ "uuid": z.string(), body: z.object({ "uuid": z.string().describe("The UUID of the storage (preferred).").optional(), "id": z.number().int().describe("The ID of the storage (deprecated, use uuid instead).").optional(), "type": z.enum(["persistent", "file"]).describe("The type of storage: persistent or file."), "is_preview_suffix_enabled": z.boolean().describe("Whether to add -pr-N suffix for preview deployments.").optional(), "name": z.string().describe("The volume name (persistent only, not allowed for read-only storages).").optional(), "mount_path": z.string().describe("The container mount path (not allowed for read-only storages).").optional(), "content": z.union([z.string().describe("The file content (file only, not allowed for read-only storages)."), z.null()]).optional() }).strict() }), responseSchema: z.record(z.string(), z.any()), responseKind: "json", parameters: [{ location: "path", name: "uuid" }], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
235
257
  { name: "coolify_delete_storage_by_service_uuid", method: "DELETE", path: "/services/{uuid}/storages/{storage_uuid}", description: "Delete Storage", inputSchema: z.object({ "uuid": z.string(), "storage_uuid": z.string() }), responseSchema: z.object({ "message": z.string().optional() }), responseKind: "json", parameters: [{ location: "path", name: "uuid" }, { location: "path", name: "storage_uuid" }], annotations: { readOnlyHint: false, destructiveHint: true, idempotentHint: true, openWorldHint: false } },
236
258
  { name: "coolify_list_tags_by_service_uuid", method: "GET", path: "/services/{uuid}/tags", description: "List Tags", inputSchema: z.object({ "uuid": z.string() }), responseSchema: z.array(z.object({ "uuid": z.string().optional(), "name": z.string().optional(), "created_at": z.string().optional(), "updated_at": z.string().optional() }).describe("Tag model")), responseKind: "json", parameters: [{ location: "path", name: "uuid" }], annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false } },
237
259
  { name: "coolify_create_tag_by_service_uuid", method: "POST", path: "/services/{uuid}/tags", description: "Create Tag", inputSchema: z.object({ "uuid": z.string(), body: z.object({ "tag_name": z.string().describe("The tag name (min 2 characters). Required if tag_names is not provided.").optional(), "tag_names": z.array(z.string()).describe("Array of tag names (each min 2 characters). Required if tag_name is not provided.").optional() }) }), responseSchema: z.array(z.object({ "uuid": z.string().optional(), "name": z.string().optional(), "created_at": z.string().optional(), "updated_at": z.string().optional() }).describe("Tag model")), responseKind: "json", parameters: [{ location: "path", name: "uuid" }], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },