@sattva/dokploy-mcp
MCP server for Dokploy that dynamically generates 420+ tools from the Dokploy OpenAPI spec, enabling deployment, management, and monitoring of self-hosted infrastructure through AI assistants.
README
@sattva/dokploy-mcp
MCP server for Dokploy — dynamically generates 420+ tools from the Dokploy OpenAPI spec. Deploy, manage, and monitor your self-hosted infrastructure through AI assistants.
Why This Package?
| Feature | @sattva/dokploy-mcp | Community alternatives |
|---|---|---|
| Auth method | x-api-key header (correct) |
Often missing or incorrect |
| API coverage | 420+ tools (full OpenAPI) | Manual subset (~30-50 tools) |
| Dependencies | 2 (@modelcontextprotocol/sdk, zod) |
Often pulls in OpenAI SDK, axios, etc. |
| Update strategy | Auto-generates from live spec | Manual maintenance required |
| Safety annotations | readOnlyHint / destructiveHint |
Usually missing |
| Package size | ~25 KB (dist only) | Varies |
Key Features
- Dynamic OpenAPI discovery — fetches the spec from your Dokploy instance at startup, so new API endpoints are available immediately after a Dokploy upgrade
- 420+ tools — every Dokploy API endpoint becomes an MCP tool automatically
- Correct
x-api-keyauthentication — uses the proper header that Dokploy expects - Zod input validation — OpenAPI schemas are converted to Zod for runtime type checking
- Safety annotations — read-only operations are marked with
readOnlyHint, destructive ones withdestructiveHint - Zero-config updates — upgrade Dokploy, restart the MCP server, get new tools
- Minimal dependencies — only
@modelcontextprotocol/sdkandzod
Quick Start
Claude Code (CLI)
claude mcp add --transport stdio \
--env DOKPLOY_URL=https://dokploy.example.com \
--env DOKPLOY_API_KEY=your-api-key-here \
dokploy -- npx -y @sattva/dokploy-mcp@latest
Manual configuration
Add the following to your MCP client config file:
{
"mcpServers": {
"dokploy": {
"command": "npx",
"args": ["-y", "@sattva/dokploy-mcp@latest"],
"env": {
"DOKPLOY_URL": "https://dokploy.example.com",
"DOKPLOY_API_KEY": "your-api-key-here"
}
}
}
}
| Client | Config file |
|---|---|
| Claude Code | ~/.claude/mcp.json |
| Claude Desktop | claude_desktop_config.json |
| Cursor | .cursor/mcp.json |
| Windsurf | ~/.windsurf/mcp.json |
Run directly from the command line
DOKPLOY_URL=https://dokploy.example.com \
DOKPLOY_API_KEY=your-api-key-here \
npx @sattva/dokploy-mcp@latest
Configuration
| Variable | Required | Description |
|---|---|---|
DOKPLOY_URL |
Yes | Base URL of your Dokploy instance (e.g. https://dokploy.example.com). Do not append /api — the server adds it automatically. |
DOKPLOY_API_KEY |
Yes | API key for authentication |
Getting Your API Key
- Log in to your Dokploy dashboard
- Go to Settings → Profile
- Under API / Tokens, click Generate Token
- Copy the generated key
Tool Naming Convention
OpenAPI paths are converted to tool names:
| OpenAPI Path | Tool Name |
|---|---|
/api/application.one |
application_one |
/api/project.all |
project_all |
/api/server.create |
server_create |
/api/docker.getContainers |
docker_getContainers |
/api/domain.update |
domain_update |
Tool Categories
The tools are organized by Dokploy's API structure:
| Category | Examples | Description |
|---|---|---|
| Application | application_one, application_create, application_deploy |
Manage applications |
| Project | project_all, project_create, project_one |
Manage projects |
| Server | server_all, server_create, server_one |
Manage servers |
| Docker | docker_getContainers, docker_getConfig |
Docker operations |
| Domain | domain_create, domain_update, domain_all |
Domain management |
| Deployment | deployment_all, deployment_allByApplication |
Deployment history |
| Database | mysql_*, postgres_*, mariadb_*, mongo_*, redis_* |
Database services |
| Compose | compose_* |
Docker Compose services |
| Registry | registry_all, registry_create, registry_one |
Container registries |
| Certificate | certificates_* |
SSL certificates |
| User | user_all, user_one, user_update |
User management |
| Settings | settings_* |
Instance settings |
Safety Annotations
Every tool is annotated based on its HTTP method and operation:
readOnlyHint: true— GET requests (safe to call, no side effects)destructiveHint: true— operations that deploy, delete, stop, restart, or otherwise modify state
This helps AI assistants make safer decisions about which tools to call without confirmation.
Troubleshooting
DOKPLOY_URL must not end with /api
The MCP server appends /api to the base URL automatically. If you set DOKPLOY_URL=https://dokploy.example.com/api, requests will go to /api/api/... and fail.
Correct: https://dokploy.example.com
Wrong: https://dokploy.example.com/api
Windows: npx does not pass environment variables
On Windows, npx launched via cmd /c may not forward env variables correctly. Use node with the full path to dist/index.js instead:
{
"mcpServers": {
"dokploy": {
"command": "node",
"args": ["C:\\Users\\<you>\\AppData\\Roaming\\npm\\node_modules\\@sattva\\dokploy-mcp\\dist\\index.js"],
"env": {
"DOKPLOY_URL": "https://dokploy.example.com",
"DOKPLOY_API_KEY": "your-api-key-here"
}
}
}
}
To find the path after a global install:
npm install -g @sattva/dokploy-mcp
npm root -g
# → C:\Users\<you>\AppData\Roaming\npm\node_modules
Connection refused / timeout
- Verify
DOKPLOY_URLis reachable:curl https://dokploy.example.com/api/settings.getOpenApiDocument -H "x-api-key: YOUR_KEY" - Check that port 443 (or your custom port) is open
- Ensure the API key is valid and has not been revoked
0 tools registered
If the server starts but registers 0 tools, the OpenAPI spec may be empty or in an unexpected format. Check your Dokploy version — the OpenAPI endpoint was introduced in Dokploy v0.9+.
Development
git clone https://github.com/sattva2020/dokploy-mcp.git
cd dokploy-mcp
npm install
npm run build
Test locally
# Watch mode
npm run dev
# Point your MCP client to the local build:
{
"mcpServers": {
"dokploy": {
"command": "node",
"args": ["/path/to/dokploy-mcp/dist/index.js"],
"env": {
"DOKPLOY_URL": "https://dokploy.example.com",
"DOKPLOY_API_KEY": "your-api-key"
}
}
}
}
Architecture
┌────────────────┐ ┌──────────────┐ ┌──────────────────┐
│ MCP Client │────▶│ MCP Server │────▶│ Dokploy API │
│ (Claude, etc) │◀────│ (this pkg) │◀────│ (your instance) │
└────────────────┘ └──────────────┘ └──────────────────┘
stdio At startup:
1. Fetch OpenAPI spec
2. Parse paths → tools
3. Build Zod schemas
4. Register with MCP SDK
Pipeline:
- Startup — reads
DOKPLOY_URLandDOKPLOY_API_KEYfrom environment - Spec fetch — calls
GET /api/settings.getOpenApiDocumenton the Dokploy instance - Tool generation — iterates over every path+method in the OpenAPI spec, builds Zod input schemas from parameters and request bodies
- Registration — registers each tool with the MCP SDK, including descriptions and safety annotations
- Runtime — when a tool is called, the server makes the corresponding HTTP request to Dokploy with
x-api-keyauth and returns the JSON response
License
MIT — Copyright (c) 2025-2026 Sattva
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.