Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
sapientsai avatar

Dokploy Mcp Server

  • 2 repo stars
  • Updated July 15, 2026
  • sapientsai/dokploy-mcp-server

Dokploy MCP server is an MCP server that lets agents manage Dokploy apps, Docker Compose, databases, domains, backups, and servers over the Dokploy API.

About

The Dokploy MCP server connects Claude Code, Cursor, Codex, and other MCP clients to a running Dokploy instance so you can treat platform operations as conversational tasks. Developers who self-host on Dokploy often juggle multiple apps, Compose files, managed databases, TLS domains, and backup schedules; doing that only in the web UI breaks flow when you are already in the agent fixing a deploy. After you set DOKPLOY_URL and generate DOKPLOY_API_KEY, the server exposes management actions aligned with Dokploy’s model: apps, stacks, data stores, domains, backups, and server inventory. Transport defaults to stdio for local agent config, while TRANSPORT_TYPE=httpStream suits remote gateways. This is an integration layer for production infrastructure, not a substitute for writing application code or writing infrastructure-as-code by hand unless you combine it with your own playbooks.

  • Manage applications, Docker Compose projects, and attached databases on a Dokploy instance via MCP tools
  • Configure domains and backup workflows from the agent without leaving the IDE
  • Requires DOKPLOY_URL plus DOKPLOY_API_KEY from Settings > API Keys
  • Supports stdio (default) and httpStream transport with PORT and HOST for remote or Docker-sidecar deployments
  • npm package dokploy-mcp-server at registry version 1.6.2

Dokploy Mcp Server by the numbers

  • Data as of Jul 16, 2026 (Skillselion catalog sync)
terminal
claude mcp add --env DOKPLOY_URL=YOUR_DOKPLOY_URL --env DOKPLOY_API_KEY=YOUR_DOKPLOY_API_KEY --env TRANSPORT_TYPE=YOUR_TRANSPORT_TYPE --env PORT=YOUR_PORT --env HOST=YOUR_HOST dokploy-mcp-server -- npx -y dokploy-mcp-server

Add your badge

Show developers this MCP server is listed on Skillselion. Paste this into your README.

Listed on Skillselion
repo stars2
Packagedokploy-mcp-server
TransportSTDIO
AuthRequired
Last updatedJuly 15, 2026
Repositorysapientsai/dokploy-mcp-server

What it does

Let your coding agent provision and operate Dokploy-hosted apps, Compose stacks, databases, domains, and backups from chat instead of clicking the panel.

Who is it for?

Best when you're self-hosting on Dokploy and want the agent to run routine platform ops after the first manual setup.

Skip if: Skip if you have no Dokploy instance, or developers and need deep cloud-provider IAM without a Dokploy control plane.

What you get

Your agent can list and change Dokploy resources from the same thread where you edit code, using API-key auth against your instance URL.

  • Agent-driven changes to Dokploy apps, stacks, and data services
  • Domain and backup operations executed via documented MCP tools
  • Repeatable MCP server config with stdio or httpStream transport

By the numbers

  • Published server schema version 1.6.2
  • Two required secrets: DOKPLOY_URL and DOKPLOY_API_KEY
  • Documented transport modes: stdio (default) and httpStream
README.md

dokploy-mcp-server

npm version

A comprehensive Model Context Protocol (MCP) server for Dokploy - the open-source, self-hosted PaaS. Deploy apps, manage containers, databases, domains, and servers through AI assistants like Claude.

Why This Server?

The official Dokploy MCP covers only ~5 of 42 API categories. This server provides 14 tools (one per category with action enums) covering the full DevOps lifecycle with minimal token usage.

Feature Comparison

Category Official MCP This Server
Projects 6 tools 1 tool (6 actions)
Applications 26 tools 1 tool (22 actions)
Compose - 1 tool (20 actions)
Deployments - 1 tool (2 actions)
Docker - 1 tool (4 actions)
Domains 9 tools 1 tool (8 actions)
Servers - 1 tool (8 actions)
Settings - 1 tool (5 actions)
Databases 26 tools (pg+mysql) 1 tool (16 actions, all 5 DB)
Backups - 1 tool (6 actions)
Environments - 1 tool (6 actions)
Infrastructure - 1 tool (8 actions)
Mounts - 1 tool (6 actions)
SSH Keys - 1 tool (6 actions)
Total 67 tools 14 tools

Key advantages:

  • Minimal token usage - 14 tools instead of 67+, dramatically reducing context consumption
  • Unified database tool - One tool handles all 5 database types (postgres, mysql, mariadb, mongo, redis) via dbType + action params
  • Full API coverage - Docker Compose, containers, servers, deployments, backups, certificates, ports, and basic auth
  • Action-based design - Each tool has an action enum parameter; other params are optional based on action

Installation

Claude Desktop / Claude Code

Add to your MCP configuration:

