@jurislm/coolify-plugin 4.0.12 → 4.0.13
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.
- package/.codex-plugin/plugin.json +3 -3
- package/README.md +5 -1
- package/dist/capabilities.js +1 -1
- package/dist/generated/operations.d.ts +1 -0
- package/dist/generated/operations.js +276 -276
- package/dist/server.js +1 -1
- package/package.json +1 -1
- package/plugin.json +3 -3
|
@@ -1,17 +1,17 @@
|
|
|
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", "dockerimage"]).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.union([z.string().describe("Ports exposes."), z.null()]).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.union([z.boolean(), z.string()]).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
|
-
{ 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.").optional(), "environment_uuid": z.string().describe("The environment UUID. You need to provide at least one of environment_name or environment_uuid.").optional(), "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) }).refine((body) => typeof body["environment_name"] === "string" && body["environment_name"].trim().length > 0 || typeof body["environment_uuid"] === "string" && body["environment_uuid"].trim().length > 0, { message: "At least one of environment_name, environment_uuid is required" }) }), responseSchema: z.object({ "uuid": z.string().optional() }), responseKind: "json", parameters: [], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
|
|
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.").optional(), "environment_uuid": z.string().describe("The environment UUID. You need to provide at least one of environment_name or environment_uuid.").optional(), "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) }).refine((body) => typeof body["environment_name"] === "string" && body["environment_name"].trim().length > 0 || typeof body["environment_uuid"] === "string" && body["environment_uuid"].trim().length > 0, { message: "At least one of environment_name, environment_uuid is required" }) }), responseSchema: z.object({ "uuid": z.string().optional() }), responseKind: "json", parameters: [], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
|
|
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.").optional(), "environment_uuid": z.string().describe("The environment UUID. You need to provide at least one of environment_name or environment_uuid.").optional(), "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) }).refine((body) => typeof body["environment_name"] === "string" && body["environment_name"].trim().length > 0 || typeof body["environment_uuid"] === "string" && body["environment_uuid"].trim().length > 0, { message: "At least one of environment_name, environment_uuid is required" }) }), responseSchema: z.object({ "uuid": z.string().optional() }), responseKind: "json", parameters: [], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
|
|
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.").optional(), "environment_uuid": z.string().describe("The environment UUID. You need to provide at least one of environment_name or environment_uuid.").optional(), "dockerfile": z.string().describe("Plain Dockerfile content; the plugin encodes it for Coolify."), "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() }).refine((body) => typeof body["environment_name"] === "string" && body["environment_name"].trim().length > 0 || typeof body["environment_uuid"] === "string" && body["environment_uuid"].trim().length > 0, { message: "At least one of environment_name, environment_uuid is required" }) }), responseSchema: z.object({ "uuid": z.string().optional() }), responseKind: "json", parameters: [], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
|
|
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.").optional(), "environment_uuid": z.string().describe("The environment UUID. You need to provide at least one of environment_name or environment_uuid.").optional(), "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() }).refine((body) => typeof body["environment_name"] === "string" && body["environment_name"].trim().length > 0 || typeof body["environment_uuid"] === "string" && body["environment_uuid"].trim().length > 0, { message: "At least one of environment_name, environment_uuid is required" }) }), 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", "dockerimage"]).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.union([z.string().describe("Ports exposes."), z.null()]).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.union([z.boolean(), z.string()]).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
|
-
{ 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
|
-
{ 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
|
-
{ 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) => {
|
|
4
|
+
{ name: "coolify_list_applications", method: "GET", path: "/applications", title: "List applications", description: "List applications", 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", "dockerimage"]).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.union([z.string().describe("Ports exposes."), z.null()]).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.union([z.boolean(), z.string()]).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
|
+
{ name: "coolify_create_public_application", method: "POST", path: "/applications/public", title: "Create public application", 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.").optional(), "environment_uuid": z.string().describe("The environment UUID. You need to provide at least one of environment_name or environment_uuid.").optional(), "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) }).refine((body) => typeof body["environment_name"] === "string" && body["environment_name"].trim().length > 0 || typeof body["environment_uuid"] === "string" && body["environment_uuid"].trim().length > 0, { message: "At least one of environment_name, environment_uuid is required" }) }), responseSchema: z.object({ "uuid": z.string().optional() }), responseKind: "json", parameters: [], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
|
|
6
|
+
{ name: "coolify_create_private_github_app_application", method: "POST", path: "/applications/private-github-app", title: "Create private github app application", 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.").optional(), "environment_uuid": z.string().describe("The environment UUID. You need to provide at least one of environment_name or environment_uuid.").optional(), "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) }).refine((body) => typeof body["environment_name"] === "string" && body["environment_name"].trim().length > 0 || typeof body["environment_uuid"] === "string" && body["environment_uuid"].trim().length > 0, { message: "At least one of environment_name, environment_uuid is required" }) }), responseSchema: z.object({ "uuid": z.string().optional() }), responseKind: "json", parameters: [], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
|
|
7
|
+
{ name: "coolify_create_private_deploy_key_application", method: "POST", path: "/applications/private-deploy-key", title: "Create private deploy key application", 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.").optional(), "environment_uuid": z.string().describe("The environment UUID. You need to provide at least one of environment_name or environment_uuid.").optional(), "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) }).refine((body) => typeof body["environment_name"] === "string" && body["environment_name"].trim().length > 0 || typeof body["environment_uuid"] === "string" && body["environment_uuid"].trim().length > 0, { message: "At least one of environment_name, environment_uuid is required" }) }), responseSchema: z.object({ "uuid": z.string().optional() }), responseKind: "json", parameters: [], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
|
|
8
|
+
{ name: "coolify_create_dockerfile_application", method: "POST", path: "/applications/dockerfile", title: "Create dockerfile application", 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.").optional(), "environment_uuid": z.string().describe("The environment UUID. You need to provide at least one of environment_name or environment_uuid.").optional(), "dockerfile": z.string().describe("Plain Dockerfile content; the plugin encodes it for Coolify."), "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() }).refine((body) => typeof body["environment_name"] === "string" && body["environment_name"].trim().length > 0 || typeof body["environment_uuid"] === "string" && body["environment_uuid"].trim().length > 0, { message: "At least one of environment_name, environment_uuid is required" }) }), responseSchema: z.object({ "uuid": z.string().optional() }), responseKind: "json", parameters: [], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
|
|
9
|
+
{ name: "coolify_create_dockerimage_application", method: "POST", path: "/applications/dockerimage", title: "Create dockerimage application", 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.").optional(), "environment_uuid": z.string().describe("The environment UUID. You need to provide at least one of environment_name or environment_uuid.").optional(), "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() }).refine((body) => typeof body["environment_name"] === "string" && body["environment_name"].trim().length > 0 || typeof body["environment_uuid"] === "string" && body["environment_uuid"].trim().length > 0, { message: "At least one of environment_name, environment_uuid is required" }) }), 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}", title: "Get application by UUID", description: "Get application by UUID", 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", "dockerimage"]).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.union([z.string().describe("Ports exposes."), z.null()]).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.union([z.boolean(), z.string()]).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
|
+
{ name: "coolify_delete_application_by_uuid", method: "DELETE", path: "/applications/{uuid}", title: "Delete application by UUID", description: "Delete application by UUID", 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
|
+
{ name: "coolify_update_application_by_uuid", method: "PATCH", path: "/applications/{uuid}", title: "Update application by UUID", description: "Update application by UUID", 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
|
+
{ name: "coolify_get_application_logs_by_uuid", method: "GET", path: "/applications/{uuid}/logs", title: "Get application logs by UUID", 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", title: "Get preview application logs by pull request id", 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
15
|
const schemas = [z.number().int().gte(-1).lte(10000).default(100), z.literal("all")];
|
|
16
16
|
const { errors, failed } = schemas.reduce(({ errors, failed }, schema) => ((result) => result.error
|
|
17
17
|
? {
|
|
@@ -34,269 +34,269 @@ export const operations = [
|
|
|
34
34
|
});
|
|
35
35
|
}
|
|
36
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 } },
|
|
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 } },
|
|
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 } },
|
|
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 } },
|
|
40
|
-
{ name: "coolify_update_envs_by_application_uuid", method: "PATCH", path: "/applications/{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_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.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 } },
|
|
41
|
-
{ name: "coolify_delete_env_by_application_uuid", method: "DELETE", path: "/applications/{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 } },
|
|
42
|
-
{ name: "coolify_start_application_by_uuid", method: "POST", path: "/applications/{uuid}/start", description: "Start", inputSchema: z.object({ "uuid": z.string(), "force": z.boolean().default(false), "instant_deploy": z.boolean().default(false) }), responseSchema: z.object({ "message": z.string().describe("Message.").optional(), "deployment_uuid": z.string().describe("UUID of the deployment.").optional() }), responseKind: "json", parameters: [{ location: "path", name: "uuid" }, { location: "query", name: "force" }, { location: "query", name: "instant_deploy" }], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
|
|
43
|
-
{ name: "coolify_stop_application_by_uuid", method: "POST", path: "/applications/{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 } },
|
|
44
|
-
{ name: "coolify_restart_application_by_uuid", method: "POST", path: "/applications/{uuid}/restart", description: "Restart", inputSchema: z.object({ "uuid": z.string() }), responseSchema: z.object({ "message": z.string().optional(), "deployment_uuid": z.string().describe("UUID of the deployment.").optional() }), responseKind: "json", parameters: [{ location: "path", name: "uuid" }], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
|
|
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 } },
|
|
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.record(z.string(), z.any()), responseKind: "json", parameters: [{ location: "path", name: "uuid" }], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
|
|
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 } },
|
|
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 } },
|
|
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 } },
|
|
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 } },
|
|
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 } },
|
|
53
|
-
{ name: "coolify_create_tag_by_application_uuid", method: "POST", path: "/applications/{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 } },
|
|
54
|
-
{ name: "coolify_delete_tag_by_application_uuid", method: "DELETE", path: "/applications/{uuid}/tags/{tag_uuid}", description: "Delete Tag", inputSchema: z.object({ "uuid": z.string(), "tag_uuid": z.string() }), responseSchema: z.object({ "message": z.string() }), responseKind: "json", parameters: [{ location: "path", name: "uuid" }, { location: "path", name: "tag_uuid" }], annotations: { readOnlyHint: false, destructiveHint: true, idempotentHint: true, openWorldHint: false } },
|
|
55
|
-
{ name: "coolify_clone_application_by_uuid", method: "POST", path: "/applications/{uuid}/clone", description: "Clone", inputSchema: z.object({ "uuid": z.string(), body: z.object({ "destination_uuid": z.string().describe("UUID of the destination to clone into."), "name": z.union([z.string().describe("Optional name for the cloned application."), z.null().describe("Optional name for the cloned application.")]).describe("Optional name for the cloned application.").optional(), "clone_volumes": z.boolean().describe("Whether to clone volume data.").default(false) }) }), responseSchema: z.object({ "uuid": z.string().optional(), "message": z.string().optional() }), responseKind: "json", parameters: [{ location: "path", name: "uuid" }], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
|
|
56
|
-
{ name: "coolify_list_application_rollback_images", method: "GET", path: "/applications/{uuid}/rollback-images", description: "List Rollback Images", inputSchema: z.object({ "uuid": z.string() }), responseSchema: z.object({ "current": z.union([z.string(), z.null()]).optional(), "images": z.array(z.object({ "tag": z.string().optional(), "created_at": z.string().optional(), "is_current": z.boolean().optional() })).optional() }), responseKind: "json", parameters: [{ location: "path", name: "uuid" }], annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false } },
|
|
57
|
-
{ name: "coolify_rollback_application_by_uuid", method: "POST", path: "/applications/{uuid}/rollback", description: "Rollback", inputSchema: z.object({ "uuid": z.string(), body: z.object({ "commit": z.string().describe("Image tag / commit to roll back to.") }) }), responseSchema: z.object({ "message": z.string().optional(), "deployment_uuid": z.string().optional() }), responseKind: "json", parameters: [{ location: "path", name: "uuid" }], annotations: { readOnlyHint: false, destructiveHint:
|
|
58
|
-
{ name: "coolify_list_application_destinations", method: "GET", path: "/applications/{uuid}/destinations", description: "List Destinations", 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 } },
|
|
59
|
-
{ name: "coolify_add_application_destination", method: "POST", path: "/applications/{uuid}/destinations", description: "Add Destination", inputSchema: z.object({ "uuid": z.string(), body: z.object({ "destination_uuid": z.string() }) }), responseSchema: z.record(z.string(), z.any()), responseKind: "json", parameters: [{ location: "path", name: "uuid" }], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
|
|
60
|
-
{ name: "coolify_remove_application_destination", method: "DELETE", path: "/applications/{uuid}/destinations/{destination_uuid}", description: "Remove Destination", inputSchema: z.object({ "uuid": z.string(), "destination_uuid": z.string() }), responseSchema: z.record(z.string(), z.any()), responseKind: "json", parameters: [{ location: "path", name: "uuid" }, { location: "path", name: "destination_uuid" }], annotations: { readOnlyHint: false, destructiveHint: true, idempotentHint: true, openWorldHint: false } },
|
|
61
|
-
{ name: "coolify_list_cloud_init_scripts", method: "GET", path: "/cloud-init-scripts", description: "List Cloud-init Scripts", inputSchema: z.object({}), responseSchema: z.array(z.record(z.string(), z.any())), responseKind: "json", parameters: [], annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false } },
|
|
62
|
-
{ name: "coolify_create_cloud_init_script", method: "POST", path: "/cloud-init-scripts", description: "Create Cloud-init Script", inputSchema: z.object({ body: z.object({ "name": z.string(), "script": z.string().describe("Bash script (#!) or cloud-config YAML.") }) }), responseSchema: z.object({ "uuid": z.string(), "name": z.string().optional(), "script": z.string().optional() }).catchall(z.any()), responseKind: "json", parameters: [], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
|
|
63
|
-
{ name: "coolify_get_cloud_init_script_by_uuid", method: "GET", path: "/cloud-init-scripts/{uuid}", description: "Get Cloud-init Script", inputSchema: z.object({ "uuid": z.string() }), responseSchema: z.object({ "uuid": z.string(), "name": z.string().optional(), "script": z.string().optional() }).catchall(z.any()), responseKind: "json", parameters: [{ location: "path", name: "uuid" }], annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false } },
|
|
64
|
-
{ name: "coolify_delete_cloud_init_script_by_uuid", method: "DELETE", path: "/cloud-init-scripts/{uuid}", description: "Delete Cloud-init Script", inputSchema: z.object({ "uuid": z.string() }), responseSchema: z.object({ "message": z.string() }), responseKind: "json", parameters: [{ location: "path", name: "uuid" }], annotations: { readOnlyHint: false, destructiveHint: true, idempotentHint: true, openWorldHint: false } },
|
|
65
|
-
{ name: "coolify_update_cloud_init_script_by_uuid", method: "PATCH", path: "/cloud-init-scripts/{uuid}", description: "Update Cloud-init Script", inputSchema: z.object({ "uuid": z.string(), body: z.object({ "name": z.string().optional(), "script": z.string().optional() }) }), responseSchema: z.record(z.string(), z.any()), responseKind: "json", parameters: [{ location: "path", name: "uuid" }], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
|
|
66
|
-
{ name: "coolify_list_cloud_tokens", method: "GET", path: "/cloud-tokens", description: "List Cloud Provider Tokens", inputSchema: z.object({}), responseSchema: z.array(z.object({ "uuid": z.string().optional(), "name": z.string().optional(), "provider": z.enum(["hetzner", "digitalocean", "vultr"]).optional(), "team_id": z.number().int().optional(), "servers_count": 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 } },
|
|
67
|
-
{ name: "coolify_create_cloud_token", method: "POST", path: "/cloud-tokens", description: "Create Cloud Provider Token", inputSchema: z.object({ body: z.object({ "provider": z.enum(["hetzner", "digitalocean", "vultr"]).describe("The cloud provider."), "token": z.string().describe("The API token for the cloud provider."), "name": z.string().describe("A friendly name for the token.") }) }), responseSchema: z.object({ "uuid": z.string().describe("The UUID of the token.").optional() }), responseKind: "json", parameters: [], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
|
|
68
|
-
{ name: "coolify_get_cloud_token_by_uuid", method: "GET", path: "/cloud-tokens/{uuid}", description: "Get Cloud Provider Token", inputSchema: z.object({ "uuid": z.string() }), responseSchema: z.object({ "uuid": z.string().optional(), "name": z.string().optional(), "provider": z.string().optional(), "team_id": z.number().int().optional(), "servers_count": 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 } },
|
|
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 } },
|
|
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 } },
|
|
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 } },
|
|
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 } },
|
|
73
|
-
{ name: "coolify_get_database_backups_by_uuid", method: "GET", path: "/databases/{uuid}/backups", description: "Get", 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 } },
|
|
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().optional(), "message": z.string().optional() }), responseKind: "json", parameters: [{ location: "path", name: "uuid" }], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
|
|
75
|
-
{ name: "coolify_get_database_by_uuid", method: "GET", path: "/databases/{uuid}", description: "Get", inputSchema: z.object({ "uuid": z.string() }), responseSchema: z.record(z.string(), z.any()), responseKind: "json", parameters: [{ location: "path", name: "uuid" }], annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false } },
|
|
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 } },
|
|
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.union([z.record(z.string(), z.any()), z.null()]), responseKind: "json", parameters: [{ location: "path", name: "uuid" }], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
|
|
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 } },
|
|
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.object({ "message": z.string() }), responseKind: "json", parameters: [{ location: "path", name: "uuid" }, { location: "path", name: "scheduled_backup_uuid" }], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
|
|
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.").optional(), "environment_uuid": z.string().describe("UUID of the environment. You need to provide at least one of environment_name or environment_uuid.").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(), "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() }).refine((body) => typeof body["environment_name"] === "string" && body["environment_name"].trim().length > 0 || typeof body["environment_uuid"] === "string" && body["environment_uuid"].trim().length > 0, { message: "At least one of environment_name, environment_uuid is required" }) }), responseSchema: z.union([z.record(z.string(), z.any()), z.null()]), responseKind: "json", parameters: [], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
|
|
81
|
-
{ name: "coolify_create_database_clickhouse", method: "POST", path: "/databases/clickhouse", description: "Create (Clickhouse)", 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.").optional(), "environment_uuid": z.string().describe("UUID of the environment. You need to provide at least one of environment_name or environment_uuid.").optional(), "destination_uuid": z.string().describe("UUID of the destination if the server has multiple destinations").optional(), "clickhouse_admin_user": z.string().describe("Clickhouse admin user").optional(), "clickhouse_admin_password": z.string().describe("Clickhouse admin password").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() }).refine((body) => typeof body["environment_name"] === "string" && body["environment_name"].trim().length > 0 || typeof body["environment_uuid"] === "string" && body["environment_uuid"].trim().length > 0, { message: "At least one of environment_name, environment_uuid is required" }) }), responseSchema: z.union([z.record(z.string(), z.any()), z.null()]), responseKind: "json", parameters: [], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
|
|
82
|
-
{ name: "coolify_create_database_dragonfly", method: "POST", path: "/databases/dragonfly", description: "Create (DragonFly)", 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.").optional(), "environment_uuid": z.string().describe("UUID of the environment. You need to provide at least one of environment_name or environment_uuid.").optional(), "destination_uuid": z.string().describe("UUID of the destination if the server has multiple destinations").optional(), "dragonfly_password": z.string().describe("DragonFly password").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() }).refine((body) => typeof body["environment_name"] === "string" && body["environment_name"].trim().length > 0 || typeof body["environment_uuid"] === "string" && body["environment_uuid"].trim().length > 0, { message: "At least one of environment_name, environment_uuid is required" }) }), responseSchema: z.union([z.record(z.string(), z.any()), z.null()]), responseKind: "json", parameters: [], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
|
|
83
|
-
{ name: "coolify_create_database_redis", method: "POST", path: "/databases/redis", description: "Create (Redis)", 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.").optional(), "environment_uuid": z.string().describe("UUID of the environment. You need to provide at least one of environment_name or environment_uuid.").optional(), "destination_uuid": z.string().describe("UUID of the destination if the server has multiple destinations").optional(), "redis_password": z.string().describe("Redis password").optional(), "redis_conf": z.string().describe("Redis conf").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() }).refine((body) => typeof body["environment_name"] === "string" && body["environment_name"].trim().length > 0 || typeof body["environment_uuid"] === "string" && body["environment_uuid"].trim().length > 0, { message: "At least one of environment_name, environment_uuid is required" }) }), responseSchema: z.union([z.record(z.string(), z.any()), z.null()]), responseKind: "json", parameters: [], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
|
|
84
|
-
{ name: "coolify_create_database_keydb", method: "POST", path: "/databases/keydb", description: "Create (KeyDB)", 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.").optional(), "environment_uuid": z.string().describe("UUID of the environment. You need to provide at least one of environment_name or environment_uuid.").optional(), "destination_uuid": z.string().describe("UUID of the destination if the server has multiple destinations").optional(), "keydb_password": z.string().describe("KeyDB password").optional(), "keydb_conf": z.string().describe("KeyDB conf").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() }).refine((body) => typeof body["environment_name"] === "string" && body["environment_name"].trim().length > 0 || typeof body["environment_uuid"] === "string" && body["environment_uuid"].trim().length > 0, { message: "At least one of environment_name, environment_uuid is required" }) }), responseSchema: z.union([z.record(z.string(), z.any()), z.null()]), responseKind: "json", parameters: [], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
|
|
85
|
-
{ name: "coolify_create_database_mariadb", method: "POST", path: "/databases/mariadb", description: "Create (MariaDB)", 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.").optional(), "environment_uuid": z.string().describe("UUID of the environment. You need to provide at least one of environment_name or environment_uuid.").optional(), "destination_uuid": z.string().describe("UUID of the destination if the server has multiple destinations").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(), "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() }).refine((body) => typeof body["environment_name"] === "string" && body["environment_name"].trim().length > 0 || typeof body["environment_uuid"] === "string" && body["environment_uuid"].trim().length > 0, { message: "At least one of environment_name, environment_uuid is required" }) }), responseSchema: z.union([z.record(z.string(), z.any()), z.null()]), responseKind: "json", parameters: [], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
|
|
86
|
-
{ name: "coolify_create_database_mysql", method: "POST", path: "/databases/mysql", description: "Create (MySQL)", 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.").optional(), "environment_uuid": z.string().describe("UUID of the environment. You need to provide at least one of environment_name or environment_uuid.").optional(), "destination_uuid": z.string().describe("UUID of the destination if the server has multiple destinations").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(), "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() }).refine((body) => typeof body["environment_name"] === "string" && body["environment_name"].trim().length > 0 || typeof body["environment_uuid"] === "string" && body["environment_uuid"].trim().length > 0, { message: "At least one of environment_name, environment_uuid is required" }) }), responseSchema: z.union([z.record(z.string(), z.any()), z.null()]), responseKind: "json", parameters: [], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
|
|
87
|
-
{ name: "coolify_create_database_mongodb", method: "POST", path: "/databases/mongodb", description: "Create (MongoDB)", 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.").optional(), "environment_uuid": z.string().describe("UUID of the environment. You need to provide at least one of environment_name or environment_uuid.").optional(), "destination_uuid": z.string().describe("UUID of the destination if the server has multiple destinations").optional(), "mongo_conf": z.string().describe("MongoDB conf").optional(), "mongo_initdb_root_username": z.string().describe("MongoDB initdb root username").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() }).refine((body) => typeof body["environment_name"] === "string" && body["environment_name"].trim().length > 0 || typeof body["environment_uuid"] === "string" && body["environment_uuid"].trim().length > 0, { message: "At least one of environment_name, environment_uuid is required" }) }), responseSchema: z.union([z.record(z.string(), z.any()), z.null()]), responseKind: "json", parameters: [], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
|
|
88
|
-
{ name: "coolify_get_database_logs_by_uuid", method: "GET", path: "/databases/{uuid}/logs", description: "Get database 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 } },
|
|
89
|
-
{ name: "coolify_delete_backup_execution_by_uuid", method: "DELETE", path: "/databases/{uuid}/backups/{scheduled_backup_uuid}/executions/{execution_uuid}", description: "Delete backup execution", inputSchema: z.object({ "uuid": z.string(), "scheduled_backup_uuid": z.string(), "execution_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: "path", name: "execution_uuid" }, { location: "query", name: "delete_s3" }], annotations: { readOnlyHint: false, destructiveHint: true, idempotentHint: true, openWorldHint: false } },
|
|
90
|
-
{ name: "coolify_list_backup_executions", method: "GET", path: "/databases/{uuid}/backups/{scheduled_backup_uuid}/executions", description: "List backup executions", inputSchema: z.object({ "uuid": z.string(), "scheduled_backup_uuid": z.string() }), responseSchema: z.object({ "executions": z.array(z.object({ "uuid": z.string().optional(), "filename": z.string().optional(), "size": z.number().int().optional(), "created_at": z.string().optional(), "message": z.string().optional(), "status": z.string().optional() })).optional() }), responseKind: "json", parameters: [{ location: "path", name: "uuid" }, { location: "path", name: "scheduled_backup_uuid" }], annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false } },
|
|
91
|
-
{ name: "coolify_move_database_by_uuid", method: "POST", path: "/databases/{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 } },
|
|
92
|
-
{ name: "coolify_migrate_database_by_uuid", method: "POST", path: "/databases/{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.record(z.string(), z.any()), responseKind: "json", parameters: [{ location: "path", name: "uuid" }], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
|
|
93
|
-
{ name: "coolify_start_database_by_uuid", method: "POST", path: "/databases/{uuid}/start", description: "Start", inputSchema: z.object({ "uuid": z.string() }), responseSchema: z.object({ "message": z.string().optional() }), responseKind: "json", parameters: [{ location: "path", name: "uuid" }], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
|
|
94
|
-
{ name: "coolify_stop_database_by_uuid", method: "POST", path: "/databases/{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 } },
|
|
95
|
-
{ name: "coolify_restart_database_by_uuid", method: "POST", path: "/databases/{uuid}/restart", description: "Restart", inputSchema: z.object({ "uuid": z.string() }), responseSchema: z.object({ "message": z.string().optional() }), responseKind: "json", parameters: [{ location: "path", name: "uuid" }], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
|
|
96
|
-
{ name: "coolify_list_envs_by_database_uuid", method: "GET", path: "/databases/{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 } },
|
|
97
|
-
{ name: "coolify_create_env_by_database_uuid", method: "POST", path: "/databases/{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_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 } },
|
|
98
|
-
{ name: "coolify_update_env_by_database_uuid", method: "PATCH", path: "/databases/{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_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 } },
|
|
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 } },
|
|
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 } },
|
|
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 } },
|
|
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 } },
|
|
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 } },
|
|
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 } },
|
|
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 } },
|
|
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.object({ "message": z.string() }), responseKind: "json", parameters: [{ location: "path", name: "uuid" }, { location: "path", name: "tag_uuid" }], annotations: { readOnlyHint: false, destructiveHint: true, idempotentHint: true, openWorldHint: false } },
|
|
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.object({ "uuid": z.string(), "message": z.string() }).catchall(z.any()), responseKind: "json", parameters: [{ location: "path", name: "uuid" }], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, 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.union([z.string(), z.null()]).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.union([z.string(), z.null()]).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 } },
|
|
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 } },
|
|
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 } },
|
|
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.union([z.string(), z.null()]).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 } },
|
|
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 } },
|
|
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 } },
|
|
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 } },
|
|
117
|
-
{ name: "coolify_get_destination_by_uuid", method: "GET", path: "/destinations/{uuid}", description: "Get destination", inputSchema: z.object({ "uuid": z.string() }), 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: "uuid" }], annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false } },
|
|
118
|
-
{ name: "coolify_delete_destination_by_uuid", method: "DELETE", path: "/destinations/{uuid}", description: "Delete destination", 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 } },
|
|
119
|
-
{ name: "coolify_update_destination_by_uuid", method: "PATCH", path: "/destinations/{uuid}", description: "Update destination", inputSchema: z.object({ "uuid": z.string(), body: z.object({ "name": z.string().max(255).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: "uuid" }], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
|
|
120
|
-
{ name: "coolify_get_digitalocean_regions", method: "GET", path: "/digitalocean/regions", description: "Get DigitalOcean regions", inputSchema: z.object({ "cloud_provider_token_uuid": z.string().regex(new RegExp("\\S")).min(1).optional(), "cloud_provider_token_id": z.string().regex(new RegExp("\\S")).min(1).optional() }).refine((input) => typeof input["cloud_provider_token_uuid"] === "string" && input["cloud_provider_token_uuid"].trim().length > 0 || typeof input["cloud_provider_token_id"] === "string" && input["cloud_provider_token_id"].trim().length > 0, { message: "At least one of cloud_provider_token_uuid, cloud_provider_token_id is required" }), responseSchema: z.array(z.record(z.string(), z.any())), responseKind: "json", parameters: [{ location: "query", name: "cloud_provider_token_uuid" }, { location: "query", name: "cloud_provider_token_id" }], annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false } },
|
|
121
|
-
{ name: "coolify_get_digitalocean_sizes", method: "GET", path: "/digitalocean/sizes", description: "Get DigitalOcean sizes", inputSchema: z.object({ "cloud_provider_token_uuid": z.string().regex(new RegExp("\\S")).min(1).optional(), "cloud_provider_token_id": z.string().regex(new RegExp("\\S")).min(1).optional() }).refine((input) => typeof input["cloud_provider_token_uuid"] === "string" && input["cloud_provider_token_uuid"].trim().length > 0 || typeof input["cloud_provider_token_id"] === "string" && input["cloud_provider_token_id"].trim().length > 0, { message: "At least one of cloud_provider_token_uuid, cloud_provider_token_id is required" }), responseSchema: z.array(z.record(z.string(), z.any())), responseKind: "json", parameters: [{ location: "query", name: "cloud_provider_token_uuid" }, { location: "query", name: "cloud_provider_token_id" }], annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false } },
|
|
122
|
-
{ name: "coolify_get_digitalocean_images", method: "GET", path: "/digitalocean/images", description: "Get DigitalOcean images", inputSchema: z.object({ "cloud_provider_token_uuid": z.string().regex(new RegExp("\\S")).min(1).optional(), "cloud_provider_token_id": z.string().regex(new RegExp("\\S")).min(1).optional() }).refine((input) => typeof input["cloud_provider_token_uuid"] === "string" && input["cloud_provider_token_uuid"].trim().length > 0 || typeof input["cloud_provider_token_id"] === "string" && input["cloud_provider_token_id"].trim().length > 0, { message: "At least one of cloud_provider_token_uuid, cloud_provider_token_id is required" }), responseSchema: z.array(z.record(z.string(), z.any())), responseKind: "json", parameters: [{ location: "query", name: "cloud_provider_token_uuid" }, { location: "query", name: "cloud_provider_token_id" }], annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false } },
|
|
123
|
-
{ name: "coolify_get_digitalocean_ssh_keys", method: "GET", path: "/digitalocean/ssh-keys", description: "Get DigitalOcean SSH keys", inputSchema: z.object({ "cloud_provider_token_uuid": z.string().regex(new RegExp("\\S")).min(1).optional(), "cloud_provider_token_id": z.string().regex(new RegExp("\\S")).min(1).optional() }).refine((input) => typeof input["cloud_provider_token_uuid"] === "string" && input["cloud_provider_token_uuid"].trim().length > 0 || typeof input["cloud_provider_token_id"] === "string" && input["cloud_provider_token_id"].trim().length > 0, { message: "At least one of cloud_provider_token_uuid, cloud_provider_token_id is required" }), responseSchema: z.array(z.record(z.string(), z.any())), responseKind: "json", parameters: [{ location: "query", name: "cloud_provider_token_uuid" }, { location: "query", name: "cloud_provider_token_id" }], annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false } },
|
|
124
|
-
{ name: "coolify_create_digitalocean_server", method: "POST", path: "/servers/digitalocean", description: "Create a server on DigitalOcean", inputSchema: z.object({ body: z.object({ "cloud_provider_token_uuid": z.string().regex(new RegExp("\\S")).min(1).describe("Cloud provider token UUID. Required if cloud_provider_token_id is not provided.").optional(), "cloud_provider_token_id": z.string().regex(new RegExp("\\S")).min(1).describe("Deprecated: Use cloud_provider_token_uuid instead. Cloud provider token UUID.").optional(), "region": z.string().min(1), "size": z.string().min(1), "image": z.union([z.string().min(1), z.number().int()]).describe("DigitalOcean image slug or ID."), "name": z.union([z.string().regex(new RegExp("^$|^[A-Za-z0-9](?:[A-Za-z0-9-]{0,61}[A-Za-z0-9])?(?:\\.[A-Za-z0-9](?:[A-Za-z0-9-]{0,61}[A-Za-z0-9])?)*$")).max(253), z.null()]).optional(), "private_key_uuid": z.string().min(1), "enable_ipv6": z.union([z.boolean(), z.null()]).optional(), "monitoring": z.union([z.boolean(), z.null()]).optional(), "digitalocean_ssh_key_ids": z.union([z.array(z.number().int()), z.null()]).optional(), "cloud_init_script": z.union([z.string().describe("Valid cloud-init YAML or a bash script beginning with #!."), z.null()]).optional(), "instant_validate": z.union([z.boolean(), z.null()]).optional() }).refine((body) => typeof body["cloud_provider_token_uuid"] === "string" && body["cloud_provider_token_uuid"].trim().length > 0 || typeof body["cloud_provider_token_id"] === "string" && body["cloud_provider_token_id"].trim().length > 0, { message: "At least one of cloud_provider_token_uuid, cloud_provider_token_id is required" }) }), responseSchema: z.object({ "uuid": z.string(), "digitalocean_droplet_id": z.number().int(), "ip": z.union([z.string(), z.null()]) }).catchall(z.any()), responseKind: "json", parameters: [], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
|
|
125
|
-
{ name: "coolify_list_github_apps", method: "GET", path: "/github-apps", description: "List", inputSchema: z.object({}), responseSchema: z.array(z.object({ "id": z.number().int().optional(), "uuid": z.string().optional(), "name": z.string().optional(), "organization": z.union([z.string(), z.null()]).optional(), "api_url": z.string().optional(), "html_url": z.string().optional(), "custom_user": z.string().optional(), "custom_port": z.number().int().optional(), "app_id": z.union([z.number().int(), z.null()]).optional(), "installation_id": z.union([z.number().int(), z.null()]).optional(), "client_id": z.union([z.string(), z.null()]).optional(), "private_key_id": z.string().optional(), "is_system_wide": z.boolean().optional(), "is_public": z.boolean().optional(), "team_id": z.number().int().optional(), "type": z.string().optional() })), responseKind: "json", parameters: [], annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false } },
|
|
126
|
-
{ name: "coolify_create_github_app", method: "POST", path: "/github-apps", description: "Create GitHub App", inputSchema: z.object({ body: z.object({ "name": z.string().describe("Name of the GitHub app."), "organization": z.union([z.string().describe("Organization to associate the app with."), z.null()]).optional(), "api_url": z.string().describe("API URL for the GitHub app (e.g., https://api.github.com).").optional(), "html_url": z.string().describe("HTML URL for the GitHub app (e.g., https://github.com)."), "custom_user": z.string().describe("Custom user for SSH access (default: git).").optional(), "custom_port": z.number().int().describe("Custom port for SSH access (default: 22).").optional(), "app_id": z.number().int().describe("GitHub App ID from GitHub."), "installation_id": z.number().int().describe("GitHub Installation ID."), "client_id": z.string().describe("GitHub OAuth App Client ID."), "client_secret": z.string().describe("GitHub OAuth App Client Secret."), "webhook_secret": z.string().describe("Webhook secret for GitHub webhooks.").optional(), "private_key_uuid": z.string().describe("UUID of an existing private key for GitHub App authentication."), "is_system_wide": z.boolean().describe("Is this app system-wide (cloud only).").optional() }) }), responseSchema: z.object({ "id": z.number().int().optional(), "uuid": z.string().optional(), "name": z.string().optional(), "organization": z.union([z.string(), z.null()]).optional(), "api_url": z.string().optional(), "html_url": z.string().optional(), "custom_user": z.string().optional(), "custom_port": z.number().int().optional(), "app_id": z.number().int().optional(), "installation_id": z.number().int().optional(), "client_id": z.string().optional(), "private_key_id": z.number().int().optional(), "is_system_wide": z.boolean().optional(), "team_id": z.number().int().optional() }), responseKind: "json", parameters: [], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
|
|
127
|
-
{ name: "coolify_load_repositories", method: "GET", path: "/github-apps/{github_app_id}/repositories", description: "Load Repositories for a GitHub App", inputSchema: z.object({ "github_app_id": z.number().int() }), responseSchema: z.object({ "repositories": z.array(z.record(z.string(), z.any())).optional() }), responseKind: "json", parameters: [{ location: "path", name: "github_app_id" }], annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false } },
|
|
128
|
-
{ name: "coolify_load_branches", method: "GET", path: "/github-apps/{github_app_id}/repositories/{owner}/{repo}/branches", description: "Load Branches for a GitHub Repository", inputSchema: z.object({ "github_app_id": z.number().int(), "owner": z.string(), "repo": z.string() }), responseSchema: z.object({ "branches": z.array(z.record(z.string(), z.any())).optional() }), responseKind: "json", parameters: [{ location: "path", name: "github_app_id" }, { location: "path", name: "owner" }, { location: "path", name: "repo" }], annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false } },
|
|
129
|
-
{ name: "coolify_deletegithubapp", method: "DELETE", path: "/github-apps/{github_app_id}", description: "Delete GitHub App", inputSchema: z.object({ "github_app_id": z.number().int() }), responseSchema: z.object({ "message": z.string().optional() }), responseKind: "json", parameters: [{ location: "path", name: "github_app_id" }], annotations: { readOnlyHint: false, destructiveHint: true, idempotentHint: true, openWorldHint: false } },
|
|
130
|
-
{ name: "coolify_updategithubapp", method: "PATCH", path: "/github-apps/{github_app_id}", description: "Update GitHub App", inputSchema: z.object({ "github_app_id": z.number().int(), body: z.object({ "name": z.string().describe("GitHub App name").optional(), "organization": z.union([z.string().describe("GitHub organization"), z.null()]).optional(), "api_url": z.string().describe("GitHub API URL").optional(), "html_url": z.string().describe("GitHub HTML URL").optional(), "custom_user": z.string().describe("Custom user for SSH").optional(), "custom_port": z.number().int().describe("Custom port for SSH").optional(), "app_id": z.number().int().describe("GitHub App ID").optional(), "installation_id": z.number().int().describe("GitHub Installation ID").optional(), "client_id": z.string().describe("GitHub Client ID").optional(), "client_secret": z.string().describe("GitHub Client Secret").optional(), "webhook_secret": z.string().describe("GitHub Webhook Secret").optional(), "private_key_uuid": z.string().describe("Private key UUID").optional(), "is_system_wide": z.boolean().describe("Is system wide (non-cloud instances only)").optional() }) }), responseSchema: z.object({ "message": z.string().optional(), "data": z.record(z.string(), z.any()).describe("Updated GitHub app data").optional() }), responseKind: "json", parameters: [{ location: "path", name: "github_app_id" }], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
|
|
131
|
-
{ name: "coolify_list_gitlab_apps", method: "GET", path: "/gitlab-apps", description: "List", inputSchema: z.object({}), responseSchema: z.array(z.object({ "id": z.number().int().optional(), "uuid": z.string().optional(), "name": z.string().optional(), "api_url": z.string().optional(), "html_url": z.string().optional(), "custom_user": z.string().optional(), "custom_port": z.number().int().optional(), "client_id": z.union([z.string(), z.null()]).optional(), "group_name": z.union([z.string(), z.null()]).optional(), "redirect_uri": z.union([z.string(), z.null()]).optional(), "is_system_wide": z.boolean().optional(), "is_public": z.boolean().optional(), "team_id": z.number().int().optional() })), responseKind: "json", parameters: [], annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false } },
|
|
132
|
-
{ name: "coolify_create_gitlab_app", method: "POST", path: "/gitlab-apps", description: "Create GitLab App", inputSchema: z.object({ body: z.object({ "name": z.string().describe("Name of the GitLab app."), "html_url": z.string().describe("GitLab instance URL (e.g., https://gitlab.com)."), "api_url": z.string().describe("GitLab API URL (defaults to {html_url}/api/v4).").optional(), "custom_user": z.string().describe("Custom user for SSH access (default: git).").optional(), "custom_port": z.number().int().describe("Custom port for SSH access (default: 22).").optional(), "group_name": z.union([z.string().describe("Optional comma-separated group names to filter repositories."), z.null()]).optional(), "client_id": z.union([z.string().describe("GitLab OAuth Application ID."), z.null()]).optional(), "client_secret": z.union([z.string().describe("GitLab OAuth Application Secret."), z.null()]).optional(), "webhook_token": z.union([z.string().describe("Webhook secret token (auto-generated when omitted)."), z.null()]).optional(), "redirect_uri": z.union([z.string().describe("OAuth redirect URI registered in GitLab."), z.null()]).optional(), "is_system_wide": z.boolean().describe("Is this app system-wide (non-cloud instances only).").optional() }) }), responseSchema: z.object({ "id": z.number().int().optional(), "uuid": z.string().optional(), "name": z.string().optional(), "api_url": z.string().optional(), "html_url": z.string().optional(), "custom_user": z.string().optional(), "custom_port": z.number().int().optional(), "client_id": z.union([z.string(), z.null()]).optional(), "group_name": z.union([z.string(), z.null()]).optional(), "redirect_uri": z.union([z.string(), z.null()]).optional(), "is_system_wide": z.boolean().optional(), "team_id": z.number().int().optional() }), responseKind: "json", parameters: [], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
|
|
133
|
-
{ name: "coolify_deletegitlabapp", method: "DELETE", path: "/gitlab-apps/{gitlab_app_id}", description: "Delete GitLab App", inputSchema: z.object({ "gitlab_app_id": z.number().int() }), responseSchema: z.object({ "message": z.string().optional() }), responseKind: "json", parameters: [{ location: "path", name: "gitlab_app_id" }], annotations: { readOnlyHint: false, destructiveHint: true, idempotentHint: true, openWorldHint: false } },
|
|
134
|
-
{ name: "coolify_updategitlabapp", method: "PATCH", path: "/gitlab-apps/{gitlab_app_id}", description: "Update GitLab App", inputSchema: z.object({ "gitlab_app_id": z.number().int(), body: z.object({ "name": z.string().describe("GitLab App name").optional(), "html_url": z.string().describe("GitLab HTML URL").optional(), "api_url": z.string().describe("GitLab API URL").optional(), "custom_user": z.string().describe("Custom user for SSH").optional(), "custom_port": z.number().int().describe("Custom port for SSH").optional(), "group_name": z.union([z.string().describe("Optional group filter"), z.null()]).optional(), "client_id": z.union([z.string().describe("OAuth Application ID"), z.null()]).optional(), "client_secret": z.union([z.string().describe("OAuth Application Secret"), z.null()]).optional(), "webhook_token": z.union([z.string().describe("Webhook secret token"), z.null()]).optional(), "redirect_uri": z.union([z.string().describe("OAuth redirect URI"), z.null()]).optional(), "is_system_wide": z.boolean().describe("Is system wide (non-cloud instances only)").optional() }) }), responseSchema: z.object({ "message": z.string().optional(), "data": z.record(z.string(), z.any()).describe("Updated GitLab app data").optional() }), responseKind: "json", parameters: [{ location: "path", name: "gitlab_app_id" }], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
|
|
135
|
-
{ name: "coolify_get_hetzner_locations", method: "GET", path: "/hetzner/locations", description: "Get Hetzner Locations", inputSchema: z.object({ "cloud_provider_token_uuid": z.string().regex(new RegExp("\\S")).min(1).optional(), "cloud_provider_token_id": z.string().regex(new RegExp("\\S")).min(1).optional() }).refine((input) => typeof input["cloud_provider_token_uuid"] === "string" && input["cloud_provider_token_uuid"].trim().length > 0 || typeof input["cloud_provider_token_id"] === "string" && input["cloud_provider_token_id"].trim().length > 0, { message: "At least one of cloud_provider_token_uuid, cloud_provider_token_id is required" }), responseSchema: z.array(z.record(z.string(), z.any())), responseKind: "json", parameters: [{ location: "query", name: "cloud_provider_token_uuid" }, { location: "query", name: "cloud_provider_token_id" }], annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false } },
|
|
136
|
-
{ name: "coolify_get_hetzner_server_types", method: "GET", path: "/hetzner/server-types", description: "Get Hetzner Server Types", inputSchema: z.object({ "cloud_provider_token_uuid": z.string().regex(new RegExp("\\S")).min(1).optional(), "cloud_provider_token_id": z.string().regex(new RegExp("\\S")).min(1).optional() }).refine((input) => typeof input["cloud_provider_token_uuid"] === "string" && input["cloud_provider_token_uuid"].trim().length > 0 || typeof input["cloud_provider_token_id"] === "string" && input["cloud_provider_token_id"].trim().length > 0, { message: "At least one of cloud_provider_token_uuid, cloud_provider_token_id is required" }), responseSchema: z.array(z.record(z.string(), z.any())), responseKind: "json", parameters: [{ location: "query", name: "cloud_provider_token_uuid" }, { location: "query", name: "cloud_provider_token_id" }], annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false } },
|
|
137
|
-
{ name: "coolify_get_hetzner_images", method: "GET", path: "/hetzner/images", description: "Get Hetzner Images", inputSchema: z.object({ "cloud_provider_token_uuid": z.string().regex(new RegExp("\\S")).min(1).optional(), "cloud_provider_token_id": z.string().regex(new RegExp("\\S")).min(1).optional() }).refine((input) => typeof input["cloud_provider_token_uuid"] === "string" && input["cloud_provider_token_uuid"].trim().length > 0 || typeof input["cloud_provider_token_id"] === "string" && input["cloud_provider_token_id"].trim().length > 0, { message: "At least one of cloud_provider_token_uuid, cloud_provider_token_id is required" }), responseSchema: z.array(z.record(z.string(), z.any())), responseKind: "json", parameters: [{ location: "query", name: "cloud_provider_token_uuid" }, { location: "query", name: "cloud_provider_token_id" }], annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false } },
|
|
138
|
-
{ name: "coolify_get_hetzner_ssh_keys", method: "GET", path: "/hetzner/ssh-keys", description: "Get Hetzner SSH Keys", inputSchema: z.object({ "cloud_provider_token_uuid": z.string().regex(new RegExp("\\S")).min(1).optional(), "cloud_provider_token_id": z.string().regex(new RegExp("\\S")).min(1).optional() }).refine((input) => typeof input["cloud_provider_token_uuid"] === "string" && input["cloud_provider_token_uuid"].trim().length > 0 || typeof input["cloud_provider_token_id"] === "string" && input["cloud_provider_token_id"].trim().length > 0, { message: "At least one of cloud_provider_token_uuid, cloud_provider_token_id is required" }), responseSchema: z.array(z.record(z.string(), z.any())), responseKind: "json", parameters: [{ location: "query", name: "cloud_provider_token_uuid" }, { location: "query", name: "cloud_provider_token_id" }], annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false } },
|
|
139
|
-
{ name: "coolify_get_hetzner_firewalls", method: "GET", path: "/hetzner/firewalls", description: "Get Hetzner Firewalls", inputSchema: z.object({ "cloud_provider_token_uuid": z.string().regex(new RegExp("\\S")).min(1).optional(), "cloud_provider_token_id": z.string().regex(new RegExp("\\S")).min(1).optional() }).refine((input) => typeof input["cloud_provider_token_uuid"] === "string" && input["cloud_provider_token_uuid"].trim().length > 0 || typeof input["cloud_provider_token_id"] === "string" && input["cloud_provider_token_id"].trim().length > 0, { message: "At least one of cloud_provider_token_uuid, cloud_provider_token_id is required" }), responseSchema: z.array(z.record(z.string(), z.any())), responseKind: "json", parameters: [{ location: "query", name: "cloud_provider_token_uuid" }, { location: "query", name: "cloud_provider_token_id" }], annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false } },
|
|
140
|
-
{ name: "coolify_get_hetzner_networks", method: "GET", path: "/hetzner/networks", description: "Get Hetzner Networks", inputSchema: z.object({ "cloud_provider_token_uuid": z.string().regex(new RegExp("\\S")).min(1).optional(), "cloud_provider_token_id": z.string().regex(new RegExp("\\S")).min(1).optional() }).refine((input) => typeof input["cloud_provider_token_uuid"] === "string" && input["cloud_provider_token_uuid"].trim().length > 0 || typeof input["cloud_provider_token_id"] === "string" && input["cloud_provider_token_id"].trim().length > 0, { message: "At least one of cloud_provider_token_uuid, cloud_provider_token_id is required" }), responseSchema: z.array(z.record(z.string(), z.any())), responseKind: "json", parameters: [{ location: "query", name: "cloud_provider_token_uuid" }, { location: "query", name: "cloud_provider_token_id" }], annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false } },
|
|
141
|
-
{ name: "coolify_create_hetzner_server", method: "POST", path: "/servers/hetzner", description: "Create Hetzner Server", inputSchema: z.object({ body: z.object({ "cloud_provider_token_uuid": z.string().regex(new RegExp("\\S")).min(1).describe("Cloud provider token UUID. Required if cloud_provider_token_id is not provided.").optional(), "cloud_provider_token_id": z.string().regex(new RegExp("\\S")).min(1).describe("Deprecated: Use cloud_provider_token_uuid instead. Cloud provider token UUID.").optional(), "location": z.string().min(1).describe("Hetzner location name"), "server_type": z.string().min(1).describe("Hetzner server type name"), "image": z.number().int().describe("Hetzner image ID"), "name": z.union([z.string().regex(new RegExp("^$|^[A-Za-z0-9](?:[A-Za-z0-9-]{0,61}[A-Za-z0-9])?(?:\\.[A-Za-z0-9](?:[A-Za-z0-9-]{0,61}[A-Za-z0-9])?)*$")).max(253).describe("Server name (auto-generated if not provided)"), z.null()]).optional(), "private_key_uuid": z.string().min(1).describe("Private key UUID"), "enable_ipv4": z.union([z.boolean().describe("Enable IPv4 (default: true)"), z.null()]).optional(), "enable_ipv6": z.union([z.boolean().describe("Enable IPv6 (default: true)"), z.null()]).optional(), "enable_backups": z.union([z.boolean().describe("Enable Hetzner server backups after creation (adds 20% to the monthly server fee)"), z.null()]).optional(), "hetzner_ssh_key_ids": z.union([z.array(z.number().int()).describe("Additional Hetzner SSH key IDs"), z.null()]).optional(), "hetzner_firewall_ids": z.union([z.array(z.number().int()).describe("Existing Hetzner firewall IDs to apply during server creation"), z.null()]).optional(), "hetzner_network_ids": z.union([z.array(z.number().int()).describe("Existing Hetzner network IDs to attach during server creation"), z.null()]).optional(), "cloud_init_script": z.union([z.string().describe("Valid cloud-init YAML or a bash script beginning with #!."), z.null()]).optional(), "instant_validate": z.union([z.boolean().describe("Validate server immediately after creation"), z.null()]).optional() }).refine((body) => typeof body["cloud_provider_token_uuid"] === "string" && body["cloud_provider_token_uuid"].trim().length > 0 || typeof body["cloud_provider_token_id"] === "string" && body["cloud_provider_token_id"].trim().length > 0, { message: "At least one of cloud_provider_token_uuid, cloud_provider_token_id is required" }).refine((body) => !(body["enable_ipv4"] === false && body["enable_ipv6"] === false), { message: "Enable at least one public IP protocol." }) }), responseSchema: z.object({ "uuid": z.string().describe("The UUID of the server."), "hetzner_server_id": z.number().int().describe("The Hetzner server ID."), "ip": z.union([z.string().describe("The server IP address."), z.null()]) }), responseKind: "json", parameters: [], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
|
|
142
|
-
{ name: "coolify_get_current_team_email_notifications", method: "GET", path: "/notifications/email", description: "Get email notification settings", inputSchema: z.object({}), responseSchema: z.record(z.string(), z.any()), responseKind: "json", parameters: [], annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false } },
|
|
143
|
-
{ name: "coolify_update_current_team_email_notifications", method: "PATCH", path: "/notifications/email", description: "Update email notification settings", inputSchema: z.object({}), responseSchema: z.record(z.string(), z.any()), responseKind: "json", parameters: [], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
|
|
144
|
-
{ name: "coolify_get_current_team_discord_notifications", method: "GET", path: "/notifications/discord", description: "Get Discord notification settings", inputSchema: z.object({}), responseSchema: z.record(z.string(), z.any()), responseKind: "json", parameters: [], annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false } },
|
|
145
|
-
{ name: "coolify_update_current_team_discord_notifications", method: "PATCH", path: "/notifications/discord", description: "Update Discord notification settings", inputSchema: z.object({}), responseSchema: z.record(z.string(), z.any()), responseKind: "json", parameters: [], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
|
|
146
|
-
{ name: "coolify_get_current_team_slack_notifications", method: "GET", path: "/notifications/slack", description: "Get Slack notification settings", inputSchema: z.object({}), responseSchema: z.record(z.string(), z.any()), responseKind: "json", parameters: [], annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false } },
|
|
147
|
-
{ name: "coolify_update_current_team_slack_notifications", method: "PATCH", path: "/notifications/slack", description: "Update Slack notification settings", inputSchema: z.object({}), responseSchema: z.record(z.string(), z.any()), responseKind: "json", parameters: [], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
|
|
148
|
-
{ name: "coolify_get_current_team_telegram_notifications", method: "GET", path: "/notifications/telegram", description: "Get Telegram notification settings", inputSchema: z.object({}), responseSchema: z.record(z.string(), z.any()), responseKind: "json", parameters: [], annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false } },
|
|
149
|
-
{ name: "coolify_update_current_team_telegram_notifications", method: "PATCH", path: "/notifications/telegram", description: "Update Telegram notification settings", inputSchema: z.object({}), responseSchema: z.record(z.string(), z.any()), responseKind: "json", parameters: [], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
|
|
150
|
-
{ name: "coolify_get_current_team_pushover_notifications", method: "GET", path: "/notifications/pushover", description: "Get Pushover notification settings", inputSchema: z.object({}), responseSchema: z.record(z.string(), z.any()), responseKind: "json", parameters: [], annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false } },
|
|
151
|
-
{ name: "coolify_update_current_team_pushover_notifications", method: "PATCH", path: "/notifications/pushover", description: "Update Pushover notification settings", inputSchema: z.object({}), responseSchema: z.record(z.string(), z.any()), responseKind: "json", parameters: [], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
|
|
152
|
-
{ name: "coolify_get_current_team_webhook_notifications", method: "GET", path: "/notifications/webhook", description: "Get webhook notification settings", inputSchema: z.object({}), responseSchema: z.record(z.string(), z.any()), responseKind: "json", parameters: [], annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false } },
|
|
153
|
-
{ name: "coolify_update_current_team_webhook_notifications", method: "PATCH", path: "/notifications/webhook", description: "Update webhook notification settings", inputSchema: z.object({}), responseSchema: z.record(z.string(), z.any()), responseKind: "json", parameters: [], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
|
|
154
|
-
{ name: "coolify_version", method: "GET", path: "/version", description: "Version", inputSchema: z.object({}), responseSchema: z.string(), responseKind: "text", parameters: [], annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false } },
|
|
155
|
-
{ name: "coolify_enable_api", method: "POST", path: "/enable", description: "Enable API", inputSchema: z.object({}), responseSchema: z.object({ "message": z.string().optional() }), responseKind: "json", parameters: [], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
|
|
156
|
-
{ name: "coolify_disable_api", method: "POST", path: "/disable", description: "Disable API", inputSchema: z.object({}), responseSchema: z.object({ "message": z.string().optional() }), responseKind: "json", parameters: [], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
|
|
157
|
-
{ name: "coolify_enable_mcp", method: "POST", path: "/mcp/enable", description: "Enable MCP Server", inputSchema: z.object({}), responseSchema: z.object({ "message": z.string().optional() }), responseKind: "json", parameters: [], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
|
|
158
|
-
{ name: "coolify_disable_mcp", method: "POST", path: "/mcp/disable", description: "Disable MCP Server", inputSchema: z.object({}), responseSchema: z.object({ "message": z.string().optional() }), responseKind: "json", parameters: [], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
|
|
159
|
-
{ name: "coolify_healthcheck", method: "GET", path: "/health", description: "Healthcheck", inputSchema: z.object({}), responseSchema: z.string(), responseKind: "text", parameters: [], annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false } },
|
|
160
|
-
{ name: "coolify_list_projects", method: "GET", path: "/projects", description: "List", inputSchema: z.object({}), responseSchema: z.array(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: [], annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false } },
|
|
161
|
-
{ name: "coolify_create_project", method: "POST", path: "/projects", description: "Create", inputSchema: z.object({ 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().describe("The UUID of the project.").optional() }), responseKind: "json", parameters: [], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
|
|
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 } },
|
|
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 } },
|
|
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 } },
|
|
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 } },
|
|
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 } },
|
|
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 } },
|
|
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 } },
|
|
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 } },
|
|
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 } },
|
|
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 } },
|
|
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 } },
|
|
174
|
-
{ name: "coolify_delete_s3_storage_by_uuid", method: "DELETE", path: "/s3-storages/{uuid}", description: "Delete S3 Storage", 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 } },
|
|
175
|
-
{ name: "coolify_update_s3_storage_by_uuid", method: "PATCH", path: "/s3-storages/{uuid}", description: "Update S3 Storage", inputSchema: z.object({ "uuid": z.string(), body: z.object({ "name": z.string().describe("A friendly name for the storage.").optional(), "description": z.union([z.string().describe("Optional description."), z.null()]).optional(), "endpoint": z.string().describe("S3-compatible endpoint URL.").optional(), "bucket": z.string().describe("S3 bucket name.").optional(), "region": z.string().describe("S3 region.").optional(), "key": z.string().describe("Access key.").optional(), "secret": z.string().describe("Secret key.").optional(), "is_usable": z.boolean().describe("Whether the storage is marked usable.").optional() }) }), responseSchema: z.object({ "uuid": z.string().optional() }), responseKind: "json", parameters: [{ location: "path", name: "uuid" }], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
|
|
176
|
-
{ name: "coolify_validate_s3_storage_by_uuid", method: "POST", path: "/s3-storages/{uuid}/validate", description: "Validate S3 Storage", 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 } },
|
|
177
|
-
{ name: "coolify_list_scheduled_tasks_by_application_uuid", method: "GET", path: "/applications/{uuid}/scheduled-tasks", description: "List Tasks", inputSchema: z.object({ "uuid": z.string() }), responseSchema: z.array(z.object({ "id": z.number().int().describe("The unique identifier of the scheduled task in the database.").optional(), "uuid": z.string().describe("The unique identifier of the scheduled task.").optional(), "enabled": z.boolean().describe("The flag to indicate if the scheduled task is enabled.").optional(), "name": z.string().describe("The name of the scheduled task.").optional(), "command": z.string().describe("The command to execute.").optional(), "frequency": z.string().describe("The frequency of the scheduled task.").optional(), "container": z.union([z.string().describe("The container where the command should be executed."), z.null()]).optional(), "timeout": z.number().int().describe("The timeout of the scheduled task in seconds.").optional(), "created_at": z.string().datetime({ offset: true }).describe("The date and time when the scheduled task was created.").optional(), "updated_at": z.string().datetime({ offset: true }).describe("The date and time when the scheduled task was last updated.").optional() }).describe("Scheduled Task model")), responseKind: "json", parameters: [{ location: "path", name: "uuid" }], annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false } },
|
|
178
|
-
{ name: "coolify_create_scheduled_task_by_application_uuid", method: "POST", path: "/applications/{uuid}/scheduled-tasks", description: "Create Task", inputSchema: z.object({ "uuid": z.string(), body: z.object({ "name": z.string().describe("The name of the scheduled task."), "command": z.string().describe("The command to execute."), "frequency": z.string().describe("The frequency of the scheduled task."), "container": z.union([z.string().describe("The container where the command should be executed."), z.null()]).optional(), "timeout": z.number().int().describe("The timeout of the scheduled task in seconds.").default(300), "enabled": z.boolean().describe("The flag to indicate if the scheduled task is enabled.").default(true) }) }), responseSchema: z.object({ "id": z.number().int().describe("The unique identifier of the scheduled task in the database.").optional(), "uuid": z.string().describe("The unique identifier of the scheduled task.").optional(), "enabled": z.boolean().describe("The flag to indicate if the scheduled task is enabled.").optional(), "name": z.string().describe("The name of the scheduled task.").optional(), "command": z.string().describe("The command to execute.").optional(), "frequency": z.string().describe("The frequency of the scheduled task.").optional(), "container": z.union([z.string().describe("The container where the command should be executed."), z.null()]).optional(), "timeout": z.number().int().describe("The timeout of the scheduled task in seconds.").optional(), "created_at": z.string().datetime({ offset: true }).describe("The date and time when the scheduled task was created.").optional(), "updated_at": z.string().datetime({ offset: true }).describe("The date and time when the scheduled task was last updated.").optional() }).describe("Scheduled Task model"), responseKind: "json", parameters: [{ location: "path", name: "uuid" }], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
|
|
179
|
-
{ name: "coolify_delete_scheduled_task_by_application_uuid", method: "DELETE", path: "/applications/{uuid}/scheduled-tasks/{task_uuid}", description: "Delete Task", inputSchema: z.object({ "uuid": z.string(), "task_uuid": z.string() }), responseSchema: z.object({ "message": z.string().optional() }), responseKind: "json", parameters: [{ location: "path", name: "uuid" }, { location: "path", name: "task_uuid" }], annotations: { readOnlyHint: false, destructiveHint: true, idempotentHint: true, openWorldHint: false } },
|
|
180
|
-
{ name: "coolify_update_scheduled_task_by_application_uuid", method: "PATCH", path: "/applications/{uuid}/scheduled-tasks/{task_uuid}", description: "Update Task", inputSchema: z.object({ "uuid": z.string(), "task_uuid": z.string(), body: z.object({ "name": z.string().describe("The name of the scheduled task.").optional(), "command": z.string().describe("The command to execute.").optional(), "frequency": z.string().describe("The frequency of the scheduled task.").optional(), "container": z.union([z.string().describe("The container where the command should be executed."), z.null()]).optional(), "timeout": z.number().int().describe("The timeout of the scheduled task in seconds.").default(300), "enabled": z.boolean().describe("The flag to indicate if the scheduled task is enabled.").default(true) }) }), responseSchema: z.object({ "id": z.number().int().describe("The unique identifier of the scheduled task in the database.").optional(), "uuid": z.string().describe("The unique identifier of the scheduled task.").optional(), "enabled": z.boolean().describe("The flag to indicate if the scheduled task is enabled.").optional(), "name": z.string().describe("The name of the scheduled task.").optional(), "command": z.string().describe("The command to execute.").optional(), "frequency": z.string().describe("The frequency of the scheduled task.").optional(), "container": z.union([z.string().describe("The container where the command should be executed."), z.null()]).optional(), "timeout": z.number().int().describe("The timeout of the scheduled task in seconds.").optional(), "created_at": z.string().datetime({ offset: true }).describe("The date and time when the scheduled task was created.").optional(), "updated_at": z.string().datetime({ offset: true }).describe("The date and time when the scheduled task was last updated.").optional() }).describe("Scheduled Task model"), responseKind: "json", parameters: [{ location: "path", name: "uuid" }, { location: "path", name: "task_uuid" }], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
|
|
181
|
-
{ name: "coolify_list_scheduled_task_executions_by_application_uuid", method: "GET", path: "/applications/{uuid}/scheduled-tasks/{task_uuid}/executions", description: "List Executions", inputSchema: z.object({ "uuid": z.string(), "task_uuid": z.string() }), responseSchema: z.array(z.object({ "uuid": z.string().describe("The unique identifier of the execution.").optional(), "status": z.enum(["success", "failed", "running"]).describe("The status of the execution.").optional(), "message": z.union([z.string().describe("The output message of the execution."), z.null()]).optional(), "retry_count": z.number().int().describe("The number of retries.").optional(), "duration": z.union([z.number().describe("Duration in seconds."), z.null()]).optional(), "started_at": z.union([z.string().datetime({ offset: true }).describe("When the execution started."), z.null()]).optional(), "finished_at": z.union([z.string().datetime({ offset: true }).describe("When the execution finished."), z.null()]).optional(), "created_at": z.string().datetime({ offset: true }).describe("When the record was created.").optional(), "updated_at": z.string().datetime({ offset: true }).describe("When the record was last updated.").optional() }).describe("Scheduled Task Execution model")), responseKind: "json", parameters: [{ location: "path", name: "uuid" }, { location: "path", name: "task_uuid" }], annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false } },
|
|
182
|
-
{ name: "coolify_list_scheduled_tasks_by_service_uuid", method: "GET", path: "/services/{uuid}/scheduled-tasks", description: "List Tasks", inputSchema: z.object({ "uuid": z.string() }), responseSchema: z.array(z.object({ "id": z.number().int().describe("The unique identifier of the scheduled task in the database.").optional(), "uuid": z.string().describe("The unique identifier of the scheduled task.").optional(), "enabled": z.boolean().describe("The flag to indicate if the scheduled task is enabled.").optional(), "name": z.string().describe("The name of the scheduled task.").optional(), "command": z.string().describe("The command to execute.").optional(), "frequency": z.string().describe("The frequency of the scheduled task.").optional(), "container": z.union([z.string().describe("The container where the command should be executed."), z.null()]).optional(), "timeout": z.number().int().describe("The timeout of the scheduled task in seconds.").optional(), "created_at": z.string().datetime({ offset: true }).describe("The date and time when the scheduled task was created.").optional(), "updated_at": z.string().datetime({ offset: true }).describe("The date and time when the scheduled task was last updated.").optional() }).describe("Scheduled Task model")), responseKind: "json", parameters: [{ location: "path", name: "uuid" }], annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false } },
|
|
183
|
-
{ name: "coolify_create_scheduled_task_by_service_uuid", method: "POST", path: "/services/{uuid}/scheduled-tasks", description: "Create Task", inputSchema: z.object({ "uuid": z.string(), body: z.object({ "name": z.string().describe("The name of the scheduled task."), "command": z.string().describe("The command to execute."), "frequency": z.string().describe("The frequency of the scheduled task."), "container": z.union([z.string().describe("The container where the command should be executed."), z.null()]).optional(), "timeout": z.number().int().describe("The timeout of the scheduled task in seconds.").default(300), "enabled": z.boolean().describe("The flag to indicate if the scheduled task is enabled.").default(true) }) }), responseSchema: z.object({ "id": z.number().int().describe("The unique identifier of the scheduled task in the database.").optional(), "uuid": z.string().describe("The unique identifier of the scheduled task.").optional(), "enabled": z.boolean().describe("The flag to indicate if the scheduled task is enabled.").optional(), "name": z.string().describe("The name of the scheduled task.").optional(), "command": z.string().describe("The command to execute.").optional(), "frequency": z.string().describe("The frequency of the scheduled task.").optional(), "container": z.union([z.string().describe("The container where the command should be executed."), z.null()]).optional(), "timeout": z.number().int().describe("The timeout of the scheduled task in seconds.").optional(), "created_at": z.string().datetime({ offset: true }).describe("The date and time when the scheduled task was created.").optional(), "updated_at": z.string().datetime({ offset: true }).describe("The date and time when the scheduled task was last updated.").optional() }).describe("Scheduled Task model"), responseKind: "json", parameters: [{ location: "path", name: "uuid" }], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
|
|
184
|
-
{ name: "coolify_delete_scheduled_task_by_service_uuid", method: "DELETE", path: "/services/{uuid}/scheduled-tasks/{task_uuid}", description: "Delete Task", inputSchema: z.object({ "uuid": z.string(), "task_uuid": z.string() }), responseSchema: z.object({ "message": z.string().optional() }), responseKind: "json", parameters: [{ location: "path", name: "uuid" }, { location: "path", name: "task_uuid" }], annotations: { readOnlyHint: false, destructiveHint: true, idempotentHint: true, openWorldHint: false } },
|
|
185
|
-
{ name: "coolify_update_scheduled_task_by_service_uuid", method: "PATCH", path: "/services/{uuid}/scheduled-tasks/{task_uuid}", description: "Update Task", inputSchema: z.object({ "uuid": z.string(), "task_uuid": z.string(), body: z.object({ "name": z.string().describe("The name of the scheduled task.").optional(), "command": z.string().describe("The command to execute.").optional(), "frequency": z.string().describe("The frequency of the scheduled task.").optional(), "container": z.union([z.string().describe("The container where the command should be executed."), z.null()]).optional(), "timeout": z.number().int().describe("The timeout of the scheduled task in seconds.").default(300), "enabled": z.boolean().describe("The flag to indicate if the scheduled task is enabled.").default(true) }) }), responseSchema: z.object({ "id": z.number().int().describe("The unique identifier of the scheduled task in the database.").optional(), "uuid": z.string().describe("The unique identifier of the scheduled task.").optional(), "enabled": z.boolean().describe("The flag to indicate if the scheduled task is enabled.").optional(), "name": z.string().describe("The name of the scheduled task.").optional(), "command": z.string().describe("The command to execute.").optional(), "frequency": z.string().describe("The frequency of the scheduled task.").optional(), "container": z.union([z.string().describe("The container where the command should be executed."), z.null()]).optional(), "timeout": z.number().int().describe("The timeout of the scheduled task in seconds.").optional(), "created_at": z.string().datetime({ offset: true }).describe("The date and time when the scheduled task was created.").optional(), "updated_at": z.string().datetime({ offset: true }).describe("The date and time when the scheduled task was last updated.").optional() }).describe("Scheduled Task model"), responseKind: "json", parameters: [{ location: "path", name: "uuid" }, { location: "path", name: "task_uuid" }], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
|
|
186
|
-
{ name: "coolify_list_scheduled_task_executions_by_service_uuid", method: "GET", path: "/services/{uuid}/scheduled-tasks/{task_uuid}/executions", description: "List Executions", inputSchema: z.object({ "uuid": z.string(), "task_uuid": z.string() }), responseSchema: z.array(z.object({ "uuid": z.string().describe("The unique identifier of the execution.").optional(), "status": z.enum(["success", "failed", "running"]).describe("The status of the execution.").optional(), "message": z.union([z.string().describe("The output message of the execution."), z.null()]).optional(), "retry_count": z.number().int().describe("The number of retries.").optional(), "duration": z.union([z.number().describe("Duration in seconds."), z.null()]).optional(), "started_at": z.union([z.string().datetime({ offset: true }).describe("When the execution started."), z.null()]).optional(), "finished_at": z.union([z.string().datetime({ offset: true }).describe("When the execution finished."), z.null()]).optional(), "created_at": z.string().datetime({ offset: true }).describe("When the record was created.").optional(), "updated_at": z.string().datetime({ offset: true }).describe("When the record was last updated.").optional() }).describe("Scheduled Task Execution model")), responseKind: "json", parameters: [{ location: "path", name: "uuid" }, { location: "path", name: "task_uuid" }], annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false } },
|
|
187
|
-
{ name: "coolify_execute_scheduled_task_by_application_uuid", method: "POST", path: "/applications/{uuid}/scheduled-tasks/{task_uuid}/execute", description: "Execute Task", inputSchema: z.object({ "uuid": z.string(), "task_uuid": z.string() }), responseSchema: z.record(z.string(), z.any()), responseKind: "json", parameters: [{ location: "path", name: "uuid" }, { location: "path", name: "task_uuid" }], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
|
|
188
|
-
{ name: "coolify_execute_scheduled_task_by_service_uuid", method: "POST", path: "/services/{uuid}/scheduled-tasks/{task_uuid}/execute", description: "Execute Task", inputSchema: z.object({ "uuid": z.string(), "task_uuid": z.string() }), responseSchema: z.record(z.string(), z.any()), responseKind: "json", parameters: [{ location: "path", name: "uuid" }, { location: "path", name: "task_uuid" }], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
|
|
189
|
-
{ name: "coolify_list_private_keys", method: "GET", path: "/security/keys", description: "List", inputSchema: z.object({}), responseSchema: z.array(z.object({ "id": z.number().int().optional(), "uuid": z.string().optional(), "name": z.string().optional(), "description": z.union([z.string(), z.null()]).optional(), "private_key": z.string().optional(), "public_key": z.string().describe("The public key of the private key.").optional(), "fingerprint": z.string().describe("The fingerprint of the private key.").optional(), "is_git_related": z.boolean().optional(), "team_id": z.number().int().optional(), "created_at": z.string().optional(), "updated_at": z.string().optional() }).describe("Private Key model")), responseKind: "json", parameters: [], annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false } },
|
|
190
|
-
{ name: "coolify_create_private_key", method: "POST", path: "/security/keys", description: "Create", inputSchema: z.object({ body: z.object({ "name": z.string().optional(), "description": z.string().optional(), "private_key": z.string() }).strict() }), responseSchema: z.object({ "uuid": z.string().optional() }), responseKind: "json", parameters: [], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
|
|
191
|
-
{ name: "coolify_get_private_key_by_uuid", method: "GET", path: "/security/keys/{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.union([z.string(), z.null()]).optional(), "private_key": z.string().optional(), "public_key": z.string().describe("The public key of the private key.").optional(), "fingerprint": z.string().describe("The fingerprint of the private key.").optional(), "is_git_related": z.boolean().optional(), "team_id": z.number().int().optional(), "created_at": z.string().optional(), "updated_at": z.string().optional() }).describe("Private Key model"), responseKind: "json", parameters: [{ location: "path", name: "uuid" }], annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false } },
|
|
192
|
-
{ name: "coolify_delete_private_key_by_uuid", method: "DELETE", path: "/security/keys/{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 } },
|
|
193
|
-
{ name: "coolify_update_private_key", method: "PATCH", path: "/security/keys/{uuid}", description: "Update", inputSchema: z.object({ "uuid": z.string(), body: z.object({ "name": z.string().optional(), "description": z.string().optional(), "private_key": z.string() }).strict() }), responseSchema: z.object({ "uuid": z.string().optional() }), responseKind: "json", parameters: [{ location: "path", name: "uuid" }], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
|
|
194
|
-
{ name: "coolify_get_server_cloudflare_tunnel", method: "GET", path: "/servers/{uuid}/cloudflare-tunnel", description: "Get Cloudflare Tunnel settings", inputSchema: z.object({ "uuid": z.string() }), responseSchema: z.object({ "is_cloudflare_tunnel": z.boolean().optional(), "ip": z.string().optional(), "ip_previous": z.union([z.string(), z.null()]).optional() }), responseKind: "json", parameters: [{ location: "path", name: "uuid" }], annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false } },
|
|
195
|
-
{ name: "coolify_update_server_cloudflare_tunnel", method: "PATCH", path: "/servers/{uuid}/cloudflare-tunnel", description: "Update Cloudflare Tunnel settings", inputSchema: z.object({ "uuid": z.string(), body: z.object({ "is_cloudflare_tunnel": z.boolean().optional() }) }), responseSchema: z.record(z.string(), z.any()), responseKind: "json", parameters: [{ location: "path", name: "uuid" }], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
|
|
196
|
-
{ name: "coolify_enable_server_cloudflare_tunnel", method: "POST", path: "/servers/{uuid}/cloudflare-tunnel/enable", description: "Enable Cloudflare Tunnel (manual)", inputSchema: z.object({ "uuid": z.string() }), responseSchema: z.record(z.string(), z.any()), responseKind: "json", parameters: [{ location: "path", name: "uuid" }], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
|
|
197
|
-
{ name: "coolify_disable_server_cloudflare_tunnel", method: "POST", path: "/servers/{uuid}/cloudflare-tunnel/disable", description: "Disable Cloudflare Tunnel", inputSchema: z.object({ "uuid": z.string() }), responseSchema: z.record(z.string(), z.any()), responseKind: "json", parameters: [{ location: "path", name: "uuid" }], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
|
|
198
|
-
{ name: "coolify_get_server_docker_cleanup", method: "GET", path: "/servers/{uuid}/docker-cleanup", description: "Get Docker cleanup settings", inputSchema: z.object({ "uuid": z.string() }), responseSchema: z.object({ "docker_cleanup_frequency": z.string().optional(), "docker_cleanup_threshold": z.number().int().optional(), "force_docker_cleanup": z.boolean().optional(), "delete_unused_volumes": z.boolean().optional(), "delete_unused_networks": z.boolean().optional(), "disable_application_image_retention": z.boolean().optional() }), responseKind: "json", parameters: [{ location: "path", name: "uuid" }], annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false } },
|
|
199
|
-
{ name: "coolify_update_server_docker_cleanup", method: "PATCH", path: "/servers/{uuid}/docker-cleanup", description: "Update Docker cleanup settings", inputSchema: z.object({ "uuid": z.string(), body: z.object({ "docker_cleanup_frequency": z.string().describe("Cron / human frequency expression.").optional(), "docker_cleanup_threshold": z.number().int().gte(1).lte(99).optional(), "force_docker_cleanup": z.boolean().optional(), "delete_unused_volumes": z.boolean().optional(), "delete_unused_networks": z.boolean().optional(), "disable_application_image_retention": z.boolean().optional() }) }), responseSchema: z.object({ "docker_cleanup_frequency": z.string().optional(), "docker_cleanup_threshold": z.number().int().optional(), "force_docker_cleanup": z.boolean().optional(), "delete_unused_volumes": z.boolean().optional(), "delete_unused_networks": z.boolean().optional(), "disable_application_image_retention": z.boolean().optional() }), responseKind: "json", parameters: [{ location: "path", name: "uuid" }], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
|
|
200
|
-
{ name: "coolify_run_server_docker_cleanup", method: "POST", path: "/servers/{uuid}/docker-cleanup/run", description: "Run Docker cleanup", inputSchema: z.object({ "uuid": z.string(), body: z.object({ "delete_unused_volumes": z.boolean().optional(), "delete_unused_networks": z.boolean().optional() }).optional() }), responseSchema: z.object({ "message": z.string().optional() }), responseKind: "json", parameters: [{ location: "path", name: "uuid" }], annotations: { readOnlyHint: false, destructiveHint:
|
|
201
|
-
{ name: "coolify_list_server_docker_cleanup_executions", method: "GET", path: "/servers/{uuid}/docker-cleanup/executions", description: "List Docker cleanup executions", inputSchema: z.object({ "uuid": z.string() }), responseSchema: z.array(z.object({ "uuid": z.string().optional(), "status": z.string().optional(), "message": z.union([z.string(), z.null()]).optional(), "finished_at": z.union([z.string(), z.null()]).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 } },
|
|
202
|
-
{ name: "coolify_get_server_log_drains", method: "GET", path: "/servers/{uuid}/log-drains", description: "Get log drain settings", inputSchema: z.object({ "uuid": z.string() }), responseSchema: z.object({ "is_logdrain_newrelic_enabled": z.boolean().optional(), "logdrain_newrelic_license_key": z.union([z.string().describe("Only present with read:sensitive."), z.null().describe("Only present with read:sensitive.")]).describe("Only present with read:sensitive.").optional(), "logdrain_newrelic_base_uri": z.union([z.string(), z.null()]).optional(), "is_logdrain_axiom_enabled": z.boolean().optional(), "logdrain_axiom_dataset_name": z.union([z.string(), z.null()]).optional(), "logdrain_axiom_api_key": z.union([z.string().describe("Only present with read:sensitive."), z.null().describe("Only present with read:sensitive.")]).describe("Only present with read:sensitive.").optional(), "is_logdrain_custom_enabled": z.boolean().optional(), "logdrain_custom_config": z.union([z.string().describe("Only present with read:sensitive."), z.null().describe("Only present with read:sensitive.")]).describe("Only present with read:sensitive.").optional(), "logdrain_custom_config_parser": z.union([z.string().describe("Only present with read:sensitive."), z.null().describe("Only present with read:sensitive.")]).describe("Only present with read:sensitive.").optional() }), responseKind: "json", parameters: [{ location: "path", name: "uuid" }], annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false } },
|
|
203
|
-
{ name: "coolify_update_server_log_drains", method: "PATCH", path: "/servers/{uuid}/log-drains", description: "Update log drain settings", inputSchema: z.object({ "uuid": z.string(), body: z.object({ "is_logdrain_newrelic_enabled": z.boolean().optional(), "logdrain_newrelic_license_key": z.string().optional(), "logdrain_newrelic_base_uri": z.string().optional(), "is_logdrain_axiom_enabled": z.boolean().optional(), "logdrain_axiom_dataset_name": z.string().optional(), "logdrain_axiom_api_key": z.string().optional(), "is_logdrain_custom_enabled": z.boolean().optional(), "logdrain_custom_config": z.string().optional(), "logdrain_custom_config_parser": z.string().optional() }) }), responseSchema: z.record(z.string(), z.any()), responseKind: "json", parameters: [{ location: "path", name: "uuid" }], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
|
|
204
|
-
{ name: "coolify_get_server_proxy", method: "GET", path: "/servers/{uuid}/proxy", description: "Get server proxy", inputSchema: z.object({ "uuid": z.string() }), responseSchema: z.object({ "proxy_type": z.union([z.string(), z.null()]).optional(), "status": z.union([z.string(), z.null()]).optional(), "redirect_enabled": z.boolean().optional(), "redirect_url": z.union([z.string(), z.null()]).optional(), "generate_exact_labels": z.boolean().optional(), "configuration": z.union([z.string().describe("Docker Compose proxy configuration when stored in the database. Only present with read:sensitive."), z.null().describe("Docker Compose proxy configuration when stored in the database. Only present with read:sensitive.")]).describe("Docker Compose proxy configuration when stored in the database. Only present with read:sensitive.").optional() }), responseKind: "json", parameters: [{ location: "path", name: "uuid" }], annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false } },
|
|
205
|
-
{ name: "coolify_update_server_proxy", method: "PATCH", path: "/servers/{uuid}/proxy", description: "Update server proxy", inputSchema: z.object({ "uuid": z.string(), body: z.object({ "redirect_enabled": z.boolean().optional(), "redirect_url": z.union([z.string().describe("Public http(s) redirect URL, or null to clear."), z.null().describe("Public http(s) redirect URL, or null to clear.")]).describe("Public http(s) redirect URL, or null to clear.").optional(), "generate_exact_labels": z.boolean().optional(), "proxy_type": z.enum(["traefik", "caddy", "nginx", "none"]).describe("Proxy type (case-insensitive).").optional() }) }), responseSchema: z.object({ "proxy_type": z.union([z.string(), z.null()]).optional(), "status": z.union([z.string(), z.null()]).optional(), "redirect_enabled": z.boolean().optional(), "redirect_url": z.union([z.string(), z.null()]).optional(), "generate_exact_labels": z.boolean().optional(), "configuration": z.union([z.string(), z.null()]).optional() }), responseKind: "json", parameters: [{ location: "path", name: "uuid" }], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
|
|
206
|
-
{ name: "coolify_save_server_proxy_configuration", method: "PUT", path: "/servers/{uuid}/proxy/configuration", description: "Save server proxy configuration", inputSchema: z.object({ "uuid": z.string(), body: z.object({ "configuration": z.string().describe("Proxy docker-compose YAML. Prefer base64 encoding for multi-line content.") }) }), responseSchema: z.object({ "message": z.string().optional(), "proxy_type": z.union([z.string(), z.null()]).optional(), "status": z.union([z.string(), z.null()]).optional(), "redirect_enabled": z.boolean().optional(), "redirect_url": z.union([z.string(), z.null()]).optional(), "generate_exact_labels": z.boolean().optional(), "configuration": z.union([z.string(), z.null()]).optional() }), responseKind: "json", parameters: [{ location: "path", name: "uuid" }], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: true, openWorldHint: false } },
|
|
207
|
-
{ name: "coolify_restart_server_proxy", method: "POST", path: "/servers/{uuid}/proxy/restart", description: "Restart server proxy", inputSchema: z.object({ "uuid": z.string() }), responseSchema: z.object({ "message": z.string().optional() }), responseKind: "json", parameters: [{ location: "path", name: "uuid" }], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
|
|
208
|
-
{ name: "coolify_get_server_sentinel", method: "GET", path: "/servers/{uuid}/sentinel", description: "Get Sentinel settings", inputSchema: z.object({ "uuid": z.string() }), responseSchema: z.object({ "is_sentinel_enabled": z.boolean().optional(), "is_metrics_enabled": z.boolean().optional(), "is_sentinel_debug_enabled": z.boolean().optional(), "sentinel_token": z.string().describe("Only present with read:sensitive.").optional(), "sentinel_metrics_refresh_rate_seconds": z.number().int().optional(), "sentinel_metrics_history_days": z.number().int().optional(), "sentinel_push_interval_seconds": z.number().int().optional(), "sentinel_custom_url": z.string().describe("Only present with read:sensitive.").optional(), "sentinel_updated_at": z.union([z.string(), z.null()]).optional() }), responseKind: "json", parameters: [{ location: "path", name: "uuid" }], annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false } },
|
|
209
|
-
{ name: "coolify_update_server_sentinel", method: "PATCH", path: "/servers/{uuid}/sentinel", description: "Update Sentinel settings", inputSchema: z.object({ "uuid": z.string(), body: z.object({ "is_sentinel_enabled": z.boolean().optional(), "is_metrics_enabled": z.boolean().optional(), "is_sentinel_debug_enabled": z.boolean().optional(), "sentinel_token": z.string().optional(), "sentinel_metrics_refresh_rate_seconds": z.number().int().gte(1).optional(), "sentinel_metrics_history_days": z.number().int().gte(1).optional(), "sentinel_push_interval_seconds": z.number().int().gte(10).optional(), "sentinel_custom_url": z.union([z.string(), z.null()]).optional() }) }), responseSchema: z.record(z.string(), z.any()), responseKind: "json", parameters: [{ location: "path", name: "uuid" }], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
|
|
210
|
-
{ name: "coolify_migrate_server_between_instances", method: "POST", path: "/servers/{uuid}/migrate", description: "Migrate server to another Coolify instance (APP_ENV=local only in v4.3.23)", inputSchema: z.object({ "uuid": z.string(), body: z.object({ "target_url": z.string(), "target_token": z.string().describe("API token on the target instance (root or write)"), "write_remote": z.boolean().default(false), "rebind_sentinel": z.boolean().default(true), "preserve_uuids": z.boolean().default(true), "adopt_mode": z.boolean().default(true) }) }), responseSchema: z.record(z.string(), z.any()), responseKind: "json", parameters: [{ location: "path", name: "uuid" }], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
|
|
211
|
-
{ name: "coolify_export_server_transfer_bundle", method: "GET", path: "/servers/{uuid}/export", description: "Export server transfer bundle (APP_ENV=local only in v4.3.23)", inputSchema: z.object({ "uuid": z.string(), "encrypt": z.boolean().optional(), "passphrase": z.string().optional() }), responseSchema: z.record(z.string(), z.any()), responseKind: "json", parameters: [{ location: "path", name: "uuid" }, { location: "query", name: "encrypt" }, { location: "query", name: "passphrase" }], annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false } },
|
|
212
|
-
{ name: "coolify_import_server_transfer_bundle", method: "POST", path: "/servers/import", description: "Import server transfer bundle (APP_ENV=local only in v4.3.23)", inputSchema: z.object({ body: z.object({ "bundle": z.record(z.string(), z.any()).describe("Plain or encrypted transfer bundle").optional(), "passphrase": z.union([z.string(), z.null()]).optional(), "dry_run": z.boolean().default(false), "preserve_uuids": z.boolean().default(true), "adopt_mode": z.boolean().describe("Import without forcing redeploy; keep statuses for adoption").default(true), "claim": z.boolean().describe("Automatically claim the host for this instance after import").default(true), "write_remote": z.boolean().describe("When claiming, write ownership file on the host via SSH").default(false), "rebind_sentinel": z.boolean().describe("When claiming, rebind Sentinel to this instance").default(true) }) }), responseSchema: z.record(z.string(), z.any()), responseKind: "json", parameters: [], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
|
|
213
|
-
{ name: "coolify_claim_server", method: "POST", path: "/servers/{uuid}/claim", description: "Claim imported server (APP_ENV=local only in v4.3.23)", inputSchema: z.object({ "uuid": z.string(), body: z.object({ "write_remote": z.boolean().default(true), "rebind_sentinel": z.boolean().default(true) }).optional() }), responseSchema: z.record(z.string(), z.any()), responseKind: "json", parameters: [{ location: "path", name: "uuid" }], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
|
|
214
|
-
{ name: "coolify_complete_server_transfer", method: "POST", path: "/servers/{uuid}/transfer/complete", description: "Mark server transferred (APP_ENV=local only in v4.3.23)", 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.record(z.string(), z.any()), responseKind: "json", parameters: [{ location: "path", name: "uuid" }], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
|
|
215
|
-
{ name: "coolify_export_server_transfer_mailbox", method: "POST", path: "/servers/{uuid}/export/mailbox", description: "Write transfer bundle to server mailbox (APP_ENV=local only in v4.3.23)", inputSchema: z.object({ "uuid": z.string(), body: z.object({ "passphrase": z.union([z.string(), z.null()]).optional() }).optional() }), responseSchema: z.record(z.string(), z.any()), responseKind: "json", parameters: [{ location: "path", name: "uuid" }], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, 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 } },
|
|
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 } },
|
|
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 } },
|
|
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 } },
|
|
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 } },
|
|
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 } },
|
|
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 } },
|
|
223
|
-
{ 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: true, idempotentHint: false, openWorldHint: false } },
|
|
224
|
-
{ 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 } },
|
|
225
|
-
{ 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 } },
|
|
226
|
-
{ 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 } },
|
|
227
|
-
{ name: "coolify_get_service_application_logs_by_service_and_app_uuid", method: "GET", path: "/services/{uuid}/applications/{app_uuid}/logs", description: "Get service application logs", inputSchema: z.object({ "uuid": z.string(), "app_uuid": z.string(), "lines": z.number().int().default(100) }), responseSchema: z.object({ "logs": z.string().optional() }), responseKind: "json", parameters: [{ location: "path", name: "uuid" }, { location: "path", name: "app_uuid" }, { location: "query", name: "lines" }], annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false } },
|
|
228
|
-
{ name: "coolify_post_service_application_logs_by_service_and_app_uuid", method: "POST", path: "/services/{uuid}/applications/{app_uuid}/logs", description: "Get service application logs", inputSchema: z.object({ "uuid": z.string(), "app_uuid": z.string(), "lines": z.number().int().default(100) }), responseSchema: z.object({ "logs": z.string().optional() }), responseKind: "json", parameters: [{ location: "path", name: "uuid" }, { location: "path", name: "app_uuid" }, { location: "query", name: "lines" }], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
|
|
229
|
-
{ name: "coolify_post_start_service_application_by_service_and_app_uuid", method: "POST", path: "/services/{uuid}/applications/{app_uuid}/start", description: "Start or redeploy service application container", inputSchema: z.object({ "uuid": z.string(), "app_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: "app_uuid" }, { location: "query", name: "force" }, { location: "query", name: "latest" }], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
|
|
230
|
-
{ name: "coolify_post_restart_service_application_by_service_and_app_uuid", method: "POST", path: "/services/{uuid}/applications/{app_uuid}/restart", description: "Restart service application container", inputSchema: z.object({ "uuid": z.string(), "app_uuid": z.string() }), responseSchema: z.object({ "message": z.string().optional() }), responseKind: "json", parameters: [{ location: "path", name: "uuid" }, { location: "path", name: "app_uuid" }], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
|
|
231
|
-
{ name: "coolify_post_stop_service_application_by_service_and_app_uuid", method: "POST", path: "/services/{uuid}/applications/{app_uuid}/stop", description: "Stop service application container", inputSchema: z.object({ "uuid": z.string(), "app_uuid": z.string() }), responseSchema: z.object({ "message": z.string().optional() }), responseKind: "json", parameters: [{ location: "path", name: "uuid" }, { location: "path", name: "app_uuid" }], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
|
|
232
|
-
{ name: "coolify_list_service_databases_by_service_uuid", method: "GET", path: "/services/{uuid}/databases", description: "List service databases", 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 } },
|
|
233
|
-
{ name: "coolify_get_service_database_by_service_and_database_uuid", method: "GET", path: "/services/{uuid}/databases/{database_uuid}", description: "Get service database", inputSchema: z.object({ "uuid": z.string(), "database_uuid": z.string() }), responseSchema: z.record(z.string(), z.any()), responseKind: "json", parameters: [{ location: "path", name: "uuid" }, { location: "path", name: "database_uuid" }], annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false } },
|
|
234
|
-
{ name: "coolify_patch_service_database_by_service_and_database_uuid", method: "PATCH", path: "/services/{uuid}/databases/{database_uuid}", description: "Update service database", inputSchema: z.object({ "uuid": z.string(), "database_uuid": z.string(), body: z.object({ "human_name": z.union([z.string(), z.null()]).optional(), "description": z.union([z.string(), z.null()]).optional(), "image": z.string().optional(), "exclude_from_status": z.boolean().optional(), "is_log_drain_enabled": z.boolean().optional(), "is_public": z.boolean().optional(), "public_port": z.union([z.number().int().gte(1).lte(65535), z.null()]).optional(), "public_port_timeout": z.union([z.number().int().gte(1), z.null()]).optional() }).strict().optional() }), responseSchema: z.record(z.string(), z.any()), responseKind: "json", parameters: [{ location: "path", name: "uuid" }, { location: "path", name: "database_uuid" }], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
|
|
235
|
-
{ name: "coolify_get_service_database_logs_by_service_and_database_uuid", method: "GET", path: "/services/{uuid}/databases/{database_uuid}/logs", description: "Get service database logs", inputSchema: z.object({ "uuid": z.string(), "database_uuid": z.string(), "lines": z.number().int().default(100) }), responseSchema: z.object({ "logs": z.string().optional() }), responseKind: "json", parameters: [{ location: "path", name: "uuid" }, { location: "path", name: "database_uuid" }, { location: "query", name: "lines" }], annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false } },
|
|
236
|
-
{ 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 } },
|
|
237
|
-
{ 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 } },
|
|
238
|
-
{ 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 } },
|
|
239
|
-
{ 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.union([z.string().describe("The hash of the service configuration."), z.null()]).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 } },
|
|
240
|
-
{ 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.").optional(), "environment_uuid": z.string().describe("Environment UUID. You need to provide at least one of environment_name or environment_uuid.").optional(), "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() }).refine((body) => typeof body["environment_name"] === "string" && body["environment_name"].trim().length > 0 || typeof body["environment_uuid"] === "string" && body["environment_uuid"].trim().length > 0, { message: "At least one of environment_name, environment_uuid is required" }) }), 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 } },
|
|
241
|
-
{ 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.union([z.string().describe("The hash of the service configuration."), z.null()]).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 } },
|
|
242
|
-
{ 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 } },
|
|
243
|
-
{ 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 } },
|
|
244
|
-
{ name: "coolify_get_service_logs_by_uuid", method: "GET", path: "/services/{uuid}/logs", description: "Get service logs.", inputSchema: z.object({ "uuid": z.string(), "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 } },
|
|
245
|
-
{ name: "coolify_list_envs_by_service_uuid", method: "GET", path: "/services/{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 } },
|
|
246
|
-
{ name: "coolify_create_env_by_service_uuid", method: "POST", path: "/services/{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 } },
|
|
247
|
-
{ name: "coolify_update_env_by_service_uuid", method: "PATCH", path: "/services/{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 } },
|
|
248
|
-
{ name: "coolify_update_envs_by_service_uuid", method: "PATCH", path: "/services/{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_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.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 } },
|
|
249
|
-
{ name: "coolify_delete_env_by_service_uuid", method: "DELETE", path: "/services/{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 } },
|
|
250
|
-
{ name: "coolify_move_service_by_uuid", method: "POST", path: "/services/{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 } },
|
|
251
|
-
{ name: "coolify_migrate_service_by_uuid", method: "POST", path: "/services/{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.record(z.string(), z.any()), responseKind: "json", parameters: [{ location: "path", name: "uuid" }], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
|
|
252
|
-
{ name: "coolify_start_service_by_uuid", method: "POST", path: "/services/{uuid}/start", description: "Start", inputSchema: z.object({ "uuid": z.string() }), responseSchema: z.object({ "message": z.string().optional() }), responseKind: "json", parameters: [{ location: "path", name: "uuid" }], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
|
|
253
|
-
{ 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 } },
|
|
254
|
-
{ 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 } },
|
|
255
|
-
{ 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 } },
|
|
256
|
-
{ 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 } },
|
|
257
|
-
{ 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 } },
|
|
258
|
-
{ 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 } },
|
|
259
|
-
{ 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 } },
|
|
260
|
-
{ 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 } },
|
|
261
|
-
{ name: "coolify_delete_tag_by_service_uuid", method: "DELETE", path: "/services/{uuid}/tags/{tag_uuid}", description: "Delete Tag", inputSchema: z.object({ "uuid": z.string(), "tag_uuid": z.string() }), responseSchema: z.object({ "message": z.string() }), responseKind: "json", parameters: [{ location: "path", name: "uuid" }, { location: "path", name: "tag_uuid" }], annotations: { readOnlyHint: false, destructiveHint: true, idempotentHint: true, openWorldHint: false } },
|
|
262
|
-
{ name: "coolify_clone_service_by_uuid", method: "POST", path: "/services/{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.object({ "uuid": z.string(), "message": z.string() }).catchall(z.any()), responseKind: "json", parameters: [{ location: "path", name: "uuid" }], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
|
|
263
|
-
{ name: "coolify_list_team_shared_envs", method: "GET", path: "/team/envs", description: "List Team Shared Envs", inputSchema: z.object({}), responseSchema: z.array(z.record(z.string(), z.any())), responseKind: "json", parameters: [], annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false } },
|
|
264
|
-
{ name: "coolify_create_team_shared_env", method: "POST", path: "/team/envs", description: "Create Team Shared Env", inputSchema: z.object({ body: z.object({ "key": z.string(), "value": z.union([z.string(), z.null()]).optional(), "is_literal": z.boolean().optional(), "is_multiline": z.boolean().optional(), "is_shown_once": z.boolean().optional(), "comment": z.union([z.string(), z.null()]).optional() }) }), responseSchema: z.object({ "id": z.number().int() }), responseKind: "json", parameters: [], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
|
|
265
|
-
{ name: "coolify_delete_team_shared_env", method: "DELETE", path: "/team/envs/{env_id}", description: "Delete Team Shared Env", inputSchema: z.object({ "env_id": z.number().int() }), responseSchema: z.object({ "message": z.string() }), responseKind: "json", parameters: [{ location: "path", name: "env_id" }], annotations: { readOnlyHint: false, destructiveHint: true, idempotentHint: true, openWorldHint: false } },
|
|
266
|
-
{ name: "coolify_update_team_shared_env", method: "PATCH", path: "/team/envs/{env_id}", description: "Update Team Shared Env", inputSchema: z.object({ "env_id": z.number().int(), body: z.object({ "key": z.string().optional(), "value": z.union([z.string(), z.null()]).optional(), "is_literal": z.boolean().optional(), "is_multiline": z.boolean().optional(), "is_shown_once": z.boolean().optional(), "comment": z.union([z.string(), z.null()]).optional() }).strict() }), responseSchema: z.record(z.string(), z.any()), responseKind: "json", parameters: [{ location: "path", name: "env_id" }], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
|
|
267
|
-
{ name: "coolify_list_project_shared_envs", method: "GET", path: "/projects/{uuid}/envs", description: "List Project Shared Envs", 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 } },
|
|
268
|
-
{ name: "coolify_create_project_shared_env", method: "POST", path: "/projects/{uuid}/envs", description: "Create Project Shared Env", inputSchema: z.object({ "uuid": z.string(), body: z.object({ "key": z.string(), "value": z.union([z.string(), z.null()]).optional(), "is_literal": z.boolean().optional(), "is_multiline": z.boolean().optional(), "is_shown_once": z.boolean().optional(), "comment": z.union([z.string(), z.null()]).optional() }) }), responseSchema: z.object({ "id": z.number().int() }), responseKind: "json", parameters: [{ location: "path", name: "uuid" }], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
|
|
269
|
-
{ name: "coolify_delete_project_shared_env", method: "DELETE", path: "/projects/{uuid}/envs/{env_id}", description: "Delete Project Shared Env", inputSchema: z.object({ "uuid": z.string(), "env_id": z.number().int() }), responseSchema: z.object({ "message": z.string() }), responseKind: "json", parameters: [{ location: "path", name: "uuid" }, { location: "path", name: "env_id" }], annotations: { readOnlyHint: false, destructiveHint: true, idempotentHint: true, openWorldHint: false } },
|
|
270
|
-
{ name: "coolify_update_project_shared_env", method: "PATCH", path: "/projects/{uuid}/envs/{env_id}", description: "Update Project Shared Env", inputSchema: z.object({ "uuid": z.string(), "env_id": z.number().int(), body: z.object({ "key": z.string().optional(), "value": z.union([z.string(), z.null()]).optional(), "is_literal": z.boolean().optional(), "is_multiline": z.boolean().optional(), "is_shown_once": z.boolean().optional(), "comment": z.union([z.string(), z.null()]).optional() }).strict() }), responseSchema: z.record(z.string(), z.any()), responseKind: "json", parameters: [{ location: "path", name: "uuid" }, { location: "path", name: "env_id" }], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
|
|
271
|
-
{ name: "coolify_list_environment_shared_envs", method: "GET", path: "/projects/{uuid}/environments/{environment_name_or_uuid}/envs", description: "List Environment Shared Envs", inputSchema: z.object({ "uuid": z.string(), "environment_name_or_uuid": z.string() }), responseSchema: z.array(z.record(z.string(), z.any())), responseKind: "json", parameters: [{ location: "path", name: "uuid" }, { location: "path", name: "environment_name_or_uuid" }], annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false } },
|
|
272
|
-
{ name: "coolify_create_environment_shared_env", method: "POST", path: "/projects/{uuid}/environments/{environment_name_or_uuid}/envs", description: "Create Environment Shared Env", inputSchema: z.object({ "uuid": z.string(), "environment_name_or_uuid": z.string(), body: z.object({ "key": z.string(), "value": z.union([z.string(), z.null()]).optional(), "is_literal": z.boolean().optional(), "is_multiline": z.boolean().optional(), "is_shown_once": z.boolean().optional(), "comment": z.union([z.string(), z.null()]).optional() }) }), responseSchema: z.object({ "id": z.number().int() }), responseKind: "json", parameters: [{ location: "path", name: "uuid" }, { location: "path", name: "environment_name_or_uuid" }], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
|
|
273
|
-
{ name: "coolify_delete_environment_shared_env", method: "DELETE", path: "/projects/{uuid}/environments/{environment_name_or_uuid}/envs/{env_id}", description: "Delete Environment Shared Env", inputSchema: z.object({ "uuid": z.string(), "environment_name_or_uuid": z.string(), "env_id": z.number().int() }), responseSchema: z.object({ "message": z.string() }), responseKind: "json", parameters: [{ location: "path", name: "uuid" }, { location: "path", name: "environment_name_or_uuid" }, { location: "path", name: "env_id" }], annotations: { readOnlyHint: false, destructiveHint: true, idempotentHint: true, openWorldHint: false } },
|
|
274
|
-
{ name: "coolify_update_environment_shared_env", method: "PATCH", path: "/projects/{uuid}/environments/{environment_name_or_uuid}/envs/{env_id}", description: "Update Environment Shared Env", inputSchema: z.object({ "uuid": z.string(), "environment_name_or_uuid": z.string(), "env_id": z.number().int(), body: z.object({ "key": z.string().optional(), "value": z.union([z.string(), z.null()]).optional(), "is_literal": z.boolean().optional(), "is_multiline": z.boolean().optional(), "is_shown_once": z.boolean().optional(), "comment": z.union([z.string(), z.null()]).optional() }).strict() }), responseSchema: z.record(z.string(), z.any()), responseKind: "json", parameters: [{ location: "path", name: "uuid" }, { location: "path", name: "environment_name_or_uuid" }, { location: "path", name: "env_id" }], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
|
|
275
|
-
{ name: "coolify_list_server_shared_envs", method: "GET", path: "/servers/{uuid}/envs", description: "List Server Shared Envs", 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 } },
|
|
276
|
-
{ name: "coolify_create_server_shared_env", method: "POST", path: "/servers/{uuid}/envs", description: "Create Server Shared Env", inputSchema: z.object({ "uuid": z.string(), body: z.object({ "key": z.string(), "value": z.union([z.string(), z.null()]).optional(), "is_literal": z.boolean().optional(), "is_multiline": z.boolean().optional(), "is_shown_once": z.boolean().optional(), "comment": z.union([z.string(), z.null()]).optional() }) }), responseSchema: z.object({ "id": z.number().int() }), responseKind: "json", parameters: [{ location: "path", name: "uuid" }], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
|
|
277
|
-
{ name: "coolify_delete_server_shared_env", method: "DELETE", path: "/servers/{uuid}/envs/{env_id}", description: "Delete Server Shared Env", inputSchema: z.object({ "uuid": z.string(), "env_id": z.number().int() }), responseSchema: z.object({ "message": z.string() }), responseKind: "json", parameters: [{ location: "path", name: "uuid" }, { location: "path", name: "env_id" }], annotations: { readOnlyHint: false, destructiveHint: true, idempotentHint: true, openWorldHint: false } },
|
|
278
|
-
{ name: "coolify_update_server_shared_env", method: "PATCH", path: "/servers/{uuid}/envs/{env_id}", description: "Update Server Shared Env", inputSchema: z.object({ "uuid": z.string(), "env_id": z.number().int(), body: z.object({ "key": z.string().optional(), "value": z.union([z.string(), z.null()]).optional(), "is_literal": z.boolean().optional(), "is_multiline": z.boolean().optional(), "is_shown_once": z.boolean().optional(), "comment": z.union([z.string(), z.null()]).optional() }).strict() }), responseSchema: z.record(z.string(), z.any()), responseKind: "json", parameters: [{ location: "path", name: "uuid" }, { location: "path", name: "env_id" }], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
|
|
279
|
-
{ name: "coolify_list_tags", method: "GET", path: "/tags", description: "List", inputSchema: z.object({}), 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: [], annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false } },
|
|
280
|
-
{ name: "coolify_create_tag", method: "POST", path: "/tags", description: "Create", inputSchema: z.object({ body: z.object({ "name": z.string().min(2).max(255) }) }), responseSchema: 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: [], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
|
|
281
|
-
{ name: "coolify_delete_tag_by_uuid", method: "DELETE", path: "/tags/{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 } },
|
|
282
|
-
{ name: "coolify_update_tag_by_uuid", method: "PATCH", path: "/tags/{uuid}", description: "Update", inputSchema: z.object({ "uuid": z.string(), body: z.object({ "name": z.string().min(2).max(255) }) }), responseSchema: 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 } },
|
|
283
|
-
{ name: "coolify_list_teams", method: "GET", path: "/teams", description: "List", inputSchema: z.object({}), responseSchema: z.array(z.object({ "id": z.number().int().describe("The unique identifier of the team.").optional(), "name": z.string().describe("The name of the team.").optional(), "description": z.union([z.string().describe("The description of the team."), z.null()]).optional(), "personal_team": z.boolean().describe("Whether the team is personal or not.").optional(), "created_at": z.string().describe("The date and time the team was created.").optional(), "updated_at": z.string().describe("The date and time the team was last updated.").optional(), "show_boarding": z.boolean().describe("Whether to show the boarding screen or not.").optional(), "custom_server_limit": z.string().describe("The custom server limit.").optional(), "members": z.array(z.object({ "id": z.number().int().describe("The user identifier in the database.").optional(), "name": z.string().describe("The user name.").optional(), "email": z.string().describe("The user email.").optional(), "email_verified_at": z.union([z.string().describe("The date when the user email was verified."), z.null()]).optional(), "created_at": z.string().describe("The date when the user was created.").optional(), "updated_at": z.string().describe("The date when the user was updated.").optional(), "two_factor_confirmed_at": z.union([z.string().describe("The date when the user two factor was confirmed."), z.null()]).optional(), "force_password_reset": z.union([z.boolean().describe("The flag to force the user to reset the password."), z.string().describe("The flag to force the user to reset the password.")]).describe("The flag to force the user to reset the password.").optional(), "marketing_emails": z.boolean().describe("The flag to receive marketing emails.").optional() }).describe("User model")).describe("The members of the team.").optional() }).describe("Team model")), responseKind: "json", parameters: [], annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false } },
|
|
284
|
-
{ name: "coolify_get_team_by_id", method: "GET", path: "/teams/{id}", description: "Get", inputSchema: z.object({ "id": z.number().int() }), responseSchema: z.object({ "id": z.number().int().describe("The unique identifier of the team.").optional(), "name": z.string().describe("The name of the team.").optional(), "description": z.union([z.string().describe("The description of the team."), z.null()]).optional(), "personal_team": z.boolean().describe("Whether the team is personal or not.").optional(), "created_at": z.string().describe("The date and time the team was created.").optional(), "updated_at": z.string().describe("The date and time the team was last updated.").optional(), "show_boarding": z.boolean().describe("Whether to show the boarding screen or not.").optional(), "custom_server_limit": z.string().describe("The custom server limit.").optional(), "members": z.array(z.object({ "id": z.number().int().describe("The user identifier in the database.").optional(), "name": z.string().describe("The user name.").optional(), "email": z.string().describe("The user email.").optional(), "email_verified_at": z.union([z.string().describe("The date when the user email was verified."), z.null()]).optional(), "created_at": z.string().describe("The date when the user was created.").optional(), "updated_at": z.string().describe("The date when the user was updated.").optional(), "two_factor_confirmed_at": z.union([z.string().describe("The date when the user two factor was confirmed."), z.null()]).optional(), "force_password_reset": z.union([z.boolean().describe("The flag to force the user to reset the password."), z.string().describe("The flag to force the user to reset the password.")]).describe("The flag to force the user to reset the password.").optional(), "marketing_emails": z.boolean().describe("The flag to receive marketing emails.").optional() }).describe("User model")).describe("The members of the team.").optional() }).describe("Team model"), responseKind: "json", parameters: [{ location: "path", name: "id" }], annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false } },
|
|
285
|
-
{ name: "coolify_get_members_by_team_id", method: "GET", path: "/teams/{id}/members", description: "Members", inputSchema: z.object({ "id": z.number().int() }), responseSchema: z.array(z.object({ "id": z.number().int().describe("The user identifier in the database.").optional(), "name": z.string().describe("The user name.").optional(), "email": z.string().describe("The user email.").optional(), "email_verified_at": z.union([z.string().describe("The date when the user email was verified."), z.null()]).optional(), "created_at": z.string().describe("The date when the user was created.").optional(), "updated_at": z.string().describe("The date when the user was updated.").optional(), "two_factor_confirmed_at": z.union([z.string().describe("The date when the user two factor was confirmed."), z.null()]).optional(), "force_password_reset": z.union([z.boolean().describe("The flag to force the user to reset the password."), z.string().describe("The flag to force the user to reset the password.")]).describe("The flag to force the user to reset the password.").optional(), "marketing_emails": z.boolean().describe("The flag to receive marketing emails.").optional() }).describe("User model")), responseKind: "json", parameters: [{ location: "path", name: "id" }], annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false } },
|
|
286
|
-
{ name: "coolify_get_token_team", method: "GET", path: "/team", description: "Authenticated Team", inputSchema: z.object({}), responseSchema: z.object({ "id": z.number().int().describe("The unique identifier of the team.").optional(), "name": z.string().describe("The name of the team.").optional(), "description": z.union([z.string().describe("The description of the team."), z.null()]).optional(), "personal_team": z.boolean().describe("Whether the team is personal or not.").optional(), "created_at": z.string().describe("The date and time the team was created.").optional(), "updated_at": z.string().describe("The date and time the team was last updated.").optional(), "show_boarding": z.boolean().describe("Whether to show the boarding screen or not.").optional(), "custom_server_limit": z.string().describe("The custom server limit.").optional(), "members": z.array(z.object({ "id": z.number().int().describe("The user identifier in the database.").optional(), "name": z.string().describe("The user name.").optional(), "email": z.string().describe("The user email.").optional(), "email_verified_at": z.union([z.string().describe("The date when the user email was verified."), z.null()]).optional(), "created_at": z.string().describe("The date when the user was created.").optional(), "updated_at": z.string().describe("The date when the user was updated.").optional(), "two_factor_confirmed_at": z.union([z.string().describe("The date when the user two factor was confirmed."), z.null()]).optional(), "force_password_reset": z.union([z.boolean().describe("The flag to force the user to reset the password."), z.string().describe("The flag to force the user to reset the password.")]).describe("The flag to force the user to reset the password.").optional(), "marketing_emails": z.boolean().describe("The flag to receive marketing emails.").optional() }).describe("User model")).describe("The members of the team.").optional() }).describe("Team model"), responseKind: "json", parameters: [], annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false } },
|
|
287
|
-
{ name: "coolify_get_token_team_members", method: "GET", path: "/team/members", description: "Authenticated Team Members", inputSchema: z.object({}), responseSchema: z.array(z.object({ "id": z.number().int().describe("The user identifier in the database.").optional(), "name": z.string().describe("The user name.").optional(), "email": z.string().describe("The user email.").optional(), "email_verified_at": z.union([z.string().describe("The date when the user email was verified."), z.null()]).optional(), "created_at": z.string().describe("The date when the user was created.").optional(), "updated_at": z.string().describe("The date when the user was updated.").optional(), "two_factor_confirmed_at": z.union([z.string().describe("The date when the user two factor was confirmed."), z.null()]).optional(), "force_password_reset": z.union([z.boolean().describe("The flag to force the user to reset the password."), z.string().describe("The flag to force the user to reset the password.")]).describe("The flag to force the user to reset the password.").optional(), "marketing_emails": z.boolean().describe("The flag to receive marketing emails.").optional() }).describe("User model")), responseKind: "json", parameters: [], annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false } },
|
|
288
|
-
{ name: "coolify_set_application_storage_backup_schedule", method: "PUT", path: "/applications/{uuid}/storages/{storage_uuid}/backups", description: "Set application storage backup schedule", inputSchema: z.object({ "uuid": z.string(), "storage_uuid": z.string(), body: z.object({ "frequency": z.string().max(255), "enabled": z.boolean().default(true), "save_s3": z.boolean().default(false), "disable_local_backup": z.boolean().default(false), "stop_during_backup": z.boolean().default(false), "s3_storage_uuid": z.union([z.string(), z.null()]).optional(), "retention_amount_locally": z.number().int().gte(0).lte(10000).default(7), "retention_days_locally": z.number().int().gte(0).lte(2147483647).default(0), "retention_max_storage_locally": z.number().gte(0).lte(9999999999).default(0), "retention_amount_s3": z.number().int().gte(0).lte(10000).default(7), "retention_days_s3": z.number().int().gte(0).lte(2147483647).default(0), "retention_max_storage_s3": z.number().gte(0).lte(9999999999).default(0), "timeout": z.number().int().gte(60).lte(36000).default(3600) }).strict() }), responseSchema: z.object({ "uuid": z.string(), "message": z.string(), "storage_uuid": z.string(), "storage_type": z.enum(["persistent", "directory"]), "frequency": z.string(), "enabled": z.boolean(), "save_s3": z.boolean(), "disable_local_backup": z.boolean(), "stop_during_backup": z.boolean(), "s3_storage_uuid": z.union([z.string(), z.null()]).optional(), "retention_amount_locally": z.number().int(), "retention_days_locally": z.number().int(), "retention_max_storage_locally": z.number(), "retention_amount_s3": z.number().int(), "retention_days_s3": z.number().int(), "retention_max_storage_s3": z.number(), "timeout": z.number().int() }), responseKind: "json", parameters: [{ location: "path", name: "uuid" }, { location: "path", name: "storage_uuid" }], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: true, openWorldHint: false } },
|
|
289
|
-
{ name: "coolify_delete_application_storage_backup_schedule", method: "DELETE", path: "/applications/{uuid}/storages/{storage_uuid}/backups", description: "Delete application storage backup schedule", inputSchema: z.object({ "uuid": z.string(), "storage_uuid": z.string() }), responseSchema: z.record(z.string(), z.any()), responseKind: "json", parameters: [{ location: "path", name: "uuid" }, { location: "path", name: "storage_uuid" }], annotations: { readOnlyHint: false, destructiveHint: true, idempotentHint: true, openWorldHint: false } },
|
|
290
|
-
{ name: "coolify_set_database_storage_backup_schedule", method: "PUT", path: "/databases/{uuid}/storages/{storage_uuid}/backups", description: "Set database storage backup schedule", inputSchema: z.object({ "uuid": z.string(), "storage_uuid": z.string(), body: z.object({ "frequency": z.string().max(255), "enabled": z.boolean().default(true), "save_s3": z.boolean().default(false), "disable_local_backup": z.boolean().default(false), "stop_during_backup": z.boolean().default(false), "s3_storage_uuid": z.union([z.string(), z.null()]).optional(), "retention_amount_locally": z.number().int().gte(0).lte(10000).default(7), "retention_days_locally": z.number().int().gte(0).lte(2147483647).default(0), "retention_max_storage_locally": z.number().gte(0).lte(9999999999).default(0), "retention_amount_s3": z.number().int().gte(0).lte(10000).default(7), "retention_days_s3": z.number().int().gte(0).lte(2147483647).default(0), "retention_max_storage_s3": z.number().gte(0).lte(9999999999).default(0), "timeout": z.number().int().gte(60).lte(36000).default(3600) }).strict() }), responseSchema: z.object({ "uuid": z.string(), "message": z.string(), "storage_uuid": z.string(), "storage_type": z.enum(["persistent", "directory"]), "frequency": z.string(), "enabled": z.boolean(), "save_s3": z.boolean(), "disable_local_backup": z.boolean(), "stop_during_backup": z.boolean(), "s3_storage_uuid": z.union([z.string(), z.null()]).optional(), "retention_amount_locally": z.number().int(), "retention_days_locally": z.number().int(), "retention_max_storage_locally": z.number(), "retention_amount_s3": z.number().int(), "retention_days_s3": z.number().int(), "retention_max_storage_s3": z.number(), "timeout": z.number().int() }), responseKind: "json", parameters: [{ location: "path", name: "uuid" }, { location: "path", name: "storage_uuid" }], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: true, openWorldHint: false } },
|
|
291
|
-
{ name: "coolify_delete_database_storage_backup_schedule", method: "DELETE", path: "/databases/{uuid}/storages/{storage_uuid}/backups", description: "Delete database storage backup schedule", inputSchema: z.object({ "uuid": z.string(), "storage_uuid": z.string() }), responseSchema: z.record(z.string(), z.any()), responseKind: "json", parameters: [{ location: "path", name: "uuid" }, { location: "path", name: "storage_uuid" }], annotations: { readOnlyHint: false, destructiveHint: true, idempotentHint: true, openWorldHint: false } },
|
|
292
|
-
{ name: "coolify_set_service_storage_backup_schedule", method: "PUT", path: "/services/{uuid}/storages/{storage_uuid}/backups", description: "Set service storage backup schedule", inputSchema: z.object({ "uuid": z.string(), "storage_uuid": z.string(), body: z.object({ "frequency": z.string().max(255), "enabled": z.boolean().default(true), "save_s3": z.boolean().default(false), "disable_local_backup": z.boolean().default(false), "stop_during_backup": z.boolean().default(false), "s3_storage_uuid": z.union([z.string(), z.null()]).optional(), "retention_amount_locally": z.number().int().gte(0).lte(10000).default(7), "retention_days_locally": z.number().int().gte(0).lte(2147483647).default(0), "retention_max_storage_locally": z.number().gte(0).lte(9999999999).default(0), "retention_amount_s3": z.number().int().gte(0).lte(10000).default(7), "retention_days_s3": z.number().int().gte(0).lte(2147483647).default(0), "retention_max_storage_s3": z.number().gte(0).lte(9999999999).default(0), "timeout": z.number().int().gte(60).lte(36000).default(3600) }).strict() }), responseSchema: z.object({ "uuid": z.string(), "message": z.string(), "storage_uuid": z.string(), "storage_type": z.enum(["persistent", "directory"]), "frequency": z.string(), "enabled": z.boolean(), "save_s3": z.boolean(), "disable_local_backup": z.boolean(), "stop_during_backup": z.boolean(), "s3_storage_uuid": z.union([z.string(), z.null()]).optional(), "retention_amount_locally": z.number().int(), "retention_days_locally": z.number().int(), "retention_max_storage_locally": z.number(), "retention_amount_s3": z.number().int(), "retention_days_s3": z.number().int(), "retention_max_storage_s3": z.number(), "timeout": z.number().int() }), responseKind: "json", parameters: [{ location: "path", name: "uuid" }, { location: "path", name: "storage_uuid" }], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: true, openWorldHint: false } },
|
|
293
|
-
{ name: "coolify_delete_service_storage_backup_schedule", method: "DELETE", path: "/services/{uuid}/storages/{storage_uuid}/backups", description: "Delete service storage backup schedule", inputSchema: z.object({ "uuid": z.string(), "storage_uuid": z.string() }), responseSchema: z.record(z.string(), z.any()), responseKind: "json", parameters: [{ location: "path", name: "uuid" }, { location: "path", name: "storage_uuid" }], annotations: { readOnlyHint: false, destructiveHint: true, idempotentHint: true, openWorldHint: false } },
|
|
294
|
-
{ name: "coolify_run_application_storage_backup", method: "POST", path: "/applications/{uuid}/storages/{storage_uuid}/backups/run", description: "Run application storage backup", inputSchema: z.object({ "uuid": z.string(), "storage_uuid": z.string() }), responseSchema: z.record(z.string(), z.any()), responseKind: "json", parameters: [{ location: "path", name: "uuid" }, { location: "path", name: "storage_uuid" }], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
|
|
295
|
-
{ name: "coolify_run_database_storage_backup", method: "POST", path: "/databases/{uuid}/storages/{storage_uuid}/backups/run", description: "Run database storage backup", inputSchema: z.object({ "uuid": z.string(), "storage_uuid": z.string() }), responseSchema: z.record(z.string(), z.any()), responseKind: "json", parameters: [{ location: "path", name: "uuid" }, { location: "path", name: "storage_uuid" }], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
|
|
296
|
-
{ name: "coolify_run_service_storage_backup", method: "POST", path: "/services/{uuid}/storages/{storage_uuid}/backups/run", description: "Run service storage backup", inputSchema: z.object({ "uuid": z.string(), "storage_uuid": z.string() }), responseSchema: z.record(z.string(), z.any()), responseKind: "json", parameters: [{ location: "path", name: "uuid" }, { location: "path", name: "storage_uuid" }], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
|
|
297
|
-
{ name: "coolify_get_vultr_regions", method: "GET", path: "/vultr/regions", description: "Get Vultr Regions", inputSchema: z.object({ "cloud_provider_token_uuid": z.string().regex(new RegExp("\\S")).min(1).optional(), "cloud_provider_token_id": z.string().regex(new RegExp("\\S")).min(1).optional() }).refine((input) => typeof input["cloud_provider_token_uuid"] === "string" && input["cloud_provider_token_uuid"].trim().length > 0 || typeof input["cloud_provider_token_id"] === "string" && input["cloud_provider_token_id"].trim().length > 0, { message: "At least one of cloud_provider_token_uuid, cloud_provider_token_id is required" }), responseSchema: z.array(z.record(z.string(), z.any())), responseKind: "json", parameters: [{ location: "query", name: "cloud_provider_token_uuid" }, { location: "query", name: "cloud_provider_token_id" }], annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false } },
|
|
298
|
-
{ name: "coolify_get_vultr_plans", method: "GET", path: "/vultr/plans", description: "Get Vultr Plans", inputSchema: z.object({ "cloud_provider_token_uuid": z.string().regex(new RegExp("\\S")).min(1).optional(), "cloud_provider_token_id": z.string().regex(new RegExp("\\S")).min(1).optional() }).refine((input) => typeof input["cloud_provider_token_uuid"] === "string" && input["cloud_provider_token_uuid"].trim().length > 0 || typeof input["cloud_provider_token_id"] === "string" && input["cloud_provider_token_id"].trim().length > 0, { message: "At least one of cloud_provider_token_uuid, cloud_provider_token_id is required" }), responseSchema: z.array(z.record(z.string(), z.any())), responseKind: "json", parameters: [{ location: "query", name: "cloud_provider_token_uuid" }, { location: "query", name: "cloud_provider_token_id" }], annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false } },
|
|
299
|
-
{ name: "coolify_get_vultr_operating_systems", method: "GET", path: "/vultr/os", description: "Get Vultr Operating Systems", inputSchema: z.object({ "cloud_provider_token_uuid": z.string().regex(new RegExp("\\S")).min(1).optional(), "cloud_provider_token_id": z.string().regex(new RegExp("\\S")).min(1).optional() }).refine((input) => typeof input["cloud_provider_token_uuid"] === "string" && input["cloud_provider_token_uuid"].trim().length > 0 || typeof input["cloud_provider_token_id"] === "string" && input["cloud_provider_token_id"].trim().length > 0, { message: "At least one of cloud_provider_token_uuid, cloud_provider_token_id is required" }), responseSchema: z.array(z.record(z.string(), z.any())), responseKind: "json", parameters: [{ location: "query", name: "cloud_provider_token_uuid" }, { location: "query", name: "cloud_provider_token_id" }], annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false } },
|
|
300
|
-
{ name: "coolify_get_vultr_ssh_keys", method: "GET", path: "/vultr/ssh-keys", description: "Get Vultr SSH Keys", inputSchema: z.object({ "cloud_provider_token_uuid": z.string().regex(new RegExp("\\S")).min(1).optional(), "cloud_provider_token_id": z.string().regex(new RegExp("\\S")).min(1).optional() }).refine((input) => typeof input["cloud_provider_token_uuid"] === "string" && input["cloud_provider_token_uuid"].trim().length > 0 || typeof input["cloud_provider_token_id"] === "string" && input["cloud_provider_token_id"].trim().length > 0, { message: "At least one of cloud_provider_token_uuid, cloud_provider_token_id is required" }), responseSchema: z.array(z.record(z.string(), z.any())), responseKind: "json", parameters: [{ location: "query", name: "cloud_provider_token_uuid" }, { location: "query", name: "cloud_provider_token_id" }], annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false } },
|
|
301
|
-
{ name: "coolify_create_vultr_server", method: "POST", path: "/servers/vultr", description: "Create Vultr Server", inputSchema: z.object({ body: z.object({ "cloud_provider_token_uuid": z.string().regex(new RegExp("\\S")).min(1).describe("Cloud provider token UUID. Required if cloud_provider_token_id is not provided.").optional(), "cloud_provider_token_id": z.string().regex(new RegExp("\\S")).min(1).describe("Deprecated: Use cloud_provider_token_uuid instead. Cloud provider token UUID.").optional(), "region": z.string().min(1), "plan": z.string().min(1), "os_id": z.number().int(), "name": z.union([z.string().regex(new RegExp("^$|^[A-Za-z0-9](?:[A-Za-z0-9-]{0,61}[A-Za-z0-9])?(?:\\.[A-Za-z0-9](?:[A-Za-z0-9-]{0,61}[A-Za-z0-9])?)*$")).max(253), z.null()]).optional(), "private_key_uuid": z.string().min(1), "enable_ipv6": z.union([z.boolean(), z.null()]).optional(), "disable_public_ipv4": z.union([z.boolean(), z.null()]).optional(), "vultr_ssh_key_ids": z.union([z.array(z.string()), z.null()]).optional(), "cloud_init_script": z.union([z.string().describe("Valid cloud-init YAML or a bash script beginning with #!."), z.null()]).optional(), "instant_validate": z.union([z.boolean(), z.null()]).optional() }).refine((body) => typeof body["cloud_provider_token_uuid"] === "string" && body["cloud_provider_token_uuid"].trim().length > 0 || typeof body["cloud_provider_token_id"] === "string" && body["cloud_provider_token_id"].trim().length > 0, { message: "At least one of cloud_provider_token_uuid, cloud_provider_token_id is required" }).refine((body) => !(body["disable_public_ipv4"] === true && body["enable_ipv6"] === false), { message: "Enable public IPv4 or IPv6." }) }), responseSchema: z.object({ "uuid": z.string(), "vultr_instance_id": z.string(), "ip": z.union([z.string(), z.null()]) }).catchall(z.any()), responseKind: "json", parameters: [], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } }
|
|
37
|
+
{ name: "coolify_list_envs_by_application_uuid", method: "GET", path: "/applications/{uuid}/envs", title: "List envs by application UUID", 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 } },
|
|
38
|
+
{ name: "coolify_create_env_by_application_uuid", method: "POST", path: "/applications/{uuid}/envs", title: "Create env by application UUID", 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 } },
|
|
39
|
+
{ name: "coolify_update_env_by_application_uuid", method: "PATCH", path: "/applications/{uuid}/envs", title: "Update env by application UUID", 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 } },
|
|
40
|
+
{ name: "coolify_update_envs_by_application_uuid", method: "PATCH", path: "/applications/{uuid}/envs/bulk", title: "Update envs by application UUID", 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_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.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 } },
|
|
41
|
+
{ name: "coolify_delete_env_by_application_uuid", method: "DELETE", path: "/applications/{uuid}/envs/{env_uuid}", title: "Delete env by application 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 } },
|
|
42
|
+
{ name: "coolify_start_application_by_uuid", method: "POST", path: "/applications/{uuid}/start", title: "Start application by UUID", description: "Start", inputSchema: z.object({ "uuid": z.string(), "force": z.boolean().default(false), "instant_deploy": z.boolean().default(false) }), responseSchema: z.object({ "message": z.string().describe("Message.").optional(), "deployment_uuid": z.string().describe("UUID of the deployment.").optional() }), responseKind: "json", parameters: [{ location: "path", name: "uuid" }, { location: "query", name: "force" }, { location: "query", name: "instant_deploy" }], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
|
|
43
|
+
{ name: "coolify_stop_application_by_uuid", method: "POST", path: "/applications/{uuid}/stop", title: "Stop application by UUID", 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 } },
|
|
44
|
+
{ name: "coolify_restart_application_by_uuid", method: "POST", path: "/applications/{uuid}/restart", title: "Restart application by UUID", description: "Restart", inputSchema: z.object({ "uuid": z.string() }), responseSchema: z.object({ "message": z.string().optional(), "deployment_uuid": z.string().describe("UUID of the deployment.").optional() }), responseKind: "json", parameters: [{ location: "path", name: "uuid" }], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
|
|
45
|
+
{ name: "coolify_move_application_by_uuid", method: "POST", path: "/applications/{uuid}/move", title: "Move application by UUID", 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 } },
|
|
46
|
+
{ name: "coolify_migrate_application_by_uuid", method: "POST", path: "/applications/{uuid}/migrate", title: "Migrate application by UUID", 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.record(z.string(), z.any()), responseKind: "json", parameters: [{ location: "path", name: "uuid" }], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
|
|
47
|
+
{ name: "coolify_list_storages_by_application_uuid", method: "GET", path: "/applications/{uuid}/storages", title: "List storages by application UUID", 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 } },
|
|
48
|
+
{ name: "coolify_create_storage_by_application_uuid", method: "POST", path: "/applications/{uuid}/storages", title: "Create storage by application UUID", 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", title: "Update storage by application UUID", 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 } },
|
|
50
|
+
{ name: "coolify_delete_storage_by_application_uuid", method: "DELETE", path: "/applications/{uuid}/storages/{storage_uuid}", title: "Delete storage by application 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 } },
|
|
51
|
+
{ name: "coolify_delete_preview_deployment_by_pull_request_id", method: "DELETE", path: "/applications/{uuid}/previews/{pull_request_id}", title: "Delete preview deployment by 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 } },
|
|
52
|
+
{ name: "coolify_list_tags_by_application_uuid", method: "GET", path: "/applications/{uuid}/tags", title: "List tags by application UUID", 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 } },
|
|
53
|
+
{ name: "coolify_create_tag_by_application_uuid", method: "POST", path: "/applications/{uuid}/tags", title: "Create tag by application UUID", 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 } },
|
|
54
|
+
{ name: "coolify_delete_tag_by_application_uuid", method: "DELETE", path: "/applications/{uuid}/tags/{tag_uuid}", title: "Delete tag by application UUID", description: "Delete Tag", inputSchema: z.object({ "uuid": z.string(), "tag_uuid": z.string() }), responseSchema: z.object({ "message": z.string() }), responseKind: "json", parameters: [{ location: "path", name: "uuid" }, { location: "path", name: "tag_uuid" }], annotations: { readOnlyHint: false, destructiveHint: true, idempotentHint: true, openWorldHint: false } },
|
|
55
|
+
{ name: "coolify_clone_application_by_uuid", method: "POST", path: "/applications/{uuid}/clone", title: "Clone application by UUID", description: "Clone", inputSchema: z.object({ "uuid": z.string(), body: z.object({ "destination_uuid": z.string().describe("UUID of the destination to clone into."), "name": z.union([z.string().describe("Optional name for the cloned application."), z.null().describe("Optional name for the cloned application.")]).describe("Optional name for the cloned application.").optional(), "clone_volumes": z.boolean().describe("Whether to clone volume data.").default(false) }) }), responseSchema: z.object({ "uuid": z.string().optional(), "message": z.string().optional() }), responseKind: "json", parameters: [{ location: "path", name: "uuid" }], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
|
|
56
|
+
{ name: "coolify_list_application_rollback_images", method: "GET", path: "/applications/{uuid}/rollback-images", title: "List application rollback images", description: "List Rollback Images", inputSchema: z.object({ "uuid": z.string() }), responseSchema: z.object({ "current": z.union([z.string(), z.null()]).optional(), "images": z.array(z.object({ "tag": z.string().optional(), "created_at": z.string().optional(), "is_current": z.boolean().optional() })).optional() }), responseKind: "json", parameters: [{ location: "path", name: "uuid" }], annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false } },
|
|
57
|
+
{ name: "coolify_rollback_application_by_uuid", method: "POST", path: "/applications/{uuid}/rollback", title: "Rollback application by UUID", description: "Rollback", inputSchema: z.object({ "uuid": z.string(), body: z.object({ "commit": z.string().describe("Image tag / commit to roll back to.") }) }), responseSchema: z.object({ "message": z.string().optional(), "deployment_uuid": z.string().optional() }), responseKind: "json", parameters: [{ location: "path", name: "uuid" }], annotations: { readOnlyHint: false, destructiveHint: true, idempotentHint: false, openWorldHint: false } },
|
|
58
|
+
{ name: "coolify_list_application_destinations", method: "GET", path: "/applications/{uuid}/destinations", title: "List application destinations", description: "List Destinations", 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 } },
|
|
59
|
+
{ name: "coolify_add_application_destination", method: "POST", path: "/applications/{uuid}/destinations", title: "Add application destination", description: "Add Destination", inputSchema: z.object({ "uuid": z.string(), body: z.object({ "destination_uuid": z.string() }) }), responseSchema: z.record(z.string(), z.any()), responseKind: "json", parameters: [{ location: "path", name: "uuid" }], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
|
|
60
|
+
{ name: "coolify_remove_application_destination", method: "DELETE", path: "/applications/{uuid}/destinations/{destination_uuid}", title: "Remove application destination", description: "Remove Destination", inputSchema: z.object({ "uuid": z.string(), "destination_uuid": z.string() }), responseSchema: z.record(z.string(), z.any()), responseKind: "json", parameters: [{ location: "path", name: "uuid" }, { location: "path", name: "destination_uuid" }], annotations: { readOnlyHint: false, destructiveHint: true, idempotentHint: true, openWorldHint: false } },
|
|
61
|
+
{ name: "coolify_list_cloud_init_scripts", method: "GET", path: "/cloud-init-scripts", title: "List cloud init scripts", description: "List Cloud-init Scripts", inputSchema: z.object({}), responseSchema: z.array(z.record(z.string(), z.any())), responseKind: "json", parameters: [], annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false } },
|
|
62
|
+
{ name: "coolify_create_cloud_init_script", method: "POST", path: "/cloud-init-scripts", title: "Create cloud init script", description: "Create Cloud-init Script", inputSchema: z.object({ body: z.object({ "name": z.string(), "script": z.string().describe("Bash script (#!) or cloud-config YAML.") }) }), responseSchema: z.object({ "uuid": z.string(), "name": z.string().optional(), "script": z.string().optional() }).catchall(z.any()), responseKind: "json", parameters: [], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
|
|
63
|
+
{ name: "coolify_get_cloud_init_script_by_uuid", method: "GET", path: "/cloud-init-scripts/{uuid}", title: "Get cloud init script by UUID", description: "Get Cloud-init Script", inputSchema: z.object({ "uuid": z.string() }), responseSchema: z.object({ "uuid": z.string(), "name": z.string().optional(), "script": z.string().optional() }).catchall(z.any()), responseKind: "json", parameters: [{ location: "path", name: "uuid" }], annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false } },
|
|
64
|
+
{ name: "coolify_delete_cloud_init_script_by_uuid", method: "DELETE", path: "/cloud-init-scripts/{uuid}", title: "Delete cloud init script by UUID", description: "Delete Cloud-init Script", inputSchema: z.object({ "uuid": z.string() }), responseSchema: z.object({ "message": z.string() }), responseKind: "json", parameters: [{ location: "path", name: "uuid" }], annotations: { readOnlyHint: false, destructiveHint: true, idempotentHint: true, openWorldHint: false } },
|
|
65
|
+
{ name: "coolify_update_cloud_init_script_by_uuid", method: "PATCH", path: "/cloud-init-scripts/{uuid}", title: "Update cloud init script by UUID", description: "Update Cloud-init Script", inputSchema: z.object({ "uuid": z.string(), body: z.object({ "name": z.string().optional(), "script": z.string().optional() }) }), responseSchema: z.record(z.string(), z.any()), responseKind: "json", parameters: [{ location: "path", name: "uuid" }], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
|
|
66
|
+
{ name: "coolify_list_cloud_tokens", method: "GET", path: "/cloud-tokens", title: "List cloud tokens", description: "List Cloud Provider Tokens", inputSchema: z.object({}), responseSchema: z.array(z.object({ "uuid": z.string().optional(), "name": z.string().optional(), "provider": z.enum(["hetzner", "digitalocean", "vultr"]).optional(), "team_id": z.number().int().optional(), "servers_count": 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 } },
|
|
67
|
+
{ name: "coolify_create_cloud_token", method: "POST", path: "/cloud-tokens", title: "Create cloud token", description: "Create Cloud Provider Token", inputSchema: z.object({ body: z.object({ "provider": z.enum(["hetzner", "digitalocean", "vultr"]).describe("The cloud provider."), "token": z.string().describe("The API token for the cloud provider."), "name": z.string().describe("A friendly name for the token.") }) }), responseSchema: z.object({ "uuid": z.string().describe("The UUID of the token.").optional() }), responseKind: "json", parameters: [], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
|
|
68
|
+
{ name: "coolify_get_cloud_token_by_uuid", method: "GET", path: "/cloud-tokens/{uuid}", title: "Get cloud token by UUID", description: "Get Cloud Provider Token", inputSchema: z.object({ "uuid": z.string() }), responseSchema: z.object({ "uuid": z.string().optional(), "name": z.string().optional(), "provider": z.string().optional(), "team_id": z.number().int().optional(), "servers_count": 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 } },
|
|
69
|
+
{ name: "coolify_delete_cloud_token_by_uuid", method: "DELETE", path: "/cloud-tokens/{uuid}", title: "Delete cloud token by 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 } },
|
|
70
|
+
{ name: "coolify_update_cloud_token_by_uuid", method: "PATCH", path: "/cloud-tokens/{uuid}", title: "Update cloud token by 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 } },
|
|
71
|
+
{ name: "coolify_validate_cloud_token_by_uuid", method: "POST", path: "/cloud-tokens/{uuid}/validate", title: "Validate cloud token by UUID", 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 } },
|
|
72
|
+
{ name: "coolify_list_databases", method: "GET", path: "/databases", title: "List databases", description: "List databases", 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 } },
|
|
73
|
+
{ name: "coolify_get_database_backups_by_uuid", method: "GET", path: "/databases/{uuid}/backups", title: "Get database backups by UUID", description: "Get database backups by UUID", 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 } },
|
|
74
|
+
{ name: "coolify_create_database_backup", method: "POST", path: "/databases/{uuid}/backups", title: "Create database backup", 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().optional(), "message": z.string().optional() }), responseKind: "json", parameters: [{ location: "path", name: "uuid" }], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
|
|
75
|
+
{ name: "coolify_get_database_by_uuid", method: "GET", path: "/databases/{uuid}", title: "Get database by UUID", description: "Get database by UUID", inputSchema: z.object({ "uuid": z.string() }), responseSchema: z.record(z.string(), z.any()), responseKind: "json", parameters: [{ location: "path", name: "uuid" }], annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false } },
|
|
76
|
+
{ name: "coolify_delete_database_by_uuid", method: "DELETE", path: "/databases/{uuid}", title: "Delete database by UUID", description: "Delete database by UUID", 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 } },
|
|
77
|
+
{ name: "coolify_update_database_by_uuid", method: "PATCH", path: "/databases/{uuid}", title: "Update database by UUID", description: "Update database by UUID", 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.union([z.record(z.string(), z.any()), z.null()]), responseKind: "json", parameters: [{ location: "path", name: "uuid" }], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
|
|
78
|
+
{ name: "coolify_delete_backup_configuration_by_uuid", method: "DELETE", path: "/databases/{uuid}/backups/{scheduled_backup_uuid}", title: "Delete backup configuration by 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 } },
|
|
79
|
+
{ name: "coolify_update_database_backup", method: "PATCH", path: "/databases/{uuid}/backups/{scheduled_backup_uuid}", title: "Update database backup", description: "Update database backup", 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.object({ "message": z.string() }), responseKind: "json", parameters: [{ location: "path", name: "uuid" }, { location: "path", name: "scheduled_backup_uuid" }], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
|
|
80
|
+
{ name: "coolify_create_database_postgresql", method: "POST", path: "/databases/postgresql", title: "Create database 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.").optional(), "environment_uuid": z.string().describe("UUID of the environment. You need to provide at least one of environment_name or environment_uuid.").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(), "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() }).refine((body) => typeof body["environment_name"] === "string" && body["environment_name"].trim().length > 0 || typeof body["environment_uuid"] === "string" && body["environment_uuid"].trim().length > 0, { message: "At least one of environment_name, environment_uuid is required" }) }), responseSchema: z.union([z.record(z.string(), z.any()), z.null()]), responseKind: "json", parameters: [], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
|
|
81
|
+
{ name: "coolify_create_database_clickhouse", method: "POST", path: "/databases/clickhouse", title: "Create database clickhouse", description: "Create (Clickhouse)", 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.").optional(), "environment_uuid": z.string().describe("UUID of the environment. You need to provide at least one of environment_name or environment_uuid.").optional(), "destination_uuid": z.string().describe("UUID of the destination if the server has multiple destinations").optional(), "clickhouse_admin_user": z.string().describe("Clickhouse admin user").optional(), "clickhouse_admin_password": z.string().describe("Clickhouse admin password").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() }).refine((body) => typeof body["environment_name"] === "string" && body["environment_name"].trim().length > 0 || typeof body["environment_uuid"] === "string" && body["environment_uuid"].trim().length > 0, { message: "At least one of environment_name, environment_uuid is required" }) }), responseSchema: z.union([z.record(z.string(), z.any()), z.null()]), responseKind: "json", parameters: [], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
|
|
82
|
+
{ name: "coolify_create_database_dragonfly", method: "POST", path: "/databases/dragonfly", title: "Create database dragonfly", description: "Create (DragonFly)", 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.").optional(), "environment_uuid": z.string().describe("UUID of the environment. You need to provide at least one of environment_name or environment_uuid.").optional(), "destination_uuid": z.string().describe("UUID of the destination if the server has multiple destinations").optional(), "dragonfly_password": z.string().describe("DragonFly password").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() }).refine((body) => typeof body["environment_name"] === "string" && body["environment_name"].trim().length > 0 || typeof body["environment_uuid"] === "string" && body["environment_uuid"].trim().length > 0, { message: "At least one of environment_name, environment_uuid is required" }) }), responseSchema: z.union([z.record(z.string(), z.any()), z.null()]), responseKind: "json", parameters: [], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
|
|
83
|
+
{ name: "coolify_create_database_redis", method: "POST", path: "/databases/redis", title: "Create database redis", description: "Create (Redis)", 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.").optional(), "environment_uuid": z.string().describe("UUID of the environment. You need to provide at least one of environment_name or environment_uuid.").optional(), "destination_uuid": z.string().describe("UUID of the destination if the server has multiple destinations").optional(), "redis_password": z.string().describe("Redis password").optional(), "redis_conf": z.string().describe("Redis conf").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() }).refine((body) => typeof body["environment_name"] === "string" && body["environment_name"].trim().length > 0 || typeof body["environment_uuid"] === "string" && body["environment_uuid"].trim().length > 0, { message: "At least one of environment_name, environment_uuid is required" }) }), responseSchema: z.union([z.record(z.string(), z.any()), z.null()]), responseKind: "json", parameters: [], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
|
|
84
|
+
{ name: "coolify_create_database_keydb", method: "POST", path: "/databases/keydb", title: "Create database keydb", description: "Create (KeyDB)", 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.").optional(), "environment_uuid": z.string().describe("UUID of the environment. You need to provide at least one of environment_name or environment_uuid.").optional(), "destination_uuid": z.string().describe("UUID of the destination if the server has multiple destinations").optional(), "keydb_password": z.string().describe("KeyDB password").optional(), "keydb_conf": z.string().describe("KeyDB conf").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() }).refine((body) => typeof body["environment_name"] === "string" && body["environment_name"].trim().length > 0 || typeof body["environment_uuid"] === "string" && body["environment_uuid"].trim().length > 0, { message: "At least one of environment_name, environment_uuid is required" }) }), responseSchema: z.union([z.record(z.string(), z.any()), z.null()]), responseKind: "json", parameters: [], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
|
|
85
|
+
{ name: "coolify_create_database_mariadb", method: "POST", path: "/databases/mariadb", title: "Create database mariadb", description: "Create (MariaDB)", 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.").optional(), "environment_uuid": z.string().describe("UUID of the environment. You need to provide at least one of environment_name or environment_uuid.").optional(), "destination_uuid": z.string().describe("UUID of the destination if the server has multiple destinations").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(), "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() }).refine((body) => typeof body["environment_name"] === "string" && body["environment_name"].trim().length > 0 || typeof body["environment_uuid"] === "string" && body["environment_uuid"].trim().length > 0, { message: "At least one of environment_name, environment_uuid is required" }) }), responseSchema: z.union([z.record(z.string(), z.any()), z.null()]), responseKind: "json", parameters: [], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
|
|
86
|
+
{ name: "coolify_create_database_mysql", method: "POST", path: "/databases/mysql", title: "Create database mysql", description: "Create (MySQL)", 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.").optional(), "environment_uuid": z.string().describe("UUID of the environment. You need to provide at least one of environment_name or environment_uuid.").optional(), "destination_uuid": z.string().describe("UUID of the destination if the server has multiple destinations").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(), "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() }).refine((body) => typeof body["environment_name"] === "string" && body["environment_name"].trim().length > 0 || typeof body["environment_uuid"] === "string" && body["environment_uuid"].trim().length > 0, { message: "At least one of environment_name, environment_uuid is required" }) }), responseSchema: z.union([z.record(z.string(), z.any()), z.null()]), responseKind: "json", parameters: [], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
|
|
87
|
+
{ name: "coolify_create_database_mongodb", method: "POST", path: "/databases/mongodb", title: "Create database mongodb", description: "Create (MongoDB)", 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.").optional(), "environment_uuid": z.string().describe("UUID of the environment. You need to provide at least one of environment_name or environment_uuid.").optional(), "destination_uuid": z.string().describe("UUID of the destination if the server has multiple destinations").optional(), "mongo_conf": z.string().describe("MongoDB conf").optional(), "mongo_initdb_root_username": z.string().describe("MongoDB initdb root username").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() }).refine((body) => typeof body["environment_name"] === "string" && body["environment_name"].trim().length > 0 || typeof body["environment_uuid"] === "string" && body["environment_uuid"].trim().length > 0, { message: "At least one of environment_name, environment_uuid is required" }) }), responseSchema: z.union([z.record(z.string(), z.any()), z.null()]), responseKind: "json", parameters: [], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
|
|
88
|
+
{ name: "coolify_get_database_logs_by_uuid", method: "GET", path: "/databases/{uuid}/logs", title: "Get database logs by UUID", description: "Get database 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 } },
|
|
89
|
+
{ name: "coolify_delete_backup_execution_by_uuid", method: "DELETE", path: "/databases/{uuid}/backups/{scheduled_backup_uuid}/executions/{execution_uuid}", title: "Delete backup execution by UUID", description: "Delete backup execution", inputSchema: z.object({ "uuid": z.string(), "scheduled_backup_uuid": z.string(), "execution_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: "path", name: "execution_uuid" }, { location: "query", name: "delete_s3" }], annotations: { readOnlyHint: false, destructiveHint: true, idempotentHint: true, openWorldHint: false } },
|
|
90
|
+
{ name: "coolify_list_backup_executions", method: "GET", path: "/databases/{uuid}/backups/{scheduled_backup_uuid}/executions", title: "List backup executions", description: "List backup executions", inputSchema: z.object({ "uuid": z.string(), "scheduled_backup_uuid": z.string() }), responseSchema: z.object({ "executions": z.array(z.object({ "uuid": z.string().optional(), "filename": z.string().optional(), "size": z.number().int().optional(), "created_at": z.string().optional(), "message": z.string().optional(), "status": z.string().optional() })).optional() }), responseKind: "json", parameters: [{ location: "path", name: "uuid" }, { location: "path", name: "scheduled_backup_uuid" }], annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false } },
|
|
91
|
+
{ name: "coolify_move_database_by_uuid", method: "POST", path: "/databases/{uuid}/move", title: "Move database by UUID", 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 } },
|
|
92
|
+
{ name: "coolify_migrate_database_by_uuid", method: "POST", path: "/databases/{uuid}/migrate", title: "Migrate database by UUID", 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.record(z.string(), z.any()), responseKind: "json", parameters: [{ location: "path", name: "uuid" }], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
|
|
93
|
+
{ name: "coolify_start_database_by_uuid", method: "POST", path: "/databases/{uuid}/start", title: "Start database by UUID", description: "Start", inputSchema: z.object({ "uuid": z.string() }), responseSchema: z.object({ "message": z.string().optional() }), responseKind: "json", parameters: [{ location: "path", name: "uuid" }], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
|
|
94
|
+
{ name: "coolify_stop_database_by_uuid", method: "POST", path: "/databases/{uuid}/stop", title: "Stop database by UUID", 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 } },
|
|
95
|
+
{ name: "coolify_restart_database_by_uuid", method: "POST", path: "/databases/{uuid}/restart", title: "Restart database by UUID", description: "Restart", inputSchema: z.object({ "uuid": z.string() }), responseSchema: z.object({ "message": z.string().optional() }), responseKind: "json", parameters: [{ location: "path", name: "uuid" }], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
|
|
96
|
+
{ name: "coolify_list_envs_by_database_uuid", method: "GET", path: "/databases/{uuid}/envs", title: "List envs by database UUID", 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 } },
|
|
97
|
+
{ name: "coolify_create_env_by_database_uuid", method: "POST", path: "/databases/{uuid}/envs", title: "Create env by database UUID", 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_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 } },
|
|
98
|
+
{ name: "coolify_update_env_by_database_uuid", method: "PATCH", path: "/databases/{uuid}/envs", title: "Update env by database UUID", 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_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 } },
|
|
99
|
+
{ name: "coolify_update_envs_by_database_uuid", method: "PATCH", path: "/databases/{uuid}/envs/bulk", title: "Update envs by database UUID", 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 } },
|
|
100
|
+
{ name: "coolify_delete_env_by_database_uuid", method: "DELETE", path: "/databases/{uuid}/envs/{env_uuid}", title: "Delete env by database 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 } },
|
|
101
|
+
{ name: "coolify_list_storages_by_database_uuid", method: "GET", path: "/databases/{uuid}/storages", title: "List storages by database UUID", 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 } },
|
|
102
|
+
{ name: "coolify_create_storage_by_database_uuid", method: "POST", path: "/databases/{uuid}/storages", title: "Create storage by database UUID", 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", title: "Update storage by database UUID", 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 } },
|
|
104
|
+
{ name: "coolify_delete_storage_by_database_uuid", method: "DELETE", path: "/databases/{uuid}/storages/{storage_uuid}", title: "Delete storage by database 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 } },
|
|
105
|
+
{ name: "coolify_list_tags_by_database_uuid", method: "GET", path: "/databases/{uuid}/tags", title: "List tags by database UUID", 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 } },
|
|
106
|
+
{ name: "coolify_create_tag_by_database_uuid", method: "POST", path: "/databases/{uuid}/tags", title: "Create tag by database UUID", 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 } },
|
|
107
|
+
{ name: "coolify_delete_tag_by_database_uuid", method: "DELETE", path: "/databases/{uuid}/tags/{tag_uuid}", title: "Delete tag by database UUID", description: "Delete Tag", inputSchema: z.object({ "uuid": z.string(), "tag_uuid": z.string() }), responseSchema: z.object({ "message": z.string() }), responseKind: "json", parameters: [{ location: "path", name: "uuid" }, { location: "path", name: "tag_uuid" }], annotations: { readOnlyHint: false, destructiveHint: true, idempotentHint: true, openWorldHint: false } },
|
|
108
|
+
{ name: "coolify_clone_database_by_uuid", method: "POST", path: "/databases/{uuid}/clone", title: "Clone database by UUID", 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.object({ "uuid": z.string(), "message": z.string() }).catchall(z.any()), responseKind: "json", parameters: [{ location: "path", name: "uuid" }], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
|
|
109
|
+
{ name: "coolify_list_deployments", method: "GET", path: "/deployments", title: "List deployments", description: "List deployments", 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.union([z.string(), z.null()]).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}", title: "Get deployment by UUID", description: "Get deployment by UUID", 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.union([z.string(), z.null()]).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 } },
|
|
111
|
+
{ name: "coolify_cancel_deployment_by_uuid", method: "POST", path: "/deployments/{uuid}/cancel", title: "Cancel deployment by UUID", 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 } },
|
|
112
|
+
{ name: "coolify_deploy_by_tag_or_uuid", method: "POST", path: "/deploy", title: "Deploy by tag or UUID", 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 } },
|
|
113
|
+
{ name: "coolify_list_deployments_by_app_uuid", method: "GET", path: "/deployments/applications/{uuid}", title: "List deployments by app 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.union([z.string(), z.null()]).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 } },
|
|
114
|
+
{ name: "coolify_list_destinations", method: "GET", path: "/destinations", title: "List 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 } },
|
|
115
|
+
{ name: "coolify_list_server_destinations", method: "GET", path: "/servers/{server_uuid}/destinations", title: "List server 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 } },
|
|
116
|
+
{ name: "coolify_create_server_destination", method: "POST", path: "/servers/{server_uuid}/destinations", title: "Create server destination", 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 } },
|
|
117
|
+
{ name: "coolify_get_destination_by_uuid", method: "GET", path: "/destinations/{uuid}", title: "Get destination by UUID", description: "Get destination", inputSchema: z.object({ "uuid": z.string() }), 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: "uuid" }], annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false } },
|
|
118
|
+
{ name: "coolify_delete_destination_by_uuid", method: "DELETE", path: "/destinations/{uuid}", title: "Delete destination by UUID", description: "Delete destination", 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 } },
|
|
119
|
+
{ name: "coolify_update_destination_by_uuid", method: "PATCH", path: "/destinations/{uuid}", title: "Update destination by UUID", description: "Update destination", inputSchema: z.object({ "uuid": z.string(), body: z.object({ "name": z.string().max(255).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: "uuid" }], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
|
|
120
|
+
{ name: "coolify_get_digitalocean_regions", method: "GET", path: "/digitalocean/regions", title: "Get digitalocean regions", description: "Get DigitalOcean regions", inputSchema: z.object({ "cloud_provider_token_uuid": z.string().regex(new RegExp("\\S")).min(1).optional(), "cloud_provider_token_id": z.string().regex(new RegExp("\\S")).min(1).optional() }).refine((input) => typeof input["cloud_provider_token_uuid"] === "string" && input["cloud_provider_token_uuid"].trim().length > 0 || typeof input["cloud_provider_token_id"] === "string" && input["cloud_provider_token_id"].trim().length > 0, { message: "At least one of cloud_provider_token_uuid, cloud_provider_token_id is required" }), responseSchema: z.array(z.record(z.string(), z.any())), responseKind: "json", parameters: [{ location: "query", name: "cloud_provider_token_uuid" }, { location: "query", name: "cloud_provider_token_id" }], annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false } },
|
|
121
|
+
{ name: "coolify_get_digitalocean_sizes", method: "GET", path: "/digitalocean/sizes", title: "Get digitalocean sizes", description: "Get DigitalOcean sizes", inputSchema: z.object({ "cloud_provider_token_uuid": z.string().regex(new RegExp("\\S")).min(1).optional(), "cloud_provider_token_id": z.string().regex(new RegExp("\\S")).min(1).optional() }).refine((input) => typeof input["cloud_provider_token_uuid"] === "string" && input["cloud_provider_token_uuid"].trim().length > 0 || typeof input["cloud_provider_token_id"] === "string" && input["cloud_provider_token_id"].trim().length > 0, { message: "At least one of cloud_provider_token_uuid, cloud_provider_token_id is required" }), responseSchema: z.array(z.record(z.string(), z.any())), responseKind: "json", parameters: [{ location: "query", name: "cloud_provider_token_uuid" }, { location: "query", name: "cloud_provider_token_id" }], annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false } },
|
|
122
|
+
{ name: "coolify_get_digitalocean_images", method: "GET", path: "/digitalocean/images", title: "Get digitalocean images", description: "Get DigitalOcean images", inputSchema: z.object({ "cloud_provider_token_uuid": z.string().regex(new RegExp("\\S")).min(1).optional(), "cloud_provider_token_id": z.string().regex(new RegExp("\\S")).min(1).optional() }).refine((input) => typeof input["cloud_provider_token_uuid"] === "string" && input["cloud_provider_token_uuid"].trim().length > 0 || typeof input["cloud_provider_token_id"] === "string" && input["cloud_provider_token_id"].trim().length > 0, { message: "At least one of cloud_provider_token_uuid, cloud_provider_token_id is required" }), responseSchema: z.array(z.record(z.string(), z.any())), responseKind: "json", parameters: [{ location: "query", name: "cloud_provider_token_uuid" }, { location: "query", name: "cloud_provider_token_id" }], annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false } },
|
|
123
|
+
{ name: "coolify_get_digitalocean_ssh_keys", method: "GET", path: "/digitalocean/ssh-keys", title: "Get digitalocean ssh keys", description: "Get DigitalOcean SSH keys", inputSchema: z.object({ "cloud_provider_token_uuid": z.string().regex(new RegExp("\\S")).min(1).optional(), "cloud_provider_token_id": z.string().regex(new RegExp("\\S")).min(1).optional() }).refine((input) => typeof input["cloud_provider_token_uuid"] === "string" && input["cloud_provider_token_uuid"].trim().length > 0 || typeof input["cloud_provider_token_id"] === "string" && input["cloud_provider_token_id"].trim().length > 0, { message: "At least one of cloud_provider_token_uuid, cloud_provider_token_id is required" }), responseSchema: z.array(z.record(z.string(), z.any())), responseKind: "json", parameters: [{ location: "query", name: "cloud_provider_token_uuid" }, { location: "query", name: "cloud_provider_token_id" }], annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false } },
|
|
124
|
+
{ name: "coolify_create_digitalocean_server", method: "POST", path: "/servers/digitalocean", title: "Create digitalocean server", description: "Create a server on DigitalOcean", inputSchema: z.object({ body: z.object({ "cloud_provider_token_uuid": z.string().regex(new RegExp("\\S")).min(1).describe("Cloud provider token UUID. Required if cloud_provider_token_id is not provided.").optional(), "cloud_provider_token_id": z.string().regex(new RegExp("\\S")).min(1).describe("Deprecated: Use cloud_provider_token_uuid instead. Cloud provider token UUID.").optional(), "region": z.string().min(1), "size": z.string().min(1), "image": z.union([z.string().min(1), z.number().int()]).describe("DigitalOcean image slug or ID."), "name": z.union([z.string().regex(new RegExp("^$|^[A-Za-z0-9](?:[A-Za-z0-9-]{0,61}[A-Za-z0-9])?(?:\\.[A-Za-z0-9](?:[A-Za-z0-9-]{0,61}[A-Za-z0-9])?)*$")).max(253), z.null()]).optional(), "private_key_uuid": z.string().min(1), "enable_ipv6": z.union([z.boolean(), z.null()]).optional(), "monitoring": z.union([z.boolean(), z.null()]).optional(), "digitalocean_ssh_key_ids": z.union([z.array(z.number().int()), z.null()]).optional(), "cloud_init_script": z.union([z.string().describe("Valid cloud-init YAML or a bash script beginning with #!."), z.null()]).optional(), "instant_validate": z.union([z.boolean(), z.null()]).optional() }).refine((body) => typeof body["cloud_provider_token_uuid"] === "string" && body["cloud_provider_token_uuid"].trim().length > 0 || typeof body["cloud_provider_token_id"] === "string" && body["cloud_provider_token_id"].trim().length > 0, { message: "At least one of cloud_provider_token_uuid, cloud_provider_token_id is required" }) }), responseSchema: z.object({ "uuid": z.string(), "digitalocean_droplet_id": z.number().int(), "ip": z.union([z.string(), z.null()]) }).catchall(z.any()), responseKind: "json", parameters: [], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
|
|
125
|
+
{ name: "coolify_list_github_apps", method: "GET", path: "/github-apps", title: "List github apps", description: "List github apps", inputSchema: z.object({}), responseSchema: z.array(z.object({ "id": z.number().int().optional(), "uuid": z.string().optional(), "name": z.string().optional(), "organization": z.union([z.string(), z.null()]).optional(), "api_url": z.string().optional(), "html_url": z.string().optional(), "custom_user": z.string().optional(), "custom_port": z.number().int().optional(), "app_id": z.union([z.number().int(), z.null()]).optional(), "installation_id": z.union([z.number().int(), z.null()]).optional(), "client_id": z.union([z.string(), z.null()]).optional(), "private_key_id": z.string().optional(), "is_system_wide": z.boolean().optional(), "is_public": z.boolean().optional(), "team_id": z.number().int().optional(), "type": z.string().optional() })), responseKind: "json", parameters: [], annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false } },
|
|
126
|
+
{ name: "coolify_create_github_app", method: "POST", path: "/github-apps", title: "Create github app", description: "Create GitHub App", inputSchema: z.object({ body: z.object({ "name": z.string().describe("Name of the GitHub app."), "organization": z.union([z.string().describe("Organization to associate the app with."), z.null()]).optional(), "api_url": z.string().describe("API URL for the GitHub app (e.g., https://api.github.com).").optional(), "html_url": z.string().describe("HTML URL for the GitHub app (e.g., https://github.com)."), "custom_user": z.string().describe("Custom user for SSH access (default: git).").optional(), "custom_port": z.number().int().describe("Custom port for SSH access (default: 22).").optional(), "app_id": z.number().int().describe("GitHub App ID from GitHub."), "installation_id": z.number().int().describe("GitHub Installation ID."), "client_id": z.string().describe("GitHub OAuth App Client ID."), "client_secret": z.string().describe("GitHub OAuth App Client Secret."), "webhook_secret": z.string().describe("Webhook secret for GitHub webhooks.").optional(), "private_key_uuid": z.string().describe("UUID of an existing private key for GitHub App authentication."), "is_system_wide": z.boolean().describe("Is this app system-wide (cloud only).").optional() }) }), responseSchema: z.object({ "id": z.number().int().optional(), "uuid": z.string().optional(), "name": z.string().optional(), "organization": z.union([z.string(), z.null()]).optional(), "api_url": z.string().optional(), "html_url": z.string().optional(), "custom_user": z.string().optional(), "custom_port": z.number().int().optional(), "app_id": z.number().int().optional(), "installation_id": z.number().int().optional(), "client_id": z.string().optional(), "private_key_id": z.number().int().optional(), "is_system_wide": z.boolean().optional(), "team_id": z.number().int().optional() }), responseKind: "json", parameters: [], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
|
|
127
|
+
{ name: "coolify_load_repositories", method: "GET", path: "/github-apps/{github_app_id}/repositories", title: "Load repositories", description: "Load Repositories for a GitHub App", inputSchema: z.object({ "github_app_id": z.number().int() }), responseSchema: z.object({ "repositories": z.array(z.record(z.string(), z.any())).optional() }), responseKind: "json", parameters: [{ location: "path", name: "github_app_id" }], annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false } },
|
|
128
|
+
{ name: "coolify_load_branches", method: "GET", path: "/github-apps/{github_app_id}/repositories/{owner}/{repo}/branches", title: "Load branches", description: "Load Branches for a GitHub Repository", inputSchema: z.object({ "github_app_id": z.number().int(), "owner": z.string(), "repo": z.string() }), responseSchema: z.object({ "branches": z.array(z.record(z.string(), z.any())).optional() }), responseKind: "json", parameters: [{ location: "path", name: "github_app_id" }, { location: "path", name: "owner" }, { location: "path", name: "repo" }], annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false } },
|
|
129
|
+
{ name: "coolify_deletegithubapp", method: "DELETE", path: "/github-apps/{github_app_id}", title: "Deletegithubapp", description: "Delete GitHub App", inputSchema: z.object({ "github_app_id": z.number().int() }), responseSchema: z.object({ "message": z.string().optional() }), responseKind: "json", parameters: [{ location: "path", name: "github_app_id" }], annotations: { readOnlyHint: false, destructiveHint: true, idempotentHint: true, openWorldHint: false } },
|
|
130
|
+
{ name: "coolify_updategithubapp", method: "PATCH", path: "/github-apps/{github_app_id}", title: "Updategithubapp", description: "Update GitHub App", inputSchema: z.object({ "github_app_id": z.number().int(), body: z.object({ "name": z.string().describe("GitHub App name").optional(), "organization": z.union([z.string().describe("GitHub organization"), z.null()]).optional(), "api_url": z.string().describe("GitHub API URL").optional(), "html_url": z.string().describe("GitHub HTML URL").optional(), "custom_user": z.string().describe("Custom user for SSH").optional(), "custom_port": z.number().int().describe("Custom port for SSH").optional(), "app_id": z.number().int().describe("GitHub App ID").optional(), "installation_id": z.number().int().describe("GitHub Installation ID").optional(), "client_id": z.string().describe("GitHub Client ID").optional(), "client_secret": z.string().describe("GitHub Client Secret").optional(), "webhook_secret": z.string().describe("GitHub Webhook Secret").optional(), "private_key_uuid": z.string().describe("Private key UUID").optional(), "is_system_wide": z.boolean().describe("Is system wide (non-cloud instances only)").optional() }) }), responseSchema: z.object({ "message": z.string().optional(), "data": z.record(z.string(), z.any()).describe("Updated GitHub app data").optional() }), responseKind: "json", parameters: [{ location: "path", name: "github_app_id" }], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
|
|
131
|
+
{ name: "coolify_list_gitlab_apps", method: "GET", path: "/gitlab-apps", title: "List gitlab apps", description: "List gitlab apps", inputSchema: z.object({}), responseSchema: z.array(z.object({ "id": z.number().int().optional(), "uuid": z.string().optional(), "name": z.string().optional(), "api_url": z.string().optional(), "html_url": z.string().optional(), "custom_user": z.string().optional(), "custom_port": z.number().int().optional(), "client_id": z.union([z.string(), z.null()]).optional(), "group_name": z.union([z.string(), z.null()]).optional(), "redirect_uri": z.union([z.string(), z.null()]).optional(), "is_system_wide": z.boolean().optional(), "is_public": z.boolean().optional(), "team_id": z.number().int().optional() })), responseKind: "json", parameters: [], annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false } },
|
|
132
|
+
{ name: "coolify_create_gitlab_app", method: "POST", path: "/gitlab-apps", title: "Create gitlab app", description: "Create GitLab App", inputSchema: z.object({ body: z.object({ "name": z.string().describe("Name of the GitLab app."), "html_url": z.string().describe("GitLab instance URL (e.g., https://gitlab.com)."), "api_url": z.string().describe("GitLab API URL (defaults to {html_url}/api/v4).").optional(), "custom_user": z.string().describe("Custom user for SSH access (default: git).").optional(), "custom_port": z.number().int().describe("Custom port for SSH access (default: 22).").optional(), "group_name": z.union([z.string().describe("Optional comma-separated group names to filter repositories."), z.null()]).optional(), "client_id": z.union([z.string().describe("GitLab OAuth Application ID."), z.null()]).optional(), "client_secret": z.union([z.string().describe("GitLab OAuth Application Secret."), z.null()]).optional(), "webhook_token": z.union([z.string().describe("Webhook secret token (auto-generated when omitted)."), z.null()]).optional(), "redirect_uri": z.union([z.string().describe("OAuth redirect URI registered in GitLab."), z.null()]).optional(), "is_system_wide": z.boolean().describe("Is this app system-wide (non-cloud instances only).").optional() }) }), responseSchema: z.object({ "id": z.number().int().optional(), "uuid": z.string().optional(), "name": z.string().optional(), "api_url": z.string().optional(), "html_url": z.string().optional(), "custom_user": z.string().optional(), "custom_port": z.number().int().optional(), "client_id": z.union([z.string(), z.null()]).optional(), "group_name": z.union([z.string(), z.null()]).optional(), "redirect_uri": z.union([z.string(), z.null()]).optional(), "is_system_wide": z.boolean().optional(), "team_id": z.number().int().optional() }), responseKind: "json", parameters: [], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
|
|
133
|
+
{ name: "coolify_deletegitlabapp", method: "DELETE", path: "/gitlab-apps/{gitlab_app_id}", title: "Deletegitlabapp", description: "Delete GitLab App", inputSchema: z.object({ "gitlab_app_id": z.number().int() }), responseSchema: z.object({ "message": z.string().optional() }), responseKind: "json", parameters: [{ location: "path", name: "gitlab_app_id" }], annotations: { readOnlyHint: false, destructiveHint: true, idempotentHint: true, openWorldHint: false } },
|
|
134
|
+
{ name: "coolify_updategitlabapp", method: "PATCH", path: "/gitlab-apps/{gitlab_app_id}", title: "Updategitlabapp", description: "Update GitLab App", inputSchema: z.object({ "gitlab_app_id": z.number().int(), body: z.object({ "name": z.string().describe("GitLab App name").optional(), "html_url": z.string().describe("GitLab HTML URL").optional(), "api_url": z.string().describe("GitLab API URL").optional(), "custom_user": z.string().describe("Custom user for SSH").optional(), "custom_port": z.number().int().describe("Custom port for SSH").optional(), "group_name": z.union([z.string().describe("Optional group filter"), z.null()]).optional(), "client_id": z.union([z.string().describe("OAuth Application ID"), z.null()]).optional(), "client_secret": z.union([z.string().describe("OAuth Application Secret"), z.null()]).optional(), "webhook_token": z.union([z.string().describe("Webhook secret token"), z.null()]).optional(), "redirect_uri": z.union([z.string().describe("OAuth redirect URI"), z.null()]).optional(), "is_system_wide": z.boolean().describe("Is system wide (non-cloud instances only)").optional() }) }), responseSchema: z.object({ "message": z.string().optional(), "data": z.record(z.string(), z.any()).describe("Updated GitLab app data").optional() }), responseKind: "json", parameters: [{ location: "path", name: "gitlab_app_id" }], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
|
|
135
|
+
{ name: "coolify_get_hetzner_locations", method: "GET", path: "/hetzner/locations", title: "Get hetzner locations", description: "Get Hetzner Locations", inputSchema: z.object({ "cloud_provider_token_uuid": z.string().regex(new RegExp("\\S")).min(1).optional(), "cloud_provider_token_id": z.string().regex(new RegExp("\\S")).min(1).optional() }).refine((input) => typeof input["cloud_provider_token_uuid"] === "string" && input["cloud_provider_token_uuid"].trim().length > 0 || typeof input["cloud_provider_token_id"] === "string" && input["cloud_provider_token_id"].trim().length > 0, { message: "At least one of cloud_provider_token_uuid, cloud_provider_token_id is required" }), responseSchema: z.array(z.record(z.string(), z.any())), responseKind: "json", parameters: [{ location: "query", name: "cloud_provider_token_uuid" }, { location: "query", name: "cloud_provider_token_id" }], annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false } },
|
|
136
|
+
{ name: "coolify_get_hetzner_server_types", method: "GET", path: "/hetzner/server-types", title: "Get hetzner server types", description: "Get Hetzner Server Types", inputSchema: z.object({ "cloud_provider_token_uuid": z.string().regex(new RegExp("\\S")).min(1).optional(), "cloud_provider_token_id": z.string().regex(new RegExp("\\S")).min(1).optional() }).refine((input) => typeof input["cloud_provider_token_uuid"] === "string" && input["cloud_provider_token_uuid"].trim().length > 0 || typeof input["cloud_provider_token_id"] === "string" && input["cloud_provider_token_id"].trim().length > 0, { message: "At least one of cloud_provider_token_uuid, cloud_provider_token_id is required" }), responseSchema: z.array(z.record(z.string(), z.any())), responseKind: "json", parameters: [{ location: "query", name: "cloud_provider_token_uuid" }, { location: "query", name: "cloud_provider_token_id" }], annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false } },
|
|
137
|
+
{ name: "coolify_get_hetzner_images", method: "GET", path: "/hetzner/images", title: "Get hetzner images", description: "Get Hetzner Images", inputSchema: z.object({ "cloud_provider_token_uuid": z.string().regex(new RegExp("\\S")).min(1).optional(), "cloud_provider_token_id": z.string().regex(new RegExp("\\S")).min(1).optional() }).refine((input) => typeof input["cloud_provider_token_uuid"] === "string" && input["cloud_provider_token_uuid"].trim().length > 0 || typeof input["cloud_provider_token_id"] === "string" && input["cloud_provider_token_id"].trim().length > 0, { message: "At least one of cloud_provider_token_uuid, cloud_provider_token_id is required" }), responseSchema: z.array(z.record(z.string(), z.any())), responseKind: "json", parameters: [{ location: "query", name: "cloud_provider_token_uuid" }, { location: "query", name: "cloud_provider_token_id" }], annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false } },
|
|
138
|
+
{ name: "coolify_get_hetzner_ssh_keys", method: "GET", path: "/hetzner/ssh-keys", title: "Get hetzner ssh keys", description: "Get Hetzner SSH Keys", inputSchema: z.object({ "cloud_provider_token_uuid": z.string().regex(new RegExp("\\S")).min(1).optional(), "cloud_provider_token_id": z.string().regex(new RegExp("\\S")).min(1).optional() }).refine((input) => typeof input["cloud_provider_token_uuid"] === "string" && input["cloud_provider_token_uuid"].trim().length > 0 || typeof input["cloud_provider_token_id"] === "string" && input["cloud_provider_token_id"].trim().length > 0, { message: "At least one of cloud_provider_token_uuid, cloud_provider_token_id is required" }), responseSchema: z.array(z.record(z.string(), z.any())), responseKind: "json", parameters: [{ location: "query", name: "cloud_provider_token_uuid" }, { location: "query", name: "cloud_provider_token_id" }], annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false } },
|
|
139
|
+
{ name: "coolify_get_hetzner_firewalls", method: "GET", path: "/hetzner/firewalls", title: "Get hetzner firewalls", description: "Get Hetzner Firewalls", inputSchema: z.object({ "cloud_provider_token_uuid": z.string().regex(new RegExp("\\S")).min(1).optional(), "cloud_provider_token_id": z.string().regex(new RegExp("\\S")).min(1).optional() }).refine((input) => typeof input["cloud_provider_token_uuid"] === "string" && input["cloud_provider_token_uuid"].trim().length > 0 || typeof input["cloud_provider_token_id"] === "string" && input["cloud_provider_token_id"].trim().length > 0, { message: "At least one of cloud_provider_token_uuid, cloud_provider_token_id is required" }), responseSchema: z.array(z.record(z.string(), z.any())), responseKind: "json", parameters: [{ location: "query", name: "cloud_provider_token_uuid" }, { location: "query", name: "cloud_provider_token_id" }], annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false } },
|
|
140
|
+
{ name: "coolify_get_hetzner_networks", method: "GET", path: "/hetzner/networks", title: "Get hetzner networks", description: "Get Hetzner Networks", inputSchema: z.object({ "cloud_provider_token_uuid": z.string().regex(new RegExp("\\S")).min(1).optional(), "cloud_provider_token_id": z.string().regex(new RegExp("\\S")).min(1).optional() }).refine((input) => typeof input["cloud_provider_token_uuid"] === "string" && input["cloud_provider_token_uuid"].trim().length > 0 || typeof input["cloud_provider_token_id"] === "string" && input["cloud_provider_token_id"].trim().length > 0, { message: "At least one of cloud_provider_token_uuid, cloud_provider_token_id is required" }), responseSchema: z.array(z.record(z.string(), z.any())), responseKind: "json", parameters: [{ location: "query", name: "cloud_provider_token_uuid" }, { location: "query", name: "cloud_provider_token_id" }], annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false } },
|
|
141
|
+
{ name: "coolify_create_hetzner_server", method: "POST", path: "/servers/hetzner", title: "Create hetzner server", description: "Create Hetzner Server", inputSchema: z.object({ body: z.object({ "cloud_provider_token_uuid": z.string().regex(new RegExp("\\S")).min(1).describe("Cloud provider token UUID. Required if cloud_provider_token_id is not provided.").optional(), "cloud_provider_token_id": z.string().regex(new RegExp("\\S")).min(1).describe("Deprecated: Use cloud_provider_token_uuid instead. Cloud provider token UUID.").optional(), "location": z.string().min(1).describe("Hetzner location name"), "server_type": z.string().min(1).describe("Hetzner server type name"), "image": z.number().int().describe("Hetzner image ID"), "name": z.union([z.string().regex(new RegExp("^$|^[A-Za-z0-9](?:[A-Za-z0-9-]{0,61}[A-Za-z0-9])?(?:\\.[A-Za-z0-9](?:[A-Za-z0-9-]{0,61}[A-Za-z0-9])?)*$")).max(253).describe("Server name (auto-generated if not provided)"), z.null()]).optional(), "private_key_uuid": z.string().min(1).describe("Private key UUID"), "enable_ipv4": z.union([z.boolean().describe("Enable IPv4 (default: true)"), z.null()]).optional(), "enable_ipv6": z.union([z.boolean().describe("Enable IPv6 (default: true)"), z.null()]).optional(), "enable_backups": z.union([z.boolean().describe("Enable Hetzner server backups after creation (adds 20% to the monthly server fee)"), z.null()]).optional(), "hetzner_ssh_key_ids": z.union([z.array(z.number().int()).describe("Additional Hetzner SSH key IDs"), z.null()]).optional(), "hetzner_firewall_ids": z.union([z.array(z.number().int()).describe("Existing Hetzner firewall IDs to apply during server creation"), z.null()]).optional(), "hetzner_network_ids": z.union([z.array(z.number().int()).describe("Existing Hetzner network IDs to attach during server creation"), z.null()]).optional(), "cloud_init_script": z.union([z.string().describe("Valid cloud-init YAML or a bash script beginning with #!."), z.null()]).optional(), "instant_validate": z.union([z.boolean().describe("Validate server immediately after creation"), z.null()]).optional() }).refine((body) => typeof body["cloud_provider_token_uuid"] === "string" && body["cloud_provider_token_uuid"].trim().length > 0 || typeof body["cloud_provider_token_id"] === "string" && body["cloud_provider_token_id"].trim().length > 0, { message: "At least one of cloud_provider_token_uuid, cloud_provider_token_id is required" }).refine((body) => !(body["enable_ipv4"] === false && body["enable_ipv6"] === false), { message: "Enable at least one public IP protocol." }) }), responseSchema: z.object({ "uuid": z.string().describe("The UUID of the server."), "hetzner_server_id": z.number().int().describe("The Hetzner server ID."), "ip": z.union([z.string().describe("The server IP address."), z.null()]) }), responseKind: "json", parameters: [], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
|
|
142
|
+
{ name: "coolify_get_current_team_email_notifications", method: "GET", path: "/notifications/email", title: "Get current team email notifications", description: "Get email notification settings", inputSchema: z.object({}), responseSchema: z.record(z.string(), z.any()), responseKind: "json", parameters: [], annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false } },
|
|
143
|
+
{ name: "coolify_update_current_team_email_notifications", method: "PATCH", path: "/notifications/email", title: "Update current team email notifications", description: "Update email notification settings", inputSchema: z.object({}), responseSchema: z.record(z.string(), z.any()), responseKind: "json", parameters: [], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
|
|
144
|
+
{ name: "coolify_get_current_team_discord_notifications", method: "GET", path: "/notifications/discord", title: "Get current team discord notifications", description: "Get Discord notification settings", inputSchema: z.object({}), responseSchema: z.record(z.string(), z.any()), responseKind: "json", parameters: [], annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false } },
|
|
145
|
+
{ name: "coolify_update_current_team_discord_notifications", method: "PATCH", path: "/notifications/discord", title: "Update current team discord notifications", description: "Update Discord notification settings", inputSchema: z.object({}), responseSchema: z.record(z.string(), z.any()), responseKind: "json", parameters: [], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
|
|
146
|
+
{ name: "coolify_get_current_team_slack_notifications", method: "GET", path: "/notifications/slack", title: "Get current team slack notifications", description: "Get Slack notification settings", inputSchema: z.object({}), responseSchema: z.record(z.string(), z.any()), responseKind: "json", parameters: [], annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false } },
|
|
147
|
+
{ name: "coolify_update_current_team_slack_notifications", method: "PATCH", path: "/notifications/slack", title: "Update current team slack notifications", description: "Update Slack notification settings", inputSchema: z.object({}), responseSchema: z.record(z.string(), z.any()), responseKind: "json", parameters: [], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
|
|
148
|
+
{ name: "coolify_get_current_team_telegram_notifications", method: "GET", path: "/notifications/telegram", title: "Get current team telegram notifications", description: "Get Telegram notification settings", inputSchema: z.object({}), responseSchema: z.record(z.string(), z.any()), responseKind: "json", parameters: [], annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false } },
|
|
149
|
+
{ name: "coolify_update_current_team_telegram_notifications", method: "PATCH", path: "/notifications/telegram", title: "Update current team telegram notifications", description: "Update Telegram notification settings", inputSchema: z.object({}), responseSchema: z.record(z.string(), z.any()), responseKind: "json", parameters: [], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
|
|
150
|
+
{ name: "coolify_get_current_team_pushover_notifications", method: "GET", path: "/notifications/pushover", title: "Get current team pushover notifications", description: "Get Pushover notification settings", inputSchema: z.object({}), responseSchema: z.record(z.string(), z.any()), responseKind: "json", parameters: [], annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false } },
|
|
151
|
+
{ name: "coolify_update_current_team_pushover_notifications", method: "PATCH", path: "/notifications/pushover", title: "Update current team pushover notifications", description: "Update Pushover notification settings", inputSchema: z.object({}), responseSchema: z.record(z.string(), z.any()), responseKind: "json", parameters: [], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
|
|
152
|
+
{ name: "coolify_get_current_team_webhook_notifications", method: "GET", path: "/notifications/webhook", title: "Get current team webhook notifications", description: "Get webhook notification settings", inputSchema: z.object({}), responseSchema: z.record(z.string(), z.any()), responseKind: "json", parameters: [], annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false } },
|
|
153
|
+
{ name: "coolify_update_current_team_webhook_notifications", method: "PATCH", path: "/notifications/webhook", title: "Update current team webhook notifications", description: "Update webhook notification settings", inputSchema: z.object({}), responseSchema: z.record(z.string(), z.any()), responseKind: "json", parameters: [], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
|
|
154
|
+
{ name: "coolify_version", method: "GET", path: "/version", title: "Version", description: "Version", inputSchema: z.object({}), responseSchema: z.string(), responseKind: "text", parameters: [], annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false } },
|
|
155
|
+
{ name: "coolify_enable_api", method: "POST", path: "/enable", title: "Enable api", description: "Enable API", inputSchema: z.object({}), responseSchema: z.object({ "message": z.string().optional() }), responseKind: "json", parameters: [], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
|
|
156
|
+
{ name: "coolify_disable_api", method: "POST", path: "/disable", title: "Disable api", description: "Disable API", inputSchema: z.object({}), responseSchema: z.object({ "message": z.string().optional() }), responseKind: "json", parameters: [], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
|
|
157
|
+
{ name: "coolify_enable_mcp", method: "POST", path: "/mcp/enable", title: "Enable mcp", description: "Enable MCP Server", inputSchema: z.object({}), responseSchema: z.object({ "message": z.string().optional() }), responseKind: "json", parameters: [], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
|
|
158
|
+
{ name: "coolify_disable_mcp", method: "POST", path: "/mcp/disable", title: "Disable mcp", description: "Disable MCP Server", inputSchema: z.object({}), responseSchema: z.object({ "message": z.string().optional() }), responseKind: "json", parameters: [], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
|
|
159
|
+
{ name: "coolify_healthcheck", method: "GET", path: "/health", title: "Healthcheck", description: "Healthcheck", inputSchema: z.object({}), responseSchema: z.string(), responseKind: "text", parameters: [], annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false } },
|
|
160
|
+
{ name: "coolify_list_projects", method: "GET", path: "/projects", title: "List projects", description: "List projects", inputSchema: z.object({}), responseSchema: z.array(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: [], annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false } },
|
|
161
|
+
{ name: "coolify_create_project", method: "POST", path: "/projects", title: "Create project", description: "Create project", inputSchema: z.object({ 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().describe("The UUID of the project.").optional() }), responseKind: "json", parameters: [], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
|
|
162
|
+
{ name: "coolify_get_project_by_uuid", method: "GET", path: "/projects/{uuid}", title: "Get project by UUID", description: "Get project by UUID", 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 } },
|
|
163
|
+
{ name: "coolify_delete_project_by_uuid", method: "DELETE", path: "/projects/{uuid}", title: "Delete project by UUID", description: "Delete project by UUID", 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 } },
|
|
164
|
+
{ name: "coolify_update_project_by_uuid", method: "PATCH", path: "/projects/{uuid}", title: "Update project by UUID", description: "Update project by UUID", 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 } },
|
|
165
|
+
{ name: "coolify_get_environment_by_name_or_uuid", method: "GET", path: "/projects/{uuid}/{environment_name_or_uuid}", title: "Get environment by 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", title: "Get 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 } },
|
|
167
|
+
{ name: "coolify_create_environment", method: "POST", path: "/projects/{uuid}/environments", title: "Create environment", 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 } },
|
|
168
|
+
{ name: "coolify_delete_environment", method: "DELETE", path: "/projects/{uuid}/environments/{environment_name_or_uuid}", title: "Delete environment", 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 } },
|
|
169
|
+
{ name: "coolify_update_environment", method: "PATCH", path: "/projects/{uuid}/environments/{environment_name_or_uuid}", title: "Update environment", 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 } },
|
|
170
|
+
{ name: "coolify_list_resources", method: "GET", path: "/resources", title: "List resources", description: "List resources", 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 } },
|
|
171
|
+
{ name: "coolify_list_s3_storages", method: "GET", path: "/s3-storages", title: "List 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 } },
|
|
172
|
+
{ name: "coolify_create_s3_storage", method: "POST", path: "/s3-storages", title: "Create s3 storage", 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 } },
|
|
173
|
+
{ name: "coolify_get_s3_storage_by_uuid", method: "GET", path: "/s3-storages/{uuid}", title: "Get s3 storage by 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 } },
|
|
174
|
+
{ name: "coolify_delete_s3_storage_by_uuid", method: "DELETE", path: "/s3-storages/{uuid}", title: "Delete s3 storage by UUID", description: "Delete S3 Storage", 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 } },
|
|
175
|
+
{ name: "coolify_update_s3_storage_by_uuid", method: "PATCH", path: "/s3-storages/{uuid}", title: "Update s3 storage by UUID", description: "Update S3 Storage", inputSchema: z.object({ "uuid": z.string(), body: z.object({ "name": z.string().describe("A friendly name for the storage.").optional(), "description": z.union([z.string().describe("Optional description."), z.null()]).optional(), "endpoint": z.string().describe("S3-compatible endpoint URL.").optional(), "bucket": z.string().describe("S3 bucket name.").optional(), "region": z.string().describe("S3 region.").optional(), "key": z.string().describe("Access key.").optional(), "secret": z.string().describe("Secret key.").optional(), "is_usable": z.boolean().describe("Whether the storage is marked usable.").optional() }) }), responseSchema: z.object({ "uuid": z.string().optional() }), responseKind: "json", parameters: [{ location: "path", name: "uuid" }], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
|
|
176
|
+
{ name: "coolify_validate_s3_storage_by_uuid", method: "POST", path: "/s3-storages/{uuid}/validate", title: "Validate s3 storage by UUID", description: "Validate S3 Storage", 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 } },
|
|
177
|
+
{ name: "coolify_list_scheduled_tasks_by_application_uuid", method: "GET", path: "/applications/{uuid}/scheduled-tasks", title: "List scheduled tasks by application UUID", description: "List Tasks", inputSchema: z.object({ "uuid": z.string() }), responseSchema: z.array(z.object({ "id": z.number().int().describe("The unique identifier of the scheduled task in the database.").optional(), "uuid": z.string().describe("The unique identifier of the scheduled task.").optional(), "enabled": z.boolean().describe("The flag to indicate if the scheduled task is enabled.").optional(), "name": z.string().describe("The name of the scheduled task.").optional(), "command": z.string().describe("The command to execute.").optional(), "frequency": z.string().describe("The frequency of the scheduled task.").optional(), "container": z.union([z.string().describe("The container where the command should be executed."), z.null()]).optional(), "timeout": z.number().int().describe("The timeout of the scheduled task in seconds.").optional(), "created_at": z.string().datetime({ offset: true }).describe("The date and time when the scheduled task was created.").optional(), "updated_at": z.string().datetime({ offset: true }).describe("The date and time when the scheduled task was last updated.").optional() }).describe("Scheduled Task model")), responseKind: "json", parameters: [{ location: "path", name: "uuid" }], annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false } },
|
|
178
|
+
{ name: "coolify_create_scheduled_task_by_application_uuid", method: "POST", path: "/applications/{uuid}/scheduled-tasks", title: "Create scheduled task by application UUID", description: "Create Task", inputSchema: z.object({ "uuid": z.string(), body: z.object({ "name": z.string().describe("The name of the scheduled task."), "command": z.string().describe("The command to execute."), "frequency": z.string().describe("The frequency of the scheduled task."), "container": z.union([z.string().describe("The container where the command should be executed."), z.null()]).optional(), "timeout": z.number().int().describe("The timeout of the scheduled task in seconds.").default(300), "enabled": z.boolean().describe("The flag to indicate if the scheduled task is enabled.").default(true) }) }), responseSchema: z.object({ "id": z.number().int().describe("The unique identifier of the scheduled task in the database.").optional(), "uuid": z.string().describe("The unique identifier of the scheduled task.").optional(), "enabled": z.boolean().describe("The flag to indicate if the scheduled task is enabled.").optional(), "name": z.string().describe("The name of the scheduled task.").optional(), "command": z.string().describe("The command to execute.").optional(), "frequency": z.string().describe("The frequency of the scheduled task.").optional(), "container": z.union([z.string().describe("The container where the command should be executed."), z.null()]).optional(), "timeout": z.number().int().describe("The timeout of the scheduled task in seconds.").optional(), "created_at": z.string().datetime({ offset: true }).describe("The date and time when the scheduled task was created.").optional(), "updated_at": z.string().datetime({ offset: true }).describe("The date and time when the scheduled task was last updated.").optional() }).describe("Scheduled Task model"), responseKind: "json", parameters: [{ location: "path", name: "uuid" }], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
|
|
179
|
+
{ name: "coolify_delete_scheduled_task_by_application_uuid", method: "DELETE", path: "/applications/{uuid}/scheduled-tasks/{task_uuid}", title: "Delete scheduled task by application UUID", description: "Delete Task", inputSchema: z.object({ "uuid": z.string(), "task_uuid": z.string() }), responseSchema: z.object({ "message": z.string().optional() }), responseKind: "json", parameters: [{ location: "path", name: "uuid" }, { location: "path", name: "task_uuid" }], annotations: { readOnlyHint: false, destructiveHint: true, idempotentHint: true, openWorldHint: false } },
|
|
180
|
+
{ name: "coolify_update_scheduled_task_by_application_uuid", method: "PATCH", path: "/applications/{uuid}/scheduled-tasks/{task_uuid}", title: "Update scheduled task by application UUID", description: "Update Task", inputSchema: z.object({ "uuid": z.string(), "task_uuid": z.string(), body: z.object({ "name": z.string().describe("The name of the scheduled task.").optional(), "command": z.string().describe("The command to execute.").optional(), "frequency": z.string().describe("The frequency of the scheduled task.").optional(), "container": z.union([z.string().describe("The container where the command should be executed."), z.null()]).optional(), "timeout": z.number().int().describe("The timeout of the scheduled task in seconds.").default(300), "enabled": z.boolean().describe("The flag to indicate if the scheduled task is enabled.").default(true) }) }), responseSchema: z.object({ "id": z.number().int().describe("The unique identifier of the scheduled task in the database.").optional(), "uuid": z.string().describe("The unique identifier of the scheduled task.").optional(), "enabled": z.boolean().describe("The flag to indicate if the scheduled task is enabled.").optional(), "name": z.string().describe("The name of the scheduled task.").optional(), "command": z.string().describe("The command to execute.").optional(), "frequency": z.string().describe("The frequency of the scheduled task.").optional(), "container": z.union([z.string().describe("The container where the command should be executed."), z.null()]).optional(), "timeout": z.number().int().describe("The timeout of the scheduled task in seconds.").optional(), "created_at": z.string().datetime({ offset: true }).describe("The date and time when the scheduled task was created.").optional(), "updated_at": z.string().datetime({ offset: true }).describe("The date and time when the scheduled task was last updated.").optional() }).describe("Scheduled Task model"), responseKind: "json", parameters: [{ location: "path", name: "uuid" }, { location: "path", name: "task_uuid" }], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
|
|
181
|
+
{ name: "coolify_list_scheduled_task_executions_by_application_uuid", method: "GET", path: "/applications/{uuid}/scheduled-tasks/{task_uuid}/executions", title: "List scheduled task executions by application UUID", description: "List Executions", inputSchema: z.object({ "uuid": z.string(), "task_uuid": z.string() }), responseSchema: z.array(z.object({ "uuid": z.string().describe("The unique identifier of the execution.").optional(), "status": z.enum(["success", "failed", "running"]).describe("The status of the execution.").optional(), "message": z.union([z.string().describe("The output message of the execution."), z.null()]).optional(), "retry_count": z.number().int().describe("The number of retries.").optional(), "duration": z.union([z.number().describe("Duration in seconds."), z.null()]).optional(), "started_at": z.union([z.string().datetime({ offset: true }).describe("When the execution started."), z.null()]).optional(), "finished_at": z.union([z.string().datetime({ offset: true }).describe("When the execution finished."), z.null()]).optional(), "created_at": z.string().datetime({ offset: true }).describe("When the record was created.").optional(), "updated_at": z.string().datetime({ offset: true }).describe("When the record was last updated.").optional() }).describe("Scheduled Task Execution model")), responseKind: "json", parameters: [{ location: "path", name: "uuid" }, { location: "path", name: "task_uuid" }], annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false } },
|
|
182
|
+
{ name: "coolify_list_scheduled_tasks_by_service_uuid", method: "GET", path: "/services/{uuid}/scheduled-tasks", title: "List scheduled tasks by service UUID", description: "List Tasks", inputSchema: z.object({ "uuid": z.string() }), responseSchema: z.array(z.object({ "id": z.number().int().describe("The unique identifier of the scheduled task in the database.").optional(), "uuid": z.string().describe("The unique identifier of the scheduled task.").optional(), "enabled": z.boolean().describe("The flag to indicate if the scheduled task is enabled.").optional(), "name": z.string().describe("The name of the scheduled task.").optional(), "command": z.string().describe("The command to execute.").optional(), "frequency": z.string().describe("The frequency of the scheduled task.").optional(), "container": z.union([z.string().describe("The container where the command should be executed."), z.null()]).optional(), "timeout": z.number().int().describe("The timeout of the scheduled task in seconds.").optional(), "created_at": z.string().datetime({ offset: true }).describe("The date and time when the scheduled task was created.").optional(), "updated_at": z.string().datetime({ offset: true }).describe("The date and time when the scheduled task was last updated.").optional() }).describe("Scheduled Task model")), responseKind: "json", parameters: [{ location: "path", name: "uuid" }], annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false } },
|
|
183
|
+
{ name: "coolify_create_scheduled_task_by_service_uuid", method: "POST", path: "/services/{uuid}/scheduled-tasks", title: "Create scheduled task by service UUID", description: "Create Task", inputSchema: z.object({ "uuid": z.string(), body: z.object({ "name": z.string().describe("The name of the scheduled task."), "command": z.string().describe("The command to execute."), "frequency": z.string().describe("The frequency of the scheduled task."), "container": z.union([z.string().describe("The container where the command should be executed."), z.null()]).optional(), "timeout": z.number().int().describe("The timeout of the scheduled task in seconds.").default(300), "enabled": z.boolean().describe("The flag to indicate if the scheduled task is enabled.").default(true) }) }), responseSchema: z.object({ "id": z.number().int().describe("The unique identifier of the scheduled task in the database.").optional(), "uuid": z.string().describe("The unique identifier of the scheduled task.").optional(), "enabled": z.boolean().describe("The flag to indicate if the scheduled task is enabled.").optional(), "name": z.string().describe("The name of the scheduled task.").optional(), "command": z.string().describe("The command to execute.").optional(), "frequency": z.string().describe("The frequency of the scheduled task.").optional(), "container": z.union([z.string().describe("The container where the command should be executed."), z.null()]).optional(), "timeout": z.number().int().describe("The timeout of the scheduled task in seconds.").optional(), "created_at": z.string().datetime({ offset: true }).describe("The date and time when the scheduled task was created.").optional(), "updated_at": z.string().datetime({ offset: true }).describe("The date and time when the scheduled task was last updated.").optional() }).describe("Scheduled Task model"), responseKind: "json", parameters: [{ location: "path", name: "uuid" }], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
|
|
184
|
+
{ name: "coolify_delete_scheduled_task_by_service_uuid", method: "DELETE", path: "/services/{uuid}/scheduled-tasks/{task_uuid}", title: "Delete scheduled task by service UUID", description: "Delete Task", inputSchema: z.object({ "uuid": z.string(), "task_uuid": z.string() }), responseSchema: z.object({ "message": z.string().optional() }), responseKind: "json", parameters: [{ location: "path", name: "uuid" }, { location: "path", name: "task_uuid" }], annotations: { readOnlyHint: false, destructiveHint: true, idempotentHint: true, openWorldHint: false } },
|
|
185
|
+
{ name: "coolify_update_scheduled_task_by_service_uuid", method: "PATCH", path: "/services/{uuid}/scheduled-tasks/{task_uuid}", title: "Update scheduled task by service UUID", description: "Update Task", inputSchema: z.object({ "uuid": z.string(), "task_uuid": z.string(), body: z.object({ "name": z.string().describe("The name of the scheduled task.").optional(), "command": z.string().describe("The command to execute.").optional(), "frequency": z.string().describe("The frequency of the scheduled task.").optional(), "container": z.union([z.string().describe("The container where the command should be executed."), z.null()]).optional(), "timeout": z.number().int().describe("The timeout of the scheduled task in seconds.").default(300), "enabled": z.boolean().describe("The flag to indicate if the scheduled task is enabled.").default(true) }) }), responseSchema: z.object({ "id": z.number().int().describe("The unique identifier of the scheduled task in the database.").optional(), "uuid": z.string().describe("The unique identifier of the scheduled task.").optional(), "enabled": z.boolean().describe("The flag to indicate if the scheduled task is enabled.").optional(), "name": z.string().describe("The name of the scheduled task.").optional(), "command": z.string().describe("The command to execute.").optional(), "frequency": z.string().describe("The frequency of the scheduled task.").optional(), "container": z.union([z.string().describe("The container where the command should be executed."), z.null()]).optional(), "timeout": z.number().int().describe("The timeout of the scheduled task in seconds.").optional(), "created_at": z.string().datetime({ offset: true }).describe("The date and time when the scheduled task was created.").optional(), "updated_at": z.string().datetime({ offset: true }).describe("The date and time when the scheduled task was last updated.").optional() }).describe("Scheduled Task model"), responseKind: "json", parameters: [{ location: "path", name: "uuid" }, { location: "path", name: "task_uuid" }], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
|
|
186
|
+
{ name: "coolify_list_scheduled_task_executions_by_service_uuid", method: "GET", path: "/services/{uuid}/scheduled-tasks/{task_uuid}/executions", title: "List scheduled task executions by service UUID", description: "List Executions", inputSchema: z.object({ "uuid": z.string(), "task_uuid": z.string() }), responseSchema: z.array(z.object({ "uuid": z.string().describe("The unique identifier of the execution.").optional(), "status": z.enum(["success", "failed", "running"]).describe("The status of the execution.").optional(), "message": z.union([z.string().describe("The output message of the execution."), z.null()]).optional(), "retry_count": z.number().int().describe("The number of retries.").optional(), "duration": z.union([z.number().describe("Duration in seconds."), z.null()]).optional(), "started_at": z.union([z.string().datetime({ offset: true }).describe("When the execution started."), z.null()]).optional(), "finished_at": z.union([z.string().datetime({ offset: true }).describe("When the execution finished."), z.null()]).optional(), "created_at": z.string().datetime({ offset: true }).describe("When the record was created.").optional(), "updated_at": z.string().datetime({ offset: true }).describe("When the record was last updated.").optional() }).describe("Scheduled Task Execution model")), responseKind: "json", parameters: [{ location: "path", name: "uuid" }, { location: "path", name: "task_uuid" }], annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false } },
|
|
187
|
+
{ name: "coolify_execute_scheduled_task_by_application_uuid", method: "POST", path: "/applications/{uuid}/scheduled-tasks/{task_uuid}/execute", title: "Execute scheduled task by application UUID", description: "Execute Task", inputSchema: z.object({ "uuid": z.string(), "task_uuid": z.string() }), responseSchema: z.record(z.string(), z.any()), responseKind: "json", parameters: [{ location: "path", name: "uuid" }, { location: "path", name: "task_uuid" }], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
|
|
188
|
+
{ name: "coolify_execute_scheduled_task_by_service_uuid", method: "POST", path: "/services/{uuid}/scheduled-tasks/{task_uuid}/execute", title: "Execute scheduled task by service UUID", description: "Execute Task", inputSchema: z.object({ "uuid": z.string(), "task_uuid": z.string() }), responseSchema: z.record(z.string(), z.any()), responseKind: "json", parameters: [{ location: "path", name: "uuid" }, { location: "path", name: "task_uuid" }], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
|
|
189
|
+
{ name: "coolify_list_private_keys", method: "GET", path: "/security/keys", title: "List private keys", description: "List private keys", inputSchema: z.object({}), responseSchema: z.array(z.object({ "id": z.number().int().optional(), "uuid": z.string().optional(), "name": z.string().optional(), "description": z.union([z.string(), z.null()]).optional(), "private_key": z.string().optional(), "public_key": z.string().describe("The public key of the private key.").optional(), "fingerprint": z.string().describe("The fingerprint of the private key.").optional(), "is_git_related": z.boolean().optional(), "team_id": z.number().int().optional(), "created_at": z.string().optional(), "updated_at": z.string().optional() }).describe("Private Key model")), responseKind: "json", parameters: [], annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false } },
|
|
190
|
+
{ name: "coolify_create_private_key", method: "POST", path: "/security/keys", title: "Create private key", description: "Create private key", inputSchema: z.object({ body: z.object({ "name": z.string().optional(), "description": z.string().optional(), "private_key": z.string() }).strict() }), responseSchema: z.object({ "uuid": z.string().optional() }), responseKind: "json", parameters: [], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
|
|
191
|
+
{ name: "coolify_get_private_key_by_uuid", method: "GET", path: "/security/keys/{uuid}", title: "Get private key by UUID", description: "Get private key by UUID", inputSchema: z.object({ "uuid": z.string() }), responseSchema: z.object({ "id": z.number().int().optional(), "uuid": z.string().optional(), "name": z.string().optional(), "description": z.union([z.string(), z.null()]).optional(), "private_key": z.string().optional(), "public_key": z.string().describe("The public key of the private key.").optional(), "fingerprint": z.string().describe("The fingerprint of the private key.").optional(), "is_git_related": z.boolean().optional(), "team_id": z.number().int().optional(), "created_at": z.string().optional(), "updated_at": z.string().optional() }).describe("Private Key model"), responseKind: "json", parameters: [{ location: "path", name: "uuid" }], annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false } },
|
|
192
|
+
{ name: "coolify_delete_private_key_by_uuid", method: "DELETE", path: "/security/keys/{uuid}", title: "Delete private key by UUID", description: "Delete private key by UUID", 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 } },
|
|
193
|
+
{ name: "coolify_update_private_key", method: "PATCH", path: "/security/keys/{uuid}", title: "Update private key", description: "Update private key", inputSchema: z.object({ "uuid": z.string(), body: z.object({ "name": z.string().optional(), "description": z.string().optional(), "private_key": z.string() }).strict() }), responseSchema: z.object({ "uuid": z.string().optional() }), responseKind: "json", parameters: [{ location: "path", name: "uuid" }], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
|
|
194
|
+
{ name: "coolify_get_server_cloudflare_tunnel", method: "GET", path: "/servers/{uuid}/cloudflare-tunnel", title: "Get server cloudflare tunnel", description: "Get Cloudflare Tunnel settings", inputSchema: z.object({ "uuid": z.string() }), responseSchema: z.object({ "is_cloudflare_tunnel": z.boolean().optional(), "ip": z.string().optional(), "ip_previous": z.union([z.string(), z.null()]).optional() }), responseKind: "json", parameters: [{ location: "path", name: "uuid" }], annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false } },
|
|
195
|
+
{ name: "coolify_update_server_cloudflare_tunnel", method: "PATCH", path: "/servers/{uuid}/cloudflare-tunnel", title: "Update server cloudflare tunnel", description: "Update Cloudflare Tunnel settings", inputSchema: z.object({ "uuid": z.string(), body: z.object({ "is_cloudflare_tunnel": z.boolean().optional() }) }), responseSchema: z.record(z.string(), z.any()), responseKind: "json", parameters: [{ location: "path", name: "uuid" }], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
|
|
196
|
+
{ name: "coolify_enable_server_cloudflare_tunnel", method: "POST", path: "/servers/{uuid}/cloudflare-tunnel/enable", title: "Enable server cloudflare tunnel", description: "Enable Cloudflare Tunnel (manual)", inputSchema: z.object({ "uuid": z.string() }), responseSchema: z.record(z.string(), z.any()), responseKind: "json", parameters: [{ location: "path", name: "uuid" }], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
|
|
197
|
+
{ name: "coolify_disable_server_cloudflare_tunnel", method: "POST", path: "/servers/{uuid}/cloudflare-tunnel/disable", title: "Disable server cloudflare tunnel", description: "Disable Cloudflare Tunnel", inputSchema: z.object({ "uuid": z.string() }), responseSchema: z.record(z.string(), z.any()), responseKind: "json", parameters: [{ location: "path", name: "uuid" }], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
|
|
198
|
+
{ name: "coolify_get_server_docker_cleanup", method: "GET", path: "/servers/{uuid}/docker-cleanup", title: "Get server docker cleanup", description: "Get Docker cleanup settings", inputSchema: z.object({ "uuid": z.string() }), responseSchema: z.object({ "docker_cleanup_frequency": z.string().optional(), "docker_cleanup_threshold": z.number().int().optional(), "force_docker_cleanup": z.boolean().optional(), "delete_unused_volumes": z.boolean().optional(), "delete_unused_networks": z.boolean().optional(), "disable_application_image_retention": z.boolean().optional() }), responseKind: "json", parameters: [{ location: "path", name: "uuid" }], annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false } },
|
|
199
|
+
{ name: "coolify_update_server_docker_cleanup", method: "PATCH", path: "/servers/{uuid}/docker-cleanup", title: "Update server docker cleanup", description: "Update Docker cleanup settings", inputSchema: z.object({ "uuid": z.string(), body: z.object({ "docker_cleanup_frequency": z.string().describe("Cron / human frequency expression.").optional(), "docker_cleanup_threshold": z.number().int().gte(1).lte(99).optional(), "force_docker_cleanup": z.boolean().optional(), "delete_unused_volumes": z.boolean().optional(), "delete_unused_networks": z.boolean().optional(), "disable_application_image_retention": z.boolean().optional() }) }), responseSchema: z.object({ "docker_cleanup_frequency": z.string().optional(), "docker_cleanup_threshold": z.number().int().optional(), "force_docker_cleanup": z.boolean().optional(), "delete_unused_volumes": z.boolean().optional(), "delete_unused_networks": z.boolean().optional(), "disable_application_image_retention": z.boolean().optional() }), responseKind: "json", parameters: [{ location: "path", name: "uuid" }], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
|
|
200
|
+
{ name: "coolify_run_server_docker_cleanup", method: "POST", path: "/servers/{uuid}/docker-cleanup/run", title: "Run server docker cleanup", description: "Run Docker cleanup", inputSchema: z.object({ "uuid": z.string(), body: z.object({ "delete_unused_volumes": z.boolean().optional(), "delete_unused_networks": z.boolean().optional() }).optional() }), responseSchema: z.object({ "message": z.string().optional() }), responseKind: "json", parameters: [{ location: "path", name: "uuid" }], annotations: { readOnlyHint: false, destructiveHint: true, idempotentHint: false, openWorldHint: false } },
|
|
201
|
+
{ name: "coolify_list_server_docker_cleanup_executions", method: "GET", path: "/servers/{uuid}/docker-cleanup/executions", title: "List server docker cleanup executions", description: "List Docker cleanup executions", inputSchema: z.object({ "uuid": z.string() }), responseSchema: z.array(z.object({ "uuid": z.string().optional(), "status": z.string().optional(), "message": z.union([z.string(), z.null()]).optional(), "finished_at": z.union([z.string(), z.null()]).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 } },
|
|
202
|
+
{ name: "coolify_get_server_log_drains", method: "GET", path: "/servers/{uuid}/log-drains", title: "Get server log drains", description: "Get log drain settings", inputSchema: z.object({ "uuid": z.string() }), responseSchema: z.object({ "is_logdrain_newrelic_enabled": z.boolean().optional(), "logdrain_newrelic_license_key": z.union([z.string().describe("Only present with read:sensitive."), z.null().describe("Only present with read:sensitive.")]).describe("Only present with read:sensitive.").optional(), "logdrain_newrelic_base_uri": z.union([z.string(), z.null()]).optional(), "is_logdrain_axiom_enabled": z.boolean().optional(), "logdrain_axiom_dataset_name": z.union([z.string(), z.null()]).optional(), "logdrain_axiom_api_key": z.union([z.string().describe("Only present with read:sensitive."), z.null().describe("Only present with read:sensitive.")]).describe("Only present with read:sensitive.").optional(), "is_logdrain_custom_enabled": z.boolean().optional(), "logdrain_custom_config": z.union([z.string().describe("Only present with read:sensitive."), z.null().describe("Only present with read:sensitive.")]).describe("Only present with read:sensitive.").optional(), "logdrain_custom_config_parser": z.union([z.string().describe("Only present with read:sensitive."), z.null().describe("Only present with read:sensitive.")]).describe("Only present with read:sensitive.").optional() }), responseKind: "json", parameters: [{ location: "path", name: "uuid" }], annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false } },
|
|
203
|
+
{ name: "coolify_update_server_log_drains", method: "PATCH", path: "/servers/{uuid}/log-drains", title: "Update server log drains", description: "Update log drain settings", inputSchema: z.object({ "uuid": z.string(), body: z.object({ "is_logdrain_newrelic_enabled": z.boolean().optional(), "logdrain_newrelic_license_key": z.string().optional(), "logdrain_newrelic_base_uri": z.string().optional(), "is_logdrain_axiom_enabled": z.boolean().optional(), "logdrain_axiom_dataset_name": z.string().optional(), "logdrain_axiom_api_key": z.string().optional(), "is_logdrain_custom_enabled": z.boolean().optional(), "logdrain_custom_config": z.string().optional(), "logdrain_custom_config_parser": z.string().optional() }) }), responseSchema: z.record(z.string(), z.any()), responseKind: "json", parameters: [{ location: "path", name: "uuid" }], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
|
|
204
|
+
{ name: "coolify_get_server_proxy", method: "GET", path: "/servers/{uuid}/proxy", title: "Get server proxy", description: "Get server proxy", inputSchema: z.object({ "uuid": z.string() }), responseSchema: z.object({ "proxy_type": z.union([z.string(), z.null()]).optional(), "status": z.union([z.string(), z.null()]).optional(), "redirect_enabled": z.boolean().optional(), "redirect_url": z.union([z.string(), z.null()]).optional(), "generate_exact_labels": z.boolean().optional(), "configuration": z.union([z.string().describe("Docker Compose proxy configuration when stored in the database. Only present with read:sensitive."), z.null().describe("Docker Compose proxy configuration when stored in the database. Only present with read:sensitive.")]).describe("Docker Compose proxy configuration when stored in the database. Only present with read:sensitive.").optional() }), responseKind: "json", parameters: [{ location: "path", name: "uuid" }], annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false } },
|
|
205
|
+
{ name: "coolify_update_server_proxy", method: "PATCH", path: "/servers/{uuid}/proxy", title: "Update server proxy", description: "Update server proxy", inputSchema: z.object({ "uuid": z.string(), body: z.object({ "redirect_enabled": z.boolean().optional(), "redirect_url": z.union([z.string().describe("Public http(s) redirect URL, or null to clear."), z.null().describe("Public http(s) redirect URL, or null to clear.")]).describe("Public http(s) redirect URL, or null to clear.").optional(), "generate_exact_labels": z.boolean().optional(), "proxy_type": z.enum(["traefik", "caddy", "nginx", "none"]).describe("Proxy type (case-insensitive).").optional() }) }), responseSchema: z.object({ "proxy_type": z.union([z.string(), z.null()]).optional(), "status": z.union([z.string(), z.null()]).optional(), "redirect_enabled": z.boolean().optional(), "redirect_url": z.union([z.string(), z.null()]).optional(), "generate_exact_labels": z.boolean().optional(), "configuration": z.union([z.string(), z.null()]).optional() }), responseKind: "json", parameters: [{ location: "path", name: "uuid" }], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
|
|
206
|
+
{ name: "coolify_save_server_proxy_configuration", method: "PUT", path: "/servers/{uuid}/proxy/configuration", title: "Save server proxy configuration", description: "Save server proxy configuration", inputSchema: z.object({ "uuid": z.string(), body: z.object({ "configuration": z.string().describe("Proxy docker-compose YAML. Prefer base64 encoding for multi-line content.") }) }), responseSchema: z.object({ "message": z.string().optional(), "proxy_type": z.union([z.string(), z.null()]).optional(), "status": z.union([z.string(), z.null()]).optional(), "redirect_enabled": z.boolean().optional(), "redirect_url": z.union([z.string(), z.null()]).optional(), "generate_exact_labels": z.boolean().optional(), "configuration": z.union([z.string(), z.null()]).optional() }), responseKind: "json", parameters: [{ location: "path", name: "uuid" }], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: true, openWorldHint: false } },
|
|
207
|
+
{ name: "coolify_restart_server_proxy", method: "POST", path: "/servers/{uuid}/proxy/restart", title: "Restart server proxy", description: "Restart server proxy", inputSchema: z.object({ "uuid": z.string() }), responseSchema: z.object({ "message": z.string().optional() }), responseKind: "json", parameters: [{ location: "path", name: "uuid" }], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
|
|
208
|
+
{ name: "coolify_get_server_sentinel", method: "GET", path: "/servers/{uuid}/sentinel", title: "Get server sentinel", description: "Get Sentinel settings", inputSchema: z.object({ "uuid": z.string() }), responseSchema: z.object({ "is_sentinel_enabled": z.boolean().optional(), "is_metrics_enabled": z.boolean().optional(), "is_sentinel_debug_enabled": z.boolean().optional(), "sentinel_token": z.string().describe("Only present with read:sensitive.").optional(), "sentinel_metrics_refresh_rate_seconds": z.number().int().optional(), "sentinel_metrics_history_days": z.number().int().optional(), "sentinel_push_interval_seconds": z.number().int().optional(), "sentinel_custom_url": z.string().describe("Only present with read:sensitive.").optional(), "sentinel_updated_at": z.union([z.string(), z.null()]).optional() }), responseKind: "json", parameters: [{ location: "path", name: "uuid" }], annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false } },
|
|
209
|
+
{ name: "coolify_update_server_sentinel", method: "PATCH", path: "/servers/{uuid}/sentinel", title: "Update server sentinel", description: "Update Sentinel settings", inputSchema: z.object({ "uuid": z.string(), body: z.object({ "is_sentinel_enabled": z.boolean().optional(), "is_metrics_enabled": z.boolean().optional(), "is_sentinel_debug_enabled": z.boolean().optional(), "sentinel_token": z.string().optional(), "sentinel_metrics_refresh_rate_seconds": z.number().int().gte(1).optional(), "sentinel_metrics_history_days": z.number().int().gte(1).optional(), "sentinel_push_interval_seconds": z.number().int().gte(10).optional(), "sentinel_custom_url": z.union([z.string(), z.null()]).optional() }) }), responseSchema: z.record(z.string(), z.any()), responseKind: "json", parameters: [{ location: "path", name: "uuid" }], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
|
|
210
|
+
{ name: "coolify_migrate_server_between_instances", method: "POST", path: "/servers/{uuid}/migrate", title: "Migrate server between instances", description: "Migrate server to another Coolify instance (APP_ENV=local only in v4.3.23)", inputSchema: z.object({ "uuid": z.string(), body: z.object({ "target_url": z.string(), "target_token": z.string().describe("API token on the target instance (root or write)"), "write_remote": z.boolean().default(false), "rebind_sentinel": z.boolean().default(true), "preserve_uuids": z.boolean().default(true), "adopt_mode": z.boolean().default(true) }) }), responseSchema: z.record(z.string(), z.any()), responseKind: "json", parameters: [{ location: "path", name: "uuid" }], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
|
|
211
|
+
{ name: "coolify_export_server_transfer_bundle", method: "GET", path: "/servers/{uuid}/export", title: "Export server transfer bundle", description: "Export server transfer bundle (APP_ENV=local only in v4.3.23)", inputSchema: z.object({ "uuid": z.string(), "encrypt": z.boolean().optional(), "passphrase": z.string().optional() }), responseSchema: z.record(z.string(), z.any()), responseKind: "json", parameters: [{ location: "path", name: "uuid" }, { location: "query", name: "encrypt" }, { location: "query", name: "passphrase" }], annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false } },
|
|
212
|
+
{ name: "coolify_import_server_transfer_bundle", method: "POST", path: "/servers/import", title: "Import server transfer bundle", description: "Import server transfer bundle (APP_ENV=local only in v4.3.23)", inputSchema: z.object({ body: z.object({ "bundle": z.record(z.string(), z.any()).describe("Plain or encrypted transfer bundle").optional(), "passphrase": z.union([z.string(), z.null()]).optional(), "dry_run": z.boolean().default(false), "preserve_uuids": z.boolean().default(true), "adopt_mode": z.boolean().describe("Import without forcing redeploy; keep statuses for adoption").default(true), "claim": z.boolean().describe("Automatically claim the host for this instance after import").default(true), "write_remote": z.boolean().describe("When claiming, write ownership file on the host via SSH").default(false), "rebind_sentinel": z.boolean().describe("When claiming, rebind Sentinel to this instance").default(true) }) }), responseSchema: z.record(z.string(), z.any()), responseKind: "json", parameters: [], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
|
|
213
|
+
{ name: "coolify_claim_server", method: "POST", path: "/servers/{uuid}/claim", title: "Claim server", description: "Claim imported server (APP_ENV=local only in v4.3.23)", inputSchema: z.object({ "uuid": z.string(), body: z.object({ "write_remote": z.boolean().default(true), "rebind_sentinel": z.boolean().default(true) }).optional() }), responseSchema: z.record(z.string(), z.any()), responseKind: "json", parameters: [{ location: "path", name: "uuid" }], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
|
|
214
|
+
{ name: "coolify_complete_server_transfer", method: "POST", path: "/servers/{uuid}/transfer/complete", title: "Complete server transfer", description: "Mark server transferred (APP_ENV=local only in v4.3.23)", 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.record(z.string(), z.any()), responseKind: "json", parameters: [{ location: "path", name: "uuid" }], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
|
|
215
|
+
{ name: "coolify_export_server_transfer_mailbox", method: "POST", path: "/servers/{uuid}/export/mailbox", title: "Export server transfer mailbox", description: "Write transfer bundle to server mailbox (APP_ENV=local only in v4.3.23)", inputSchema: z.object({ "uuid": z.string(), body: z.object({ "passphrase": z.union([z.string(), z.null()]).optional() }).optional() }), responseSchema: z.record(z.string(), z.any()), responseKind: "json", parameters: [{ location: "path", name: "uuid" }], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
|
|
216
|
+
{ name: "coolify_list_servers", method: "GET", path: "/servers", title: "List servers", description: "List servers", 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 } },
|
|
217
|
+
{ name: "coolify_create_server", method: "POST", path: "/servers", title: "Create server", description: "Create server", 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 } },
|
|
218
|
+
{ name: "coolify_get_server_by_uuid", method: "GET", path: "/servers/{uuid}", title: "Get server by UUID", description: "Get server by UUID", 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 } },
|
|
219
|
+
{ name: "coolify_delete_server_by_uuid", method: "DELETE", path: "/servers/{uuid}", title: "Delete server by UUID", description: "Delete server by UUID", 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 } },
|
|
220
|
+
{ name: "coolify_update_server_by_uuid", method: "PATCH", path: "/servers/{uuid}", title: "Update server by UUID", description: "Update server by UUID", 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 } },
|
|
221
|
+
{ name: "coolify_get_resources_by_server_uuid", method: "GET", path: "/servers/{uuid}/resources", title: "Get resources by server UUID", 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 } },
|
|
222
|
+
{ name: "coolify_get_domains_by_server_uuid", method: "GET", path: "/servers/{uuid}/domains", title: "Get domains by server UUID", 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 } },
|
|
223
|
+
{ name: "coolify_validate_server_by_uuid", method: "POST", path: "/servers/{uuid}/validate", title: "Validate server by UUID", 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: true, idempotentHint: false, openWorldHint: false } },
|
|
224
|
+
{ name: "coolify_list_service_applications_by_service_uuid", method: "GET", path: "/services/{uuid}/applications", title: "List service applications by service UUID", 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 } },
|
|
225
|
+
{ name: "coolify_get_service_application_by_service_and_app_uuid", method: "GET", path: "/services/{uuid}/applications/{app_uuid}", title: "Get service application by service and 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 } },
|
|
226
|
+
{ name: "coolify_patch_service_application_by_service_and_app_uuid", method: "PATCH", path: "/services/{uuid}/applications/{app_uuid}", title: "Patch service application by service and 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 } },
|
|
227
|
+
{ name: "coolify_get_service_application_logs_by_service_and_app_uuid", method: "GET", path: "/services/{uuid}/applications/{app_uuid}/logs", title: "Get service application logs by service and app UUID", description: "Get service application logs", inputSchema: z.object({ "uuid": z.string(), "app_uuid": z.string(), "lines": z.number().int().default(100) }), responseSchema: z.object({ "logs": z.string().optional() }), responseKind: "json", parameters: [{ location: "path", name: "uuid" }, { location: "path", name: "app_uuid" }, { location: "query", name: "lines" }], annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false } },
|
|
228
|
+
{ name: "coolify_post_service_application_logs_by_service_and_app_uuid", method: "POST", path: "/services/{uuid}/applications/{app_uuid}/logs", title: "Post service application logs by service and app UUID", description: "Get service application logs", inputSchema: z.object({ "uuid": z.string(), "app_uuid": z.string(), "lines": z.number().int().default(100) }), responseSchema: z.object({ "logs": z.string().optional() }), responseKind: "json", parameters: [{ location: "path", name: "uuid" }, { location: "path", name: "app_uuid" }, { location: "query", name: "lines" }], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
|
|
229
|
+
{ name: "coolify_post_start_service_application_by_service_and_app_uuid", method: "POST", path: "/services/{uuid}/applications/{app_uuid}/start", title: "Post start service application by service and app UUID", description: "Start or redeploy service application container", inputSchema: z.object({ "uuid": z.string(), "app_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: "app_uuid" }, { location: "query", name: "force" }, { location: "query", name: "latest" }], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
|
|
230
|
+
{ name: "coolify_post_restart_service_application_by_service_and_app_uuid", method: "POST", path: "/services/{uuid}/applications/{app_uuid}/restart", title: "Post restart service application by service and app UUID", description: "Restart service application container", inputSchema: z.object({ "uuid": z.string(), "app_uuid": z.string() }), responseSchema: z.object({ "message": z.string().optional() }), responseKind: "json", parameters: [{ location: "path", name: "uuid" }, { location: "path", name: "app_uuid" }], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
|
|
231
|
+
{ name: "coolify_post_stop_service_application_by_service_and_app_uuid", method: "POST", path: "/services/{uuid}/applications/{app_uuid}/stop", title: "Post stop service application by service and app UUID", description: "Stop service application container", inputSchema: z.object({ "uuid": z.string(), "app_uuid": z.string() }), responseSchema: z.object({ "message": z.string().optional() }), responseKind: "json", parameters: [{ location: "path", name: "uuid" }, { location: "path", name: "app_uuid" }], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
|
|
232
|
+
{ name: "coolify_list_service_databases_by_service_uuid", method: "GET", path: "/services/{uuid}/databases", title: "List service databases by service UUID", description: "List service databases", 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 } },
|
|
233
|
+
{ name: "coolify_get_service_database_by_service_and_database_uuid", method: "GET", path: "/services/{uuid}/databases/{database_uuid}", title: "Get service database by service and database UUID", description: "Get service database", inputSchema: z.object({ "uuid": z.string(), "database_uuid": z.string() }), responseSchema: z.record(z.string(), z.any()), responseKind: "json", parameters: [{ location: "path", name: "uuid" }, { location: "path", name: "database_uuid" }], annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false } },
|
|
234
|
+
{ name: "coolify_patch_service_database_by_service_and_database_uuid", method: "PATCH", path: "/services/{uuid}/databases/{database_uuid}", title: "Patch service database by service and database UUID", description: "Update service database", inputSchema: z.object({ "uuid": z.string(), "database_uuid": z.string(), body: z.object({ "human_name": z.union([z.string(), z.null()]).optional(), "description": z.union([z.string(), z.null()]).optional(), "image": z.string().optional(), "exclude_from_status": z.boolean().optional(), "is_log_drain_enabled": z.boolean().optional(), "is_public": z.boolean().optional(), "public_port": z.union([z.number().int().gte(1).lte(65535), z.null()]).optional(), "public_port_timeout": z.union([z.number().int().gte(1), z.null()]).optional() }).strict().optional() }), responseSchema: z.record(z.string(), z.any()), responseKind: "json", parameters: [{ location: "path", name: "uuid" }, { location: "path", name: "database_uuid" }], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
|
|
235
|
+
{ name: "coolify_get_service_database_logs_by_service_and_database_uuid", method: "GET", path: "/services/{uuid}/databases/{database_uuid}/logs", title: "Get service database logs by service and database UUID", description: "Get service database logs", inputSchema: z.object({ "uuid": z.string(), "database_uuid": z.string(), "lines": z.number().int().default(100) }), responseSchema: z.object({ "logs": z.string().optional() }), responseKind: "json", parameters: [{ location: "path", name: "uuid" }, { location: "path", name: "database_uuid" }, { location: "query", name: "lines" }], annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false } },
|
|
236
|
+
{ name: "coolify_start_service_database_by_service_and_database_uuid", method: "POST", path: "/services/{uuid}/databases/{database_uuid}/start", title: "Start service database by service and database UUID", 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 } },
|
|
237
|
+
{ name: "coolify_restart_service_database_by_service_and_database_uuid", method: "POST", path: "/services/{uuid}/databases/{database_uuid}/restart", title: "Restart service database by service and database UUID", 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 } },
|
|
238
|
+
{ name: "coolify_stop_service_database_by_service_and_database_uuid", method: "POST", path: "/services/{uuid}/databases/{database_uuid}/stop", title: "Stop service database by service and database UUID", 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 } },
|
|
239
|
+
{ name: "coolify_list_services", method: "GET", path: "/services", title: "List services", description: "List services", 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.union([z.string().describe("The hash of the service configuration."), z.null()]).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 } },
|
|
240
|
+
{ name: "coolify_create_service", method: "POST", path: "/services", title: "Create service", 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.").optional(), "environment_uuid": z.string().describe("Environment UUID. You need to provide at least one of environment_name or environment_uuid.").optional(), "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() }).refine((body) => typeof body["environment_name"] === "string" && body["environment_name"].trim().length > 0 || typeof body["environment_uuid"] === "string" && body["environment_uuid"].trim().length > 0, { message: "At least one of environment_name, environment_uuid is required" }) }), 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 } },
|
|
241
|
+
{ name: "coolify_get_service_by_uuid", method: "GET", path: "/services/{uuid}", title: "Get service by UUID", description: "Get service by UUID", 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.union([z.string().describe("The hash of the service configuration."), z.null()]).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 } },
|
|
242
|
+
{ name: "coolify_delete_service_by_uuid", method: "DELETE", path: "/services/{uuid}", title: "Delete service by UUID", description: "Delete service by UUID", 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 } },
|
|
243
|
+
{ name: "coolify_update_service_by_uuid", method: "PATCH", path: "/services/{uuid}", title: "Update service by UUID", description: "Update service by UUID", 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 } },
|
|
244
|
+
{ name: "coolify_get_service_logs_by_uuid", method: "GET", path: "/services/{uuid}/logs", title: "Get service logs by UUID", description: "Get service logs.", inputSchema: z.object({ "uuid": z.string(), "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 } },
|
|
245
|
+
{ name: "coolify_list_envs_by_service_uuid", method: "GET", path: "/services/{uuid}/envs", title: "List envs by service UUID", 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 } },
|
|
246
|
+
{ name: "coolify_create_env_by_service_uuid", method: "POST", path: "/services/{uuid}/envs", title: "Create env by service UUID", 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 } },
|
|
247
|
+
{ name: "coolify_update_env_by_service_uuid", method: "PATCH", path: "/services/{uuid}/envs", title: "Update env by service UUID", 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 } },
|
|
248
|
+
{ name: "coolify_update_envs_by_service_uuid", method: "PATCH", path: "/services/{uuid}/envs/bulk", title: "Update envs by service UUID", 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_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.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 } },
|
|
249
|
+
{ name: "coolify_delete_env_by_service_uuid", method: "DELETE", path: "/services/{uuid}/envs/{env_uuid}", title: "Delete env by service 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 } },
|
|
250
|
+
{ name: "coolify_move_service_by_uuid", method: "POST", path: "/services/{uuid}/move", title: "Move service by UUID", 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 } },
|
|
251
|
+
{ name: "coolify_migrate_service_by_uuid", method: "POST", path: "/services/{uuid}/migrate", title: "Migrate service by UUID", 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.record(z.string(), z.any()), responseKind: "json", parameters: [{ location: "path", name: "uuid" }], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
|
|
252
|
+
{ name: "coolify_start_service_by_uuid", method: "POST", path: "/services/{uuid}/start", title: "Start service by UUID", description: "Start", inputSchema: z.object({ "uuid": z.string() }), responseSchema: z.object({ "message": z.string().optional() }), responseKind: "json", parameters: [{ location: "path", name: "uuid" }], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
|
|
253
|
+
{ name: "coolify_stop_service_by_uuid", method: "POST", path: "/services/{uuid}/stop", title: "Stop service by UUID", 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 } },
|
|
254
|
+
{ name: "coolify_restart_service_by_uuid", method: "POST", path: "/services/{uuid}/restart", title: "Restart service by UUID", 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 } },
|
|
255
|
+
{ name: "coolify_list_storages_by_service_uuid", method: "GET", path: "/services/{uuid}/storages", title: "List storages by service UUID", 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 } },
|
|
256
|
+
{ name: "coolify_create_storage_by_service_uuid", method: "POST", path: "/services/{uuid}/storages", title: "Create storage by service UUID", 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 } },
|
|
257
|
+
{ name: "coolify_update_storage_by_service_uuid", method: "PATCH", path: "/services/{uuid}/storages", title: "Update storage by service UUID", 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 } },
|
|
258
|
+
{ name: "coolify_delete_storage_by_service_uuid", method: "DELETE", path: "/services/{uuid}/storages/{storage_uuid}", title: "Delete storage by service 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 } },
|
|
259
|
+
{ name: "coolify_list_tags_by_service_uuid", method: "GET", path: "/services/{uuid}/tags", title: "List tags by service UUID", 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 } },
|
|
260
|
+
{ name: "coolify_create_tag_by_service_uuid", method: "POST", path: "/services/{uuid}/tags", title: "Create tag by service UUID", 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 } },
|
|
261
|
+
{ name: "coolify_delete_tag_by_service_uuid", method: "DELETE", path: "/services/{uuid}/tags/{tag_uuid}", title: "Delete tag by service UUID", description: "Delete Tag", inputSchema: z.object({ "uuid": z.string(), "tag_uuid": z.string() }), responseSchema: z.object({ "message": z.string() }), responseKind: "json", parameters: [{ location: "path", name: "uuid" }, { location: "path", name: "tag_uuid" }], annotations: { readOnlyHint: false, destructiveHint: true, idempotentHint: true, openWorldHint: false } },
|
|
262
|
+
{ name: "coolify_clone_service_by_uuid", method: "POST", path: "/services/{uuid}/clone", title: "Clone service by UUID", 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.object({ "uuid": z.string(), "message": z.string() }).catchall(z.any()), responseKind: "json", parameters: [{ location: "path", name: "uuid" }], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
|
|
263
|
+
{ name: "coolify_list_team_shared_envs", method: "GET", path: "/team/envs", title: "List team shared envs", description: "List Team Shared Envs", inputSchema: z.object({}), responseSchema: z.array(z.record(z.string(), z.any())), responseKind: "json", parameters: [], annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false } },
|
|
264
|
+
{ name: "coolify_create_team_shared_env", method: "POST", path: "/team/envs", title: "Create team shared env", description: "Create Team Shared Env", inputSchema: z.object({ body: z.object({ "key": z.string(), "value": z.union([z.string(), z.null()]).optional(), "is_literal": z.boolean().optional(), "is_multiline": z.boolean().optional(), "is_shown_once": z.boolean().optional(), "comment": z.union([z.string(), z.null()]).optional() }) }), responseSchema: z.object({ "id": z.number().int() }), responseKind: "json", parameters: [], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
|
|
265
|
+
{ name: "coolify_delete_team_shared_env", method: "DELETE", path: "/team/envs/{env_id}", title: "Delete team shared env", description: "Delete Team Shared Env", inputSchema: z.object({ "env_id": z.number().int() }), responseSchema: z.object({ "message": z.string() }), responseKind: "json", parameters: [{ location: "path", name: "env_id" }], annotations: { readOnlyHint: false, destructiveHint: true, idempotentHint: true, openWorldHint: false } },
|
|
266
|
+
{ name: "coolify_update_team_shared_env", method: "PATCH", path: "/team/envs/{env_id}", title: "Update team shared env", description: "Update Team Shared Env", inputSchema: z.object({ "env_id": z.number().int(), body: z.object({ "key": z.string().optional(), "value": z.union([z.string(), z.null()]).optional(), "is_literal": z.boolean().optional(), "is_multiline": z.boolean().optional(), "is_shown_once": z.boolean().optional(), "comment": z.union([z.string(), z.null()]).optional() }).strict() }), responseSchema: z.record(z.string(), z.any()), responseKind: "json", parameters: [{ location: "path", name: "env_id" }], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
|
|
267
|
+
{ name: "coolify_list_project_shared_envs", method: "GET", path: "/projects/{uuid}/envs", title: "List project shared envs", description: "List Project Shared Envs", 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 } },
|
|
268
|
+
{ name: "coolify_create_project_shared_env", method: "POST", path: "/projects/{uuid}/envs", title: "Create project shared env", description: "Create Project Shared Env", inputSchema: z.object({ "uuid": z.string(), body: z.object({ "key": z.string(), "value": z.union([z.string(), z.null()]).optional(), "is_literal": z.boolean().optional(), "is_multiline": z.boolean().optional(), "is_shown_once": z.boolean().optional(), "comment": z.union([z.string(), z.null()]).optional() }) }), responseSchema: z.object({ "id": z.number().int() }), responseKind: "json", parameters: [{ location: "path", name: "uuid" }], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
|
|
269
|
+
{ name: "coolify_delete_project_shared_env", method: "DELETE", path: "/projects/{uuid}/envs/{env_id}", title: "Delete project shared env", description: "Delete Project Shared Env", inputSchema: z.object({ "uuid": z.string(), "env_id": z.number().int() }), responseSchema: z.object({ "message": z.string() }), responseKind: "json", parameters: [{ location: "path", name: "uuid" }, { location: "path", name: "env_id" }], annotations: { readOnlyHint: false, destructiveHint: true, idempotentHint: true, openWorldHint: false } },
|
|
270
|
+
{ name: "coolify_update_project_shared_env", method: "PATCH", path: "/projects/{uuid}/envs/{env_id}", title: "Update project shared env", description: "Update Project Shared Env", inputSchema: z.object({ "uuid": z.string(), "env_id": z.number().int(), body: z.object({ "key": z.string().optional(), "value": z.union([z.string(), z.null()]).optional(), "is_literal": z.boolean().optional(), "is_multiline": z.boolean().optional(), "is_shown_once": z.boolean().optional(), "comment": z.union([z.string(), z.null()]).optional() }).strict() }), responseSchema: z.record(z.string(), z.any()), responseKind: "json", parameters: [{ location: "path", name: "uuid" }, { location: "path", name: "env_id" }], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
|
|
271
|
+
{ name: "coolify_list_environment_shared_envs", method: "GET", path: "/projects/{uuid}/environments/{environment_name_or_uuid}/envs", title: "List environment shared envs", description: "List Environment Shared Envs", inputSchema: z.object({ "uuid": z.string(), "environment_name_or_uuid": z.string() }), responseSchema: z.array(z.record(z.string(), z.any())), responseKind: "json", parameters: [{ location: "path", name: "uuid" }, { location: "path", name: "environment_name_or_uuid" }], annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false } },
|
|
272
|
+
{ name: "coolify_create_environment_shared_env", method: "POST", path: "/projects/{uuid}/environments/{environment_name_or_uuid}/envs", title: "Create environment shared env", description: "Create Environment Shared Env", inputSchema: z.object({ "uuid": z.string(), "environment_name_or_uuid": z.string(), body: z.object({ "key": z.string(), "value": z.union([z.string(), z.null()]).optional(), "is_literal": z.boolean().optional(), "is_multiline": z.boolean().optional(), "is_shown_once": z.boolean().optional(), "comment": z.union([z.string(), z.null()]).optional() }) }), responseSchema: z.object({ "id": z.number().int() }), responseKind: "json", parameters: [{ location: "path", name: "uuid" }, { location: "path", name: "environment_name_or_uuid" }], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
|
|
273
|
+
{ name: "coolify_delete_environment_shared_env", method: "DELETE", path: "/projects/{uuid}/environments/{environment_name_or_uuid}/envs/{env_id}", title: "Delete environment shared env", description: "Delete Environment Shared Env", inputSchema: z.object({ "uuid": z.string(), "environment_name_or_uuid": z.string(), "env_id": z.number().int() }), responseSchema: z.object({ "message": z.string() }), responseKind: "json", parameters: [{ location: "path", name: "uuid" }, { location: "path", name: "environment_name_or_uuid" }, { location: "path", name: "env_id" }], annotations: { readOnlyHint: false, destructiveHint: true, idempotentHint: true, openWorldHint: false } },
|
|
274
|
+
{ name: "coolify_update_environment_shared_env", method: "PATCH", path: "/projects/{uuid}/environments/{environment_name_or_uuid}/envs/{env_id}", title: "Update environment shared env", description: "Update Environment Shared Env", inputSchema: z.object({ "uuid": z.string(), "environment_name_or_uuid": z.string(), "env_id": z.number().int(), body: z.object({ "key": z.string().optional(), "value": z.union([z.string(), z.null()]).optional(), "is_literal": z.boolean().optional(), "is_multiline": z.boolean().optional(), "is_shown_once": z.boolean().optional(), "comment": z.union([z.string(), z.null()]).optional() }).strict() }), responseSchema: z.record(z.string(), z.any()), responseKind: "json", parameters: [{ location: "path", name: "uuid" }, { location: "path", name: "environment_name_or_uuid" }, { location: "path", name: "env_id" }], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
|
|
275
|
+
{ name: "coolify_list_server_shared_envs", method: "GET", path: "/servers/{uuid}/envs", title: "List server shared envs", description: "List Server Shared Envs", 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 } },
|
|
276
|
+
{ name: "coolify_create_server_shared_env", method: "POST", path: "/servers/{uuid}/envs", title: "Create server shared env", description: "Create Server Shared Env", inputSchema: z.object({ "uuid": z.string(), body: z.object({ "key": z.string(), "value": z.union([z.string(), z.null()]).optional(), "is_literal": z.boolean().optional(), "is_multiline": z.boolean().optional(), "is_shown_once": z.boolean().optional(), "comment": z.union([z.string(), z.null()]).optional() }) }), responseSchema: z.object({ "id": z.number().int() }), responseKind: "json", parameters: [{ location: "path", name: "uuid" }], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
|
|
277
|
+
{ name: "coolify_delete_server_shared_env", method: "DELETE", path: "/servers/{uuid}/envs/{env_id}", title: "Delete server shared env", description: "Delete Server Shared Env", inputSchema: z.object({ "uuid": z.string(), "env_id": z.number().int() }), responseSchema: z.object({ "message": z.string() }), responseKind: "json", parameters: [{ location: "path", name: "uuid" }, { location: "path", name: "env_id" }], annotations: { readOnlyHint: false, destructiveHint: true, idempotentHint: true, openWorldHint: false } },
|
|
278
|
+
{ name: "coolify_update_server_shared_env", method: "PATCH", path: "/servers/{uuid}/envs/{env_id}", title: "Update server shared env", description: "Update Server Shared Env", inputSchema: z.object({ "uuid": z.string(), "env_id": z.number().int(), body: z.object({ "key": z.string().optional(), "value": z.union([z.string(), z.null()]).optional(), "is_literal": z.boolean().optional(), "is_multiline": z.boolean().optional(), "is_shown_once": z.boolean().optional(), "comment": z.union([z.string(), z.null()]).optional() }).strict() }), responseSchema: z.record(z.string(), z.any()), responseKind: "json", parameters: [{ location: "path", name: "uuid" }, { location: "path", name: "env_id" }], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
|
|
279
|
+
{ name: "coolify_list_tags", method: "GET", path: "/tags", title: "List tags", description: "List tags", inputSchema: z.object({}), 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: [], annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false } },
|
|
280
|
+
{ name: "coolify_create_tag", method: "POST", path: "/tags", title: "Create tag", description: "Create tag", inputSchema: z.object({ body: z.object({ "name": z.string().min(2).max(255) }) }), responseSchema: 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: [], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
|
|
281
|
+
{ name: "coolify_delete_tag_by_uuid", method: "DELETE", path: "/tags/{uuid}", title: "Delete tag by UUID", description: "Delete tag by UUID", 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 } },
|
|
282
|
+
{ name: "coolify_update_tag_by_uuid", method: "PATCH", path: "/tags/{uuid}", title: "Update tag by UUID", description: "Update tag by UUID", inputSchema: z.object({ "uuid": z.string(), body: z.object({ "name": z.string().min(2).max(255) }) }), responseSchema: 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 } },
|
|
283
|
+
{ name: "coolify_list_teams", method: "GET", path: "/teams", title: "List teams", description: "List teams", inputSchema: z.object({}), responseSchema: z.array(z.object({ "id": z.number().int().describe("The unique identifier of the team.").optional(), "name": z.string().describe("The name of the team.").optional(), "description": z.union([z.string().describe("The description of the team."), z.null()]).optional(), "personal_team": z.boolean().describe("Whether the team is personal or not.").optional(), "created_at": z.string().describe("The date and time the team was created.").optional(), "updated_at": z.string().describe("The date and time the team was last updated.").optional(), "show_boarding": z.boolean().describe("Whether to show the boarding screen or not.").optional(), "custom_server_limit": z.string().describe("The custom server limit.").optional(), "members": z.array(z.object({ "id": z.number().int().describe("The user identifier in the database.").optional(), "name": z.string().describe("The user name.").optional(), "email": z.string().describe("The user email.").optional(), "email_verified_at": z.union([z.string().describe("The date when the user email was verified."), z.null()]).optional(), "created_at": z.string().describe("The date when the user was created.").optional(), "updated_at": z.string().describe("The date when the user was updated.").optional(), "two_factor_confirmed_at": z.union([z.string().describe("The date when the user two factor was confirmed."), z.null()]).optional(), "force_password_reset": z.union([z.boolean().describe("The flag to force the user to reset the password."), z.string().describe("The flag to force the user to reset the password.")]).describe("The flag to force the user to reset the password.").optional(), "marketing_emails": z.boolean().describe("The flag to receive marketing emails.").optional() }).describe("User model")).describe("The members of the team.").optional() }).describe("Team model")), responseKind: "json", parameters: [], annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false } },
|
|
284
|
+
{ name: "coolify_get_team_by_id", method: "GET", path: "/teams/{id}", title: "Get team by id", description: "Get team by id", inputSchema: z.object({ "id": z.number().int() }), responseSchema: z.object({ "id": z.number().int().describe("The unique identifier of the team.").optional(), "name": z.string().describe("The name of the team.").optional(), "description": z.union([z.string().describe("The description of the team."), z.null()]).optional(), "personal_team": z.boolean().describe("Whether the team is personal or not.").optional(), "created_at": z.string().describe("The date and time the team was created.").optional(), "updated_at": z.string().describe("The date and time the team was last updated.").optional(), "show_boarding": z.boolean().describe("Whether to show the boarding screen or not.").optional(), "custom_server_limit": z.string().describe("The custom server limit.").optional(), "members": z.array(z.object({ "id": z.number().int().describe("The user identifier in the database.").optional(), "name": z.string().describe("The user name.").optional(), "email": z.string().describe("The user email.").optional(), "email_verified_at": z.union([z.string().describe("The date when the user email was verified."), z.null()]).optional(), "created_at": z.string().describe("The date when the user was created.").optional(), "updated_at": z.string().describe("The date when the user was updated.").optional(), "two_factor_confirmed_at": z.union([z.string().describe("The date when the user two factor was confirmed."), z.null()]).optional(), "force_password_reset": z.union([z.boolean().describe("The flag to force the user to reset the password."), z.string().describe("The flag to force the user to reset the password.")]).describe("The flag to force the user to reset the password.").optional(), "marketing_emails": z.boolean().describe("The flag to receive marketing emails.").optional() }).describe("User model")).describe("The members of the team.").optional() }).describe("Team model"), responseKind: "json", parameters: [{ location: "path", name: "id" }], annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false } },
|
|
285
|
+
{ name: "coolify_get_members_by_team_id", method: "GET", path: "/teams/{id}/members", title: "Get members by team id", description: "Members", inputSchema: z.object({ "id": z.number().int() }), responseSchema: z.array(z.object({ "id": z.number().int().describe("The user identifier in the database.").optional(), "name": z.string().describe("The user name.").optional(), "email": z.string().describe("The user email.").optional(), "email_verified_at": z.union([z.string().describe("The date when the user email was verified."), z.null()]).optional(), "created_at": z.string().describe("The date when the user was created.").optional(), "updated_at": z.string().describe("The date when the user was updated.").optional(), "two_factor_confirmed_at": z.union([z.string().describe("The date when the user two factor was confirmed."), z.null()]).optional(), "force_password_reset": z.union([z.boolean().describe("The flag to force the user to reset the password."), z.string().describe("The flag to force the user to reset the password.")]).describe("The flag to force the user to reset the password.").optional(), "marketing_emails": z.boolean().describe("The flag to receive marketing emails.").optional() }).describe("User model")), responseKind: "json", parameters: [{ location: "path", name: "id" }], annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false } },
|
|
286
|
+
{ name: "coolify_get_token_team", method: "GET", path: "/team", title: "Get token team", description: "Authenticated Team", inputSchema: z.object({}), responseSchema: z.object({ "id": z.number().int().describe("The unique identifier of the team.").optional(), "name": z.string().describe("The name of the team.").optional(), "description": z.union([z.string().describe("The description of the team."), z.null()]).optional(), "personal_team": z.boolean().describe("Whether the team is personal or not.").optional(), "created_at": z.string().describe("The date and time the team was created.").optional(), "updated_at": z.string().describe("The date and time the team was last updated.").optional(), "show_boarding": z.boolean().describe("Whether to show the boarding screen or not.").optional(), "custom_server_limit": z.string().describe("The custom server limit.").optional(), "members": z.array(z.object({ "id": z.number().int().describe("The user identifier in the database.").optional(), "name": z.string().describe("The user name.").optional(), "email": z.string().describe("The user email.").optional(), "email_verified_at": z.union([z.string().describe("The date when the user email was verified."), z.null()]).optional(), "created_at": z.string().describe("The date when the user was created.").optional(), "updated_at": z.string().describe("The date when the user was updated.").optional(), "two_factor_confirmed_at": z.union([z.string().describe("The date when the user two factor was confirmed."), z.null()]).optional(), "force_password_reset": z.union([z.boolean().describe("The flag to force the user to reset the password."), z.string().describe("The flag to force the user to reset the password.")]).describe("The flag to force the user to reset the password.").optional(), "marketing_emails": z.boolean().describe("The flag to receive marketing emails.").optional() }).describe("User model")).describe("The members of the team.").optional() }).describe("Team model"), responseKind: "json", parameters: [], annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false } },
|
|
287
|
+
{ name: "coolify_get_token_team_members", method: "GET", path: "/team/members", title: "Get token team members", description: "Authenticated Team Members", inputSchema: z.object({}), responseSchema: z.array(z.object({ "id": z.number().int().describe("The user identifier in the database.").optional(), "name": z.string().describe("The user name.").optional(), "email": z.string().describe("The user email.").optional(), "email_verified_at": z.union([z.string().describe("The date when the user email was verified."), z.null()]).optional(), "created_at": z.string().describe("The date when the user was created.").optional(), "updated_at": z.string().describe("The date when the user was updated.").optional(), "two_factor_confirmed_at": z.union([z.string().describe("The date when the user two factor was confirmed."), z.null()]).optional(), "force_password_reset": z.union([z.boolean().describe("The flag to force the user to reset the password."), z.string().describe("The flag to force the user to reset the password.")]).describe("The flag to force the user to reset the password.").optional(), "marketing_emails": z.boolean().describe("The flag to receive marketing emails.").optional() }).describe("User model")), responseKind: "json", parameters: [], annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false } },
|
|
288
|
+
{ name: "coolify_set_application_storage_backup_schedule", method: "PUT", path: "/applications/{uuid}/storages/{storage_uuid}/backups", title: "Set application storage backup schedule", description: "Set application storage backup schedule", inputSchema: z.object({ "uuid": z.string(), "storage_uuid": z.string(), body: z.object({ "frequency": z.string().max(255), "enabled": z.boolean().default(true), "save_s3": z.boolean().default(false), "disable_local_backup": z.boolean().default(false), "stop_during_backup": z.boolean().default(false), "s3_storage_uuid": z.union([z.string(), z.null()]).optional(), "retention_amount_locally": z.number().int().gte(0).lte(10000).default(7), "retention_days_locally": z.number().int().gte(0).lte(2147483647).default(0), "retention_max_storage_locally": z.number().gte(0).lte(9999999999).default(0), "retention_amount_s3": z.number().int().gte(0).lte(10000).default(7), "retention_days_s3": z.number().int().gte(0).lte(2147483647).default(0), "retention_max_storage_s3": z.number().gte(0).lte(9999999999).default(0), "timeout": z.number().int().gte(60).lte(36000).default(3600) }).strict() }), responseSchema: z.object({ "uuid": z.string(), "message": z.string(), "storage_uuid": z.string(), "storage_type": z.enum(["persistent", "directory"]), "frequency": z.string(), "enabled": z.boolean(), "save_s3": z.boolean(), "disable_local_backup": z.boolean(), "stop_during_backup": z.boolean(), "s3_storage_uuid": z.union([z.string(), z.null()]).optional(), "retention_amount_locally": z.number().int(), "retention_days_locally": z.number().int(), "retention_max_storage_locally": z.number(), "retention_amount_s3": z.number().int(), "retention_days_s3": z.number().int(), "retention_max_storage_s3": z.number(), "timeout": z.number().int() }), responseKind: "json", parameters: [{ location: "path", name: "uuid" }, { location: "path", name: "storage_uuid" }], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: true, openWorldHint: false } },
|
|
289
|
+
{ name: "coolify_delete_application_storage_backup_schedule", method: "DELETE", path: "/applications/{uuid}/storages/{storage_uuid}/backups", title: "Delete application storage backup schedule", description: "Delete application storage backup schedule", inputSchema: z.object({ "uuid": z.string(), "storage_uuid": z.string() }), responseSchema: z.record(z.string(), z.any()), responseKind: "json", parameters: [{ location: "path", name: "uuid" }, { location: "path", name: "storage_uuid" }], annotations: { readOnlyHint: false, destructiveHint: true, idempotentHint: true, openWorldHint: false } },
|
|
290
|
+
{ name: "coolify_set_database_storage_backup_schedule", method: "PUT", path: "/databases/{uuid}/storages/{storage_uuid}/backups", title: "Set database storage backup schedule", description: "Set database storage backup schedule", inputSchema: z.object({ "uuid": z.string(), "storage_uuid": z.string(), body: z.object({ "frequency": z.string().max(255), "enabled": z.boolean().default(true), "save_s3": z.boolean().default(false), "disable_local_backup": z.boolean().default(false), "stop_during_backup": z.boolean().default(false), "s3_storage_uuid": z.union([z.string(), z.null()]).optional(), "retention_amount_locally": z.number().int().gte(0).lte(10000).default(7), "retention_days_locally": z.number().int().gte(0).lte(2147483647).default(0), "retention_max_storage_locally": z.number().gte(0).lte(9999999999).default(0), "retention_amount_s3": z.number().int().gte(0).lte(10000).default(7), "retention_days_s3": z.number().int().gte(0).lte(2147483647).default(0), "retention_max_storage_s3": z.number().gte(0).lte(9999999999).default(0), "timeout": z.number().int().gte(60).lte(36000).default(3600) }).strict() }), responseSchema: z.object({ "uuid": z.string(), "message": z.string(), "storage_uuid": z.string(), "storage_type": z.enum(["persistent", "directory"]), "frequency": z.string(), "enabled": z.boolean(), "save_s3": z.boolean(), "disable_local_backup": z.boolean(), "stop_during_backup": z.boolean(), "s3_storage_uuid": z.union([z.string(), z.null()]).optional(), "retention_amount_locally": z.number().int(), "retention_days_locally": z.number().int(), "retention_max_storage_locally": z.number(), "retention_amount_s3": z.number().int(), "retention_days_s3": z.number().int(), "retention_max_storage_s3": z.number(), "timeout": z.number().int() }), responseKind: "json", parameters: [{ location: "path", name: "uuid" }, { location: "path", name: "storage_uuid" }], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: true, openWorldHint: false } },
|
|
291
|
+
{ name: "coolify_delete_database_storage_backup_schedule", method: "DELETE", path: "/databases/{uuid}/storages/{storage_uuid}/backups", title: "Delete database storage backup schedule", description: "Delete database storage backup schedule", inputSchema: z.object({ "uuid": z.string(), "storage_uuid": z.string() }), responseSchema: z.record(z.string(), z.any()), responseKind: "json", parameters: [{ location: "path", name: "uuid" }, { location: "path", name: "storage_uuid" }], annotations: { readOnlyHint: false, destructiveHint: true, idempotentHint: true, openWorldHint: false } },
|
|
292
|
+
{ name: "coolify_set_service_storage_backup_schedule", method: "PUT", path: "/services/{uuid}/storages/{storage_uuid}/backups", title: "Set service storage backup schedule", description: "Set service storage backup schedule", inputSchema: z.object({ "uuid": z.string(), "storage_uuid": z.string(), body: z.object({ "frequency": z.string().max(255), "enabled": z.boolean().default(true), "save_s3": z.boolean().default(false), "disable_local_backup": z.boolean().default(false), "stop_during_backup": z.boolean().default(false), "s3_storage_uuid": z.union([z.string(), z.null()]).optional(), "retention_amount_locally": z.number().int().gte(0).lte(10000).default(7), "retention_days_locally": z.number().int().gte(0).lte(2147483647).default(0), "retention_max_storage_locally": z.number().gte(0).lte(9999999999).default(0), "retention_amount_s3": z.number().int().gte(0).lte(10000).default(7), "retention_days_s3": z.number().int().gte(0).lte(2147483647).default(0), "retention_max_storage_s3": z.number().gte(0).lte(9999999999).default(0), "timeout": z.number().int().gte(60).lte(36000).default(3600) }).strict() }), responseSchema: z.object({ "uuid": z.string(), "message": z.string(), "storage_uuid": z.string(), "storage_type": z.enum(["persistent", "directory"]), "frequency": z.string(), "enabled": z.boolean(), "save_s3": z.boolean(), "disable_local_backup": z.boolean(), "stop_during_backup": z.boolean(), "s3_storage_uuid": z.union([z.string(), z.null()]).optional(), "retention_amount_locally": z.number().int(), "retention_days_locally": z.number().int(), "retention_max_storage_locally": z.number(), "retention_amount_s3": z.number().int(), "retention_days_s3": z.number().int(), "retention_max_storage_s3": z.number(), "timeout": z.number().int() }), responseKind: "json", parameters: [{ location: "path", name: "uuid" }, { location: "path", name: "storage_uuid" }], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: true, openWorldHint: false } },
|
|
293
|
+
{ name: "coolify_delete_service_storage_backup_schedule", method: "DELETE", path: "/services/{uuid}/storages/{storage_uuid}/backups", title: "Delete service storage backup schedule", description: "Delete service storage backup schedule", inputSchema: z.object({ "uuid": z.string(), "storage_uuid": z.string() }), responseSchema: z.record(z.string(), z.any()), responseKind: "json", parameters: [{ location: "path", name: "uuid" }, { location: "path", name: "storage_uuid" }], annotations: { readOnlyHint: false, destructiveHint: true, idempotentHint: true, openWorldHint: false } },
|
|
294
|
+
{ name: "coolify_run_application_storage_backup", method: "POST", path: "/applications/{uuid}/storages/{storage_uuid}/backups/run", title: "Run application storage backup", description: "Run application storage backup", inputSchema: z.object({ "uuid": z.string(), "storage_uuid": z.string() }), responseSchema: z.record(z.string(), z.any()), responseKind: "json", parameters: [{ location: "path", name: "uuid" }, { location: "path", name: "storage_uuid" }], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
|
|
295
|
+
{ name: "coolify_run_database_storage_backup", method: "POST", path: "/databases/{uuid}/storages/{storage_uuid}/backups/run", title: "Run database storage backup", description: "Run database storage backup", inputSchema: z.object({ "uuid": z.string(), "storage_uuid": z.string() }), responseSchema: z.record(z.string(), z.any()), responseKind: "json", parameters: [{ location: "path", name: "uuid" }, { location: "path", name: "storage_uuid" }], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
|
|
296
|
+
{ name: "coolify_run_service_storage_backup", method: "POST", path: "/services/{uuid}/storages/{storage_uuid}/backups/run", title: "Run service storage backup", description: "Run service storage backup", inputSchema: z.object({ "uuid": z.string(), "storage_uuid": z.string() }), responseSchema: z.record(z.string(), z.any()), responseKind: "json", parameters: [{ location: "path", name: "uuid" }, { location: "path", name: "storage_uuid" }], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
|
|
297
|
+
{ name: "coolify_get_vultr_regions", method: "GET", path: "/vultr/regions", title: "Get vultr regions", description: "Get Vultr Regions", inputSchema: z.object({ "cloud_provider_token_uuid": z.string().regex(new RegExp("\\S")).min(1).optional(), "cloud_provider_token_id": z.string().regex(new RegExp("\\S")).min(1).optional() }).refine((input) => typeof input["cloud_provider_token_uuid"] === "string" && input["cloud_provider_token_uuid"].trim().length > 0 || typeof input["cloud_provider_token_id"] === "string" && input["cloud_provider_token_id"].trim().length > 0, { message: "At least one of cloud_provider_token_uuid, cloud_provider_token_id is required" }), responseSchema: z.array(z.record(z.string(), z.any())), responseKind: "json", parameters: [{ location: "query", name: "cloud_provider_token_uuid" }, { location: "query", name: "cloud_provider_token_id" }], annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false } },
|
|
298
|
+
{ name: "coolify_get_vultr_plans", method: "GET", path: "/vultr/plans", title: "Get vultr plans", description: "Get Vultr Plans", inputSchema: z.object({ "cloud_provider_token_uuid": z.string().regex(new RegExp("\\S")).min(1).optional(), "cloud_provider_token_id": z.string().regex(new RegExp("\\S")).min(1).optional() }).refine((input) => typeof input["cloud_provider_token_uuid"] === "string" && input["cloud_provider_token_uuid"].trim().length > 0 || typeof input["cloud_provider_token_id"] === "string" && input["cloud_provider_token_id"].trim().length > 0, { message: "At least one of cloud_provider_token_uuid, cloud_provider_token_id is required" }), responseSchema: z.array(z.record(z.string(), z.any())), responseKind: "json", parameters: [{ location: "query", name: "cloud_provider_token_uuid" }, { location: "query", name: "cloud_provider_token_id" }], annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false } },
|
|
299
|
+
{ name: "coolify_get_vultr_operating_systems", method: "GET", path: "/vultr/os", title: "Get vultr operating systems", description: "Get Vultr Operating Systems", inputSchema: z.object({ "cloud_provider_token_uuid": z.string().regex(new RegExp("\\S")).min(1).optional(), "cloud_provider_token_id": z.string().regex(new RegExp("\\S")).min(1).optional() }).refine((input) => typeof input["cloud_provider_token_uuid"] === "string" && input["cloud_provider_token_uuid"].trim().length > 0 || typeof input["cloud_provider_token_id"] === "string" && input["cloud_provider_token_id"].trim().length > 0, { message: "At least one of cloud_provider_token_uuid, cloud_provider_token_id is required" }), responseSchema: z.array(z.record(z.string(), z.any())), responseKind: "json", parameters: [{ location: "query", name: "cloud_provider_token_uuid" }, { location: "query", name: "cloud_provider_token_id" }], annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false } },
|
|
300
|
+
{ name: "coolify_get_vultr_ssh_keys", method: "GET", path: "/vultr/ssh-keys", title: "Get vultr ssh keys", description: "Get Vultr SSH Keys", inputSchema: z.object({ "cloud_provider_token_uuid": z.string().regex(new RegExp("\\S")).min(1).optional(), "cloud_provider_token_id": z.string().regex(new RegExp("\\S")).min(1).optional() }).refine((input) => typeof input["cloud_provider_token_uuid"] === "string" && input["cloud_provider_token_uuid"].trim().length > 0 || typeof input["cloud_provider_token_id"] === "string" && input["cloud_provider_token_id"].trim().length > 0, { message: "At least one of cloud_provider_token_uuid, cloud_provider_token_id is required" }), responseSchema: z.array(z.record(z.string(), z.any())), responseKind: "json", parameters: [{ location: "query", name: "cloud_provider_token_uuid" }, { location: "query", name: "cloud_provider_token_id" }], annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false } },
|
|
301
|
+
{ name: "coolify_create_vultr_server", method: "POST", path: "/servers/vultr", title: "Create vultr server", description: "Create Vultr Server", inputSchema: z.object({ body: z.object({ "cloud_provider_token_uuid": z.string().regex(new RegExp("\\S")).min(1).describe("Cloud provider token UUID. Required if cloud_provider_token_id is not provided.").optional(), "cloud_provider_token_id": z.string().regex(new RegExp("\\S")).min(1).describe("Deprecated: Use cloud_provider_token_uuid instead. Cloud provider token UUID.").optional(), "region": z.string().min(1), "plan": z.string().min(1), "os_id": z.number().int(), "name": z.union([z.string().regex(new RegExp("^$|^[A-Za-z0-9](?:[A-Za-z0-9-]{0,61}[A-Za-z0-9])?(?:\\.[A-Za-z0-9](?:[A-Za-z0-9-]{0,61}[A-Za-z0-9])?)*$")).max(253), z.null()]).optional(), "private_key_uuid": z.string().min(1), "enable_ipv6": z.union([z.boolean(), z.null()]).optional(), "disable_public_ipv4": z.union([z.boolean(), z.null()]).optional(), "vultr_ssh_key_ids": z.union([z.array(z.string()), z.null()]).optional(), "cloud_init_script": z.union([z.string().describe("Valid cloud-init YAML or a bash script beginning with #!."), z.null()]).optional(), "instant_validate": z.union([z.boolean(), z.null()]).optional() }).refine((body) => typeof body["cloud_provider_token_uuid"] === "string" && body["cloud_provider_token_uuid"].trim().length > 0 || typeof body["cloud_provider_token_id"] === "string" && body["cloud_provider_token_id"].trim().length > 0, { message: "At least one of cloud_provider_token_uuid, cloud_provider_token_id is required" }).refine((body) => !(body["disable_public_ipv4"] === true && body["enable_ipv6"] === false), { message: "Enable public IPv4 or IPv6." }) }), responseSchema: z.object({ "uuid": z.string(), "vultr_instance_id": z.string(), "ip": z.union([z.string(), z.null()]) }).catchall(z.any()), responseKind: "json", parameters: [], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } }
|
|
302
302
|
];
|