@dokploy/mcp 0.0.1 → 0.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +1 -1
- package/README.md +176 -147
- package/package.json +22 -22
package/LICENSE
CHANGED
package/README.md
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
# Dokploy MCP Server
|
|
2
2
|
|
|
3
|
-
[](https://www.npmjs.com/package/@dokploy/mcp) [<img alt="Install in VS Code (npx)" src="https://img.shields.io/badge/VS_Code-VS_Code?style=flat-square&label=Install%20Dokploy%20MCP&color=0098FF">](https://insiders.vscode.dev/redirect?url=vscode%3Amcp%2Finstall%3F%7B%22name%22%3A%22dokploy-mcp%22%2C%22command%22%3A%22npx%22%2C%22args%22%3A%5B%22-y%22%2C%22%40dokploy%2Fmcp%40latest%22%5D%7D)
|
|
4
4
|
|
|
5
|
-
Dokploy MCP Server exposes Dokploy
|
|
5
|
+
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.
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
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.
|
|
8
8
|
|
|
9
|
-
##
|
|
9
|
+
## Getting Started
|
|
10
10
|
|
|
11
11
|
### Requirements
|
|
12
12
|
|
|
@@ -25,9 +25,9 @@ Add this to your Cursor `~/.cursor/mcp.json` file. You may also install in a spe
|
|
|
25
25
|
"mcpServers": {
|
|
26
26
|
"dokploy-mcp": {
|
|
27
27
|
"command": "npx",
|
|
28
|
-
"args": ["-y", "@
|
|
28
|
+
"args": ["-y", "@dokploy/mcp"],
|
|
29
29
|
"env": {
|
|
30
|
-
"DOKPLOY_URL": "https://your-dokploy-server.com
|
|
30
|
+
"DOKPLOY_URL": "https://your-dokploy-server.com",
|
|
31
31
|
"DOKPLOY_API_KEY": "your-dokploy-api-token"
|
|
32
32
|
}
|
|
33
33
|
}
|
|
@@ -43,9 +43,9 @@ Add this to your Cursor `~/.cursor/mcp.json` file. You may also install in a spe
|
|
|
43
43
|
"mcpServers": {
|
|
44
44
|
"dokploy-mcp": {
|
|
45
45
|
"command": "bunx",
|
|
46
|
-
"args": ["-y", "@
|
|
46
|
+
"args": ["-y", "@dokploy/mcp"],
|
|
47
47
|
"env": {
|
|
48
|
-
"DOKPLOY_URL": "https://your-dokploy-server.com
|
|
48
|
+
"DOKPLOY_URL": "https://your-dokploy-server.com",
|
|
49
49
|
"DOKPLOY_API_KEY": "your-dokploy-api-token"
|
|
50
50
|
}
|
|
51
51
|
}
|
|
@@ -63,9 +63,9 @@ Add this to your Cursor `~/.cursor/mcp.json` file. You may also install in a spe
|
|
|
63
63
|
"mcpServers": {
|
|
64
64
|
"dokploy-mcp": {
|
|
65
65
|
"command": "deno",
|
|
66
|
-
"args": ["run", "--allow-env", "--allow-net", "npm:@
|
|
66
|
+
"args": ["run", "--allow-env", "--allow-net", "npm:@dokploy/mcp"],
|
|
67
67
|
"env": {
|
|
68
|
-
"DOKPLOY_URL": "https://your-dokploy-server.com
|
|
68
|
+
"DOKPLOY_URL": "https://your-dokploy-server.com",
|
|
69
69
|
"DOKPLOY_API_KEY": "your-dokploy-api-token"
|
|
70
70
|
}
|
|
71
71
|
}
|
|
@@ -84,9 +84,9 @@ Add this to your Windsurf MCP config file. See [Windsurf MCP docs](https://docs.
|
|
|
84
84
|
"mcpServers": {
|
|
85
85
|
"dokploy-mcp": {
|
|
86
86
|
"command": "npx",
|
|
87
|
-
"args": ["-y", "@
|
|
87
|
+
"args": ["-y", "@dokploy/mcp"],
|
|
88
88
|
"env": {
|
|
89
|
-
"DOKPLOY_URL": "https://your-dokploy-server.com
|
|
89
|
+
"DOKPLOY_URL": "https://your-dokploy-server.com",
|
|
90
90
|
"DOKPLOY_API_KEY": "your-dokploy-api-token"
|
|
91
91
|
}
|
|
92
92
|
}
|
|
@@ -96,8 +96,8 @@ Add this to your Windsurf MCP config file. See [Windsurf MCP docs](https://docs.
|
|
|
96
96
|
|
|
97
97
|
### Install in VS Code
|
|
98
98
|
|
|
99
|
-
[<img alt="Install in VS Code (npx)" src="https://img.shields.io/badge/VS_Code-VS_Code?style=flat-square&label=Install%20Dokploy%20MCP&color=0098FF">](https://insiders.vscode.dev/redirect?url=vscode%3Amcp%2Finstall%3F%7B%22name%22%3A%22dokploy-mcp%22%2C%22command%22%3A%22npx%22%2C%22args%22%3A%5B%22-y%22%2C%22%
|
|
100
|
-
[<img alt="Install in VS Code Insiders (npx)" src="https://img.shields.io/badge/VS_Code_Insiders-VS_Code_Insiders?style=flat-square&label=Install%20Dokploy%20MCP&color=24bfa5">](https://insiders.vscode.dev/redirect?url=vscode-insiders%3Amcp%2Finstall%3F%7B%22name%22%3A%22dokploy-mcp%22%2C%22command%22%3A%22npx%22%2C%22args%22%3A%5B%22-y%22%2C%22%
|
|
99
|
+
[<img alt="Install in VS Code (npx)" src="https://img.shields.io/badge/VS_Code-VS_Code?style=flat-square&label=Install%20Dokploy%20MCP&color=0098FF">](https://insiders.vscode.dev/redirect?url=vscode%3Amcp%2Finstall%3F%7B%22name%22%3A%22dokploy-mcp%22%2C%22command%22%3A%22npx%22%2C%22args%22%3A%5B%22-y%22%2C%22%40dokploy%2Fmcp%40latest%22%5D%7D)
|
|
100
|
+
[<img alt="Install in VS Code Insiders (npx)" src="https://img.shields.io/badge/VS_Code_Insiders-VS_Code_Insiders?style=flat-square&label=Install%20Dokploy%20MCP&color=24bfa5">](https://insiders.vscode.dev/redirect?url=vscode-insiders%3Amcp%2Finstall%3F%7B%22name%22%3A%22dokploy-mcp%22%2C%22command%22%3A%22npx%22%2C%22args%22%3A%5B%22-y%22%2C%22%40dokploy%2Fmcp%40latest%22%5D%7D)
|
|
101
101
|
|
|
102
102
|
Add this to your VS Code MCP config file. See [VS Code MCP docs](https://code.visualstudio.com/docs/copilot/chat/mcp-servers) for more info.
|
|
103
103
|
|
|
@@ -107,9 +107,9 @@ Add this to your VS Code MCP config file. See [VS Code MCP docs](https://code.vi
|
|
|
107
107
|
"dokploy-mcp": {
|
|
108
108
|
"type": "stdio",
|
|
109
109
|
"command": "npx",
|
|
110
|
-
"args": ["-y", "@
|
|
110
|
+
"args": ["-y", "@dokploy/mcp"],
|
|
111
111
|
"env": {
|
|
112
|
-
"DOKPLOY_URL": "https://your-dokploy-server.com
|
|
112
|
+
"DOKPLOY_URL": "https://your-dokploy-server.com",
|
|
113
113
|
"DOKPLOY_API_KEY": "your-dokploy-api-token"
|
|
114
114
|
}
|
|
115
115
|
}
|
|
@@ -117,6 +117,20 @@ Add this to your VS Code MCP config file. See [VS Code MCP docs](https://code.vi
|
|
|
117
117
|
}
|
|
118
118
|
```
|
|
119
119
|
|
|
120
|
+
### Install in Claude Code
|
|
121
|
+
|
|
122
|
+
Add the MCP server to Claude Code using the CLI:
|
|
123
|
+
|
|
124
|
+
```bash
|
|
125
|
+
claude mcp add dokploy-mcp -- npx -y @dokploy/mcp
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
Then set the environment variables in your `.claude/settings.json` or pass them inline:
|
|
129
|
+
|
|
130
|
+
```bash
|
|
131
|
+
DOKPLOY_URL=https://your-dokploy-server.com DOKPLOY_API_KEY=your-token claude
|
|
132
|
+
```
|
|
133
|
+
|
|
120
134
|
### Install in Zed
|
|
121
135
|
|
|
122
136
|
Add this to your Zed `settings.json`. See [Zed Context Server docs](https://zed.dev/docs/assistant/context-servers) for more info.
|
|
@@ -125,12 +139,10 @@ Add this to your Zed `settings.json`. See [Zed Context Server docs](https://zed.
|
|
|
125
139
|
{
|
|
126
140
|
"context_servers": {
|
|
127
141
|
"dokploy-mcp": {
|
|
128
|
-
"command":
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
"settings": {
|
|
133
|
-
"DOKPLOY_URL": "https://your-dokploy-server.com/api",
|
|
142
|
+
"command": "npx",
|
|
143
|
+
"args": ["-y", "@dokploy/mcp"],
|
|
144
|
+
"env": {
|
|
145
|
+
"DOKPLOY_URL": "https://your-dokploy-server.com",
|
|
134
146
|
"DOKPLOY_API_KEY": "your-dokploy-api-token"
|
|
135
147
|
}
|
|
136
148
|
}
|
|
@@ -147,9 +159,9 @@ Add this to your Claude Desktop `claude_desktop_config.json` file. See [Claude D
|
|
|
147
159
|
"mcpServers": {
|
|
148
160
|
"dokploy-mcp": {
|
|
149
161
|
"command": "npx",
|
|
150
|
-
"args": ["-y", "@
|
|
162
|
+
"args": ["-y", "@dokploy/mcp"],
|
|
151
163
|
"env": {
|
|
152
|
-
"DOKPLOY_URL": "https://your-dokploy-server.com
|
|
164
|
+
"DOKPLOY_URL": "https://your-dokploy-server.com",
|
|
153
165
|
"DOKPLOY_API_KEY": "your-dokploy-api-token"
|
|
154
166
|
}
|
|
155
167
|
}
|
|
@@ -166,9 +178,9 @@ Open the "Settings" page of the app, navigate to "Plugins," and enter the follow
|
|
|
166
178
|
"mcpServers": {
|
|
167
179
|
"dokploy-mcp": {
|
|
168
180
|
"command": "npx",
|
|
169
|
-
"args": ["-y", "@
|
|
181
|
+
"args": ["-y", "@dokploy/mcp"],
|
|
170
182
|
"env": {
|
|
171
|
-
"DOKPLOY_URL": "https://your-dokploy-server.com
|
|
183
|
+
"DOKPLOY_URL": "https://your-dokploy-server.com",
|
|
172
184
|
"DOKPLOY_API_KEY": "your-dokploy-api-token"
|
|
173
185
|
}
|
|
174
186
|
}
|
|
@@ -184,7 +196,7 @@ The Docker container supports both **stdio** and **HTTP** transport modes, makin
|
|
|
184
196
|
|
|
185
197
|
```bash
|
|
186
198
|
git clone https://github.com/Dokploy/mcp.git
|
|
187
|
-
cd
|
|
199
|
+
cd mcp
|
|
188
200
|
docker build -t dokploy-mcp .
|
|
189
201
|
```
|
|
190
202
|
|
|
@@ -194,7 +206,7 @@ The Docker container supports both **stdio** and **HTTP** transport modes, makin
|
|
|
194
206
|
|
|
195
207
|
```bash
|
|
196
208
|
docker run -it --rm \
|
|
197
|
-
-e DOKPLOY_URL=https://your-dokploy-server.com
|
|
209
|
+
-e DOKPLOY_URL=https://your-dokploy-server.com \
|
|
198
210
|
-e DOKPLOY_API_KEY=your_token_here \
|
|
199
211
|
dokploy-mcp
|
|
200
212
|
```
|
|
@@ -205,7 +217,7 @@ The Docker container supports both **stdio** and **HTTP** transport modes, makin
|
|
|
205
217
|
docker run -it --rm \
|
|
206
218
|
-p 8080:3000 \
|
|
207
219
|
-e MCP_TRANSPORT=http \
|
|
208
|
-
-e DOKPLOY_URL=https://your-dokploy-server.com
|
|
220
|
+
-e DOKPLOY_URL=https://your-dokploy-server.com \
|
|
209
221
|
-e DOKPLOY_API_KEY=your_token_here \
|
|
210
222
|
dokploy-mcp
|
|
211
223
|
```
|
|
@@ -236,7 +248,7 @@ The Docker container supports both **stdio** and **HTTP** transport modes, makin
|
|
|
236
248
|
"-i",
|
|
237
249
|
"--rm",
|
|
238
250
|
"-e",
|
|
239
|
-
"DOKPLOY_URL=https://your-dokploy-server.com
|
|
251
|
+
"DOKPLOY_URL=https://your-dokploy-server.com",
|
|
240
252
|
"-e",
|
|
241
253
|
"DOKPLOY_API_KEY=your_token_here",
|
|
242
254
|
"dokploy-mcp"
|
|
@@ -259,9 +271,9 @@ The configuration on Windows is slightly different compared to Linux or macOS. U
|
|
|
259
271
|
"mcpServers": {
|
|
260
272
|
"dokploy-mcp": {
|
|
261
273
|
"command": "cmd",
|
|
262
|
-
"args": ["/c", "npx", "-y", "@
|
|
274
|
+
"args": ["/c", "npx", "-y", "@dokploy/mcp"],
|
|
263
275
|
"env": {
|
|
264
|
-
"DOKPLOY_URL": "https://your-dokploy-server.com
|
|
276
|
+
"DOKPLOY_URL": "https://your-dokploy-server.com",
|
|
265
277
|
"DOKPLOY_API_KEY": "your-dokploy-api-token"
|
|
266
278
|
}
|
|
267
279
|
}
|
|
@@ -271,10 +283,16 @@ The configuration on Windows is slightly different compared to Linux or macOS. U
|
|
|
271
283
|
|
|
272
284
|
### Environment Variables
|
|
273
285
|
|
|
274
|
-
|
|
275
|
-
|
|
286
|
+
| Variable | Required | Description |
|
|
287
|
+
|----------|----------|-------------|
|
|
288
|
+
| `DOKPLOY_URL` | Yes | Your Dokploy server URL (e.g., `https://your-dokploy-server.com`) |
|
|
289
|
+
| `DOKPLOY_API_KEY` | Yes | Your Dokploy API authentication token |
|
|
290
|
+
| `DOKPLOY_ENABLED_TAGS` | No | Comma-separated list of tags to filter which tools are loaded (e.g., `project,application,postgres`) |
|
|
291
|
+
| `DOKPLOY_TIMEOUT` | No | Request timeout in milliseconds (default: `30000`) |
|
|
292
|
+
| `DOKPLOY_RETRY_ATTEMPTS` | No | Number of retry attempts (default: `3`) |
|
|
293
|
+
| `DOKPLOY_RETRY_DELAY` | No | Delay between retries in milliseconds (default: `1000`) |
|
|
276
294
|
|
|
277
|
-
##
|
|
295
|
+
## Transport Modes
|
|
278
296
|
|
|
279
297
|
This MCP server supports multiple transport modes to suit different use cases:
|
|
280
298
|
|
|
@@ -284,9 +302,7 @@ The default mode uses stdio for direct process communication, ideal for desktop
|
|
|
284
302
|
|
|
285
303
|
```bash
|
|
286
304
|
# Run with stdio (default)
|
|
287
|
-
npx -y @
|
|
288
|
-
# or
|
|
289
|
-
npm run start:stdio
|
|
305
|
+
npx -y @dokploy/mcp
|
|
290
306
|
```
|
|
291
307
|
|
|
292
308
|
### HTTP Mode (Streamable HTTP + Legacy SSE)
|
|
@@ -298,131 +314,147 @@ Modern HTTP mode exposes the server via HTTP/HTTPS supporting **both modern and
|
|
|
298
314
|
|
|
299
315
|
```bash
|
|
300
316
|
# Run with HTTP mode
|
|
301
|
-
|
|
302
|
-
# or
|
|
303
|
-
npx -y @ahdev/dokploy-mcp --http
|
|
317
|
+
npx -y @dokploy/mcp --http
|
|
304
318
|
# or via environment variable
|
|
305
|
-
MCP_TRANSPORT=http npx -y @
|
|
319
|
+
MCP_TRANSPORT=http npx -y @dokploy/mcp
|
|
306
320
|
```
|
|
307
321
|
|
|
308
322
|
**Modern Streamable HTTP Endpoints:**
|
|
309
323
|
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
324
|
+
| Endpoint | Method | Description |
|
|
325
|
+
|----------|--------|-------------|
|
|
326
|
+
| `/mcp` | POST | Client-to-server requests |
|
|
327
|
+
| `/mcp` | GET | Server-to-client notifications (SSE) |
|
|
328
|
+
| `/mcp` | DELETE | Session termination |
|
|
329
|
+
| `/health` | GET | Health check |
|
|
314
330
|
|
|
315
331
|
**Legacy SSE Endpoints (Backwards Compatibility):**
|
|
316
332
|
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
333
|
+
| Endpoint | Method | Description |
|
|
334
|
+
|----------|--------|-------------|
|
|
335
|
+
| `/sse` | GET | SSE stream initialization |
|
|
336
|
+
| `/messages` | POST | Client message posting |
|
|
337
|
+
|
|
338
|
+
## Available Tools (508)
|
|
339
|
+
|
|
340
|
+
This MCP server provides **508 tools** covering the entire Dokploy API, organized into **49 categories**:
|
|
341
|
+
|
|
342
|
+
### Core Resources
|
|
343
|
+
|
|
344
|
+
| Category | Tools | Description |
|
|
345
|
+
|----------|-------|-------------|
|
|
346
|
+
| **Project** | 8 | Create, list, update, duplicate, search, and delete projects |
|
|
347
|
+
| **Application** | 30 | Full application lifecycle — create, deploy, redeploy, start, stop, build types, git providers (GitHub, GitLab, Bitbucket, Gitea), environment, Traefik config |
|
|
348
|
+
| **Compose** | 29 | Docker Compose management — create, deploy, templates, services, environment, isolated deployments |
|
|
349
|
+
| **Domain** | 9 | Domain CRUD, DNS validation, Traefik.me generation |
|
|
350
|
+
| **Environment** | 7 | Multi-environment support per project |
|
|
351
|
+
| **Deployment** | 8 | Deployment history, queue management, centralized view |
|
|
352
|
+
|
|
353
|
+
### Databases
|
|
354
|
+
|
|
355
|
+
| Category | Tools | Description |
|
|
356
|
+
|----------|-------|-------------|
|
|
357
|
+
| **PostgreSQL** | 15 | Full lifecycle — create, deploy, start, stop, rebuild, passwords, external ports, environment |
|
|
358
|
+
| **MySQL** | 15 | Full lifecycle — create, deploy, start, stop, rebuild, passwords, external ports, environment |
|
|
359
|
+
| **MariaDB** | 15 | Full lifecycle — create, deploy, start, stop, rebuild, passwords, external ports, environment |
|
|
360
|
+
| **MongoDB** | 15 | Full lifecycle — create, deploy, start, stop, rebuild, passwords, external ports, environment |
|
|
361
|
+
| **Redis** | 15 | Full lifecycle — create, deploy, start, stop, rebuild, passwords, external ports, environment |
|
|
362
|
+
| **LibSQL** | 13 | Full lifecycle — create, deploy, start, stop, rebuild, external ports, environment |
|
|
363
|
+
|
|
364
|
+
### Infrastructure
|
|
365
|
+
|
|
366
|
+
| Category | Tools | Description |
|
|
367
|
+
|----------|-------|-------------|
|
|
368
|
+
| **Server** | 17 | Multi-server management, metrics, security, monitoring setup |
|
|
369
|
+
| **Docker** | 9 | Container management — list, restart, remove, upload files, inspect config |
|
|
370
|
+
| **Cluster / Swarm** | 8 | Swarm node management, container stats, cluster operations |
|
|
371
|
+
| **Settings** | 51 | Server settings, Traefik config, Docker cleanup, GPU, monitoring, Redis, disk usage |
|
|
372
|
+
| **Registry** | 7 | Docker registry management and testing |
|
|
373
|
+
|
|
374
|
+
### Security & Auth
|
|
375
|
+
|
|
376
|
+
| Category | Tools | Description |
|
|
377
|
+
|----------|-------|-------------|
|
|
378
|
+
| **SSO** | 10 | Single sign-on providers, trusted origins |
|
|
379
|
+
| **SSH Keys** | 7 | SSH key management — create, generate, list, update, remove |
|
|
380
|
+
| **Certificates** | 5 | SSL/TLS certificate management |
|
|
381
|
+
| **Security** | 4 | Basic auth and security rules per application |
|
|
382
|
+
| **Custom Roles** | 6 | Role-based access control with custom permissions |
|
|
383
|
+
| **User** | 23 | User management, permissions, API keys, invitations, metrics |
|
|
384
|
+
| **Organization** | 11 | Multi-org support, invitations, member roles |
|
|
385
|
+
|
|
386
|
+
### Operations
|
|
387
|
+
|
|
388
|
+
| Category | Tools | Description |
|
|
389
|
+
|----------|-------|-------------|
|
|
390
|
+
| **Backup** | 12 | Database backups — Postgres, MySQL, MariaDB, MongoDB, LibSQL, Compose, WebServer |
|
|
391
|
+
| **Volume Backups** | 6 | Volume-level backup scheduling and management |
|
|
392
|
+
| **Destination** | 6 | S3-compatible backup destinations (AWS, Cloudflare R2, etc.) |
|
|
393
|
+
| **Schedule** | 6 | Scheduled tasks — cron-based automation |
|
|
394
|
+
| **Notification** | 41 | Multi-channel alerts — Slack, Discord, Telegram, Email, Teams, Gotify, Ntfy, Pushover, Lark, Mattermost, Resend, Custom webhooks |
|
|
395
|
+
| **Rollback** | 2 | Application rollback management |
|
|
396
|
+
|
|
397
|
+
### Other
|
|
398
|
+
|
|
399
|
+
| Category | Tools | Description |
|
|
400
|
+
|----------|-------|-------------|
|
|
401
|
+
| **AI** | 9 | AI-powered suggestions, model management |
|
|
402
|
+
| **Git Providers** | 27 | GitHub, GitLab, Gitea, Bitbucket — branches, repos, connection testing |
|
|
403
|
+
| **Tag** | 8 | Project tagging and bulk assignment |
|
|
404
|
+
| **Patch** | 12 | File patching system for applications |
|
|
405
|
+
| **Mounts** | 6 | Volume and bind mount management |
|
|
406
|
+
| **Port** | 4 | Port mapping configuration |
|
|
407
|
+
| **Redirects** | 4 | URL redirect rules |
|
|
408
|
+
| **Preview Deployments** | 4 | PR preview deployment management |
|
|
409
|
+
| **Stripe** | 7 | Billing and subscription management |
|
|
410
|
+
| **License Key** | 6 | Enterprise license management |
|
|
411
|
+
| **Whitelabeling** | 4 | Custom branding for enterprise |
|
|
412
|
+
| **Audit Log** | 1 | Activity audit trail |
|
|
413
|
+
| **Admin** | 1 | Admin-level monitoring setup |
|
|
414
|
+
|
|
415
|
+
### Tool Filtering
|
|
416
|
+
|
|
417
|
+
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:
|
|
349
418
|
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
- `application-deploy`, `application-redeploy`, `application-start`, `application-stop`, `application-reload`
|
|
355
|
-
- `application-move`, `application-markRunning`, `application-cancelDeployment`
|
|
356
|
-
|
|
357
|
-
**Git Providers:**
|
|
358
|
-
- `application-saveGithubProvider`, `application-saveGitlabProvider`, `application-saveBitbucketProvider`
|
|
359
|
-
- `application-saveGiteaProvider`, `application-saveGitProvider`, `application-disconnectGitProvider`
|
|
360
|
-
|
|
361
|
-
**Configuration:**
|
|
362
|
-
- `application-saveBuildType`, `application-saveEnvironment`, `application-saveDockerProvider`
|
|
363
|
-
- `application-readAppMonitoring`, `application-readTraefikConfig`, `application-updateTraefikConfig`
|
|
364
|
-
- `application-refreshToken`, `application-cleanQueues`
|
|
365
|
-
|
|
366
|
-
### 🌐 Domain Management (9 tools)
|
|
367
|
-
|
|
368
|
-
- `domain-byApplicationId` - List domains by application ID
|
|
369
|
-
- `domain-byComposeId` - List domains by compose service ID
|
|
370
|
-
- `domain-one` - Get domain by ID
|
|
371
|
-
- `domain-create` - Create domain (application/compose/preview)
|
|
372
|
-
- `domain-update` - Update domain configuration
|
|
373
|
-
- `domain-delete` - Delete domain
|
|
374
|
-
- `domain-validateDomain` - Validate domain DNS/target
|
|
375
|
-
- `domain-generateDomain` - Suggest a domain for an app
|
|
376
|
-
- `domain-canGenerateTraefikMeDomains` - Check Traefik.me availability on a server
|
|
377
|
-
|
|
378
|
-
### 🐘 PostgreSQL Database Management (13 tools)
|
|
379
|
-
|
|
380
|
-
**Core Operations:**
|
|
381
|
-
- `postgres-create`, `postgres-one`, `postgres-update`, `postgres-remove`, `postgres-move`
|
|
382
|
-
- `postgres-deploy`, `postgres-start`, `postgres-stop`, `postgres-reload`, `postgres-rebuild`
|
|
383
|
-
|
|
384
|
-
**Configuration:**
|
|
385
|
-
- `postgres-changeStatus`, `postgres-saveExternalPort`, `postgres-saveEnvironment`
|
|
386
|
-
|
|
387
|
-
### 🐬 MySQL Database Management (13 tools)
|
|
388
|
-
|
|
389
|
-
**Core Operations:**
|
|
390
|
-
- `mysql-create`, `mysql-one`, `mysql-update`, `mysql-remove`, `mysql-move`
|
|
391
|
-
- `mysql-deploy`, `mysql-start`, `mysql-stop`, `mysql-reload`, `mysql-rebuild`
|
|
392
|
-
|
|
393
|
-
**Configuration:**
|
|
394
|
-
- `mysql-changeStatus`, `mysql-saveExternalPort`, `mysql-saveEnvironment`
|
|
419
|
+
```bash
|
|
420
|
+
# Only load project, application, and postgres tools
|
|
421
|
+
DOKPLOY_ENABLED_TAGS=project,application,postgres
|
|
422
|
+
```
|
|
395
423
|
|
|
396
|
-
**Tool Annotations:**
|
|
397
424
|
All tools include semantic annotations (`readOnlyHint`, `destructiveHint`, `idempotentHint`) to help MCP clients understand their behavior and safety characteristics.
|
|
398
425
|
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
## 🏗️ Architecture
|
|
426
|
+
## Architecture
|
|
402
427
|
|
|
403
428
|
Built with **@modelcontextprotocol/sdk**, **TypeScript**, and **Zod** for type-safe schema validation:
|
|
404
429
|
|
|
405
|
-
- **
|
|
430
|
+
- **508 Tools** covering the entire Dokploy API
|
|
406
431
|
- **Multiple Transports**: Stdio (default) and HTTP (Streamable HTTP + legacy SSE)
|
|
407
|
-
- **
|
|
408
|
-
- **
|
|
409
|
-
- **
|
|
432
|
+
- **Auto-generated Tools**: Tools are generated from the Dokploy OpenAPI spec via `pnpm generate:all`
|
|
433
|
+
- **Tool Filtering**: Load only the categories you need via `DOKPLOY_ENABLED_TAGS`
|
|
434
|
+
- **Robust Error Handling**: Centralized API client with interceptors and retry logic
|
|
435
|
+
- **Type Safety**: Full TypeScript with Zod schema validation
|
|
410
436
|
- **Tool Annotations**: Semantic hints for MCP client behavior understanding
|
|
411
437
|
|
|
412
|
-
##
|
|
438
|
+
## Development
|
|
413
439
|
|
|
414
440
|
Clone the project and install dependencies:
|
|
415
441
|
|
|
416
442
|
```bash
|
|
417
443
|
git clone https://github.com/Dokploy/mcp.git
|
|
418
|
-
cd
|
|
419
|
-
|
|
444
|
+
cd mcp
|
|
445
|
+
pnpm install
|
|
420
446
|
```
|
|
421
447
|
|
|
422
448
|
Build:
|
|
423
449
|
|
|
424
450
|
```bash
|
|
425
|
-
|
|
451
|
+
pnpm build
|
|
452
|
+
```
|
|
453
|
+
|
|
454
|
+
Regenerate tools from the Dokploy OpenAPI spec:
|
|
455
|
+
|
|
456
|
+
```bash
|
|
457
|
+
pnpm generate:all
|
|
426
458
|
```
|
|
427
459
|
|
|
428
460
|
### Local Configuration Example
|
|
@@ -432,9 +464,9 @@ npm run build
|
|
|
432
464
|
"mcpServers": {
|
|
433
465
|
"dokploy-mcp": {
|
|
434
466
|
"command": "npx",
|
|
435
|
-
"args": ["tsx", "/path/to/
|
|
467
|
+
"args": ["tsx", "/path/to/mcp/src/index.ts"],
|
|
436
468
|
"env": {
|
|
437
|
-
"DOKPLOY_URL": "https://your-dokploy-server.com
|
|
469
|
+
"DOKPLOY_URL": "https://your-dokploy-server.com",
|
|
438
470
|
"DOKPLOY_API_KEY": "your-dokploy-api-token"
|
|
439
471
|
}
|
|
440
472
|
}
|
|
@@ -445,15 +477,10 @@ npm run build
|
|
|
445
477
|
### Testing with MCP Inspector
|
|
446
478
|
|
|
447
479
|
```bash
|
|
448
|
-
npx -y @modelcontextprotocol/inspector npx @
|
|
480
|
+
npx -y @modelcontextprotocol/inspector npx @dokploy/mcp
|
|
449
481
|
```
|
|
450
482
|
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
- **[TOOLS.md](TOOLS.md)** - Complete tool reference with schemas and examples
|
|
454
|
-
- **[CONTRIBUTING.md](CONTRIBUTING.md)** - Contributing guidelines
|
|
455
|
-
|
|
456
|
-
## 🔧 Troubleshooting
|
|
483
|
+
## Troubleshooting
|
|
457
484
|
|
|
458
485
|
### MCP Client Errors
|
|
459
486
|
|
|
@@ -463,14 +490,16 @@ npx -y @modelcontextprotocol/inspector npx @ahdev/dokploy-mcp
|
|
|
463
490
|
|
|
464
491
|
3. Verify your `DOKPLOY_URL` and `DOKPLOY_API_KEY` environment variables are correctly set.
|
|
465
492
|
|
|
466
|
-
|
|
493
|
+
4. If too many tools are loading, use `DOKPLOY_ENABLED_TAGS` to filter by category.
|
|
494
|
+
|
|
495
|
+
## Contributing
|
|
467
496
|
|
|
468
497
|
We welcome contributions! If you'd like to contribute to the Dokploy MCP Server, please check out our [Contributing Guide](CONTRIBUTING.md).
|
|
469
498
|
|
|
470
|
-
##
|
|
499
|
+
## Support
|
|
471
500
|
|
|
472
501
|
If you encounter any issues, have questions, or want to suggest a feature, please [open an issue](https://github.com/Dokploy/mcp/issues) in our GitHub repository.
|
|
473
502
|
|
|
474
|
-
##
|
|
503
|
+
## License
|
|
475
504
|
|
|
476
505
|
This project is licensed under the [Apache License](LICENSE).
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dokploy/mcp",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.2",
|
|
4
4
|
"description": "MCP Server for Dokploy API",
|
|
5
5
|
"main": "build/index.js",
|
|
6
6
|
"bin": {
|
|
@@ -9,26 +9,6 @@
|
|
|
9
9
|
"files": [
|
|
10
10
|
"build"
|
|
11
11
|
],
|
|
12
|
-
"scripts": {
|
|
13
|
-
"build": "pnpm run clean && tsc && chmod 755 build/index.js",
|
|
14
|
-
"dev": "tsc --watch",
|
|
15
|
-
"start:stdio": "node --env-file=.env build/index.js",
|
|
16
|
-
"start:http": "node --env-file=.env build/index.js --http",
|
|
17
|
-
"start:sse": "node --env-file=.env build/index.js --sse",
|
|
18
|
-
"dev:http": "pnpm run build && pnpm run start:http",
|
|
19
|
-
"dev:sse": "pnpm run build && pnpm run start:sse",
|
|
20
|
-
"fetch-openapi": "tsx scripts/fetch-openapi.ts",
|
|
21
|
-
"generate": "tsx scripts/generate-tools.ts",
|
|
22
|
-
"generate:all": "pnpm fetch-openapi && pnpm generate",
|
|
23
|
-
"lint": "biome check",
|
|
24
|
-
"lint:fix": "biome check --fix",
|
|
25
|
-
"format": "biome format --write",
|
|
26
|
-
"format:check": "biome format",
|
|
27
|
-
"type-check": "tsc --noEmit",
|
|
28
|
-
"clean": "rm -rf build",
|
|
29
|
-
"precommit": "biome check && pnpm run type-check",
|
|
30
|
-
"test": "echo \"Error: no test specified\" && exit 1"
|
|
31
|
-
},
|
|
32
12
|
"repository": {
|
|
33
13
|
"type": "git",
|
|
34
14
|
"url": "git+https://github.com/Dokploy/mcp.git"
|
|
@@ -58,5 +38,25 @@
|
|
|
58
38
|
"json-schema-to-zod": "^2.8.1",
|
|
59
39
|
"tsx": "^4.21.0",
|
|
60
40
|
"typescript": "^5.8.3"
|
|
41
|
+
},
|
|
42
|
+
"scripts": {
|
|
43
|
+
"build": "pnpm run clean && tsc && chmod 755 build/index.js",
|
|
44
|
+
"dev": "tsc --watch",
|
|
45
|
+
"start:stdio": "node --env-file=.env build/index.js",
|
|
46
|
+
"start:http": "node --env-file=.env build/index.js --http",
|
|
47
|
+
"start:sse": "node --env-file=.env build/index.js --sse",
|
|
48
|
+
"dev:http": "pnpm run build && pnpm run start:http",
|
|
49
|
+
"dev:sse": "pnpm run build && pnpm run start:sse",
|
|
50
|
+
"fetch-openapi": "tsx scripts/fetch-openapi.ts",
|
|
51
|
+
"generate": "tsx scripts/generate-tools.ts",
|
|
52
|
+
"generate:all": "pnpm fetch-openapi && pnpm generate",
|
|
53
|
+
"lint": "biome check",
|
|
54
|
+
"lint:fix": "biome check --fix",
|
|
55
|
+
"format": "biome format --write",
|
|
56
|
+
"format:check": "biome format",
|
|
57
|
+
"type-check": "tsc --noEmit",
|
|
58
|
+
"clean": "rm -rf build",
|
|
59
|
+
"precommit": "biome check && pnpm run type-check",
|
|
60
|
+
"test": "echo \"Error: no test specified\" && exit 1"
|
|
61
61
|
}
|
|
62
|
-
}
|
|
62
|
+
}
|