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/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
+ ```
@@ -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
+ ```