@dokploy/mcp

中文文档
0.30.7发布于 2026/09/18Apache-2.0ES Module近 30 天下载 1.1万

MCP Server for Dokploy API

原始使用文档
文档目录33 节
  1. Getting Started
  2. Requirements
  3. Install in Cursor
  4. Install in Windsurf
  5. Install in VS Code
  6. Install in Claude Code
  7. Install in Zed
  8. Install in Claude Desktop
  9. Install in BoltAI
  10. Install in Opencode
  11. Using Docker
  12. Install in Windows
  13. Environment Variables
  14. Transport Modes
  15. Stdio Mode (Default)
  16. HTTP Mode (Streamable HTTP + Legacy SSE)
  17. Available Tools (508)
  18. Core Resources
  19. Databases
  20. Infrastructure
  21. Security & Auth
  22. Operations
  23. Other
  24. Tool Filtering
  25. Architecture
  26. Development
  27. Local Configuration Example
  28. Testing with MCP Inspector
  29. Troubleshooting
  30. MCP Client Errors
  31. Contributing
  32. Support
  33. License

Dokploy MCP Server

npm version Install in VS Code (npx)

Dokploy MCP Server exposes all Dokploy API endpoints as tools consumable via the Model Context Protocol (MCP). It allows MCP-compatible clients (e.g., AI models, other applications) to interact with your Dokploy server programmatically.

With 508 tools across 49 categories, this server provides complete coverage of the Dokploy API — from project and application management to databases, notifications, SSO, Docker, backups, and more.

Getting Started

Requirements

  • Node.js >= v18.0.0 (or Docker)
  • Cursor, VS Code, Claude Desktop, or another MCP Client
  • A running Dokploy server instance

Install in Cursor

Go to: Settings -> Cursor Settings -> MCP -> Add new global MCP server

Add this to your Cursor ~/.cursor/mcp.json file. You may also install in a specific project by creating .cursor/mcp.json in your project folder. See Cursor MCP docs for more info.

{
  "mcpServers": {
    "dokploy-mcp": {
      "command": "npx",
      "args": ["-y", "@dokploy/mcp"],
      "env": {
        "DOKPLOY_URL": "https://your-dokploy-server.com",
        "DOKPLOY_API_KEY": "your-dokploy-api-token"
      }
    }
  }
}
Alternative: Use Bun
{
  "mcpServers": {
    "dokploy-mcp": {
      "command": "bunx",
      "args": ["-y", "@dokploy/mcp"],
      "env": {
        "DOKPLOY_URL": "https://your-dokploy-server.com",
        "DOKPLOY_API_KEY": "your-dokploy-api-token"
      }
    }
  }
}
Alternative: Use Deno
{
  "mcpServers": {
    "dokploy-mcp": {
      "command": "deno",
      "args": ["run", "--allow-env", "--allow-net", "npm:@dokploy/mcp"],
      "env": {
        "DOKPLOY_URL": "https://your-dokploy-server.com",
        "DOKPLOY_API_KEY": "your-dokploy-api-token"
      }
    }
  }
}

Install in Windsurf

Add this to your Windsurf MCP config file. See Windsurf MCP docs for more info.

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

Install in VS Code

Install in VS Code (npx) Install in VS Code Insiders (npx)

Add this to your VS Code MCP config file. See VS Code MCP docs for more info.

{
  "servers": {
    "dokploy-mcp": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "@dokploy/mcp"],
      "env": {
        "DOKPLOY_URL": "https://your-dokploy-server.com",
        "DOKPLOY_API_KEY": "your-dokploy-api-token"
      }
    }
  }
}

Install in Claude Code

Add the MCP server to Claude Code using the CLI:

claude mcp add dokploy-mcp -- npx -y @dokploy/mcp

Then set the environment variables in your .claude/settings.json or pass them inline:

DOKPLOY_URL=https://your-dokploy-server.com DOKPLOY_API_KEY=your-token claude

Install in Zed

Add this to your Zed settings.json. See Zed Context Server docs for more info.

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

Install in Claude Desktop

Add this to your Claude Desktop claude_desktop_config.json file. See Claude Desktop MCP docs for more info.

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

Install in BoltAI

Open the "Settings" page of the app, navigate to "Plugins," and enter the following JSON:

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

Install in Opencode

Add this to your OpenCode configuration (located by default in ~/.config/opencode/opencode.json or opencode.json for local/project config). See Opencode MCP config for more info.

{
  "mcp": {
    "dokploy": {
      "type": "local",
      "command": ["npx", "-y", "@dokploy/mcp"],
      "environment": {
        "DOKPLOY_URL": "https://your-dokploy-server.com",
        "DOKPLOY_API_KEY": "your-dokploy-api-token"
      },
      "enabled": true
    }
  }
}

