Big News: Socket raises $60M Series C at a $1B valuation to secure software supply chains for AI-driven development.Announcement
Sign In

@dokploy/mcp

Package Overview
Dependencies
Maintainers
1
Versions
6
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@dokploy/mcp

MCP Server for Dokploy API

latest
Source
npmnpm
Version
0.29.3
Version published
Maintainers
1
Created
Source

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"
      }
    }
  }
}

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

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_ENABLED_TAGSNoComma-separated list of tags to filter which tools are loaded (e.g., project,application,postgres)
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_ENVNoWhen true, redacts secret-bearing fields from API responses before they reach the MCP client (default: false). Useful when an LLM consumes responses and you don't want env vars or compose files in its 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

You can limit which tools are loaded by setting the DOKPLOY_ENABLED_TAGS environment variable. This is useful when you only need a subset of tools:

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

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, use DOKPLOY_ENABLED_TAGS to filter by category.

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.

Keywords

modelcontextprotocol

FAQs

Package last updated on 13 May 2026

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts