dokploy-mcp-server 1.0.0
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 +21 -0
- package/README.md +281 -0
- package/dist/bin.d.ts +1 -0
- package/dist/bin.js +37 -0
- package/dist/bin.js.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +1775 -0
- package/dist/index.js.map +1 -0
- package/package.json +74 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Jordan Burke
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,281 @@
|
|
|
1
|
+
# dokploy-mcp-server
|
|
2
|
+
|
|
3
|
+
A comprehensive [Model Context Protocol (MCP)](https://modelcontextprotocol.io/) server for [Dokploy](https://dokploy.com/) - the open-source, self-hosted PaaS. Deploy apps, manage containers, databases, domains, and servers through AI assistants like Claude.
|
|
4
|
+
|
|
5
|
+
## Why This Server?
|
|
6
|
+
|
|
7
|
+
The [official Dokploy MCP](https://github.com/Dokploy/mcp) covers only ~5 of 42 API categories. This server provides **107 tools** across 12 categories, covering the full DevOps lifecycle.
|
|
8
|
+
|
|
9
|
+
### Feature Comparison
|
|
10
|
+
|
|
11
|
+
| Category | Official MCP | This Server |
|
|
12
|
+
| ------------------- | :----------------: | :--------------: |
|
|
13
|
+
| Projects | 6 | 6 |
|
|
14
|
+
| Applications | 26 | 20 |
|
|
15
|
+
| Compose | - | 12 |
|
|
16
|
+
| Deployments | - | 5 |
|
|
17
|
+
| Docker | - | 7 |
|
|
18
|
+
| Domains | 9 | 9 |
|
|
19
|
+
| Servers | - | 8 |
|
|
20
|
+
| Settings | - | 7 |
|
|
21
|
+
| Databases (unified) | 26 (pg+mysql only) | 13 (all 5 types) |
|
|
22
|
+
| Backups | - | 6 |
|
|
23
|
+
| Environments | - | 6 |
|
|
24
|
+
| Infrastructure | - | 8 |
|
|
25
|
+
| **Total** | **67** | **~107** |
|
|
26
|
+
|
|
27
|
+
Key advantages:
|
|
28
|
+
|
|
29
|
+
- **Unified database tools** - One set of 13 tools handles all 5 database types (postgres, mysql, mariadb, mongo, redis) via a `dbType` parameter
|
|
30
|
+
- **Docker Compose support** - Full lifecycle management for compose services
|
|
31
|
+
- **Docker management** - Container listing, restart, inspect
|
|
32
|
+
- **Server management** - Add, configure, and monitor remote servers
|
|
33
|
+
- **Deployment tracking** - List and manage deployments across resources
|
|
34
|
+
- **Backup management** - Schedule and trigger backups for all database types
|
|
35
|
+
- **Infrastructure** - Port mappings, certificates, basic auth
|
|
36
|
+
|
|
37
|
+
## Installation
|
|
38
|
+
|
|
39
|
+
### Claude Desktop / Claude Code
|
|
40
|
+
|
|
41
|
+
Add to your MCP configuration:
|
|
42
|
+
|
|
43
|
+
```json
|
|
44
|
+
{
|
|
45
|
+
"mcpServers": {
|
|
46
|
+
"dokploy": {
|
|
47
|
+
"command": "npx",
|
|
48
|
+
"args": ["-y", "dokploy-mcp-server"],
|
|
49
|
+
"env": {
|
|
50
|
+
"DOKPLOY_URL": "https://dokploy.example.com",
|
|
51
|
+
"DOKPLOY_API_KEY": "your-api-key"
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
### Cursor
|
|
59
|
+
|
|
60
|
+
Add to `.cursor/mcp.json`:
|
|
61
|
+
|
|
62
|
+
```json
|
|
63
|
+
{
|
|
64
|
+
"mcpServers": {
|
|
65
|
+
"dokploy": {
|
|
66
|
+
"command": "npx",
|
|
67
|
+
"args": ["-y", "dokploy-mcp-server"],
|
|
68
|
+
"env": {
|
|
69
|
+
"DOKPLOY_URL": "https://dokploy.example.com",
|
|
70
|
+
"DOKPLOY_API_KEY": "your-api-key"
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
### Docker
|
|
78
|
+
|
|
79
|
+
```bash
|
|
80
|
+
docker run -e DOKPLOY_URL=https://dokploy.example.com \
|
|
81
|
+
-e DOKPLOY_API_KEY=your-api-key \
|
|
82
|
+
-e TRANSPORT_TYPE=httpStream \
|
|
83
|
+
-p 3000:3000 \
|
|
84
|
+
dokploy-mcp-server
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
## Environment Variables
|
|
88
|
+
|
|
89
|
+
| Variable | Required | Default | Description |
|
|
90
|
+
| ----------------- | -------- | --------- | ---------------------------------------- |
|
|
91
|
+
| `DOKPLOY_URL` | Yes | - | Your Dokploy instance URL |
|
|
92
|
+
| `DOKPLOY_API_KEY` | Yes | - | API key from Dokploy Settings > API Keys |
|
|
93
|
+
| `TRANSPORT_TYPE` | No | `stdio` | Transport mode: `stdio` or `httpStream` |
|
|
94
|
+
| `PORT` | No | `3000` | HTTP port (httpStream mode only) |
|
|
95
|
+
| `HOST` | No | `0.0.0.0` | HTTP host (httpStream mode only) |
|
|
96
|
+
|
|
97
|
+
## Tools by Category
|
|
98
|
+
|
|
99
|
+
### Projects (6 tools)
|
|
100
|
+
|
|
101
|
+
- `dokploy_project_list` - List all projects
|
|
102
|
+
- `dokploy_project_get` - Get project details
|
|
103
|
+
- `dokploy_project_create` - Create a new project
|
|
104
|
+
- `dokploy_project_update` - Update project name/description
|
|
105
|
+
- `dokploy_project_remove` - Delete a project
|
|
106
|
+
- `dokploy_project_duplicate` - Duplicate a project environment
|
|
107
|
+
|
|
108
|
+
### Applications (20 tools)
|
|
109
|
+
|
|
110
|
+
- `dokploy_application_create` - Create a new application
|
|
111
|
+
- `dokploy_application_get` - Get application details
|
|
112
|
+
- `dokploy_application_deploy` - Trigger deployment
|
|
113
|
+
- `dokploy_application_redeploy` - Redeploy application
|
|
114
|
+
- `dokploy_application_start` - Start application
|
|
115
|
+
- `dokploy_application_stop` - Stop application
|
|
116
|
+
- `dokploy_application_delete` - Delete application
|
|
117
|
+
- `dokploy_application_update` - Update configuration
|
|
118
|
+
- `dokploy_application_saveEnvironment` - Set environment variables
|
|
119
|
+
- `dokploy_application_saveBuildType` - Configure build type
|
|
120
|
+
- `dokploy_application_readMonitoring` - Read metrics
|
|
121
|
+
- `dokploy_application_readTraefikConfig` - Read Traefik config
|
|
122
|
+
- `dokploy_application_updateTraefikConfig` - Update Traefik config
|
|
123
|
+
- `dokploy_application_reload` - Reload without redeploy
|
|
124
|
+
- `dokploy_application_markRunning` - Mark as running
|
|
125
|
+
- `dokploy_application_refreshToken` - Refresh webhook token
|
|
126
|
+
- `dokploy_application_cleanQueues` - Clean build queues
|
|
127
|
+
- `dokploy_application_killBuild` - Kill running build
|
|
128
|
+
- `dokploy_application_move` - Move to different environment
|
|
129
|
+
- `dokploy_application_cancelDeployment` - Cancel ongoing deployment
|
|
130
|
+
|
|
131
|
+
### Docker Compose (12 tools)
|
|
132
|
+
|
|
133
|
+
- `dokploy_compose_create` - Create compose service
|
|
134
|
+
- `dokploy_compose_get` - Get compose details
|
|
135
|
+
- `dokploy_compose_update` - Update configuration
|
|
136
|
+
- `dokploy_compose_delete` - Delete compose service
|
|
137
|
+
- `dokploy_compose_deploy` - Deploy compose service
|
|
138
|
+
- `dokploy_compose_redeploy` - Redeploy compose service
|
|
139
|
+
- `dokploy_compose_start` - Start compose service
|
|
140
|
+
- `dokploy_compose_stop` - Stop compose service
|
|
141
|
+
- `dokploy_compose_loadServices` - List services in compose file
|
|
142
|
+
- `dokploy_compose_loadMounts` - List mounts for a service
|
|
143
|
+
- `dokploy_compose_getDefaultCommand` - Get default command
|
|
144
|
+
- `dokploy_compose_move` - Move to different environment
|
|
145
|
+
|
|
146
|
+
### Databases - Unified (13 tools)
|
|
147
|
+
|
|
148
|
+
All database tools accept a `dbType` parameter: `postgres`, `mysql`, `mariadb`, `mongo`, or `redis`.
|
|
149
|
+
|
|
150
|
+
- `dokploy_database_create` - Create database service
|
|
151
|
+
- `dokploy_database_get` - Get database details
|
|
152
|
+
- `dokploy_database_deploy` - Deploy database
|
|
153
|
+
- `dokploy_database_start` - Start database
|
|
154
|
+
- `dokploy_database_stop` - Stop database
|
|
155
|
+
- `dokploy_database_remove` - Remove database
|
|
156
|
+
- `dokploy_database_reload` - Reload database
|
|
157
|
+
- `dokploy_database_update` - Update configuration
|
|
158
|
+
- `dokploy_database_rebuild` - Rebuild container
|
|
159
|
+
- `dokploy_database_move` - Move to different environment
|
|
160
|
+
- `dokploy_database_changeStatus` - Change status
|
|
161
|
+
- `dokploy_database_saveEnvironment` - Set environment variables
|
|
162
|
+
- `dokploy_database_saveExternalPort` - Set external port
|
|
163
|
+
|
|
164
|
+
### Deployments (5 tools)
|
|
165
|
+
|
|
166
|
+
- `dokploy_deployment_list` - List deployments for an app
|
|
167
|
+
- `dokploy_deployment_listByCompose` - List compose deployments
|
|
168
|
+
- `dokploy_deployment_listByServer` - List server deployments
|
|
169
|
+
- `dokploy_deployment_listByType` - List by resource type
|
|
170
|
+
- `dokploy_deployment_killProcess` - Kill deployment process
|
|
171
|
+
|
|
172
|
+
### Docker (7 tools)
|
|
173
|
+
|
|
174
|
+
- `dokploy_docker_getContainers` - List all containers
|
|
175
|
+
- `dokploy_docker_restartContainer` - Restart a container
|
|
176
|
+
- `dokploy_docker_getConfig` - Get container config
|
|
177
|
+
- `dokploy_docker_getByAppNameMatch` - Find containers by name
|
|
178
|
+
- `dokploy_docker_getByAppLabel` - Find containers by label
|
|
179
|
+
- `dokploy_docker_getStackContainers` - Get stack containers
|
|
180
|
+
- `dokploy_docker_getServiceContainers` - Get service containers
|
|
181
|
+
|
|
182
|
+
### Domains (9 tools)
|
|
183
|
+
|
|
184
|
+
- `dokploy_domain_create` - Create a domain
|
|
185
|
+
- `dokploy_domain_listByApplication` - List app domains
|
|
186
|
+
- `dokploy_domain_listByCompose` - List compose domains
|
|
187
|
+
- `dokploy_domain_get` - Get domain details
|
|
188
|
+
- `dokploy_domain_update` - Update domain
|
|
189
|
+
- `dokploy_domain_delete` - Delete domain
|
|
190
|
+
- `dokploy_domain_generateDomain` - Auto-generate domain
|
|
191
|
+
- `dokploy_domain_canGenerateTraefikMe` - Check traefik.me availability
|
|
192
|
+
- `dokploy_domain_validate` - Validate DNS configuration
|
|
193
|
+
|
|
194
|
+
### Servers (8 tools)
|
|
195
|
+
|
|
196
|
+
- `dokploy_server_list` - List all servers
|
|
197
|
+
- `dokploy_server_get` - Get server details
|
|
198
|
+
- `dokploy_server_create` - Add a remote server
|
|
199
|
+
- `dokploy_server_update` - Update server config
|
|
200
|
+
- `dokploy_server_remove` - Remove a server
|
|
201
|
+
- `dokploy_server_count` - Get server count
|
|
202
|
+
- `dokploy_server_publicIp` - Get public IP
|
|
203
|
+
- `dokploy_server_getMetrics` - Get server metrics
|
|
204
|
+
|
|
205
|
+
### Settings (7 tools)
|
|
206
|
+
|
|
207
|
+
- `dokploy_settings_health` - Health check
|
|
208
|
+
- `dokploy_settings_getDokployVersion` - Get version
|
|
209
|
+
- `dokploy_settings_getIp` - Get server IP
|
|
210
|
+
- `dokploy_settings_cleanAll` - Run all cleanup tasks
|
|
211
|
+
- `dokploy_settings_cleanUnusedImages` - Clean unused images
|
|
212
|
+
- `dokploy_settings_reloadServer` - Reload server
|
|
213
|
+
- `dokploy_settings_reloadTraefik` - Reload Traefik
|
|
214
|
+
|
|
215
|
+
### Backups (6 tools)
|
|
216
|
+
|
|
217
|
+
- `dokploy_backup_create` - Create backup schedule
|
|
218
|
+
- `dokploy_backup_get` - Get backup details
|
|
219
|
+
- `dokploy_backup_update` - Update backup config
|
|
220
|
+
- `dokploy_backup_remove` - Remove backup config
|
|
221
|
+
- `dokploy_backup_listFiles` - List backup files
|
|
222
|
+
- `dokploy_backup_manualBackup` - Trigger manual backup
|
|
223
|
+
|
|
224
|
+
### Environments (6 tools)
|
|
225
|
+
|
|
226
|
+
- `dokploy_environment_create` - Create environment
|
|
227
|
+
- `dokploy_environment_get` - Get environment details
|
|
228
|
+
- `dokploy_environment_listByProject` - List project environments
|
|
229
|
+
- `dokploy_environment_remove` - Remove environment
|
|
230
|
+
- `dokploy_environment_update` - Update environment
|
|
231
|
+
- `dokploy_environment_duplicate` - Duplicate environment
|
|
232
|
+
|
|
233
|
+
### Infrastructure (8 tools)
|
|
234
|
+
|
|
235
|
+
- `dokploy_port_create` - Create port mapping
|
|
236
|
+
- `dokploy_port_delete` - Delete port mapping
|
|
237
|
+
- `dokploy_security_create` - Create basic auth
|
|
238
|
+
- `dokploy_security_delete` - Remove basic auth
|
|
239
|
+
- `dokploy_certificate_list` - List certificates
|
|
240
|
+
- `dokploy_certificate_get` - Get certificate details
|
|
241
|
+
- `dokploy_certificate_create` - Upload certificate
|
|
242
|
+
- `dokploy_certificate_remove` - Remove certificate
|
|
243
|
+
|
|
244
|
+
## Usage Examples
|
|
245
|
+
|
|
246
|
+
### Deploy an application
|
|
247
|
+
|
|
248
|
+
```
|
|
249
|
+
"Deploy my web app" → dokploy_application_deploy { applicationId: "app-123" }
|
|
250
|
+
```
|
|
251
|
+
|
|
252
|
+
### Start a PostgreSQL database
|
|
253
|
+
|
|
254
|
+
```
|
|
255
|
+
"Start the postgres database" → dokploy_database_start { dbType: "postgres", databaseId: "db-456" }
|
|
256
|
+
```
|
|
257
|
+
|
|
258
|
+
### Check system health
|
|
259
|
+
|
|
260
|
+
```
|
|
261
|
+
"Is Dokploy healthy?" → dokploy_settings_health {}
|
|
262
|
+
```
|
|
263
|
+
|
|
264
|
+
### List all containers
|
|
265
|
+
|
|
266
|
+
```
|
|
267
|
+
"What containers are running?" → dokploy_docker_getContainers {}
|
|
268
|
+
```
|
|
269
|
+
|
|
270
|
+
## Development
|
|
271
|
+
|
|
272
|
+
```bash
|
|
273
|
+
pnpm install
|
|
274
|
+
pnpm dev # Development mode with watch
|
|
275
|
+
pnpm validate # Format + lint + test + build
|
|
276
|
+
pnpm inspect # Open MCP Inspector
|
|
277
|
+
```
|
|
278
|
+
|
|
279
|
+
## License
|
|
280
|
+
|
|
281
|
+
MIT
|
package/dist/bin.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { };
|
package/dist/bin.js
ADDED
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
//#region src/bin.ts
|
|
3
|
+
if (!process.env.TRANSPORT_TYPE) process.env.TRANSPORT_TYPE = "stdio";
|
|
4
|
+
const args = process.argv.slice(2);
|
|
5
|
+
if (args.includes("--version") || args.includes("-v")) {
|
|
6
|
+
console.log("1.0.0");
|
|
7
|
+
process.exit(0);
|
|
8
|
+
}
|
|
9
|
+
if (args.includes("--help") || args.includes("-h")) {
|
|
10
|
+
console.log(`
|
|
11
|
+
Dokploy MCP Server v1.0.0
|
|
12
|
+
|
|
13
|
+
Usage: dokploy-mcp-server [options]
|
|
14
|
+
|
|
15
|
+
Options:
|
|
16
|
+
-v, --version Show version number
|
|
17
|
+
-h, --help Show help
|
|
18
|
+
|
|
19
|
+
Environment Variables:
|
|
20
|
+
DOKPLOY_URL Dokploy instance URL (required, e.g., https://dokploy.example.com)
|
|
21
|
+
DOKPLOY_API_KEY API key for authentication (required)
|
|
22
|
+
TRANSPORT_TYPE Transport mode: stdio (default) or httpStream
|
|
23
|
+
PORT HTTP port when using httpStream (default: 3000)
|
|
24
|
+
HOST HTTP host when using httpStream (default: 0.0.0.0)
|
|
25
|
+
|
|
26
|
+
For more information, visit: https://github.com/jordanburke/dokploy-mcp-server
|
|
27
|
+
`);
|
|
28
|
+
process.exit(0);
|
|
29
|
+
}
|
|
30
|
+
async function main() {
|
|
31
|
+
await import("./index.js");
|
|
32
|
+
}
|
|
33
|
+
main().then();
|
|
34
|
+
|
|
35
|
+
//#endregion
|
|
36
|
+
export { };
|
|
37
|
+
//# sourceMappingURL=bin.js.map
|
package/dist/bin.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bin.js","names":[],"sources":["../src/bin.ts"],"sourcesContent":["#!/usr/bin/env node\n\ndeclare const __VERSION__: string\n\nif (!process.env.TRANSPORT_TYPE) {\n process.env.TRANSPORT_TYPE = \"stdio\"\n}\n\nconst args = process.argv.slice(2)\n\nif (args.includes(\"--version\") || args.includes(\"-v\")) {\n console.log(__VERSION__)\n process.exit(0)\n}\n\nif (args.includes(\"--help\") || args.includes(\"-h\")) {\n console.log(`\nDokploy MCP Server v${__VERSION__}\n\nUsage: dokploy-mcp-server [options]\n\nOptions:\n -v, --version Show version number\n -h, --help Show help\n\nEnvironment Variables:\n DOKPLOY_URL Dokploy instance URL (required, e.g., https://dokploy.example.com)\n DOKPLOY_API_KEY API key for authentication (required)\n TRANSPORT_TYPE Transport mode: stdio (default) or httpStream\n PORT HTTP port when using httpStream (default: 3000)\n HOST HTTP host when using httpStream (default: 0.0.0.0)\n\nFor more information, visit: https://github.com/jordanburke/dokploy-mcp-server\n`)\n process.exit(0)\n}\n\nasync function main() {\n await import(\"./index.js\")\n}\n\nmain().then()\n"],"mappings":";;AAIA,IAAI,CAAC,QAAQ,IAAI,eACf,SAAQ,IAAI,iBAAiB;AAG/B,MAAM,OAAO,QAAQ,KAAK,MAAM,EAAE;AAElC,IAAI,KAAK,SAAS,YAAY,IAAI,KAAK,SAAS,KAAK,EAAE;AACrD,SAAQ,YAAgB;AACxB,SAAQ,KAAK,EAAE;;AAGjB,IAAI,KAAK,SAAS,SAAS,IAAI,KAAK,SAAS,KAAK,EAAE;AAClD,SAAQ,IAAI;;;;;;;;;;;;;;;;;EAiBZ;AACA,SAAQ,KAAK,EAAE;;AAGjB,eAAe,OAAO;AACpB,OAAM,OAAO;;AAGf,MAAM,CAAC,MAAM"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { };
|