Using Docker

The Docker container supports both stdio and HTTP transport modes, making it flexible for different deployment scenarios.

  1. Build the Docker Image:

    git clone https://github.com/Dokploy/mcp.git
    cd mcp
    docker build -t dokploy-mcp .
    
  2. Manual Docker Commands:

    Stdio Mode (for MCP clients):

    docker run -it --rm \
      -e DOKPLOY_URL=https://your-dokploy-server.com \
      -e DOKPLOY_API_KEY=your_token_here \
      dokploy-mcp
    

    HTTP Mode (for web applications):

    docker run -it --rm \
      -p 8080:3000 \
      -e MCP_TRANSPORT=http \
      -e DOKPLOY_URL=https://your-dokploy-server.com \
      -e DOKPLOY_API_KEY=your_token_here \
      dokploy-mcp
    
  3. Docker Compose:

    Use the provided docker-compose.yml for production deployments:

    # Start HTTP service
    docker-compose up -d dokploy-mcp-http
    
    # View logs
    docker-compose logs -f dokploy-mcp-http
    
  4. MCP Client Configuration:

    For stdio mode (Claude Desktop, VS Code, etc.):

    {
      "mcpServers": {
        "dokploy-mcp": {
          "command": "docker",
          "args": [
            "run",
            "-i",
            "--rm",
            "-e",
            "DOKPLOY_URL=https://your-dokploy-server.com",
            "-e",
            "DOKPLOY_API_KEY=your_token_here",
            "dokploy-mcp"
          ]
        }
      }
    }
    

    For HTTP mode (web applications):

    Start the HTTP server first, then configure your client to connect to http://localhost:3000/mcp.

Install in Windows

The configuration on Windows is slightly different compared to Linux or macOS. Use cmd as the command wrapper:

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

Environment Variables

