@jurislm/coolify-plugin 4.0.4 → 4.0.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "coolify-plugin",
3
- "version": "4.0.4",
3
+ "version": "4.0.6",
4
4
  "description": "Fallback Codex metadata for local stdio Coolify tools.",
5
5
  "author": {
6
6
  "name": "JurisLM",
package/.mcp.json CHANGED
@@ -3,7 +3,8 @@
3
3
  "coolify": {
4
4
  "type": "stdio",
5
5
  "command": "bunx",
6
- "args": ["-y", "@jurislm/coolify-plugin@latest"]
6
+ "args": ["-y", "@jurislm/coolify-plugin@latest"],
7
+ "env_vars": ["COOLIFY_BASE_URL", "COOLIFY_ACCESS_TOKEN"]
7
8
  }
8
9
  }
9
10
  }
package/README.md CHANGED
@@ -22,6 +22,7 @@ bun dist/index.js
22
22
  `mcp.json` and `.mcp.json` use the same published-package `bunx` stdio registration as the Woodpecker CI plugin. `.mcp.json.example` contains placeholder environment values only. NPM package release is allowed. Remote MCP transport, OAuth, vault, hosting, and OpenAI Plugin Directory submission are out of scope.
23
23
 
24
24
  For Codex repository marketplace installation, use the repository root and leave the sparse path empty. The supported marketplace manifest is `.agents/plugins/marketplace.json`; do not enter `plugins/codex`.
25
+ The Codex MCP registration forwards `COOLIFY_BASE_URL` and `COOLIFY_ACCESS_TOKEN` from the Codex session environment. A desktop session may not inherit values exported in a terminal; start a new task after configuring the app environment, then verify a read-only Coolify tool before making changes.
25
26
 
