← Back to search

dokploy-mcp-server

GitHub Actions Scanned 18h ago

A comprehensive Model Context Protocol (MCP) server for Dokploy - deploy apps, manage containers, databases, domains, and servers.

B
78.4 / 100

Versions

1.8.0latest
Jul 11, 2026
1.7.4
Jun 23, 2026
1.7.3
Jun 10, 2026
1.7.2
Jun 10, 2026
1.7.0
May 25, 2026
+ show 17 moreshow less
1.6.7
May 23, 2026
1.6.6
May 23, 2026
1.6.5
May 23, 2026
1.6.4
May 23, 2026
1.6.2
Apr 19, 2026
1.6.1
Apr 19, 2026
1.6.0
Apr 19, 2026
1.5.1
Mar 16, 2026
1.5.0
Mar 15, 2026
1.4.3
Feb 19, 2026
1.4.2
Feb 19, 2026
1.4.0
Feb 19, 2026
1.3.1
Feb 13, 2026
1.3.0
Feb 12, 2026
1.2.0
Feb 12, 2026
1.1.0
Feb 12, 2026
1.0.0
Feb 12, 2026
PermissionsTool SafetyAuthAnnotationsCode QualityStabilitySpecVuln HistoryAuthorTransparencyCommunity

Tools 27

dokploy_database
annotations: none low

Manage databases (postgres/mysql/mariadb/mongo/redis/libsql). create: dbType+name+environmentId+databasePassword. Per-engine extras — postgres/mysql/mariadb: REQUIRE databaseName+databaseUser; mysql/mariadb also accept databaseRootPassword. mongo: REQUIRES databaseUser (databaseName not used). redis: only databasePassword (no databaseName/User). libsql: REQUIRES appName+dockerImage+sqldNode (primary|replica); accepts sqldPrimaryUrl+enableNamespaces. get: dbType+databaseId (returns metadata + masked env summary — never values). update: dbType+databaseId+fields. move: dbType+databaseId+targetEnvironmentId. start/stop/deploy/rebuild/remove: dbType+databaseId. reload: dbType+databaseId+appName. changeStatus: dbType+databaseId+applicationStatus (idle|running|done|error). saveEnvironment: dbType+databaseId+env (full replace). setEnvVars: dbType+databaseId + set?/unset? (merge inside the server, masked confirmation only). getEnvKeys: dbType+databaseId — KEY names only. getEnvValuesUnsafe: dbType+databaseId — UNSAFE escape hatch that returns full KEY=VALUE pairs. saveExternalPort: dbType+databaseId+externalPort (libsql also accepts externalGRPCPort/externalAdminPort). search: dbType + q|name|appName|description|projectId|environmentId + limit/offset — searches within the given dbType (not supported for libsql). Note: the API's search index is narrower than the project tree — it can return fewer results than dokploy_project/dokploy_overview list, so use it to find a known service, not to inventory.

action enum dbType enum appName string command string cpuLimit number serverId string databaseId string parameters object dockerImage string memoryLimit number databaseName string databaseUser string environmentId string databasePassword string applicationStatus enum targetEnvironmentId string databaseRootPassword string
dokploy_volume_backup
annotations: none low

Manage scheduled volume-level backups (rclone-based). Distinct from dokploy_backup, which does DB-native dumps. create: name+volumeName+prefix+cronExpression+destinationId (+serviceType and matching *Id, +appName, +turnOff to stop service during backup, +keepLatestCount, +enabled). update: volumeBackupId + all fields. remove/get: volumeBackupId. list: id (parent service id) + volumeBackupType (application|postgres|mysql|mariadb|mongo|redis|compose|libsql). runManually: volumeBackupId (trigger immediately).

id string action enum prefix string appName string enabled boolean mongoId string mysqlId string redisId string turnOff boolean libsqlId string composeId string mariadbId string parameters object postgresId string serviceName string serviceType enum applicationId string destinationId string cronExpression string volumeBackupId string keepLatestCount number volumeBackupType enum
dokploy_destination
annotations: none low

