Dokploy MCP Server

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

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.
Build the Docker Image:
git clone https://github.com/Dokploy/mcp.git
cd mcp
docker build -t dokploy-mcp .
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
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
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
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:
Legacy SSE Endpoints (Backwards Compatibility):
This MCP server provides 508 tools covering the entire Dokploy API, organized into 49 categories:
Core Resources
Databases
Infrastructure
Security & Auth
Operations
Other
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:
# 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
Try adding @latest to the package name.
Make sure you are using Node v18 or higher to have native fetch support with npx.
Verify your DOKPLOY_URL and DOKPLOY_API_KEY environment variables are correctly set.
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.