{
  "mcpServers": {
    "dokploy": {
      "command": "npx",
      "args": ["-y", "dokploy-mcp-server"],
      "env": {
        "DOKPLOY_URL": "https://dokploy.example.com",
        "DOKPLOY_API_KEY": "your-api-key"
      }
    }
  }
}

Cursor

Add to .cursor/mcp.json:

{
  "mcpServers": {
    "dokploy": {
      "command": "npx",
      "args": ["-y", "dokploy-mcp-server"],
      "env": {
        "DOKPLOY_URL": "https://dokploy.example.com",
        "DOKPLOY_API_KEY": "your-api-key"
      }
    }
  }
}

Docker

docker run -e DOKPLOY_URL=https://dokploy.example.com \
           -e DOKPLOY_API_KEY=your-api-key \
           -e TRANSPORT_TYPE=httpStream \
           -p 3000:3000 \
           dokploy-mcp-server

Environment Variables

Variable Required Default Description
DOKPLOY_URL Yes - Your Dokploy instance URL
DOKPLOY_API_KEY Yes - API key from Dokploy Settings > API Keys
TRANSPORT_TYPE No stdio Transport mode: stdio or httpStream
PORT No 3000 HTTP port (httpStream mode only)
HOST No 0.0.0.0 HTTP host (httpStream mode only)

Tools (13)

Each tool uses an action enum to select the operation. Parameters are optional and used based on the chosen action.

dokploy_project (6 actions)

Actions: list | get | create | update | remove | duplicate

Manage projects. list and get return nested environments with their applications, composes, and databases (with names, IDs, and status), so you can discover service IDs without extra calls. create requires name. update requires projectId + fields. remove requires projectId. duplicate requires sourceEnvironmentId + name.

dokploy_application (22 actions)

Actions: create | get | update | move | deploy | start | stop | delete | markRunning | refreshToken | cleanQueues | killBuild | cancelDeployment | reload | saveEnvironment | setEnvVars | getEnvKeys | getEnvValuesUnsafe | saveBuildType | traefikConfig | readMonitoring | readLogs

Full application lifecycle. Most actions require applicationId. create requires name + environmentId. deploy supports redeploy flag. readMonitoring requires appName.

Env handling. get returns a masked env summary (count only) — never the values. Three actions cover the rest:

  • setEnvVars — granular merge inside the server. Pass set (KEY=VALUE per line, upsert) and/or unset (array of KEY names). The read-modify-write happens server-side; the tool result is a masked confirmation listing only the changed key names. No untouched-key values ever enter the transcript.
  • getEnvKeys — returns KEY names only, sorted. Safe to read.
  • getEnvValuesUnsafeunsafe escape hatch that returns the full KEY=VALUE blob. Use only when you genuinely need the values; the output is in the tool transcript and any retained agent logs.
  • saveEnvironment — full-replace, kept for explicit blob-set workflows.

sourceType:

  • githubrepository + owner + branch (+ githubId for private)
  • gitcustomGitUrl + customGitBranch
  • dockerdockerImage

buildType: dockerfile | heroku_buildpacks | paketo_buildpacks | nixpacks | static | railpack.

The underlying API also supports gitlab/bitbucket/gitea/drop sources, but those need provider-specific fields not yet exposed by this tool.

dokploy_compose (20 actions)

Actions: create | get | update | delete | deploy | start | stop | move | loadServices | loadMounts | getDefaultCommand | cancelDeployment | cleanQueues | killBuild | refreshToken | saveEnvironment | setEnvVars | getEnvKeys | getEnvValuesUnsafe | readLogs

Docker Compose management. Most actions require composeId. create requires name + environmentId. loadMounts requires serviceName. cancelDeployment/cleanQueues/killBuild/refreshToken require composeId.

Env handling. Same shape as dokploy_application: get returns a masked summary, setEnvVars merges, getEnvKeys lists key names, getEnvValuesUnsafe is the escape hatch, saveEnvironment full-replaces.

sourceType:

  • githubrepository + owner + branch (+ composePath)
  • gitcustomGitUrl + customGitBranch (+ customGitSSHKeyId for private)
  • rawcomposeFile (inline YAML)

The underlying API also supports gitlab/bitbucket/gitea sources, but those need provider-specific fields not yet exposed by this tool.

dokploy_database (16 actions)

Actions: create | get | update | move | start | stop | deploy | rebuild | remove | reload | changeStatus | saveEnvironment | setEnvVars | getEnvKeys | getEnvValuesUnsafe | saveExternalPort

Unified database management. All actions require dbType (postgres | mysql | mariadb | mongo | redis | libsql); most also require databaseId. create baseline: dbType + name + environmentId + databasePassword.

Env handling. Same shape as dokploy_application: get returns a masked summary, setEnvVars merges (works for every engine), getEnvKeys lists key names, getEnvValuesUnsafe is the escape hatch.