Manage S3-compatible backup destinations. list. get: destinationId. create: name+accessKey+bucket+region+endpoint+secretAccessKey, provider?, additionalFlags? (rclone flags). update: destinationId+fields. remove: destinationId. test: same fields as create (without persisting).

action enum bucket string region string endpoint string provider string serverId string accessKey string parameters object destinationId string secretAccessKey string
dokploy_dns_provider
annotations: none low

DNS provider configuration and DNS record management. Providers: list, get (dnsProviderId), create (name+config), update (dnsProviderId+name+config — the API REPLACES the provider, so both must be sent even when changing one), remove (dnsProviderId), testConnection (dnsProviderId for a saved provider, or config to check credentials before saving). config is discriminated on providerType: cloudflare{apiToken} or route53{accessKeyId,secretAccessKey}. Records: listZones (dnsProviderId), listRecords (dnsProviderId+zoneId), createRecord/updateRecord (dnsProviderId+zoneId+type+recordName+content, ttl?, plus recordId for update), deleteRecord (dnsProviderId+zoneId+recordId). Record type is A or CNAME only. Provider credentials are never echoed back in tool output; provider reads return id, name and providerType only.

ttl number type enum action enum zoneId string content string recordId string parameters object recordName string dnsProviderId string
dokploy_compose
annotations: none low

Manage Docker Compose services. create: name+environmentId. get: composeId (metadata + masked env summary — never values). update: composeId+fields (supports sourceType, composeFile for raw/inline, git source fields, autoDeploy, createEnvFile, serviceNetworks). delete/start/stop/getDefaultCommand: composeId. deploy: composeId, redeploy? (note: first deploy on new services may fail — retry immediately). move: composeId+targetEnvironmentId. loadServices: composeId (must deploy first). loadMounts: composeId+serviceName. saveEnvironment: composeId+env (full replace), createEnvFile? (also write a .env file next to the compose file). setEnvVars: composeId + set?/unset? (merge inside the server, masked confirmation only). getEnvKeys: composeId — KEY names only. getEnvValuesUnsafe: composeId — UNSAFE escape hatch that returns full KEY=VALUE pairs (output goes to the tool transcript). cancelDeployment/cleanQueues/killBuild/refreshToken: composeId. readLogs: composeId+containerId, tail?, since?, search?. search (as action): q|name|appName|description|projectId|environmentId + limit/offset. Note: the API's search index is narrower than the project tree — it can return fewer results than dokploy_project/dokploy_overview list, so use it to find a known service, not to inventory.

action enum serverId string composeId string networkIds array parameters object composeType string serviceName string environmentId string detachDokployNetwork boolean
dokploy_audit_log
annotations: none low

Read the Dokploy audit log with filters. Only action is 'list'. Filters (all optional): userId, userEmail, resourceName, auditAction (create|update|delete|deploy|cancel|redeploy|login|logout), resourceType (project|service|environment|deployment|user|customRole|domain|certificate|registry|server|sshKey|gitProvider|notification|settings|session), from/to (ISO timestamps), limit (default 50, max 500), offset. Note: the wire-level query parameter is called `action`; the MCP arg is `auditAction` to avoid clashing with the tool's action discriminator.

to string from string limit number action enum offset number userId string userEmail string parameters object auditAction enum resourceName string resourceType enum
dokploy_docker_image
annotations: none low

Docker image inventory. getImages: list images, serverId?. getImageConfig: imageRef ('nginx:latest' or an image ID), serverId?. removeImage: requires ALL THREE of repository, tag and id — read them off getImages — plus force? and serverId?. For overall disk usage and build cache see dokploy_docker getDiskUsage / getBuildCache / pruneBuildCache.

id string tag string force boolean action enum imageRef string serverId string parameters object repository string
dokploy_registry
annotations: none low

Manage container registries for pulling private images. list. get: registryId. create: registryName+username+password+registryUrl (registryType defaults to 'cloud'). update: registryId+fields. remove: registryId. test: registryName+username+password+registryUrl (without persisting). testById: registryId, serverId?.

action enum password string serverId string username string parameters object registryId string imagePrefix string registryUrl string registryName string registryType enum
dokploy_infrastructure
annotations: none low

