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 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
@@ -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"}
@@ -0,0 +1 @@
1
+ export { };