VariableRequiredDescription
DOKPLOY_URLYesYour Dokploy server URL (e.g., https://your-dokploy-server.com)
DOKPLOY_API_KEYYesYour Dokploy API authentication token
DOKPLOY_CUSTOM_HEADERSNoJSON object of additional upstream request headers. Header names and values must be strings. Reserved headers cannot be set here: x-api-key, content-type, accept.
DOKPLOY_TOOL_PRESETNoPredefined toolset to load: all (default), minimal, core, deploy, databases, or git. Useful for clients/providers that struggle with very large tool lists.
DOKPLOY_ENABLED_TAGSNoComma-separated list of tags to filter which tools are loaded (e.g., project,application,postgres)
DOKPLOY_DISABLED_TAGSNoComma-separated list of tags to exclude from the selected toolset. Applied after DOKPLOY_TOOL_PRESET or DOKPLOY_ENABLED_TAGS.
DOKPLOY_TIMEOUTNoRequest timeout in milliseconds (default: 30000)
DOKPLOY_RETRY_ATTEMPTSNoNumber of retry attempts (default: 3)
DOKPLOY_RETRY_DELAYNoDelay between retries in milliseconds (default: 1000)
DOKPLOY_REDACT_ENVNoRedacts secret-bearing fields (env vars, compose files, passwords, tokens, keys) from API responses before they reach the MCP client (default: true). Set to false only if you explicitly need raw secret values in LLM context.
DOKPLOY_REDACT_FIELDSNoComma-separated list of response field names to redact when DOKPLOY_REDACT_ENV=true. Matched case-insensitively at any nesting depth. Defaults to: env, buildArgs, composeFile, dockerCompose, environment, buildSecrets, previewBuildSecrets, password, currentPassword, appPassword, databasePassword, databaseRootPassword, redisPassword, mariadbPassword, mongoPassword, mysqlPassword, postgresPassword, registryPassword, token, accessToken, appToken, apiToken, botToken, refreshToken, secret, clientSecret, apiKey, secretAccessKey, accessKey, licenseKey, userKey, privateKey, privateKeyPass, encPrivateKey, encPrivateKeyPass, sshKey, sshPrivateKey, customGitSSHKey, dockerAuth.

For Dokploy instances behind Cloudflare Access or a similar reverse proxy, pass service-token headers with placeholder values like this:

DOKPLOY_CUSTOM_HEADERS='{"CF-Access-Client-Id":"your-client-id.access","CF-Access-Client-Secret":"your-client-secret"}'

Transport Modes

This MCP server supports multiple transport modes to suit different use cases:

Stdio Mode (Default)

The default mode uses stdio for direct process communication, ideal for desktop applications and command-line usage.

# Run with stdio (default)
npx -y @dokploy/mcp

HTTP Mode (Streamable HTTP + Legacy SSE)

Modern HTTP mode exposes the server via HTTP/HTTPS supporting both modern and legacy protocols for maximum compatibility:

  • Streamable HTTP (MCP 2025-03-26) - Modern protocol with session management
  • Legacy SSE (MCP 2024-11-05) - Backwards compatibility for older clients
# Run with HTTP mode
npx -y @dokploy/mcp --http
# or via environment variable
MCP_TRANSPORT=http npx -y @dokploy/mcp

Modern Streamable HTTP Endpoints:

EndpointMethodDescription
/mcpPOSTClient-to-server requests
/mcpGETServer-to-client notifications (SSE)
/mcpDELETESession termination
/healthGETHealth check

Legacy SSE Endpoints (Backwards Compatibility):

EndpointMethodDescription
/sseGETSSE stream initialization
/messagesPOSTClient message posting

Available Tools (508)

This MCP server provides 508 tools covering the entire Dokploy API, organized into 49 categories:

Core Resources

CategoryToolsDescription
Project8Create, list, update, duplicate, search, and delete projects
Application30Full application lifecycle — create, deploy, redeploy, start, stop, build types, git providers (GitHub, GitLab, Bitbucket, Gitea), environment, Traefik config
Compose29Docker Compose management — create, deploy, templates, services, environment, isolated deployments
Domain9Domain CRUD, DNS validation, Traefik.me generation
Environment7Multi-environment support per project
Deployment8Deployment history, queue management, centralized view

Databases

CategoryToolsDescription
PostgreSQL15Full lifecycle — create, deploy, start, stop, rebuild, passwords, external ports, environment
MySQL15Full lifecycle — create, deploy, start, stop, rebuild, passwords, external ports, environment
MariaDB15Full lifecycle — create, deploy, start, stop, rebuild, passwords, external ports, environment
MongoDB15Full lifecycle — create, deploy, start, stop, rebuild, passwords, external ports, environment
Redis15Full lifecycle — create, deploy, start, stop, rebuild, passwords, external ports, environment
LibSQL13Full lifecycle — create, deploy, start, stop, rebuild, external ports, environment

Infrastructure

CategoryToolsDescription
Server17Multi-server management, metrics, security, monitoring setup
Docker9Container management — list, restart, remove, upload files, inspect config
Cluster / Swarm8Swarm node management, container stats, cluster operations
Settings51Server settings, Traefik config, Docker cleanup, GPU, monitoring, Redis, disk usage
Registry7Docker registry management and testing

Security & Auth

CategoryToolsDescription
SSO10Single sign-on providers, trusted origins
SSH Keys7SSH key management — create, generate, list, update, remove
Certificates5SSL/TLS certificate management
Security4Basic auth and security rules per application
Custom Roles6Role-based access control with custom permissions
User23User management, permissions, API keys, invitations, metrics
Organization11Multi-org support, invitations, member roles

Operations

CategoryToolsDescription
Backup12Database backups — Postgres, MySQL, MariaDB, MongoDB, LibSQL, Compose, WebServer
Volume Backups6Volume-level backup scheduling and management
Destination6S3-compatible backup destinations (AWS, Cloudflare R2, etc.)
Schedule6Scheduled tasks — cron-based automation
Notification41Multi-channel alerts — Slack, Discord, Telegram, Email, Teams, Gotify, Ntfy, Pushover, Lark, Mattermost, Resend, Custom webhooks
Rollback2Application rollback management

Other

CategoryToolsDescription
AI9AI-powered suggestions, model management
Git Providers27GitHub, GitLab, Gitea, Bitbucket — branches, repos, connection testing
Tag8Project tagging and bulk assignment
Patch12File patching system for applications
Mounts6Volume and bind mount management
Port4Port mapping configuration
Redirects4URL redirect rules
Preview Deployments4PR preview deployment management
Stripe7Billing and subscription management
License Key6Enterprise license management
Whitelabeling4Custom branding for enterprise
Audit Log1Activity audit trail
Admin1Admin-level monitoring setup

Tool Filtering

By default, the server exposes all Dokploy API tools. Some MCP clients and LLM providers can be slower or less reliable when very large tool lists are sent to the model. You can reduce the loaded tools with presets or tag filters.

Use DOKPLOY_TOOL_PRESET for common workflows:

PresetIncluded tags
allAll tools (default)
minimalproject, application
coreproject, server, application
deployproject, environment, server, application, compose, domain, deployment
databasespostgres, redis, mysql, mariadb, mongo, libsql
gitgithub, gitlab, bitbucket, gitea, gitProvider, registry, sshKey
# Recommended starting point for clients/providers sensitive to large toolsets
DOKPLOY_TOOL_PRESET=minimal

For exact control, set DOKPLOY_ENABLED_TAGS:

# Only load project, application, and postgres tools
DOKPLOY_ENABLED_TAGS=project,application,postgres

You can also remove categories from a preset:

DOKPLOY_TOOL_PRESET=core
DOKPLOY_DISABLED_TAGS=postgres,redis

If DOKPLOY_ENABLED_TAGS is set, it takes precedence over DOKPLOY_TOOL_PRESET. DOKPLOY_DISABLED_TAGS is applied last.

All tools include semantic annotations (readOnlyHint, destructiveHint, idempotentHint) to help MCP clients understand their behavior and safety characteristics.

Architecture

Built with @modelcontextprotocol/sdk, TypeScript, and Zod for type-safe schema validation:

  • 508 Tools covering the entire Dokploy API
  • Multiple Transports: Stdio (default) and HTTP (Streamable HTTP + legacy SSE)
  • Auto-generated Tools: Tools are generated from the Dokploy OpenAPI spec via pnpm generate:all
  • Tool Filtering: Load only the categories you need via DOKPLOY_ENABLED_TAGS
  • Robust Error Handling: Centralized API client with interceptors and retry logic
  • Type Safety: Full TypeScript with Zod schema validation
  • Tool Annotations: Semantic hints for MCP client behavior understanding

Development

Clone the project and install dependencies:

git clone https://github.com/Dokploy/mcp.git
cd mcp
pnpm install

Build:

pnpm build

Regenerate tools from the Dokploy OpenAPI spec:

pnpm generate:all

Local Configuration Example

{
  "mcpServers": {
    "dokploy-mcp": {
      "command": "npx",
      "args": ["tsx", "/path/to/mcp/src/index.ts"],
      "env": {
        "DOKPLOY_URL": "https://your-dokploy-server.com",
        "DOKPLOY_API_KEY": "your-dokploy-api-token"
      }
    }
  }
}

Testing with MCP Inspector

npx -y @modelcontextprotocol/inspector npx @dokploy/mcp

Troubleshooting

MCP Client Errors

  1. Try adding @latest to the package name.

  2. Make sure you are using Node v18 or higher to have native fetch support with npx.

  3. Verify your DOKPLOY_URL and DOKPLOY_API_KEY environment variables are correctly set.

  4. If too many tools are loading or your provider times out while processing tools, start with DOKPLOY_TOOL_PRESET=minimal, then use DOKPLOY_ENABLED_TAGS for exact category filtering if needed.

Contributing

We welcome contributions! If you'd like to contribute to the Dokploy MCP Server, please check out our Contributing Guide.

Support

If you encounter any issues, have questions, or want to suggest a feature, please open an issue in our GitHub repository.

License

This project is licensed under the Apache License.

版本与发布记录

@dokploy/mcp 共发布 25 个版本,首次发布于 2026/04/16;过去 12 个月发布了 25 个版本。

版本发布日期距今
0.30.7latest2026/09/181 个月前
0.30.62026/09/092 个月前
0.30.52026/09/022 个月前
0.30.42026/09/022 个月前
0.30.32026/08/312 个月前
0.30.22026/08/192 个月前

关于 @dokploy/mcp 的常见问题

@dokploy/mcp 是什么?

MCP Server for Dokploy API

如何安装 @dokploy/mcp?

在项目目录运行 npm install @dokploy/mcp,或使用 pnpm add / yarn add / bun add。它还提供命令行工具 dokploy-mcp,可以用 npx dokploy-mcp 直接运行。

@dokploy/mcp 支持 TypeScript 吗?

该包的 package.json 没有声明类型入口。需要类型提示时,可以在 npm 上查找社区维护的 @types/dokploy__mcp 是否存在。

@dokploy/mcp 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@dokploy/mcp 可以商用吗?

@dokploy/mcp 使用 Apache-2.0 许可。宽松许可:允许商业使用、修改和再分发,并附带明确的专利授权;分发时需保留许可与 NOTICE 文件,修改过的文件要注明改动。以上为概括,不构成法律意见,请以许可原文为准。

@dokploy/mcp 的下载量有多少?

根据 npm 官方下载统计,@dokploy/mcp 在 2026/10/13 – 2026/11/11 这 30 天内被下载 10,684 次,日均约 356 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@dokploy/mcp 还在维护吗?

最新版本 0.30.7 发布于 2026/09/18(1 个月前);至今共发布 25 个版本,其中过去 12 个月发布了 25 个;首次发布于 2026/04/16。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。