dokploy-mcp
Allows updating GitHub source configuration for Dokploy applications.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@dokploy-mcplist my projects"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
@wyattjoh/dokploy-mcp
MCP server that wraps the Dokploy REST API. Exposes Dokploy operations as Model Context Protocol tools for Claude Code, Claude Desktop, and other MCP clients.
Install
npm install -g @wyattjoh/dokploy-mcpOr with Bun:
bun install -g @wyattjoh/dokploy-mcpConfiguration
The server supports two modes: single-instance and multi-instance. The two modes are mutually exclusive.
Single instance
Set a single Dokploy API token. All tools operate against one Dokploy server.
Variable | Required | Description |
| Yes | API token for your Dokploy instance |
| No | Base URL (defaults to |
Multi-instance
Set per-instance tokens and URLs. Tools gain a required instance parameter so
you can target different Dokploy servers from a single MCP session.
For each instance, define a pair of environment variables:
DOKPLOY_<NAME>_API_TOKEN- API token for the instanceDOKPLOY_<NAME>_URL- Base URL for the instance
Instance names are derived by lowercasing the <NAME> segment. Names must match
[a-z0-9]([a-z0-9_]*[a-z0-9])?.
Example for two instances named prod and staging:
DOKPLOY_PROD_API_TOKEN=dkp_abc123
DOKPLOY_PROD_URL=https://dokploy.example.com
DOKPLOY_STAGING_API_TOKEN=dkp_def456
DOKPLOY_STAGING_URL=https://staging-dokploy.example.comHTTP transport
By default the server uses stdio transport (for Claude Code and similar
clients). Pass --http to start an HTTP server instead.
Variable | Required | Description |
| Yes (HTTP only) | Bearer token for authenticating MCP clients |
dokploy-mcp --http --port 3000The MCP endpoint is POST /mcp. A health check is available at GET /health.
MCP client configuration
Claude Code (.mcp.json)
Add to your project's .mcp.json or ~/.claude/.mcp.json:
Single instance:
{
"mcpServers": {
"dokploy": {
"command": "dokploy-mcp",
"env": {
"DOKPLOY_API_TOKEN": "dkp_your_token_here",
"DOKPLOY_URL": "https://dokploy.example.com"
}
}
}
}Multi-instance:
{
"mcpServers": {
"dokploy": {
"command": "dokploy-mcp",
"env": {
"DOKPLOY_PROD_API_TOKEN": "dkp_prod_token",
"DOKPLOY_PROD_URL": "https://dokploy.example.com",
"DOKPLOY_STAGING_API_TOKEN": "dkp_staging_token",
"DOKPLOY_STAGING_URL": "https://staging-dokploy.example.com"
}
}
}
}Using 1Password CLI (recommended)
Store your Dokploy API tokens in 1Password and use op run to inject them at
runtime. This keeps secrets out of config files entirely.
Store each API token in 1Password (e.g., in a vault called
Development)Reference them with
op://URIs in your.mcp.jsonUse
opas the command so secrets are resolved in-memory
{
"mcpServers": {
"dokploy": {
"command": "op",
"args": ["run", "--", "dokploy-mcp"],
"env": {
"DOKPLOY_PROD_API_TOKEN": "op://Development/dokploy-prod/credential",
"DOKPLOY_PROD_URL": "https://dokploy.example.com",
"DOKPLOY_STAGING_API_TOKEN": "op://Development/dokploy-staging/credential",
"DOKPLOY_STAGING_URL": "https://staging-dokploy.example.com"
}
}
}
}With this setup, op run resolves the op:// references and injects the real
tokens into the subprocess environment. No plaintext secrets touch disk.
For HTTP transport with 1Password:
{
"mcpServers": {
"dokploy": {
"command": "op",
"args": ["run", "--", "dokploy-mcp", "--http"],
"env": {
"DOKPLOY_MCP_TOKEN": "op://Development/dokploy-mcp-token/credential",
"DOKPLOY_PROD_API_TOKEN": "op://Development/dokploy-prod/credential",
"DOKPLOY_PROD_URL": "https://dokploy.example.com"
}
}
}
}Tools
Projects
Tool | Description |
| List all configured Dokploy instances |
| List all projects |
Applications
Tool | Description |
| List all applications (filtered from projects) |
| Get full application config by ID |
| Update application config fields |
| Trigger a deployment |
| Start an application |
| Stop an application |
Compose
Tool | Description |
| Get compose stack config by ID |
| Deploy a compose stack |
| Redeploy a compose stack |
| Start a compose stack |
| Stop a compose stack |
| Update compose stack config |
| List services in a compose stack |
| List deployments for a compose stack |
| List domains for a compose stack |
Deployments
Tool | Description |
| List deployments for an application |
Domains
Tool | Description |
| List domains for an application |
| Add a domain to an application |
Environment
Tool | Description |
| List environment variables for an application |
| Set environment variables (merge with existing) |
| Remove environment variables by key |
Build
Tool | Description |
| Update build configuration |
| Update GitHub source configuration |
Operational
Tool | Description |
| List Docker containers |
| Get application monitoring data |
| Redeploy an application |
| Cancel a running deployment |
| Kill a running build |
| Get the Dokploy server version |
| List all configured servers |
Development
bun install
bun run start # stdio transport
bun run start:http # HTTP transport on port 3000
bun run build # transpile to dist/ (Node.js target)
bun run lint # oxlint
bun run typecheck # tsc --noEmitLicense
MIT
This server cannot be installed
Maintenance
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/wyattjoh/dokploy-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server