Manage ports, auth, certs. createPort: applicationId+publishedPort+targetPort. deletePort: portId. createAuth: applicationId+username+password. deleteAuth: securityId. listCerts: all. getCert: certificateId. createCert: name+certificateData+privateKey. removeCert: certificateId.

action enum portId string password string protocol string serverId string username string autoRenew boolean parameters object privateKey string securityId string targetPort number publishMode string applicationId string certificateId string publishedPort number certificateData string
dokploy_deployment
annotations: none low

Manage deployments. list: applicationId|composeId|serverId|type+id. queueList: no params (currently-queued deployments). killProcess: deploymentId (kill an in-flight build). readLogs: deploymentId, tail?. remove: deploymentId (drops the record). Database deployments are listed via the resource itself, not here.

id string tail number action enum serverId string composeId string parameters object deploymentId string applicationId string
dokploy_overview
annotations: none low

Read-only fleet-wide rollups that span every project, for orientation before drilling into a specific resource. No parameters. services: every application, compose service and database with its status. backups: every configured backup and its schedule. domains: every domain and what it points at. Use these first when asked a 'what is running / what is exposed / what is backed up' question, then use dokploy_application, dokploy_domain or dokploy_backup for detail and for changes.

action enum parameters object
dokploy_environment
annotations: none low

Manage project environments. create: projectId+name. get: environmentId. list: projectId. update: environmentId+fields. remove: environmentId. duplicate: environmentId+name.

action enum projectId string parameters object environmentId string
dokploy_server
annotations: none low

Manage servers. list/count/publicIp: no params. get: serverId. create: name+ipAddress+port+username+sshKeyId+serverType. update: serverId+fields. remove: serverId. getMetrics: url+token.

url string port number token string action enum serverId string sshKeyId string username string ipAddress string dataPoints string parameters object serverType enum
dokploy_network
annotations: none low

Docker network management. list: serverId? (networks Dokploy knows about). get/inspect/remove/recreate: networkId — inspect returns the raw Docker inspect payload, recreate drops and re-adds the network so attached services are briefly disconnected. create: name (+ driver bridge|overlay, internal, attachable, enableIPv4, enableIPv6, mtu 68-65535, ipam, serverId). networksToSync: serverId? — networks that exist on the Docker host but are not yet tracked by Dokploy. import: names (one or more names from networksToSync), serverId?. Attach networks to workloads with dokploy_application update networkIds, or dokploy_compose update serviceNetworks.

mtu number names array action enum driver string subnet string gateway string ipRange string internal boolean serverId string networkId string attachable boolean enableIPv4 boolean enableIPv6 boolean parameters object
dokploy_preview_deployment
annotations: none low

Manage preview deployments (per-PR / per-branch deploys off a parent application). list: applicationId. get: previewDeploymentId. remove: previewDeploymentId. redeploy: previewDeploymentId (+title?, +description? for the deploy record).

action enum parameters object applicationId string previewDeploymentId string
dokploy_ssh_key
annotations: none low

Manage SSH keys. create: name+privateKey+publicKey, description?. list: no params. get: sshKeyId. update: sshKeyId, name?, description?, lastUsedAt?. remove: sshKeyId. generate: type (rsa or ed25519). Note: organizationId is resolved automatically from the API key.

type enum action enum sshKeyId string publicKey string lastUsedAt string parameters object privateKey string
dokploy_settings
annotations: none low

System settings. health: check status. version: get version. ip: get IP. clean: cleanType (all|images|volumes|stoppedContainers|dockerBuilder|dockerPrune|monitoring|deploymentQueue|sshPrivateKey), serverId? (only honored for docker-related clean types). reload: reloadTarget (server|traefik), serverId? (traefik only).

action enum serverId string cleanType enum parameters object reloadTarget enum
dokploy_vault_provider
annotations: none low

