mcp-dokploy-fullapi-proxy 1.0.1
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/.github/workflows/publish.yml +30 -0
- package/README.md +525 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +105 -0
- package/dist/index.js.map +1 -0
- package/package.json +28 -0
- package/skill/SKILL.md +76 -0
- package/skill/app.md +144 -0
- package/skill/compose.md +139 -0
- package/skill/database.md +339 -0
- package/skill/deployment.md +67 -0
- package/skill/docker.md +36 -0
- package/skill/dokploy-api.zip +0 -0
- package/skill/domain.md +49 -0
- package/skill/git.md +161 -0
- package/skill/infra.md +455 -0
- package/skill/notification.md +191 -0
- package/skill/project.md +65 -0
- package/skill/server.md +122 -0
- package/skill/settings.md +376 -0
- package/skill/user.md +140 -0
- package/src/index.ts +111 -0
- package/tsconfig.json +17 -0
package/skill/SKILL.md
ADDED
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: dokploy-api
|
|
3
|
+
description: >
|
|
4
|
+
Use this skill when the user asks to manage Dokploy infrastructure: deploy apps,
|
|
5
|
+
manage compose services, configure domains, databases, servers, notifications,
|
|
6
|
+
users, git providers, or any Dokploy administration task. Provides complete API
|
|
7
|
+
reference for all 436 Dokploy tRPC endpoints accessible via the dokploy MCP tool.
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# Dokploy MCP Light - API Skill
|
|
11
|
+
|
|
12
|
+
## Tool
|
|
13
|
+
One single MCP tool: `dokploy(method, params?)`
|
|
14
|
+
- `method`: tRPC path like `project.all`, `application.deploy`
|
|
15
|
+
- `params`: JSON object with parameters (optional for GET endpoints)
|
|
16
|
+
|
|
17
|
+
## Routing
|
|
18
|
+
Read the matching reference file for the task:
|
|
19
|
+
|
|
20
|
+
| Task | File | Endpoints |
|
|
21
|
+
|------|------|-----------|
|
|
22
|
+
| Projects & Environments | `project.md` | 12 |
|
|
23
|
+
| Applications (Deploy, Config, Git, Traefik) | `app.md` | 28 |
|
|
24
|
+
| Compose Services | `compose.md` | 27 |
|
|
25
|
+
| Domains & SSL | `domain.md` | 9 |
|
|
26
|
+
| Databases (PG, MySQL, MariaDB, Mongo, Redis) | `database.md` | 65 |
|
|
27
|
+
| Deployments, Preview, Rollback | `deployment.md` | 12 |
|
|
28
|
+
| Docker Container | `docker.md` | 7 |
|
|
29
|
+
| Server, Cluster, Swarm | `server.md` | 23 |
|
|
30
|
+
| Notifications (Slack, Discord, Telegram, Email, ...) | `notification.md` | 38 |
|
|
31
|
+
| Settings, Admin, Stripe | `settings.md` | 73 |
|
|
32
|
+
| User & Organization | `user.md` | 27 |
|
|
33
|
+
| Git Providers (GitHub, GitLab, Bitbucket, Gitea) | `git.md` | 30 |
|
|
34
|
+
| Mounts, Redirects, Security, Ports, Backups, Schedule, Certs, Registry, SSH, Destinations, Patches, Volume Backups, AI | `infra.md` | 85 |
|
|
35
|
+
|
|
36
|
+
## Examples
|
|
37
|
+
```
|
|
38
|
+
dokploy("project.all")
|
|
39
|
+
dokploy("application.deploy", { applicationId: "abc123" })
|
|
40
|
+
dokploy("compose.update", { composeId: "xyz", composeFile: "..." })
|
|
41
|
+
dokploy("postgres.create", { name: "mydb", environmentId: "..." })
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
## Notes
|
|
45
|
+
- GET endpoints (*.all, *.one, etc.): no params or query params required
|
|
46
|
+
- POST endpoints (*.create, *.update, *.deploy, etc.): params as JSON body
|
|
47
|
+
- IDs are always strings
|
|
48
|
+
- Environment variables as multiline string: "KEY=val\nKEY2=val2"
|
|
49
|
+
- On errors: read the API error message and correct params
|
|
50
|
+
|
|
51
|
+
## pick - Response Filter (Token Optimization)
|
|
52
|
+
Optional `pick` parameter filters the API response clientside to specific fields.
|
|
53
|
+
Use this to avoid token waste on large responses like `project.all`.
|
|
54
|
+
|
|
55
|
+
**Syntax:** `pick: ["field1", "field2"]`
|
|
56
|
+
|
|
57
|
+
**How it works:** Recursively traverses the entire JSON structure and retains only objects/arrays
|
|
58
|
+
containing the specified field names. Empty objects/arrays are removed.
|
|
59
|
+
|
|
60
|
+
**Typical use cases:**
|
|
61
|
+
```
|
|
62
|
+
// Extract only MySQL instances from all projects
|
|
63
|
+
dokploy("project.all", {}, pick: ["mysqlId", "name", "appName", "externalPort", "applicationStatus"])
|
|
64
|
+
|
|
65
|
+
// Only Postgres IDs and names
|
|
66
|
+
dokploy("project.all", {}, pick: ["postgresId", "name"])
|
|
67
|
+
|
|
68
|
+
// Backups of a MySQL instance - only essential fields
|
|
69
|
+
dokploy("mysql.one", { mysqlId: "..." }, pick: ["backupId", "schedule", "enabled", "database", "deployments"])
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
**When to use pick:**
|
|
73
|
+
- `project.all` -> ALWAYS use pick when looking for a specific resource type (mysql, postgres, redis, etc.)
|
|
74
|
+
- There is NO `mysql.all`, `postgres.all` etc. — `project.all` with pick is the only way to list DB instances
|
|
75
|
+
- `mysql.one` / `postgres.one` -> when only a sub-section (backups, mounts, etc.) is needed
|
|
76
|
+
- Any endpoint returning large nested objects
|
package/skill/app.md
ADDED
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
# Application
|
|
2
|
+
|
|
3
|
+
> **Note:** There is NO `application.all`. To list applications, use `project.all` with `pick: ["applicationId", "name", "appName", "applicationStatus"]`.
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
### application.create
|
|
7
|
+
```
|
|
8
|
+
dokploy("application.create", { name: "...", environmentId: "...", appName?: "...", description?: "...", serverId?: "..." })
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
### application.one
|
|
12
|
+
```
|
|
13
|
+
dokploy("application.one", { applicationId: "..." })
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
### application.reload
|
|
17
|
+
```
|
|
18
|
+
dokploy("application.reload", { appName: "...", applicationId: "..." })
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
### application.delete
|
|
22
|
+
```
|
|
23
|
+
dokploy("application.delete", { applicationId: "..." })
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
### application.stop
|
|
27
|
+
```
|
|
28
|
+
dokploy("application.stop", { applicationId: "..." })
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
### application.start
|
|
32
|
+
```
|
|
33
|
+
dokploy("application.start", { applicationId: "..." })
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
### application.redeploy
|
|
37
|
+
```
|
|
38
|
+
dokploy("application.redeploy", { applicationId: "...", title?: "...", description?: "..." })
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
### application.saveEnvironment
|
|
42
|
+
```
|
|
43
|
+
dokploy("application.saveEnvironment", { applicationId: "...", env: "...", buildArgs: "...", buildSecrets: "...", createEnvFile: "..." })
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
### application.saveBuildType
|
|
47
|
+
```
|
|
48
|
+
dokploy("application.saveBuildType", { applicationId: "...", buildType: "...", dockerfile: "...", dockerContextPath: "...", dockerBuildStage: "...", herokuVersion: "...", railpackVersion: "...", publishDirectory?: "...", isStaticSpa?: "..." })
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
### application.saveGithubProvider
|
|
52
|
+
```
|
|
53
|
+
dokploy("application.saveGithubProvider", { applicationId: "...", repository: "...", branch: "...", owner: "...", buildPath: "...", githubId: "...", watchPaths: "...", enableSubmodules: "...", triggerType?: "..." })
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
### application.saveGitlabProvider
|
|
57
|
+
```
|
|
58
|
+
dokploy("application.saveGitlabProvider", { applicationId: "...", gitlabBranch: "...", gitlabBuildPath: "...", gitlabOwner: "...", gitlabRepository: "...", gitlabId: "...", gitlabProjectId: "...", gitlabPathNamespace: "...", watchPaths: "...", enableSubmodules: "..." })
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
### application.saveBitbucketProvider
|
|
62
|
+
```
|
|
63
|
+
dokploy("application.saveBitbucketProvider", { bitbucketBranch: "...", bitbucketBuildPath: "...", bitbucketOwner: "...", bitbucketRepository: "...", bitbucketRepositorySlug: "...", bitbucketId: "...", applicationId: "...", watchPaths: "...", enableSubmodules: "..." })
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
### application.saveGiteaProvider
|
|
67
|
+
```
|
|
68
|
+
dokploy("application.saveGiteaProvider", { applicationId: "...", giteaBranch: "...", giteaBuildPath: "...", giteaOwner: "...", giteaRepository: "...", giteaId: "...", watchPaths: "...", enableSubmodules: "..." })
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
### application.saveDockerProvider
|
|
72
|
+
```
|
|
73
|
+
dokploy("application.saveDockerProvider", { dockerImage: "...", applicationId: "...", username: "...", password: "...", registryUrl: "..." })
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
### application.saveGitProvider
|
|
77
|
+
```
|
|
78
|
+
dokploy("application.saveGitProvider", { customGitBranch: "...", applicationId: "...", customGitBuildPath: "...", customGitUrl: "...", watchPaths: "...", enableSubmodules: "...", customGitSSHKeyId?: "..." })
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
### application.disconnectGitProvider
|
|
82
|
+
```
|
|
83
|
+
dokploy("application.disconnectGitProvider", { applicationId: "..." })
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
### application.markRunning
|
|
87
|
+
```
|
|
88
|
+
dokploy("application.markRunning", { applicationId: "..." })
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
### application.update
|
|
92
|
+
```
|
|
93
|
+
dokploy("application.update", { applicationId: "...", name?: "...", appName?: "...", description?: "...", env?: "...", previewEnv?: "...", watchPaths?: "...", previewBuildArgs?: "...", previewBuildSecrets?: "...", previewLabels?: "...", previewWildcard?: "...", previewPort?: "...", previewHttps?: "...", previewPath?: "...", previewCertificateType?: "...", previewCustomCertResolver?: "...", previewLimit?: "...", isPreviewDeploymentsActive?: "...", previewRequireCollaboratorPermissions?: "...", rollbackActive?: "...", buildArgs?: "...", buildSecrets?: "...", memoryReservation?: "...", memoryLimit?: "...", cpuReservation?: "...", cpuLimit?: "...", title?: "...", enabled?: "...", subtitle?: "...", command?: "...", args?: "...", refreshToken?: "...", sourceType?: "...", cleanCache?: "...", repository?: "...", owner?: "...", branch?: "...", buildPath?: "...", triggerType?: "...", autoDeploy?: "...", gitlabProjectId?: "...", gitlabRepository?: "...", gitlabOwner?: "...", gitlabBranch?: "...", gitlabBuildPath?: "...", gitlabPathNamespace?: "...", giteaRepository?: "...", giteaOwner?: "...", giteaBranch?: "...", giteaBuildPath?: "...", bitbucketRepository?: "...", bitbucketRepositorySlug?: "...", bitbucketOwner?: "...", bitbucketBranch?: "...", bitbucketBuildPath?: "...", username?: "...", password?: "...", dockerImage?: "...", registryUrl?: "...", customGitUrl?: "...", customGitBranch?: "...", customGitBuildPath?: "...", customGitSSHKeyId?: "...", enableSubmodules?: "...", dockerfile?: "...", dockerContextPath?: "...", dockerBuildStage?: "...", dropBuildPath?: "...", healthCheckSwarm?: "...", restartPolicySwarm?: "...", placementSwarm?: "...", updateConfigSwarm?: "...", rollbackConfigSwarm?: "...", modeSwarm?: "...", labelsSwarm?: "...", networkSwarm?: "...", stopGracePeriodSwarm?: "...", endpointSpecSwarm?: "...", ulimitsSwarm?: "...", replicas?: "...", applicationStatus?: "...", buildType?: "...", railpackVersion?: "...", herokuVersion?: "...", publishDirectory?: "...", isStaticSpa?: "...", createEnvFile?: "...", createdAt?: "...", registryId?: "...", rollbackRegistryId?: "...", environmentId?: "...", githubId?: "...", gitlabId?: "...", giteaId?: "...", bitbucketId?: "...", buildServerId?: "...", buildRegistryId?: "..." })
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
### application.refreshToken
|
|
97
|
+
```
|
|
98
|
+
dokploy("application.refreshToken", { applicationId: "..." })
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
### application.deploy
|
|
102
|
+
```
|
|
103
|
+
dokploy("application.deploy", { applicationId: "...", title?: "...", description?: "..." })
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
### application.cleanQueues
|
|
107
|
+
```
|
|
108
|
+
dokploy("application.cleanQueues", { applicationId: "..." })
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
### application.clearDeployments
|
|
112
|
+
```
|
|
113
|
+
dokploy("application.clearDeployments", { applicationId: "..." })
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
### application.killBuild
|
|
117
|
+
```
|
|
118
|
+
dokploy("application.killBuild", { applicationId: "..." })
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
### application.readTraefikConfig
|
|
122
|
+
```
|
|
123
|
+
dokploy("application.readTraefikConfig", { applicationId: "..." })
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
### application.updateTraefikConfig
|
|
127
|
+
```
|
|
128
|
+
dokploy("application.updateTraefikConfig", { applicationId: "...", traefikConfig: "..." })
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
### application.readAppMonitoring
|
|
132
|
+
```
|
|
133
|
+
dokploy("application.readAppMonitoring", { appName: "..." })
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
### application.move
|
|
137
|
+
```
|
|
138
|
+
dokploy("application.move", { applicationId: "...", targetEnvironmentId: "..." })
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
### application.cancelDeployment
|
|
142
|
+
```
|
|
143
|
+
dokploy("application.cancelDeployment", { applicationId: "..." })
|
|
144
|
+
```
|
package/skill/compose.md
ADDED
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
# Compose
|
|
2
|
+
|
|
3
|
+
> **Note:** There is NO `compose.all`. To list compose services, use `project.all` with `pick: ["composeId", "name", "appName"]`.
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
### compose.create
|
|
7
|
+
```
|
|
8
|
+
dokploy("compose.create", { name: "...", environmentId: "...", description?: "...", composeType?: "...", appName?: "...", serverId?: "...", composeFile?: "..." })
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
### compose.one
|
|
12
|
+
```
|
|
13
|
+
dokploy("compose.one", { composeId: "..." })
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
### compose.update
|
|
17
|
+
```
|
|
18
|
+
dokploy("compose.update", { composeId: "...", name?: "...", appName?: "...", description?: "...", env?: "...", composeFile?: "...", refreshToken?: "...", sourceType?: "...", composeType?: "...", repository?: "...", owner?: "...", branch?: "...", autoDeploy?: "...", gitlabProjectId?: "...", gitlabRepository?: "...", gitlabOwner?: "...", gitlabBranch?: "...", gitlabPathNamespace?: "...", bitbucketRepository?: "...", bitbucketRepositorySlug?: "...", bitbucketOwner?: "...", bitbucketBranch?: "...", giteaRepository?: "...", giteaOwner?: "...", giteaBranch?: "...", customGitUrl?: "...", customGitBranch?: "...", customGitSSHKeyId?: "...", command?: "...", enableSubmodules?: "...", composePath?: "...", suffix?: "...", randomize?: "...", isolatedDeployment?: "...", isolatedDeploymentsVolume?: "...", triggerType?: "...", composeStatus?: "...", environmentId?: "...", createdAt?: "...", watchPaths?: "...", githubId?: "...", gitlabId?: "...", bitbucketId?: "...", giteaId?: "..." })
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
### compose.delete
|
|
22
|
+
```
|
|
23
|
+
dokploy("compose.delete", { composeId: "...", deleteVolumes: "..." })
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
### compose.cleanQueues
|
|
27
|
+
```
|
|
28
|
+
dokploy("compose.cleanQueues", { composeId: "..." })
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
### compose.clearDeployments
|
|
32
|
+
```
|
|
33
|
+
dokploy("compose.clearDeployments", { composeId: "..." })
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
### compose.killBuild
|
|
37
|
+
```
|
|
38
|
+
dokploy("compose.killBuild", { composeId: "..." })
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
### compose.loadServices
|
|
42
|
+
```
|
|
43
|
+
dokploy("compose.loadServices", { composeId: "...", type?: "..." })
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
### compose.loadMountsByService
|
|
47
|
+
```
|
|
48
|
+
dokploy("compose.loadMountsByService", { composeId: "...", serviceName: "..." })
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
### compose.fetchSourceType
|
|
52
|
+
```
|
|
53
|
+
dokploy("compose.fetchSourceType", { composeId: "..." })
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
### compose.randomizeCompose
|
|
57
|
+
```
|
|
58
|
+
dokploy("compose.randomizeCompose", { composeId: "...", suffix?: "..." })
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
### compose.isolatedDeployment
|
|
62
|
+
```
|
|
63
|
+
dokploy("compose.isolatedDeployment", { composeId: "...", suffix?: "..." })
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
### compose.getConvertedCompose
|
|
67
|
+
```
|
|
68
|
+
dokploy("compose.getConvertedCompose", { composeId: "..." })
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
### compose.deploy
|
|
72
|
+
```
|
|
73
|
+
dokploy("compose.deploy", { composeId: "...", title?: "...", description?: "..." })
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
### compose.redeploy
|
|
77
|
+
```
|
|
78
|
+
dokploy("compose.redeploy", { composeId: "...", title?: "...", description?: "..." })
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
### compose.stop
|
|
82
|
+
```
|
|
83
|
+
dokploy("compose.stop", { composeId: "..." })
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
### compose.start
|
|
87
|
+
```
|
|
88
|
+
dokploy("compose.start", { composeId: "..." })
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
### compose.getDefaultCommand
|
|
92
|
+
```
|
|
93
|
+
dokploy("compose.getDefaultCommand", { composeId: "..." })
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
### compose.refreshToken
|
|
97
|
+
```
|
|
98
|
+
dokploy("compose.refreshToken", { composeId: "..." })
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
### compose.deployTemplate
|
|
102
|
+
```
|
|
103
|
+
dokploy("compose.deployTemplate", { environmentId: "...", id: "...", serverId?: "...", baseUrl?: "..." })
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
### compose.templates
|
|
107
|
+
```
|
|
108
|
+
dokploy("compose.templates", { baseUrl?: "..." })
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
### compose.getTags
|
|
112
|
+
```
|
|
113
|
+
dokploy("compose.getTags", { baseUrl?: "..." })
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
### compose.disconnectGitProvider
|
|
117
|
+
```
|
|
118
|
+
dokploy("compose.disconnectGitProvider", { composeId: "..." })
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
### compose.move
|
|
122
|
+
```
|
|
123
|
+
dokploy("compose.move", { composeId: "...", targetEnvironmentId: "..." })
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
### compose.processTemplate
|
|
127
|
+
```
|
|
128
|
+
dokploy("compose.processTemplate", { base64: "...", composeId: "..." })
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
### compose.import
|
|
132
|
+
```
|
|
133
|
+
dokploy("compose.import", { base64: "...", composeId: "..." })
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
### compose.cancelDeployment
|
|
137
|
+
```
|
|
138
|
+
dokploy("compose.cancelDeployment", { composeId: "..." })
|
|
139
|
+
```
|