Per-engine extras:

  • postgres / mysql / mariadb — also require databaseName + databaseUser. mysql/mariadb accept databaseRootPassword.
  • mongo — requires databaseUser (no databaseName).
  • redis — only databasePassword.
  • libsql — requires appName + dockerImage + sqldNode (primary | replica); accepts sqldPrimaryUrl + enableNamespaces.

changeStatus uses applicationStatus (idle | running | done | error).

dokploy_domain (8 actions)

Actions: create | list | get | update | delete | generate | canGenerateTraefikMe | validate

Domain/DNS management. create requires host + applicationId|composeId (and serviceName for compose domains). Enums: certificateType (letsencrypt | none | custom), domainType (compose | application | preview). validate requires domain.

dokploy_environment (6 actions)

Actions: create | get | list | update | remove | duplicate

Project environment management. create requires projectId + name. list requires projectId.

dokploy_server (8 actions)

Actions: list | get | create | update | remove | count | publicIp | getMetrics

Server management. create requires name + ipAddress + port + username + sshKeyId + serverType (deploy | build). getMetrics requires url + token.

dokploy_backup (6 actions)

Actions: create | get | update | remove | listFiles | manualBackup

Backup scheduling and triggers. create requires schedule + prefix + destinationId + database + databaseType. Provide the one service id matching the engine:

  • databaseType: postgrespostgresId
  • databaseType: mysqlmysqlId
  • databaseType: mariadbmariadbId
  • databaseType: mongomongoId
  • databaseType: libsqllibsqlId
  • databaseType: web-server → no service id (backs up the Dokploy server itself)
  • Backing up a DB inside a compose stack → composeId + serviceName + the engine as databaseType

manualBackup requires backupId + backupType:

  • postgres | mysql | mariadb | mongo | libsql — individual DB backups
  • compose — whole-stack backup
  • webServer — Dokploy server backup

dokploy_deployment (2 actions)

Actions: list | killProcess

Deployment tracking. list requires applicationId|composeId|serverId|type+id. type enum: application | compose | server | schedule | previewDeployment | backup | volumeBackup (database deployments are listed via the database resource itself, not this endpoint). killProcess requires deploymentId.

dokploy_docker (4 actions)

Actions: getContainers | restartContainer | getConfig | findContainers

Container management. findContainers requires appName + method (match | label | stack | service). For method=match, appType accepts stack | docker-compose. For method=label, type is required and accepts standalone | swarm (the API rejects without it).

dokploy_infrastructure (8 actions)

Actions: createPort | deletePort | createAuth | deleteAuth | listCerts | getCert | createCert | removeCert

Ports, basic auth, and SSL certificates.

dokploy_ssh_key (6 actions)

Actions: create | list | get | update | remove | generate

SSH key management for git-based deployments. create requires name + privateKey + publicKey + organizationId. get requires sshKeyId. update requires sshKeyId, optional name, description, lastUsedAt. remove requires sshKeyId. generate uses type (rsa|ed25519).

dokploy_settings (5 actions)

Actions: health | version | ip | clean | reload

System settings. clean uses cleanType — server-scoped: all | images | volumes | stoppedContainers | dockerBuilder | dockerPrune (honor serverId); global: monitoring | redis | deploymentQueue | sshPrivateKey. reload uses reloadTarget (server | traefik | redis); serverId is honored for traefik.

Usage Examples

Deploy an application

"Deploy my web app" → dokploy_application { action: "deploy", applicationId: "app-123" }

Start a PostgreSQL database

"Start the postgres database" → dokploy_database { action: "start", dbType: "postgres", databaseId: "db-456" }

Check system health

"Is Dokploy healthy?" → dokploy_settings { action: "health" }

List all containers

"What containers are running?" → dokploy_docker { action: "getContainers" }

Development

pnpm install
pnpm dev          # Development mode with watch
pnpm validate     # Format + lint + test + build
pnpm inspect      # Open MCP Inspector

License

MIT


Sponsored by SapientsAI SapientsAI — Building agentic AI for businesses

Recommended MCP Servers

How it compares

Dokploy API bridge via MCP, not a generic Docker-only skill or a hosted PaaS with no self-hosted control plane.

FAQ

Who is Dokploy MCP server for?

It is for developers and small teams that deploy on Dokploy and use Claude Code, Cursor, or similar agents to manage live infrastructure from the editor.

When should I use Dokploy MCP server?

Use it during operate and post-ship work when you need to adjust Compose services, databases, domains, backups, or server-linked apps without opening the Dokploy UI.

How do I add Dokploy MCP server to my agent?

Install the npm package dokploy-mcp-server, set DOKPLOY_URL and DOKPLOY_API_KEY in your MCP config, choose stdio or httpStream, then register the server in Claude Code, Cursor, or another MCP client.

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.