External secret-manager (vault) configuration. list, get (vaultProviderId), create (name+config+assignments), update (vaultProviderId+name+config+assignments — the API REPLACES the provider, so all four must be sent even when changing one; run get first), remove (vaultProviderId), testConnection (vaultProviderId for a saved provider, or config to check credentials before saving), listSecretNames (vaultProviderId+projectId, environmentId?). config is discriminated on providerType: hashicorp | infisical | aws | doppler | azure | scaleway. Note infisical.projectId and scaleway.projectId are that provider's own project, NOT the Dokploy projectId used in assignments. assignments is [{projectId, environmentIds?}] naming the Dokploy projects the vault serves. listSecretNames returns names only — Dokploy exposes no API to read a secret's value — and provider credentials are never echoed back in tool output.

action enum projectId string parameters object environmentId string vaultProviderId string
dokploy_docker
annotations: none low

Docker daemon management: containers, files inside them, events, health, and disk usage. Containers: getContainers (list all, serverId?), restartContainer/startContainer/stopContainer/killContainer/removeContainer (containerId, serverId?), getConfig (containerId, serverId?), findContainers (appName+method, serverId?). Method semantics: match → fuzzy name match (optional appType: stack|docker-compose). label → REQUIRES type: standalone|swarm. stack → docker stack lookup. service → swarm service lookup. Container files (containerId+path, serverId?): listContainerFiles, readContainerFile (output truncated at 100k chars), writeContainerFile (+content — writes into the RUNNING container; the change is lost on redeploy unless the path is a mount), deleteContainerFile. Observability: getEvents (minutes? 1-1440, default 15), getServerHealth (sinceHours? 1-168). Disk: getDiskUsage (docker system df — containers, volumes, images and build cache), getBuildCache, pruneBuildCache (same effect as dokploy_settings clean cleanType=dockerBuilder).

path string type enum action enum method enum appName string content string minutes number serverId string parameters object sinceHours number containerId string
dokploy_schedule
annotations: none low

Manage cron schedules that run commands against applications, compose services, or servers. create: name+cronExpression+command (+ scheduleType and matching applicationId/composeId/serverId; shellType=bash|sh; script for multi-line; timezone). update: scheduleId + all fields. remove/get: scheduleId. list: id (parent id — applicationId|composeId|serverId|'dokploy-server') + scheduleType. runManually: scheduleId. scheduleType: application|compose|server|dokploy-server.

id string action enum script string appName string command string enabled boolean serverId string timezone string composeId string shellType enum parameters object scheduleId string serviceName string scheduleType enum applicationId string cronExpression string
dokploy_docker_volume
annotations: none low

Docker volume management and volume file access. Every action accepts an optional serverId. getVolumes: list volumes. getVolumesSize: per-volume disk usage. getVolumeConfig: volumeName — raw Docker inspect for one volume. removeVolume: volumeName — destroys the volume and its data; take a dokploy_volume_backup first. Files (volumeName + path, writeVolumeFile also content): listVolumeFiles, readVolumeFile (truncated at 100k chars), writeVolumeFile, deleteVolumeFile. Unlike writes into a running container (dokploy_docker writeContainerFile), volume writes survive redeploys. For scheduled backups of these volumes see dokploy_volume_backup.

path string action enum content string serverId string parameters object volumeName string
dokploy_backup
annotations: none low

Manage backups. create: schedule+prefix+destinationId+database+databaseType. Provide ONE service id matching databaseType: postgres→postgresId, mysql→mysqlId, mariadb→mariadbId, mongo→mongoId, libsql→libsqlId, web-server→(no id). For backups of a db running inside a compose stack: pass composeId+serviceName (and set databaseType to the engine, e.g. postgres). Optional on create/update: includeEncryptionKey to store the database encryption key with the backup. get: backupId. update: backupId+fields. remove: backupId. listFiles: destinationId. manualBackup: backupId+backupType (postgres|mysql|mariadb|mongo|libsql for db backups; compose for whole-stack; webServer for the dokploy server itself).

action enum prefix string search string enabled boolean mongoId string mysqlId string backupId string database string libsqlId string schedule string serverId string composeId string mariadbId string parameters object postgresId string serviceName string destinationId string keepLatestCount number includeEncryptionKey boolean
dokploy_domain
annotations: none low

Manage domains. create: host+applicationId|composeId(+serviceName for compose). list: applicationId|composeId. get: domainId. update: domainId+host (include composeId+serviceName for compose domains). delete: domainId. toggleEnable: domainId — flips the enable flag blind; prefer update with enabled:true|false when you need a known end state. generate: appName. canGenerateTraefikMe: serverId?. validate: domain.