26
27
  ```sh
27
28
  codex plugin marketplace add https://github.com/jurislm/coolify-plugin
package/api/manifest.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "sourceUrl": "https://raw.githubusercontent.com/coollabsio/coolify/v4.3.23/openapi.json",
3
- "fetchedAt": "2026-09-25T02:22:36.551Z",
4
- "sha256": "cdada83c8199f7b517bb19049ce7cb18773acee51f2fbadfb5a8370bd9d5f892",
3
+ "fetchedAt": "2026-09-25T02:56:46.865Z",
4
+ "sha256": "d7b334e85fb6003b1ab525027862acf4e8027db9fcac94f4401e4a72078062b1",
5
5
  "upstreamSha256": "964360ffb3d4c026252aa4657d6561190f59ac4256395bf0645bf6a4f171ec88",
6
6
  "openapiVersion": "3.1.0",
7
7
  "infoVersion": "0.1",
@@ -21,6 +21,7 @@
21
21
  "Shared environment variable writes accept bodies and return live response shapes",
22
22
  "Plain Dockerfile input is encoded for the API",
23
23
  "Cloud-init, notifications, GitHub apps, private keys, and team metadata match live response shapes",
24
- "Resource creation accepts either environment name or UUID as documented"
24
+ "Resource creation accepts either environment name or UUID as documented",
25
+ "Docker image build packs and cloud-init/resource clone responses match live Coolify payloads"
25
26
  ]
26
27
  }
@@ -4253,7 +4253,7 @@ export interface components {
4253
4253
  * @description Build pack.
4254
4254
  * @enum {string}
4255
4255
  */
4256
- build_pack?: "nixpacks" | "railpack" | "static" | "dockerfile" | "dockercompose";
4256
+ build_pack?: "nixpacks" | "railpack" | "static" | "dockerfile" | "dockercompose" | "dockerimage";
4257
4257
  /** @description Static image used when static site is deployed. */
4258
4258
  static_image?: string;
4259
4259
  /** @description Install command. */
@@ -7570,7 +7570,15 @@ export interface operations {
7570
7570
  headers: {
7571
7571
  [name: string]: unknown;
7572
7572
  };
7573
- content?: never;
7573
+ content: {
7574
+ "application/json": {
7575
+ uuid: string;
7576
+ name?: string;
7577
+ script?: string;
7578
+ } & {
7579
+ [key: string]: unknown;
7580
+ };
7581
+ };
7574
7582
  };
7575
7583
  401: components["responses"]["401"];
7576
7584
  /** @description Forbidden. */
@@ -7628,7 +7636,11 @@ export interface operations {
7628
7636
  headers: {
7629
7637
  [name: string]: unknown;
7630
7638
  };
7631
- content?: never;
7639
+ content: {
7640
+ "application/json": {
7641
+ message: string;
7642
+ };
7643
+ };
7632
7644
  };
7633
7645
  401: components["responses"]["401"];
7634
7646
  /** @description Forbidden. */
@@ -9689,7 +9701,14 @@ export interface operations {
9689
9701
  headers: {
9690
9702
  [name: string]: unknown;
9691
9703
  };
9692
- content?: never;
9704
+ content: {
9705
+ "application/json": {
9706
+ uuid: string;
9707
+ message: string;
9708
+ } & {
9709
+ [key: string]: unknown;
9710
+ };
9711
+ };
9693
9712
  };
9694
9713
  400: components["responses"]["400"];
9695
9714
  401: components["responses"]["401"];
@@ -15394,7 +15413,14 @@ export interface operations {
15394
15413
  headers: {
15395
15414
  [name: string]: unknown;
15396
15415
  };
15397
- content?: never;
15416
+ content: {
15417
+ "application/json": {
15418
+ uuid: string;
15419
+ message: string;
15420
+ } & {
15421
+ [key: string]: unknown;
15422
+ };
15423
+ };
15398
15424
  };
15399
15425
  400: components["responses"]["400"];
15400
15426
  401: components["responses"]["401"];
@@ -58,6 +58,7 @@ export declare const componentSchemas: {
58
58
  static: "static";
59
59
  dockerfile: "dockerfile";
60
60
  dockercompose: "dockercompose";
61
+ dockerimage: "dockerimage";
61
62
  }>>;
62
63
  static_image: z.ZodOptional<z.ZodString>;
63
64
  install_command: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNull]>>;
@@ -3,7 +3,7 @@ import { z } from "zod";
3
3
  export const componentSchemas = {
4
4
  "VolumeBackupScheduleRequest": 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(),
5
5
  "VolumeBackupScheduleResponse": 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() }),
6
- "Application": z.object({ "id": z.number().int().describe("The application identifier in the database.").optional(), "description": z.union([z.string().describe("The application description."), z.null()]).optional(), "repository_project_id": z.union([z.number().int().describe("The repository project identifier."), z.null()]).optional(), "uuid": z.string().describe("The application UUID.").optional(), "name": z.string().describe("The application name.").optional(), "fqdn": z.union([z.string().describe("The application domains."), z.null()]).optional(), "noindex_domains": z.union([z.array(z.string()).describe("The subset of the application domains served with an X-Robots-Tag: noindex, nofollow response header."), z.null()]).optional(), "config_hash": z.string().describe("Configuration hash.").optional(), "git_repository": z.string().describe("Git repository URL.").optional(), "git_branch": z.string().describe("Git branch.").optional(), "git_commit_sha": z.string().describe("Git commit SHA.").optional(), "git_full_url": z.union([z.string().describe("Git full URL."), z.null()]).optional(), "docker_registry_image_name": z.union([z.string().describe("Docker registry image name."), z.null()]).optional(), "docker_registry_image_tag": z.union([z.string().describe("Docker registry image tag."), z.null()]).optional(), "build_pack": z.enum(["nixpacks", "railpack", "static", "dockerfile", "dockercompose"]).describe("Build pack.").optional(), "static_image": z.string().describe("Static image used when static site is deployed.").optional(), "install_command": z.union([z.string().describe("Install command."), z.null()]).optional(), "build_command": z.union([z.string().describe("Build command."), z.null()]).optional(), "start_command": z.union([z.string().describe("Start command."), z.null()]).optional(), "ports_exposes": z.string().describe("Ports exposes.").optional(), "ports_mappings": z.union([z.string().describe("Ports mappings."), z.null()]).optional(), "custom_network_aliases": z.union([z.string().describe("Network aliases for Docker container."), z.null()]).optional(), "base_directory": z.string().describe("Base directory for all commands.").optional(), "publish_directory": z.union([z.string().describe("Publish directory."), z.null()]).optional(), "health_check_enabled": z.boolean().describe("Health check enabled.").optional(), "health_check_path": z.string().describe("Health check path.").optional(), "health_check_port": z.union([z.string().describe("Health check port."), z.null()]).optional(), "health_check_host": z.union([z.string().describe("Health check host."), z.null()]).optional(), "health_check_method": z.string().describe("Health check method.").optional(), "health_check_return_code": z.number().int().describe("Health check return code.").optional(), "health_check_scheme": z.string().describe("Health check scheme.").optional(), "health_check_response_text": z.union([z.string().describe("Health check response text."), z.null()]).optional(), "health_check_interval": z.number().int().describe("Health check interval in seconds.").optional(), "health_check_timeout": z.number().int().describe("Health check timeout in seconds.").optional(), "health_check_retries": z.number().int().describe("Health check retries count.").optional(), "health_check_start_period": z.number().int().describe("Health check start period in seconds.").optional(), "health_check_type": z.enum(["http", "cmd"]).describe("Health check type: http or cmd.").optional(), "health_check_command": z.union([z.string().describe("Health check command for CMD type."), z.null()]).optional(), "limits_memory": z.string().describe("Memory limit.").optional(), "limits_memory_swap": z.string().describe("Memory swap limit.").optional(), "limits_memory_swappiness": z.number().int().describe("Memory swappiness.").optional(), "limits_memory_reservation": z.string().describe("Memory reservation.").optional(), "limits_cpus": z.string().describe("CPU limit.").optional(), "limits_cpuset": z.union([z.string().describe("CPU set."), z.null()]).optional(), "limits_cpu_shares": z.number().int().describe("CPU shares.").optional(), "status": z.string().describe("Application status.").optional(), "preview_url_template": z.string().describe("Preview URL template.").optional(), "max_restart_count": z.number().int().describe("Maximum container restart count before stopping.").optional(), "destination_type": z.string().describe("Destination type.").optional(), "destination_id": z.number().int().describe("Destination identifier.").optional(), "source_id": z.union([z.number().int().describe("Source identifier."), z.null()]).optional(), "private_key_id": z.union([z.string().describe("Private key identifier."), z.null()]).optional(), "environment_id": z.number().int().describe("Environment identifier.").optional(), "dockerfile": z.union([z.string().describe("Dockerfile content. Used for dockerfile build pack."), z.null()]).optional(), "dockerfile_location": z.union([z.string().describe("Dockerfile location."), z.null()]).optional(), "custom_labels": z.union([z.string().describe("Custom labels."), z.null()]).optional(), "dockerfile_target_build": z.union([z.string().describe("Dockerfile target build."), z.null()]).optional(), "manual_webhook_secret_github": z.union([z.string().describe("Manual webhook secret for GitHub."), z.null()]).optional(), "manual_webhook_secret_gitlab": z.union([z.string().describe("Manual webhook secret for GitLab."), z.null()]).optional(), "manual_webhook_secret_bitbucket": z.union([z.string().describe("Manual webhook secret for Bitbucket."), z.null()]).optional(), "manual_webhook_secret_gitea": z.union([z.string().describe("Manual webhook secret for Gitea."), z.null()]).optional(), "docker_compose_location": z.string().describe("Docker compose location.").optional(), "docker_compose": z.union([z.string().describe("Docker compose content. Used for docker compose build pack."), z.null()]).optional(), "docker_compose_raw": z.union([z.string().describe("Docker compose raw content."), z.null()]).optional(), "docker_compose_domains": z.union([z.string().describe("Docker compose domains."), z.null()]).optional(), "docker_compose_custom_start_command": z.union([z.string().describe("Docker compose custom start command."), z.null()]).optional(), "docker_compose_custom_build_command": z.union([z.string().describe("Docker compose custom build command."), z.null()]).optional(), "swarm_replicas": z.union([z.number().int().describe("Swarm replicas. Only used for swarm deployments."), z.null()]).optional(), "swarm_placement_constraints": z.union([z.string().describe("Swarm placement constraints. Only used for swarm deployments."), z.null()]).optional(), "custom_docker_run_options": z.union([z.string().describe("Custom docker run options."), z.null()]).optional(), "post_deployment_command": z.union([z.string().describe("Post deployment command."), z.null()]).optional(), "post_deployment_command_container": z.union([z.string().describe("Post deployment command container."), z.null()]).optional(), "pre_deployment_command": z.union([z.string().describe("Pre deployment command."), z.null()]).optional(), "pre_deployment_command_container": z.union([z.string().describe("Pre deployment command container."), z.null()]).optional(), "watch_paths": z.union([z.string().describe("Watch paths."), z.null()]).optional(), "custom_healthcheck_found": z.boolean().describe("Custom healthcheck found.").optional(), "redirect": z.union([z.enum(["www", "non-www", "both"]).describe("How to set redirect with Traefik / Caddy. www<->non-www."), z.null()]).optional(), "created_at": z.string().datetime({ offset: true }).describe("The date and time when the application was created.").optional(), "updated_at": z.string().datetime({ offset: true }).describe("The date and time when the application was last updated.").optional(), "deleted_at": z.union([z.string().datetime({ offset: true }).describe("The date and time when the application was deleted."), z.null()]).optional(), "compose_parsing_version": z.string().describe("How Coolify parse the compose file.").optional(), "custom_nginx_configuration": z.union([z.string().describe("Custom Nginx configuration base64 encoded."), z.null()]).optional(), "is_http_basic_auth_enabled": z.boolean().describe("HTTP Basic Authentication enabled.").optional(), "http_basic_auth_username": z.union([z.string().describe("Username for HTTP Basic Authentication"), z.null()]).optional(), "http_basic_auth_password": z.union([z.string().describe("Password for HTTP Basic Authentication"), z.null()]).optional(), "settings": z.object({ "is_static": z.boolean().optional(), "is_git_submodules_enabled": z.boolean().optional(), "is_git_lfs_enabled": z.boolean().optional(), "is_auto_deploy_enabled": z.boolean().optional(), "is_force_https_enabled": z.boolean().optional(), "is_debug_enabled": z.boolean().optional(), "is_preview_deployments_enabled": z.boolean().optional(), "is_log_drain_enabled": z.boolean().optional(), "is_gpu_enabled": z.boolean().optional(), "gpu_driver": z.union([z.string(), z.null()]).optional(), "gpu_count": z.union([z.string(), z.null()]).optional(), "gpu_device_ids": z.union([z.string(), z.null()]).optional(), "gpu_options": z.union([z.string(), z.null()]).optional(), "is_include_timestamps": z.boolean().optional(), "is_swarm_only_worker_nodes": z.boolean().optional(), "is_raw_compose_deployment_enabled": z.boolean().optional(), "is_build_server_enabled": z.boolean().optional(), "is_consistent_container_name_enabled": z.boolean().optional(), "is_gzip_enabled": z.boolean().optional(), "is_stripprefix_enabled": z.boolean().optional(), "connect_to_docker_network": z.boolean().optional(), "custom_internal_name": z.union([z.string(), z.null()]).optional(), "is_container_label_escape_enabled": z.boolean().optional(), "is_env_sorting_enabled": z.boolean().optional(), "is_container_label_readonly_enabled": z.boolean().optional(), "is_preserve_repository_enabled": z.boolean().optional(), "disable_build_cache": z.boolean().optional(), "is_spa": z.boolean().optional(), "is_git_shallow_clone_enabled": z.boolean().optional(), "is_pr_deployments_public_enabled": z.boolean().optional(), "use_build_secrets": z.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"),
6
+ "Application": 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.string().describe("Ports exposes.").optional(), "ports_mappings": z.union([z.string().describe("Ports mappings."), z.null()]).optional(), "custom_network_aliases": z.union([z.string().describe("Network aliases for Docker container."), z.null()]).optional(), "base_directory": z.string().describe("Base directory for all commands.").optional(), "publish_directory": z.union([z.string().describe("Publish directory."), z.null()]).optional(), "health_check_enabled": z.boolean().describe("Health check enabled.").optional(), "health_check_path": z.string().describe("Health check path.").optional(), "health_check_port": z.union([z.string().describe("Health check port."), z.null()]).optional(), "health_check_host": z.union([z.string().describe("Health check host."), z.null()]).optional(), "health_check_method": z.string().describe("Health check method.").optional(), "health_check_return_code": z.number().int().describe("Health check return code.").optional(), "health_check_scheme": z.string().describe("Health check scheme.").optional(), "health_check_response_text": z.union([z.string().describe("Health check response text."), z.null()]).optional(), "health_check_interval": z.number().int().describe("Health check interval in seconds.").optional(), "health_check_timeout": z.number().int().describe("Health check timeout in seconds.").optional(), "health_check_retries": z.number().int().describe("Health check retries count.").optional(), "health_check_start_period": z.number().int().describe("Health check start period in seconds.").optional(), "health_check_type": z.enum(["http", "cmd"]).describe("Health check type: http or cmd.").optional(), "health_check_command": z.union([z.string().describe("Health check command for CMD type."), z.null()]).optional(), "limits_memory": z.string().describe("Memory limit.").optional(), "limits_memory_swap": z.string().describe("Memory swap limit.").optional(), "limits_memory_swappiness": z.number().int().describe("Memory swappiness.").optional(), "limits_memory_reservation": z.string().describe("Memory reservation.").optional(), "limits_cpus": z.string().describe("CPU limit.").optional(), "limits_cpuset": z.union([z.string().describe("CPU set."), z.null()]).optional(), "limits_cpu_shares": z.number().int().describe("CPU shares.").optional(), "status": z.string().describe("Application status.").optional(), "preview_url_template": z.string().describe("Preview URL template.").optional(), "max_restart_count": z.number().int().describe("Maximum container restart count before stopping.").optional(), "destination_type": z.string().describe("Destination type.").optional(), "destination_id": z.number().int().describe("Destination identifier.").optional(), "source_id": z.union([z.number().int().describe("Source identifier."), z.null()]).optional(), "private_key_id": z.union([z.string().describe("Private key identifier."), z.null()]).optional(), "environment_id": z.number().int().describe("Environment identifier.").optional(), "dockerfile": z.union([z.string().describe("Dockerfile content. Used for dockerfile build pack."), z.null()]).optional(), "dockerfile_location": z.union([z.string().describe("Dockerfile location."), z.null()]).optional(), "custom_labels": z.union([z.string().describe("Custom labels."), z.null()]).optional(), "dockerfile_target_build": z.union([z.string().describe("Dockerfile target build."), z.null()]).optional(), "manual_webhook_secret_github": z.union([z.string().describe("Manual webhook secret for GitHub."), z.null()]).optional(), "manual_webhook_secret_gitlab": z.union([z.string().describe("Manual webhook secret for GitLab."), z.null()]).optional(), "manual_webhook_secret_bitbucket": z.union([z.string().describe("Manual webhook secret for Bitbucket."), z.null()]).optional(), "manual_webhook_secret_gitea": z.union([z.string().describe("Manual webhook secret for Gitea."), z.null()]).optional(), "docker_compose_location": z.string().describe("Docker compose location.").optional(), "docker_compose": z.union([z.string().describe("Docker compose content. Used for docker compose build pack."), z.null()]).optional(), "docker_compose_raw": z.union([z.string().describe("Docker compose raw content."), z.null()]).optional(), "docker_compose_domains": z.union([z.string().describe("Docker compose domains."), z.null()]).optional(), "docker_compose_custom_start_command": z.union([z.string().describe("Docker compose custom start command."), z.null()]).optional(), "docker_compose_custom_build_command": z.union([z.string().describe("Docker compose custom build command."), z.null()]).optional(), "swarm_replicas": z.union([z.number().int().describe("Swarm replicas. Only used for swarm deployments."), z.null()]).optional(), "swarm_placement_constraints": z.union([z.string().describe("Swarm placement constraints. Only used for swarm deployments."), z.null()]).optional(), "custom_docker_run_options": z.union([z.string().describe("Custom docker run options."), z.null()]).optional(), "post_deployment_command": z.union([z.string().describe("Post deployment command."), z.null()]).optional(), "post_deployment_command_container": z.union([z.string().describe("Post deployment command container."), z.null()]).optional(), "pre_deployment_command": z.union([z.string().describe("Pre deployment command."), z.null()]).optional(), "pre_deployment_command_container": z.union([z.string().describe("Pre deployment command container."), z.null()]).optional(), "watch_paths": z.union([z.string().describe("Watch paths."), z.null()]).optional(), "custom_healthcheck_found": z.boolean().describe("Custom healthcheck found.").optional(), "redirect": z.union([z.enum(["www", "non-www", "both"]).describe("How to set redirect with Traefik / Caddy. www<->non-www."), z.null()]).optional(), "created_at": z.string().datetime({ offset: true }).describe("The date and time when the application was created.").optional(), "updated_at": z.string().datetime({ offset: true }).describe("The date and time when the application was last updated.").optional(), "deleted_at": z.union([z.string().datetime({ offset: true }).describe("The date and time when the application was deleted."), z.null()]).optional(), "compose_parsing_version": z.string().describe("How Coolify parse the compose file.").optional(), "custom_nginx_configuration": z.union([z.string().describe("Custom Nginx configuration base64 encoded."), z.null()]).optional(), "is_http_basic_auth_enabled": z.boolean().describe("HTTP Basic Authentication enabled.").optional(), "http_basic_auth_username": z.union([z.string().describe("Username for HTTP Basic Authentication"), z.null()]).optional(), "http_basic_auth_password": z.union([z.string().describe("Password for HTTP Basic Authentication"), z.null()]).optional(), "settings": z.object({ "is_static": z.boolean().optional(), "is_git_submodules_enabled": z.boolean().optional(), "is_git_lfs_enabled": z.boolean().optional(), "is_auto_deploy_enabled": z.boolean().optional(), "is_force_https_enabled": z.boolean().optional(), "is_debug_enabled": z.boolean().optional(), "is_preview_deployments_enabled": z.boolean().optional(), "is_log_drain_enabled": z.boolean().optional(), "is_gpu_enabled": z.boolean().optional(), "gpu_driver": z.union([z.string(), z.null()]).optional(), "gpu_count": z.union([z.string(), z.null()]).optional(), "gpu_device_ids": z.union([z.string(), z.null()]).optional(), "gpu_options": z.union([z.string(), z.null()]).optional(), "is_include_timestamps": z.boolean().optional(), "is_swarm_only_worker_nodes": z.boolean().optional(), "is_raw_compose_deployment_enabled": z.boolean().optional(), "is_build_server_enabled": z.boolean().optional(), "is_consistent_container_name_enabled": z.boolean().optional(), "is_gzip_enabled": z.boolean().optional(), "is_stripprefix_enabled": z.boolean().optional(), "connect_to_docker_network": z.boolean().optional(), "custom_internal_name": z.union([z.string(), z.null()]).optional(), "is_container_label_escape_enabled": z.boolean().optional(), "is_env_sorting_enabled": z.boolean().optional(), "is_container_label_readonly_enabled": z.boolean().optional(), "is_preserve_repository_enabled": z.boolean().optional(), "disable_build_cache": z.boolean().optional(), "is_spa": z.boolean().optional(), "is_git_shallow_clone_enabled": z.boolean().optional(), "is_pr_deployments_public_enabled": z.boolean().optional(), "use_build_secrets": z.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"),
7
7
  "ApplicationDeploymentQueue": z.object({ "id": z.number().int().optional(), "application_id": z.string().optional(), "deployment_uuid": z.string().optional(), "pull_request_id": z.number().int().optional(), "docker_registry_image_tag": z.union([z.string(), z.null()]).optional(), "configuration_hash": z.union([z.string(), z.null()]).optional(), "configuration_snapshot": z.union([z.record(z.string(), z.any()), z.null()]).optional(), "configuration_diff": z.union([z.record(z.string(), z.any()), z.null()]).optional(), "force_rebuild": z.boolean().optional(), "commit": z.string().optional(), "status": z.string().optional(), "is_webhook": z.boolean().optional(), "is_api": z.boolean().optional(), "created_at": z.string().optional(), "updated_at": z.string().optional(), "logs": z.string().optional(), "current_process_id": z.string().optional(), "restart_only": z.boolean().optional(), "git_type": z.union([z.string(), z.null()]).optional(), "server_id": z.number().int().optional(), "application_name": z.string().optional(), "server_name": z.string().optional(), "deployment_url": z.string().optional(), "destination_id": z.string().optional(), "only_this_server": z.boolean().optional(), "rollback": z.boolean().optional(), "commit_message": z.string().optional(), "build_server_id": z.union([z.number().int(), z.null()]).optional(), "horizon_job_id": z.union([z.string(), z.null()]).optional(), "horizon_job_worker": z.union([z.string(), z.null()]).optional(), "finished_at": z.union([z.string(), z.null()]).optional() }).describe("Project model"),
8
8
  "ApplicationSetting": 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."),
9
9
  "Environment": 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"),
@@ -1,13 +1,13 @@
1
1
  // Generated by scripts/generate-openapi.ts.
2
2
  import { z } from "zod";
3
3
  export const operations = [
4
- { name: "coolify_list_applications", method: "GET", path: "/applications", description: "List", inputSchema: z.object({ "tag": z.string().optional() }), responseSchema: z.array(z.object({ "id": z.number().int().describe("The application identifier in the database.").optional(), "description": z.union([z.string().describe("The application description."), z.null()]).optional(), "repository_project_id": z.union([z.number().int().describe("The repository project identifier."), z.null()]).optional(), "uuid": z.string().describe("The application UUID.").optional(), "name": z.string().describe("The application name.").optional(), "fqdn": z.union([z.string().describe("The application domains."), z.null()]).optional(), "noindex_domains": z.union([z.array(z.string()).describe("The subset of the application domains served with an X-Robots-Tag: noindex, nofollow response header."), z.null()]).optional(), "config_hash": z.string().describe("Configuration hash.").optional(), "git_repository": z.string().describe("Git repository URL.").optional(), "git_branch": z.string().describe("Git branch.").optional(), "git_commit_sha": z.string().describe("Git commit SHA.").optional(), "git_full_url": z.union([z.string().describe("Git full URL."), z.null()]).optional(), "docker_registry_image_name": z.union([z.string().describe("Docker registry image name."), z.null()]).optional(), "docker_registry_image_tag": z.union([z.string().describe("Docker registry image tag."), z.null()]).optional(), "build_pack": z.enum(["nixpacks", "railpack", "static", "dockerfile", "dockercompose"]).describe("Build pack.").optional(), "static_image": z.string().describe("Static image used when static site is deployed.").optional(), "install_command": z.union([z.string().describe("Install command."), z.null()]).optional(), "build_command": z.union([z.string().describe("Build command."), z.null()]).optional(), "start_command": z.union([z.string().describe("Start command."), z.null()]).optional(), "ports_exposes": z.string().describe("Ports exposes.").optional(), "ports_mappings": z.union([z.string().describe("Ports mappings."), z.null()]).optional(), "custom_network_aliases": z.union([z.string().describe("Network aliases for Docker container."), z.null()]).optional(), "base_directory": z.string().describe("Base directory for all commands.").optional(), "publish_directory": z.union([z.string().describe("Publish directory."), z.null()]).optional(), "health_check_enabled": z.boolean().describe("Health check enabled.").optional(), "health_check_path": z.string().describe("Health check path.").optional(), "health_check_port": z.union([z.string().describe("Health check port."), z.null()]).optional(), "health_check_host": z.union([z.string().describe("Health check host."), z.null()]).optional(), "health_check_method": z.string().describe("Health check method.").optional(), "health_check_return_code": z.number().int().describe("Health check return code.").optional(), "health_check_scheme": z.string().describe("Health check scheme.").optional(), "health_check_response_text": z.union([z.string().describe("Health check response text."), z.null()]).optional(), "health_check_interval": z.number().int().describe("Health check interval in seconds.").optional(), "health_check_timeout": z.number().int().describe("Health check timeout in seconds.").optional(), "health_check_retries": z.number().int().describe("Health check retries count.").optional(), "health_check_start_period": z.number().int().describe("Health check start period in seconds.").optional(), "health_check_type": z.enum(["http", "cmd"]).describe("Health check type: http or cmd.").optional(), "health_check_command": z.union([z.string().describe("Health check command for CMD type."), z.null()]).optional(), "limits_memory": z.string().describe("Memory limit.").optional(), "limits_memory_swap": z.string().describe("Memory swap limit.").optional(), "limits_memory_swappiness": z.number().int().describe("Memory swappiness.").optional(), "limits_memory_reservation": z.string().describe("Memory reservation.").optional(), "limits_cpus": z.string().describe("CPU limit.").optional(), "limits_cpuset": z.union([z.string().describe("CPU set."), z.null()]).optional(), "limits_cpu_shares": z.number().int().describe("CPU shares.").optional(), "status": z.string().describe("Application status.").optional(), "preview_url_template": z.string().describe("Preview URL template.").optional(), "max_restart_count": z.number().int().describe("Maximum container restart count before stopping.").optional(), "destination_type": z.string().describe("Destination type.").optional(), "destination_id": z.number().int().describe("Destination identifier.").optional(), "source_id": z.union([z.number().int().describe("Source identifier."), z.null()]).optional(), "private_key_id": z.union([z.string().describe("Private key identifier."), z.null()]).optional(), "environment_id": z.number().int().describe("Environment identifier.").optional(), "dockerfile": z.union([z.string().describe("Dockerfile content. Used for dockerfile build pack."), z.null()]).optional(), "dockerfile_location": z.union([z.string().describe("Dockerfile location."), z.null()]).optional(), "custom_labels": z.union([z.string().describe("Custom labels."), z.null()]).optional(), "dockerfile_target_build": z.union([z.string().describe("Dockerfile target build."), z.null()]).optional(), "manual_webhook_secret_github": z.union([z.string().describe("Manual webhook secret for GitHub."), z.null()]).optional(), "manual_webhook_secret_gitlab": z.union([z.string().describe("Manual webhook secret for GitLab."), z.null()]).optional(), "manual_webhook_secret_bitbucket": z.union([z.string().describe("Manual webhook secret for Bitbucket."), z.null()]).optional(), "manual_webhook_secret_gitea": z.union([z.string().describe("Manual webhook secret for Gitea."), z.null()]).optional(), "docker_compose_location": z.string().describe("Docker compose location.").optional(), "docker_compose": z.union([z.string().describe("Docker compose content. Used for docker compose build pack."), z.null()]).optional(), "docker_compose_raw": z.union([z.string().describe("Docker compose raw content."), z.null()]).optional(), "docker_compose_domains": z.union([z.string().describe("Docker compose domains."), z.null()]).optional(), "docker_compose_custom_start_command": z.union([z.string().describe("Docker compose custom start command."), z.null()]).optional(), "docker_compose_custom_build_command": z.union([z.string().describe("Docker compose custom build command."), z.null()]).optional(), "swarm_replicas": z.union([z.number().int().describe("Swarm replicas. Only used for swarm deployments."), z.null()]).optional(), "swarm_placement_constraints": z.union([z.string().describe("Swarm placement constraints. Only used for swarm deployments."), z.null()]).optional(), "custom_docker_run_options": z.union([z.string().describe("Custom docker run options."), z.null()]).optional(), "post_deployment_command": z.union([z.string().describe("Post deployment command."), z.null()]).optional(), "post_deployment_command_container": z.union([z.string().describe("Post deployment command container."), z.null()]).optional(), "pre_deployment_command": z.union([z.string().describe("Pre deployment command."), z.null()]).optional(), "pre_deployment_command_container": z.union([z.string().describe("Pre deployment command container."), z.null()]).optional(), "watch_paths": z.union([z.string().describe("Watch paths."), z.null()]).optional(), "custom_healthcheck_found": z.boolean().describe("Custom healthcheck found.").optional(), "redirect": z.union([z.enum(["www", "non-www", "both"]).describe("How to set redirect with Traefik / Caddy. www<->non-www."), z.null()]).optional(), "created_at": z.string().datetime({ offset: true }).describe("The date and time when the application was created.").optional(), "updated_at": z.string().datetime({ offset: true }).describe("The date and time when the application was last updated.").optional(), "deleted_at": z.union([z.string().datetime({ offset: true }).describe("The date and time when the application was deleted."), z.null()]).optional(), "compose_parsing_version": z.string().describe("How Coolify parse the compose file.").optional(), "custom_nginx_configuration": z.union([z.string().describe("Custom Nginx configuration base64 encoded."), z.null()]).optional(), "is_http_basic_auth_enabled": z.boolean().describe("HTTP Basic Authentication enabled.").optional(), "http_basic_auth_username": z.union([z.string().describe("Username for HTTP Basic Authentication"), z.null()]).optional(), "http_basic_auth_password": z.union([z.string().describe("Password for HTTP Basic Authentication"), z.null()]).optional(), "settings": z.object({ "is_static": z.boolean().optional(), "is_git_submodules_enabled": z.boolean().optional(), "is_git_lfs_enabled": z.boolean().optional(), "is_auto_deploy_enabled": z.boolean().optional(), "is_force_https_enabled": z.boolean().optional(), "is_debug_enabled": z.boolean().optional(), "is_preview_deployments_enabled": z.boolean().optional(), "is_log_drain_enabled": z.boolean().optional(), "is_gpu_enabled": z.boolean().optional(), "gpu_driver": z.union([z.string(), z.null()]).optional(), "gpu_count": z.union([z.string(), z.null()]).optional(), "gpu_device_ids": z.union([z.string(), z.null()]).optional(), "gpu_options": z.union([z.string(), z.null()]).optional(), "is_include_timestamps": z.boolean().optional(), "is_swarm_only_worker_nodes": z.boolean().optional(), "is_raw_compose_deployment_enabled": z.boolean().optional(), "is_build_server_enabled": z.boolean().optional(), "is_consistent_container_name_enabled": z.boolean().optional(), "is_gzip_enabled": z.boolean().optional(), "is_stripprefix_enabled": z.boolean().optional(), "connect_to_docker_network": z.boolean().optional(), "custom_internal_name": z.union([z.string(), z.null()]).optional(), "is_container_label_escape_enabled": z.boolean().optional(), "is_env_sorting_enabled": z.boolean().optional(), "is_container_label_readonly_enabled": z.boolean().optional(), "is_preserve_repository_enabled": z.boolean().optional(), "disable_build_cache": z.boolean().optional(), "is_spa": z.boolean().optional(), "is_git_shallow_clone_enabled": z.boolean().optional(), "is_pr_deployments_public_enabled": z.boolean().optional(), "use_build_secrets": z.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 } },
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.string().describe("Ports exposes.").optional(), "ports_mappings": z.union([z.string().describe("Ports mappings."), z.null()]).optional(), "custom_network_aliases": z.union([z.string().describe("Network aliases for Docker container."), z.null()]).optional(), "base_directory": z.string().describe("Base directory for all commands.").optional(), "publish_directory": z.union([z.string().describe("Publish directory."), z.null()]).optional(), "health_check_enabled": z.boolean().describe("Health check enabled.").optional(), "health_check_path": z.string().describe("Health check path.").optional(), "health_check_port": z.union([z.string().describe("Health check port."), z.null()]).optional(), "health_check_host": z.union([z.string().describe("Health check host."), z.null()]).optional(), "health_check_method": z.string().describe("Health check method.").optional(), "health_check_return_code": z.number().int().describe("Health check return code.").optional(), "health_check_scheme": z.string().describe("Health check scheme.").optional(), "health_check_response_text": z.union([z.string().describe("Health check response text."), z.null()]).optional(), "health_check_interval": z.number().int().describe("Health check interval in seconds.").optional(), "health_check_timeout": z.number().int().describe("Health check timeout in seconds.").optional(), "health_check_retries": z.number().int().describe("Health check retries count.").optional(), "health_check_start_period": z.number().int().describe("Health check start period in seconds.").optional(), "health_check_type": z.enum(["http", "cmd"]).describe("Health check type: http or cmd.").optional(), "health_check_command": z.union([z.string().describe("Health check command for CMD type."), z.null()]).optional(), "limits_memory": z.string().describe("Memory limit.").optional(), "limits_memory_swap": z.string().describe("Memory swap limit.").optional(), "limits_memory_swappiness": z.number().int().describe("Memory swappiness.").optional(), "limits_memory_reservation": z.string().describe("Memory reservation.").optional(), "limits_cpus": z.string().describe("CPU limit.").optional(), "limits_cpuset": z.union([z.string().describe("CPU set."), z.null()]).optional(), "limits_cpu_shares": z.number().int().describe("CPU shares.").optional(), "status": z.string().describe("Application status.").optional(), "preview_url_template": z.string().describe("Preview URL template.").optional(), "max_restart_count": z.number().int().describe("Maximum container restart count before stopping.").optional(), "destination_type": z.string().describe("Destination type.").optional(), "destination_id": z.number().int().describe("Destination identifier.").optional(), "source_id": z.union([z.number().int().describe("Source identifier."), z.null()]).optional(), "private_key_id": z.union([z.string().describe("Private key identifier."), z.null()]).optional(), "environment_id": z.number().int().describe("Environment identifier.").optional(), "dockerfile": z.union([z.string().describe("Dockerfile content. Used for dockerfile build pack."), z.null()]).optional(), "dockerfile_location": z.union([z.string().describe("Dockerfile location."), z.null()]).optional(), "custom_labels": z.union([z.string().describe("Custom labels."), z.null()]).optional(), "dockerfile_target_build": z.union([z.string().describe("Dockerfile target build."), z.null()]).optional(), "manual_webhook_secret_github": z.union([z.string().describe("Manual webhook secret for GitHub."), z.null()]).optional(), "manual_webhook_secret_gitlab": z.union([z.string().describe("Manual webhook secret for GitLab."), z.null()]).optional(), "manual_webhook_secret_bitbucket": z.union([z.string().describe("Manual webhook secret for Bitbucket."), z.null()]).optional(), "manual_webhook_secret_gitea": z.union([z.string().describe("Manual webhook secret for Gitea."), z.null()]).optional(), "docker_compose_location": z.string().describe("Docker compose location.").optional(), "docker_compose": z.union([z.string().describe("Docker compose content. Used for docker compose build pack."), z.null()]).optional(), "docker_compose_raw": z.union([z.string().describe("Docker compose raw content."), z.null()]).optional(), "docker_compose_domains": z.union([z.string().describe("Docker compose domains."), z.null()]).optional(), "docker_compose_custom_start_command": z.union([z.string().describe("Docker compose custom start command."), z.null()]).optional(), "docker_compose_custom_build_command": z.union([z.string().describe("Docker compose custom build command."), z.null()]).optional(), "swarm_replicas": z.union([z.number().int().describe("Swarm replicas. Only used for swarm deployments."), z.null()]).optional(), "swarm_placement_constraints": z.union([z.string().describe("Swarm placement constraints. Only used for swarm deployments."), z.null()]).optional(), "custom_docker_run_options": z.union([z.string().describe("Custom docker run options."), z.null()]).optional(), "post_deployment_command": z.union([z.string().describe("Post deployment command."), z.null()]).optional(), "post_deployment_command_container": z.union([z.string().describe("Post deployment command container."), z.null()]).optional(), "pre_deployment_command": z.union([z.string().describe("Pre deployment command."), z.null()]).optional(), "pre_deployment_command_container": z.union([z.string().describe("Pre deployment command container."), z.null()]).optional(), "watch_paths": z.union([z.string().describe("Watch paths."), z.null()]).optional(), "custom_healthcheck_found": z.boolean().describe("Custom healthcheck found.").optional(), "redirect": z.union([z.enum(["www", "non-www", "both"]).describe("How to set redirect with Traefik / Caddy. www<->non-www."), z.null()]).optional(), "created_at": z.string().datetime({ offset: true }).describe("The date and time when the application was created.").optional(), "updated_at": z.string().datetime({ offset: true }).describe("The date and time when the application was last updated.").optional(), "deleted_at": z.union([z.string().datetime({ offset: true }).describe("The date and time when the application was deleted."), z.null()]).optional(), "compose_parsing_version": z.string().describe("How Coolify parse the compose file.").optional(), "custom_nginx_configuration": z.union([z.string().describe("Custom Nginx configuration base64 encoded."), z.null()]).optional(), "is_http_basic_auth_enabled": z.boolean().describe("HTTP Basic Authentication enabled.").optional(), "http_basic_auth_username": z.union([z.string().describe("Username for HTTP Basic Authentication"), z.null()]).optional(), "http_basic_auth_password": z.union([z.string().describe("Password for HTTP Basic Authentication"), z.null()]).optional(), "settings": z.object({ "is_static": z.boolean().optional(), "is_git_submodules_enabled": z.boolean().optional(), "is_git_lfs_enabled": z.boolean().optional(), "is_auto_deploy_enabled": z.boolean().optional(), "is_force_https_enabled": z.boolean().optional(), "is_debug_enabled": z.boolean().optional(), "is_preview_deployments_enabled": z.boolean().optional(), "is_log_drain_enabled": z.boolean().optional(), "is_gpu_enabled": z.boolean().optional(), "gpu_driver": z.union([z.string(), z.null()]).optional(), "gpu_count": z.union([z.string(), z.null()]).optional(), "gpu_device_ids": z.union([z.string(), z.null()]).optional(), "gpu_options": z.union([z.string(), z.null()]).optional(), "is_include_timestamps": z.boolean().optional(), "is_swarm_only_worker_nodes": z.boolean().optional(), "is_raw_compose_deployment_enabled": z.boolean().optional(), "is_build_server_enabled": z.boolean().optional(), "is_consistent_container_name_enabled": z.boolean().optional(), "is_gzip_enabled": z.boolean().optional(), "is_stripprefix_enabled": z.boolean().optional(), "connect_to_docker_network": z.boolean().optional(), "custom_internal_name": z.union([z.string(), z.null()]).optional(), "is_container_label_escape_enabled": z.boolean().optional(), "is_env_sorting_enabled": z.boolean().optional(), "is_container_label_readonly_enabled": z.boolean().optional(), "is_preserve_repository_enabled": z.boolean().optional(), "disable_build_cache": z.boolean().optional(), "is_spa": z.boolean().optional(), "is_git_shallow_clone_enabled": z.boolean().optional(), "is_pr_deployments_public_enabled": z.boolean().optional(), "use_build_secrets": z.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
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) => Boolean(body["environment_name"]) || Boolean(body["environment_uuid"]), { 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
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) => Boolean(body["environment_name"]) || Boolean(body["environment_uuid"]), { 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
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) => Boolean(body["environment_name"]) || Boolean(body["environment_uuid"]), { 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
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) => Boolean(body["environment_name"]) || Boolean(body["environment_uuid"]), { 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
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) => Boolean(body["environment_name"]) || Boolean(body["environment_uuid"]), { 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"]).describe("Build pack.").optional(), "static_image": z.string().describe("Static image used when static site is deployed.").optional(), "install_command": z.union([z.string().describe("Install command."), z.null()]).optional(), "build_command": z.union([z.string().describe("Build command."), z.null()]).optional(), "start_command": z.union([z.string().describe("Start command."), z.null()]).optional(), "ports_exposes": z.string().describe("Ports exposes.").optional(), "ports_mappings": z.union([z.string().describe("Ports mappings."), z.null()]).optional(), "custom_network_aliases": z.union([z.string().describe("Network aliases for Docker container."), z.null()]).optional(), "base_directory": z.string().describe("Base directory for all commands.").optional(), "publish_directory": z.union([z.string().describe("Publish directory."), z.null()]).optional(), "health_check_enabled": z.boolean().describe("Health check enabled.").optional(), "health_check_path": z.string().describe("Health check path.").optional(), "health_check_port": z.union([z.string().describe("Health check port."), z.null()]).optional(), "health_check_host": z.union([z.string().describe("Health check host."), z.null()]).optional(), "health_check_method": z.string().describe("Health check method.").optional(), "health_check_return_code": z.number().int().describe("Health check return code.").optional(), "health_check_scheme": z.string().describe("Health check scheme.").optional(), "health_check_response_text": z.union([z.string().describe("Health check response text."), z.null()]).optional(), "health_check_interval": z.number().int().describe("Health check interval in seconds.").optional(), "health_check_timeout": z.number().int().describe("Health check timeout in seconds.").optional(), "health_check_retries": z.number().int().describe("Health check retries count.").optional(), "health_check_start_period": z.number().int().describe("Health check start period in seconds.").optional(), "health_check_type": z.enum(["http", "cmd"]).describe("Health check type: http or cmd.").optional(), "health_check_command": z.union([z.string().describe("Health check command for CMD type."), z.null()]).optional(), "limits_memory": z.string().describe("Memory limit.").optional(), "limits_memory_swap": z.string().describe("Memory swap limit.").optional(), "limits_memory_swappiness": z.number().int().describe("Memory swappiness.").optional(), "limits_memory_reservation": z.string().describe("Memory reservation.").optional(), "limits_cpus": z.string().describe("CPU limit.").optional(), "limits_cpuset": z.union([z.string().describe("CPU set."), z.null()]).optional(), "limits_cpu_shares": z.number().int().describe("CPU shares.").optional(), "status": z.string().describe("Application status.").optional(), "preview_url_template": z.string().describe("Preview URL template.").optional(), "max_restart_count": z.number().int().describe("Maximum container restart count before stopping.").optional(), "destination_type": z.string().describe("Destination type.").optional(), "destination_id": z.number().int().describe("Destination identifier.").optional(), "source_id": z.union([z.number().int().describe("Source identifier."), z.null()]).optional(), "private_key_id": z.union([z.string().describe("Private key identifier."), z.null()]).optional(), "environment_id": z.number().int().describe("Environment identifier.").optional(), "dockerfile": z.union([z.string().describe("Dockerfile content. Used for dockerfile build pack."), z.null()]).optional(), "dockerfile_location": z.union([z.string().describe("Dockerfile location."), z.null()]).optional(), "custom_labels": z.union([z.string().describe("Custom labels."), z.null()]).optional(), "dockerfile_target_build": z.union([z.string().describe("Dockerfile target build."), z.null()]).optional(), "manual_webhook_secret_github": z.union([z.string().describe("Manual webhook secret for GitHub."), z.null()]).optional(), "manual_webhook_secret_gitlab": z.union([z.string().describe("Manual webhook secret for GitLab."), z.null()]).optional(), "manual_webhook_secret_bitbucket": z.union([z.string().describe("Manual webhook secret for Bitbucket."), z.null()]).optional(), "manual_webhook_secret_gitea": z.union([z.string().describe("Manual webhook secret for Gitea."), z.null()]).optional(), "docker_compose_location": z.string().describe("Docker compose location.").optional(), "docker_compose": z.union([z.string().describe("Docker compose content. Used for docker compose build pack."), z.null()]).optional(), "docker_compose_raw": z.union([z.string().describe("Docker compose raw content."), z.null()]).optional(), "docker_compose_domains": z.union([z.string().describe("Docker compose domains."), z.null()]).optional(), "docker_compose_custom_start_command": z.union([z.string().describe("Docker compose custom start command."), z.null()]).optional(), "docker_compose_custom_build_command": z.union([z.string().describe("Docker compose custom build command."), z.null()]).optional(), "swarm_replicas": z.union([z.number().int().describe("Swarm replicas. Only used for swarm deployments."), z.null()]).optional(), "swarm_placement_constraints": z.union([z.string().describe("Swarm placement constraints. Only used for swarm deployments."), z.null()]).optional(), "custom_docker_run_options": z.union([z.string().describe("Custom docker run options."), z.null()]).optional(), "post_deployment_command": z.union([z.string().describe("Post deployment command."), z.null()]).optional(), "post_deployment_command_container": z.union([z.string().describe("Post deployment command container."), z.null()]).optional(), "pre_deployment_command": z.union([z.string().describe("Pre deployment command."), z.null()]).optional(), "pre_deployment_command_container": z.union([z.string().describe("Pre deployment command container."), z.null()]).optional(), "watch_paths": z.union([z.string().describe("Watch paths."), z.null()]).optional(), "custom_healthcheck_found": z.boolean().describe("Custom healthcheck found.").optional(), "redirect": z.union([z.enum(["www", "non-www", "both"]).describe("How to set redirect with Traefik / Caddy. www<->non-www."), z.null()]).optional(), "created_at": z.string().datetime({ offset: true }).describe("The date and time when the application was created.").optional(), "updated_at": z.string().datetime({ offset: true }).describe("The date and time when the application was last updated.").optional(), "deleted_at": z.union([z.string().datetime({ offset: true }).describe("The date and time when the application was deleted."), z.null()]).optional(), "compose_parsing_version": z.string().describe("How Coolify parse the compose file.").optional(), "custom_nginx_configuration": z.union([z.string().describe("Custom Nginx configuration base64 encoded."), z.null()]).optional(), "is_http_basic_auth_enabled": z.boolean().describe("HTTP Basic Authentication enabled.").optional(), "http_basic_auth_username": z.union([z.string().describe("Username for HTTP Basic Authentication"), z.null()]).optional(), "http_basic_auth_password": z.union([z.string().describe("Password for HTTP Basic Authentication"), z.null()]).optional(), "settings": z.object({ "is_static": z.boolean().optional(), "is_git_submodules_enabled": z.boolean().optional(), "is_git_lfs_enabled": z.boolean().optional(), "is_auto_deploy_enabled": z.boolean().optional(), "is_force_https_enabled": z.boolean().optional(), "is_debug_enabled": z.boolean().optional(), "is_preview_deployments_enabled": z.boolean().optional(), "is_log_drain_enabled": z.boolean().optional(), "is_gpu_enabled": z.boolean().optional(), "gpu_driver": z.union([z.string(), z.null()]).optional(), "gpu_count": z.union([z.string(), z.null()]).optional(), "gpu_device_ids": z.union([z.string(), z.null()]).optional(), "gpu_options": z.union([z.string(), z.null()]).optional(), "is_include_timestamps": z.boolean().optional(), "is_swarm_only_worker_nodes": z.boolean().optional(), "is_raw_compose_deployment_enabled": z.boolean().optional(), "is_build_server_enabled": z.boolean().optional(), "is_consistent_container_name_enabled": z.boolean().optional(), "is_gzip_enabled": z.boolean().optional(), "is_stripprefix_enabled": z.boolean().optional(), "connect_to_docker_network": z.boolean().optional(), "custom_internal_name": z.union([z.string(), z.null()]).optional(), "is_container_label_escape_enabled": z.boolean().optional(), "is_env_sorting_enabled": z.boolean().optional(), "is_container_label_readonly_enabled": z.boolean().optional(), "is_preserve_repository_enabled": z.boolean().optional(), "disable_build_cache": z.boolean().optional(), "is_spa": z.boolean().optional(), "is_git_shallow_clone_enabled": z.boolean().optional(), "is_pr_deployments_public_enabled": z.boolean().optional(), "use_build_secrets": z.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 } },
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.string().describe("Ports exposes.").optional(), "ports_mappings": z.union([z.string().describe("Ports mappings."), z.null()]).optional(), "custom_network_aliases": z.union([z.string().describe("Network aliases for Docker container."), z.null()]).optional(), "base_directory": z.string().describe("Base directory for all commands.").optional(), "publish_directory": z.union([z.string().describe("Publish directory."), z.null()]).optional(), "health_check_enabled": z.boolean().describe("Health check enabled.").optional(), "health_check_path": z.string().describe("Health check path.").optional(), "health_check_port": z.union([z.string().describe("Health check port."), z.null()]).optional(), "health_check_host": z.union([z.string().describe("Health check host."), z.null()]).optional(), "health_check_method": z.string().describe("Health check method.").optional(), "health_check_return_code": z.number().int().describe("Health check return code.").optional(), "health_check_scheme": z.string().describe("Health check scheme.").optional(), "health_check_response_text": z.union([z.string().describe("Health check response text."), z.null()]).optional(), "health_check_interval": z.number().int().describe("Health check interval in seconds.").optional(), "health_check_timeout": z.number().int().describe("Health check timeout in seconds.").optional(), "health_check_retries": z.number().int().describe("Health check retries count.").optional(), "health_check_start_period": z.number().int().describe("Health check start period in seconds.").optional(), "health_check_type": z.enum(["http", "cmd"]).describe("Health check type: http or cmd.").optional(), "health_check_command": z.union([z.string().describe("Health check command for CMD type."), z.null()]).optional(), "limits_memory": z.string().describe("Memory limit.").optional(), "limits_memory_swap": z.string().describe("Memory swap limit.").optional(), "limits_memory_swappiness": z.number().int().describe("Memory swappiness.").optional(), "limits_memory_reservation": z.string().describe("Memory reservation.").optional(), "limits_cpus": z.string().describe("CPU limit.").optional(), "limits_cpuset": z.union([z.string().describe("CPU set."), z.null()]).optional(), "limits_cpu_shares": z.number().int().describe("CPU shares.").optional(), "status": z.string().describe("Application status.").optional(), "preview_url_template": z.string().describe("Preview URL template.").optional(), "max_restart_count": z.number().int().describe("Maximum container restart count before stopping.").optional(), "destination_type": z.string().describe("Destination type.").optional(), "destination_id": z.number().int().describe("Destination identifier.").optional(), "source_id": z.union([z.number().int().describe("Source identifier."), z.null()]).optional(), "private_key_id": z.union([z.string().describe("Private key identifier."), z.null()]).optional(), "environment_id": z.number().int().describe("Environment identifier.").optional(), "dockerfile": z.union([z.string().describe("Dockerfile content. Used for dockerfile build pack."), z.null()]).optional(), "dockerfile_location": z.union([z.string().describe("Dockerfile location."), z.null()]).optional(), "custom_labels": z.union([z.string().describe("Custom labels."), z.null()]).optional(), "dockerfile_target_build": z.union([z.string().describe("Dockerfile target build."), z.null()]).optional(), "manual_webhook_secret_github": z.union([z.string().describe("Manual webhook secret for GitHub."), z.null()]).optional(), "manual_webhook_secret_gitlab": z.union([z.string().describe("Manual webhook secret for GitLab."), z.null()]).optional(), "manual_webhook_secret_bitbucket": z.union([z.string().describe("Manual webhook secret for Bitbucket."), z.null()]).optional(), "manual_webhook_secret_gitea": z.union([z.string().describe("Manual webhook secret for Gitea."), z.null()]).optional(), "docker_compose_location": z.string().describe("Docker compose location.").optional(), "docker_compose": z.union([z.string().describe("Docker compose content. Used for docker compose build pack."), z.null()]).optional(), "docker_compose_raw": z.union([z.string().describe("Docker compose raw content."), z.null()]).optional(), "docker_compose_domains": z.union([z.string().describe("Docker compose domains."), z.null()]).optional(), "docker_compose_custom_start_command": z.union([z.string().describe("Docker compose custom start command."), z.null()]).optional(), "docker_compose_custom_build_command": z.union([z.string().describe("Docker compose custom build command."), z.null()]).optional(), "swarm_replicas": z.union([z.number().int().describe("Swarm replicas. Only used for swarm deployments."), z.null()]).optional(), "swarm_placement_constraints": z.union([z.string().describe("Swarm placement constraints. Only used for swarm deployments."), z.null()]).optional(), "custom_docker_run_options": z.union([z.string().describe("Custom docker run options."), z.null()]).optional(), "post_deployment_command": z.union([z.string().describe("Post deployment command."), z.null()]).optional(), "post_deployment_command_container": z.union([z.string().describe("Post deployment command container."), z.null()]).optional(), "pre_deployment_command": z.union([z.string().describe("Pre deployment command."), z.null()]).optional(), "pre_deployment_command_container": z.union([z.string().describe("Pre deployment command container."), z.null()]).optional(), "watch_paths": z.union([z.string().describe("Watch paths."), z.null()]).optional(), "custom_healthcheck_found": z.boolean().describe("Custom healthcheck found.").optional(), "redirect": z.union([z.enum(["www", "non-www", "both"]).describe("How to set redirect with Traefik / Caddy. www<->non-www."), z.null()]).optional(), "created_at": z.string().datetime({ offset: true }).describe("The date and time when the application was created.").optional(), "updated_at": z.string().datetime({ offset: true }).describe("The date and time when the application was last updated.").optional(), "deleted_at": z.union([z.string().datetime({ offset: true }).describe("The date and time when the application was deleted."), z.null()]).optional(), "compose_parsing_version": z.string().describe("How Coolify parse the compose file.").optional(), "custom_nginx_configuration": z.union([z.string().describe("Custom Nginx configuration base64 encoded."), z.null()]).optional(), "is_http_basic_auth_enabled": z.boolean().describe("HTTP Basic Authentication enabled.").optional(), "http_basic_auth_username": z.union([z.string().describe("Username for HTTP Basic Authentication"), z.null()]).optional(), "http_basic_auth_password": z.union([z.string().describe("Password for HTTP Basic Authentication"), z.null()]).optional(), "settings": z.object({ "is_static": z.boolean().optional(), "is_git_submodules_enabled": z.boolean().optional(), "is_git_lfs_enabled": z.boolean().optional(), "is_auto_deploy_enabled": z.boolean().optional(), "is_force_https_enabled": z.boolean().optional(), "is_debug_enabled": z.boolean().optional(), "is_preview_deployments_enabled": z.boolean().optional(), "is_log_drain_enabled": z.boolean().optional(), "is_gpu_enabled": z.boolean().optional(), "gpu_driver": z.union([z.string(), z.null()]).optional(), "gpu_count": z.union([z.string(), z.null()]).optional(), "gpu_device_ids": z.union([z.string(), z.null()]).optional(), "gpu_options": z.union([z.string(), z.null()]).optional(), "is_include_timestamps": z.boolean().optional(), "is_swarm_only_worker_nodes": z.boolean().optional(), "is_raw_compose_deployment_enabled": z.boolean().optional(), "is_build_server_enabled": z.boolean().optional(), "is_consistent_container_name_enabled": z.boolean().optional(), "is_gzip_enabled": z.boolean().optional(), "is_stripprefix_enabled": z.boolean().optional(), "connect_to_docker_network": z.boolean().optional(), "custom_internal_name": z.union([z.string(), z.null()]).optional(), "is_container_label_escape_enabled": z.boolean().optional(), "is_env_sorting_enabled": z.boolean().optional(), "is_container_label_readonly_enabled": z.boolean().optional(), "is_preserve_repository_enabled": z.boolean().optional(), "disable_build_cache": z.boolean().optional(), "is_spa": z.boolean().optional(), "is_git_shallow_clone_enabled": z.boolean().optional(), "is_pr_deployments_public_enabled": z.boolean().optional(), "use_build_secrets": z.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
11
  { name: "coolify_delete_application_by_uuid", method: "DELETE", path: "/applications/{uuid}", description: "Delete", inputSchema: z.object({ "uuid": z.string(), "delete_configurations": z.boolean().default(true), "delete_volumes": z.boolean().default(true), "docker_cleanup": z.boolean().default(true), "delete_connected_networks": z.boolean().default(true) }), responseSchema: z.object({ "message": z.string().optional() }), responseKind: "json", parameters: [{ location: "path", name: "uuid" }, { location: "query", name: "delete_configurations" }, { location: "query", name: "delete_volumes" }, { location: "query", name: "docker_cleanup" }, { location: "query", name: "delete_connected_networks" }], annotations: { readOnlyHint: false, destructiveHint: true, idempotentHint: true, openWorldHint: false } },
12
12
  { name: "coolify_update_application_by_uuid", method: "PATCH", path: "/applications/{uuid}", description: "Update", inputSchema: z.object({ "uuid": z.string(), body: z.object({ "project_uuid": z.string().describe("The project UUID.").optional(), "server_uuid": z.string().describe("The server UUID.").optional(), "environment_name": z.string().describe("The environment name.").optional(), "github_app_uuid": z.string().describe("The Github App UUID.").optional(), "git_repository": z.string().describe("The git repository URL.").optional(), "git_branch": z.string().describe("The git branch.").optional(), "ports_exposes": z.string().describe("The ports to expose.").optional(), "destination_uuid": z.string().describe("The destination UUID.").optional(), "build_pack": z.enum(["nixpacks", "railpack", "static", "dockerfile", "dockercompose"]).describe("The build pack type.").optional(), "name": z.string().describe("The application name.").optional(), "description": z.string().describe("The application description.").optional(), "domains": z.string().describe("The application URLs in a comma-separated list.").optional(), "noindex_domains": z.array(z.string()).describe("The subset of the application domains served with an X-Robots-Tag: noindex, nofollow response header, keeping them out of search engines. Entries that are not among the application domains are ignored.").optional(), "git_commit_sha": z.string().describe("The git commit SHA.").optional(), "docker_registry_image_name": z.string().describe("The docker registry image name.").optional(), "docker_registry_image_tag": z.string().describe("The docker registry image tag.").optional(), "is_static": z.boolean().describe("The flag to indicate if the application is static.").optional(), "is_spa": z.boolean().describe("The flag to indicate if the application is a single-page application (SPA). Only relevant when is_static is true.").optional(), "is_auto_deploy_enabled": z.boolean().describe("The flag to indicate if auto-deploy is enabled on git push. Defaults to true.").optional(), "is_force_https_enabled": z.boolean().describe("The flag to indicate if HTTPS is forced. Defaults to true.").optional(), "is_preview_deployments_enabled": z.boolean().describe("Enable preview deployments for pull requests.").optional(), "install_command": z.string().describe("The install command.").optional(), "build_command": z.string().describe("The build command.").optional(), "start_command": z.string().describe("The start command.").optional(), "ports_mappings": z.string().describe("The ports mappings.").optional(), "base_directory": z.string().describe("The base directory for all commands.").optional(), "publish_directory": z.string().describe("The publish directory.").optional(), "health_check_enabled": z.boolean().describe("Health check enabled.").optional(), "health_check_path": z.string().describe("Health check path.").optional(), "health_check_port": z.union([z.string().describe("Health check port."), z.null()]).optional(), "health_check_host": z.union([z.string().describe("Health check host."), z.null()]).optional(), "health_check_method": z.string().describe("Health check method.").optional(), "health_check_return_code": z.number().int().describe("Health check return code.").optional(), "health_check_scheme": z.string().describe("Health check scheme.").optional(), "health_check_response_text": z.union([z.string().describe("Health check response text."), z.null()]).optional(), "health_check_interval": z.number().int().describe("Health check interval in seconds.").optional(), "health_check_timeout": z.number().int().describe("Health check timeout in seconds.").optional(), "health_check_retries": z.number().int().describe("Health check retries count.").optional(), "health_check_start_period": z.number().int().describe("Health check start period in seconds.").optional(), "limits_memory": z.string().describe("Memory limit.").optional(), "limits_memory_swap": z.string().describe("Memory swap limit.").optional(), "limits_memory_swappiness": z.number().int().describe("Memory swappiness.").optional(), "limits_memory_reservation": z.string().describe("Memory reservation.").optional(), "limits_cpus": z.string().describe("CPU limit.").optional(), "limits_cpuset": z.union([z.string().describe("CPU set."), z.null()]).optional(), "limits_cpu_shares": z.number().int().describe("CPU shares.").optional(), "custom_labels": z.string().describe("Custom labels.").optional(), "custom_docker_run_options": z.string().describe("Custom docker run options.").optional(), "post_deployment_command": z.string().describe("Post deployment command.").optional(), "post_deployment_command_container": z.string().describe("Post deployment command container.").optional(), "pre_deployment_command": z.string().describe("Pre deployment command.").optional(), "pre_deployment_command_container": z.string().describe("Pre deployment command container.").optional(), "manual_webhook_secret_github": z.string().describe("Manual webhook secret for Github.").optional(), "manual_webhook_secret_gitlab": z.string().describe("Manual webhook secret for Gitlab.").optional(), "manual_webhook_secret_bitbucket": z.string().describe("Manual webhook secret for Bitbucket.").optional(), "manual_webhook_secret_gitea": z.string().describe("Manual webhook secret for Gitea.").optional(), "redirect": z.union([z.enum(["www", "non-www", "both"]).describe("How to set redirect with Traefik / Caddy. www<->non-www."), z.null()]).optional(), "instant_deploy": z.boolean().describe("The flag to indicate if the application should be deployed instantly.").optional(), "dockerfile": z.string().describe("The Dockerfile content.").optional(), "dockerfile_location": z.string().describe("The Dockerfile location in the repository.").optional(), "docker_compose_location": z.string().describe("The Docker Compose location.").optional(), "docker_compose_custom_start_command": z.string().describe("The Docker Compose custom start command.").optional(), "docker_compose_custom_build_command": z.string().describe("The Docker Compose custom build command.").optional(), "docker_compose_domains": z.array(z.object({ "name": z.string().describe("The service name as defined in docker-compose.").optional(), "domain": z.string().describe("Comma-separated list of URLs (e.g. \"https://app.coolify.io,https://app2.coolify.io\")").optional(), "redirect": z.union([z.enum(["www", "non-www", "both"]).describe("Per-service www/non-www redirect for this compose service."), z.null()]).optional() })).describe("Array of URLs to be applied to containers of a dockercompose application.").optional(), "watch_paths": z.string().describe("The watch paths.").optional(), "use_build_server": z.union([z.boolean().describe("Use build server."), z.null()]).optional(), "use_build_secrets": z.boolean().describe("Use Docker Build Secrets for build-time environment variables.").optional(), "is_git_submodules_enabled": z.boolean().describe("Clone Git submodules.").optional(), "is_git_lfs_enabled": z.boolean().describe("Enable Git LFS.").optional(), "is_git_shallow_clone_enabled": z.boolean().describe("Use a shallow Git clone.").optional(), "disable_build_cache": z.boolean().describe("Disable the build cache.").optional(), "inject_build_args_to_dockerfile": z.boolean().describe("Inject build arguments into the Dockerfile build.").optional(), "include_source_commit_in_build": z.boolean().describe("Include the source commit in the build.").optional(), "is_env_sorting_enabled": z.boolean().describe("Sort environment variables.").optional(), "is_pr_deployments_public_enabled": z.boolean().describe("Make pull request deployments public.").optional(), "stop_grace_period": z.union([z.number().int().gte(1).lte(3600).describe("Container stop grace period in seconds."), z.null()]).optional(), "docker_images_to_keep": z.number().int().gte(0).lte(100).describe("Number of Docker images to retain.").optional(), "is_gzip_enabled": z.boolean().describe("Enable gzip compression.").optional(), "is_stripprefix_enabled": z.boolean().describe("Enable path prefix stripping.").optional(), "is_raw_compose_deployment_enabled": z.boolean().describe("Deploy the raw Docker Compose definition.").optional(), "is_log_drain_enabled": z.boolean().describe("Enable log drain for the application.").optional(), "is_gpu_enabled": z.boolean().describe("Enable GPU support.").optional(), "gpu_driver": z.union([z.string().describe("GPU driver name."), z.null()]).optional(), "gpu_count": z.union([z.string().describe("Number of GPUs to allocate."), z.null()]).optional(), "gpu_device_ids": z.union([z.string().describe("Comma-separated GPU device IDs."), z.null()]).optional(), "gpu_options": z.union([z.string().describe("Additional GPU options."), z.null()]).optional(), "is_consistent_container_name_enabled": z.boolean().describe("Use a consistent container name across deployments.").optional(), "custom_internal_name": z.union([z.string().describe("Custom internal container name."), z.null()]).optional(), "preview_url_template": z.string().describe("Preview URL template.").optional(), "max_restart_count": z.number().int().gte(0).describe("Maximum container restart count before stopping.").optional(), "connect_to_docker_network": z.boolean().describe("The flag to connect the service to the predefined Docker network.").optional(), "force_domain_override": z.boolean().describe("Force domain usage even if conflicts are detected. Default is false.").optional(), "is_container_label_escape_enabled": z.boolean().describe("Escape special characters in labels. By default, $ (and other chars) is escaped. So if you write $ in the labels, it will be saved as $$. If you want to use env variables inside the labels, turn this off.").default(true), "is_preserve_repository_enabled": z.boolean().describe("Preserve git repository during application update. If false, the existing repository will be removed and replaced with the new one. If true, the existing repository will be kept and the new one will be ignored. Default is false.").optional() }) }), responseSchema: z.object({ "uuid": z.string().optional() }), responseKind: "json", parameters: [{ location: "path", name: "uuid" }], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
13
13
  { name: "coolify_get_application_logs_by_uuid", method: "GET", path: "/applications/{uuid}/logs", description: "Get application logs.", inputSchema: z.object({ "uuid": z.string(), "lines": z.number().int().default(100), "show_timestamps": z.boolean().default(false) }), responseSchema: z.object({ "logs": z.string().optional() }), responseKind: "json", parameters: [{ location: "path", name: "uuid" }, { location: "query", name: "lines" }, { location: "query", name: "show_timestamps" }], annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false } },
@@ -59,9 +59,9 @@ export const operations = [
59
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.null(), responseKind: "empty", parameters: [{ location: "path", name: "uuid" }], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
60
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.null(), responseKind: "empty", parameters: [{ location: "path", name: "uuid" }, { location: "path", name: "destination_uuid" }], annotations: { readOnlyHint: false, destructiveHint: true, idempotentHint: true, openWorldHint: false } },
61
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.null(), responseKind: "empty", parameters: [], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, 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
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.null(), responseKind: "empty", 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.null(), responseKind: "empty", parameters: [{ location: "path", name: "uuid" }], annotations: { readOnlyHint: false, destructiveHint: true, 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
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.null(), responseKind: "empty", parameters: [{ location: "path", name: "uuid" }], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
66
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
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 } },
@@ -105,7 +105,7 @@ export const operations = [
105
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
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
107
  { name: "coolify_delete_tag_by_database_uuid", method: "DELETE", path: "/databases/{uuid}/tags/{tag_uuid}", description: "Delete Tag", inputSchema: z.object({ "uuid": z.string(), "tag_uuid": z.string() }), responseSchema: z.null(), responseKind: "empty", parameters: [{ location: "path", name: "uuid" }, { location: "path", name: "tag_uuid" }], annotations: { readOnlyHint: false, destructiveHint: true, idempotentHint: true, openWorldHint: false } },
108
- { name: "coolify_clone_database_by_uuid", method: "POST", path: "/databases/{uuid}/clone", description: "Clone", inputSchema: z.object({ "uuid": z.string(), body: z.object({ "destination_uuid": z.string(), "name": z.union([z.string(), z.null()]).optional(), "clone_volumes": z.boolean().default(false) }) }), responseSchema: z.null(), responseKind: "empty", parameters: [{ location: "path", name: "uuid" }], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
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
109
  { name: "coolify_list_deployments", method: "GET", path: "/deployments", description: "List", inputSchema: z.object({}), responseSchema: z.array(z.object({ "id": z.number().int().optional(), "application_id": z.string().optional(), "deployment_uuid": z.string().optional(), "pull_request_id": z.number().int().optional(), "docker_registry_image_tag": z.union([z.string(), z.null()]).optional(), "configuration_hash": z.union([z.string(), z.null()]).optional(), "configuration_snapshot": z.union([z.record(z.string(), z.any()), z.null()]).optional(), "configuration_diff": z.union([z.record(z.string(), z.any()), z.null()]).optional(), "force_rebuild": z.boolean().optional(), "commit": z.string().optional(), "status": z.string().optional(), "is_webhook": z.boolean().optional(), "is_api": z.boolean().optional(), "created_at": z.string().optional(), "updated_at": z.string().optional(), "logs": z.string().optional(), "current_process_id": z.string().optional(), "restart_only": z.boolean().optional(), "git_type": z.union([z.string(), z.null()]).optional(), "server_id": z.number().int().optional(), "application_name": z.string().optional(), "server_name": z.string().optional(), "deployment_url": z.string().optional(), "destination_id": z.string().optional(), "only_this_server": z.boolean().optional(), "rollback": z.boolean().optional(), "commit_message": z.string().optional(), "build_server_id": z.union([z.number().int(), z.null()]).optional(), "horizon_job_id": z.union([z.string(), z.null()]).optional(), "horizon_job_worker": z.union([z.string(), z.null()]).optional(), "finished_at": z.union([z.string(), z.null()]).optional() }).describe("Project model")), responseKind: "json", parameters: [], annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false } },
110
110
  { name: "coolify_get_deployment_by_uuid", method: "GET", path: "/deployments/{uuid}", description: "Get", inputSchema: z.object({ "uuid": z.string() }), responseSchema: z.object({ "id": z.number().int().optional(), "application_id": z.string().optional(), "deployment_uuid": z.string().optional(), "pull_request_id": z.number().int().optional(), "docker_registry_image_tag": z.union([z.string(), z.null()]).optional(), "configuration_hash": z.union([z.string(), z.null()]).optional(), "configuration_snapshot": z.union([z.record(z.string(), z.any()), z.null()]).optional(), "configuration_diff": z.union([z.record(z.string(), z.any()), z.null()]).optional(), "force_rebuild": z.boolean().optional(), "commit": z.string().optional(), "status": z.string().optional(), "is_webhook": z.boolean().optional(), "is_api": z.boolean().optional(), "created_at": z.string().optional(), "updated_at": z.string().optional(), "logs": z.string().optional(), "current_process_id": z.string().optional(), "restart_only": z.boolean().optional(), "git_type": z.union([z.string(), z.null()]).optional(), "server_id": z.number().int().optional(), "application_name": z.string().optional(), "server_name": z.string().optional(), "deployment_url": z.string().optional(), "destination_id": z.string().optional(), "only_this_server": z.boolean().optional(), "rollback": z.boolean().optional(), "commit_message": z.string().optional(), "build_server_id": z.union([z.number().int(), z.null()]).optional(), "horizon_job_id": z.union([z.string(), z.null()]).optional(), "horizon_job_worker": z.union([z.string(), z.null()]).optional(), "finished_at": z.union([z.string(), z.null()]).optional() }).describe("Project model"), responseKind: "json", parameters: [{ location: "path", name: "uuid" }], annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false } },
111
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 } },
@@ -258,7 +258,7 @@ export const operations = [
258
258
  { name: "coolify_list_tags_by_service_uuid", method: "GET", path: "/services/{uuid}/tags", description: "List Tags", inputSchema: z.object({ "uuid": z.string() }), responseSchema: z.array(z.object({ "uuid": z.string().optional(), "name": z.string().optional(), "created_at": z.string().optional(), "updated_at": z.string().optional() }).describe("Tag model")), responseKind: "json", parameters: [{ location: "path", name: "uuid" }], annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false } },
259
259
  { name: "coolify_create_tag_by_service_uuid", method: "POST", path: "/services/{uuid}/tags", description: "Create Tag", inputSchema: z.object({ "uuid": z.string(), body: z.object({ "tag_name": z.string().describe("The tag name (min 2 characters). Required if tag_names is not provided.").optional(), "tag_names": z.array(z.string()).describe("Array of tag names (each min 2 characters). Required if tag_name is not provided.").optional() }) }), responseSchema: z.array(z.object({ "uuid": z.string().optional(), "name": z.string().optional(), "created_at": z.string().optional(), "updated_at": z.string().optional() }).describe("Tag model")), responseKind: "json", parameters: [{ location: "path", name: "uuid" }], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
260
260
  { 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.null(), responseKind: "empty", parameters: [{ location: "path", name: "uuid" }, { location: "path", name: "tag_uuid" }], annotations: { readOnlyHint: false, destructiveHint: true, idempotentHint: true, openWorldHint: false } },
261
- { 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.null(), responseKind: "empty", parameters: [{ location: "path", name: "uuid" }], annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false } },
261
+ { 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 } },
262
262
  { 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 } },
263
263
  { 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 } },
264
264
  { 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 } },
@@ -5363,7 +5363,29 @@
5363
5363
  },
5364
5364
  "responses": {
5365
5365
  "201": {
5366
- "description": "Cloud-init script created."
5366
+ "description": "Cloud-init script created.",
5367
+ "content": {
5368
+ "application/json": {
5369
+ "schema": {
5370
+ "type": "object",
5371
+ "required": [
5372
+ "uuid"
5373
+ ],
5374
+ "properties": {
5375
+ "uuid": {
5376
+ "type": "string"
5377
+ },
5378
+ "name": {
5379
+ "type": "string"
5380
+ },
5381
+ "script": {
5382
+ "type": "string"
5383
+ }
5384
+ },
5385
+ "additionalProperties": true
5386
+ }
5387
+ }
5388
+ }
5367
5389
  },
5368
5390
  "401": {
5369
5391
  "$ref": "#/components/responses/401"
@@ -5439,7 +5461,22 @@
5439
5461
  ],
5440
5462
  "responses": {
5441
5463
  "200": {
5442
- "description": "Cloud-init script deleted."
5464
+ "description": "Cloud-init script deleted.",
5465
+ "content": {
5466
+ "application/json": {
5467
+ "schema": {
5468
+ "type": "object",
5469
+ "required": [
5470
+ "message"
5471
+ ],
5472
+ "properties": {
5473
+ "message": {
5474
+ "type": "string"
5475
+ }
5476
+ }
5477
+ }
5478
+ }
5479
+ }
5443
5480
  },
5444
5481
  "401": {
5445
5482
  "$ref": "#/components/responses/401"
@@ -9482,7 +9519,27 @@
9482
9519
  },
9483
9520
  "responses": {
9484
9521
  "201": {
9485
- "description": "Database cloned."
9522
+ "description": "Database cloned.",
9523
+ "content": {
9524
+ "application/json": {
9525
+ "schema": {
9526
+ "type": "object",
9527
+ "required": [
9528
+ "uuid",
9529
+ "message"
9530
+ ],
9531
+ "properties": {
9532
+ "uuid": {
9533
+ "type": "string"
9534
+ },
9535
+ "message": {
9536
+ "type": "string"
9537
+ }
9538
+ },
9539
+ "additionalProperties": true
9540
+ }
9541
+ }
9542
+ }
9486
9543
  },
9487
9544
  "400": {
9488
9545
  "$ref": "#/components/responses/400"
@@ -19851,7 +19908,27 @@
19851
19908
  },
19852
19909
  "responses": {
19853
19910
  "201": {
19854
- "description": "Service cloned."
19911
+ "description": "Service cloned.",
19912
+ "content": {
19913
+ "application/json": {
19914
+ "schema": {
19915
+ "type": "object",
19916
+ "required": [
19917
+ "uuid",
19918
+ "message"
19919
+ ],
19920
+ "properties": {
19921
+ "uuid": {
19922
+ "type": "string"
19923
+ },
19924
+ "message": {
19925
+ "type": "string"
19926
+ }
19927
+ },
19928
+ "additionalProperties": true
19929
+ }
19930
+ }
19931
+ }
19855
19932
  },
19856
19933
  "400": {
19857
19934
  "$ref": "#/components/responses/400"
@@ -22361,7 +22438,8 @@
22361
22438
  "railpack",
22362
22439
  "static",
22363
22440
  "dockerfile",
22364
- "dockercompose"
22441
+ "dockercompose",
22442
+ "dockerimage"
22365
22443
  ]
22366
22444
  },
22367
22445
  "static_image": {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jurislm/coolify-plugin",
3
- "version": "4.0.4",
3
+ "version": "4.0.6",
4
4
  "description": "Portable local stdio MCP plugin for Coolify",
5
5
  "publishConfig": {
6
6
  "access": "public"
package/plugin.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json",
3
3
  "name": "coolify-plugin",
4
- "version": "4.0.4",
4
+ "version": "4.0.6",
5
5
  "description": "Portable Coolify MCP plugin with local stdio tools generated from the official OpenAPI contract.",
6
6
  "author": {
7
7
  "name": "JurisLM",