host string path string port number https boolean action enum domain string appName string enabled boolean domainId string serverId string serverIp string composeId string domainType enum parameters object serviceName string applicationId string certificateType enum
dokploy_project
annotations: none low

Manage projects. list: all (includes nested environments with applications, composes, databases). get: projectId (same nested detail). create: name. update: projectId+fields. remove: projectId. duplicate: sourceEnvironmentId+name.

action enum projectId string parameters object sourceEnvironmentId string duplicateInSameProject boolean
dokploy_mounts
annotations: none low

Manage mounts (volumes, bind mounts, files) attached to services. Mount changes require a redeploy of the parent service to take effect. create: type+mountPath+serviceId+serviceType (+volumeName for volume, +hostPath for bind, +filePath+content for file). update: mountId (+any field). remove: mountId. get: mountId. listByServiceId: serviceType+serviceId. allNamedByApplicationId: applicationId (named volumes only). serviceType: application|postgres|mysql|mariadb|mongo|redis|compose|libsql.

type enum action enum content string mongoId string mountId string mysqlId string redisId string filePath string hostPath string libsqlId string composeId string mariadbId string mountPath string serviceId string parameters object postgresId string volumeName string serviceType enum applicationId string
dokploy_redirects
annotations: none low

Manage URL redirect rules on an application (Traefik regex/replacement). create: regex+replacement+permanent+applicationId. update: redirectId+regex+replacement+permanent. remove: redirectId. get: redirectId. A redeploy of the application is required for changes to take effect.

regex string action enum permanent boolean parameters object redirectId string replacement string applicationId string
dokploy_application
annotations: none low

Manage applications. create: name+environmentId. get: applicationId (returns metadata + masked env summary — never values). update: applicationId+fields (supports sourceType, repository, owner, branch, customGitUrl, customGitBranch, githubId, dockerImage, networkIds, detachDokployNetwork, etc.). move: applicationId+targetEnvironmentId. deploy: applicationId, redeploy? (note: first deploy on new services may fail — retry immediately). start/stop/delete/markRunning/refreshToken/cleanQueues/killBuild/cancelDeployment: applicationId. reload: applicationId+appName. saveEnvironment: applicationId+env (KEY=VALUE pairs, full replace). setEnvVars: applicationId + set? (KEY=VALUE pairs to upsert) + unset? (KEY names to remove) — read-modify-write inside the server; result is a masked confirmation with changed key names only. getEnvKeys: applicationId — returns just the KEY names (no values). getEnvValuesUnsafe: applicationId — UNSAFE escape hatch that returns full KEY=VALUE pairs (use only when you need actual values; output goes to the tool transcript and any retained logs). saveBuildType: applicationId+buildType. traefikConfig: applicationId, traefikConfig? (omit to read). readMonitoring: appName. readLogs: applicationId, tail? (default 100), since? ('all' or duration like '1h'), search? (substring filter). search: any of q|name|appName|description|repository|owner|dockerImage|projectId|environmentId + limit/offset. Note: the API's search index is narrower than the project tree — it can return fewer results than dokploy_project/dokploy_overview list, so use it to find a known service, not to inventory.

action enum appName string command string cpuLimit number redeploy boolean replicas number serverId string autoDeploy boolean parameters object dockerImage string memoryLimit number applicationId string environmentId string deployDescription string targetEnvironmentId string

Permissions 4

network medium
Server uses network capabilities via: fetch()
filesystem low
Server uses filesystem capabilities via: fs sync ops
shell high
Server uses shell capabilities via: child_process
env_vars low
Server uses env_vars capabilities via: process.env

Scan Findings 64

low
Tool 'dokploy_deployment' has no annotations annotation_checker · 100%
low
Tool 'dokploy_database' has no annotations annotation_checker · 100%
low
Tool 'dokploy_volume_backup' has no annotations annotation_checker · 100%
low
Tool 'dokploy_destination' has no annotations annotation_checker · 100%
low
Tool 'dokploy_dns_provider' has no annotations annotation_checker · 100%
low
Tool 'dokploy_compose' has no annotations annotation_checker · 100%
low
Tool 'dokploy_audit_log' has no annotations annotation_checker · 100%
low
Tool 'dokploy_docker_image' has no annotations annotation_checker · 100%
low
Tool 'dokploy_registry' has no annotations annotation_checker · 100%
low
Tool 'dokploy_infrastructure' has no annotations annotation_checker · 100%
low
Tool 'dokploy_overview' has no annotations annotation_checker · 100%
low
Tool 'dokploy_environment' has no annotations annotation_checker · 100%
low
Tool 'dokploy_server' has no annotations annotation_checker · 100%
low
Tool 'dokploy_network' has no annotations annotation_checker · 100%
low
Tool 'dokploy_preview_deployment' has no annotations annotation_checker · 100%
low
Tool 'dokploy_ssh_key' has no annotations annotation_checker · 100%
low
Tool 'dokploy_settings' has no annotations annotation_checker · 100%
low
Tool 'dokploy_vault_provider' has no annotations annotation_checker · 100%
low
Tool 'dokploy_docker' has no annotations annotation_checker · 100%
low
Tool 'dokploy_schedule' has no annotations annotation_checker · 100%
low
Tool 'dokploy_docker_volume' has no annotations annotation_checker · 100%
low
Tool 'dokploy_backup' has no annotations annotation_checker · 100%
low
Tool 'dokploy_domain' has no annotations annotation_checker · 100%
low
Tool 'dokploy_project' has no annotations annotation_checker · 100%
low
Tool 'dokploy_mounts' has no annotations annotation_checker · 100%
low
Tool 'dokploy_redirects' has no annotations annotation_checker · 100%
low
Tool 'dokploy_application' has no annotations annotation_checker · 100%
info
Sandbox failed to start for behavioral verification behavioral_verifier · 100%
info
package.json metadata manifest_parser · 100%
info
Tool: dokploy_database manifest_parser · 75%
info
Tool: dokploy_volume_backup manifest_parser · 75%
info
Tool: dokploy_destination manifest_parser · 75%
info
Tool: dokploy_dns_provider manifest_parser · 75%
info
Tool: dokploy_compose manifest_parser · 75%
info
Tool: dokploy_audit_log manifest_parser · 75%
info
Tool: dokploy_docker_image manifest_parser · 75%
info
Tool: dokploy_registry manifest_parser · 75%
info
Tool: dokploy_infrastructure manifest_parser · 75%
info
Tool: dokploy_deployment manifest_parser · 75%
info
Tool: dokploy_overview manifest_parser · 75%
info
Tool: dokploy_environment manifest_parser · 75%
info
Tool: dokploy_server manifest_parser · 75%
info
Tool: dokploy_network manifest_parser · 75%
info
Tool: dokploy_preview_deployment manifest_parser · 75%
info
Tool: dokploy_ssh_key manifest_parser · 75%
info
Tool: dokploy_settings manifest_parser · 75%
info
Tool: dokploy_vault_provider manifest_parser · 75%
info
Tool: dokploy_docker manifest_parser · 75%
info
Tool: dokploy_redirects manifest_parser · 75%
info
Tool: dokploy_schedule manifest_parser · 75%
info
Tool: dokploy_docker_volume manifest_parser · 75%
info
Tool: dokploy_backup manifest_parser · 75%
info
Tool: dokploy_domain manifest_parser · 75%
info
Tool: dokploy_project manifest_parser · 75%
info
Tool: dokploy_mounts manifest_parser · 75%
info
Tool: dokploy_application manifest_parser · 75%
info
Required env vars (7) manifest_parser · 80%
info
Sandbox failed to start for output poisoning scan output_poisoning · 100%
medium
Permission: network access detected permission_analyzer · 70%
low
Permission: filesystem access detected permission_analyzer · 90%
high
Permission: shell access detected permission_analyzer · 95%
low
Permission: env_vars access detected permission_analyzer · 90%
info
SBOM generated: 14 components sbom_generator · 100%
medium
No build provenance detected (SLSA L0) slsa_assessor · 90%