@vibetools/dokploy-mcp 2.1.1 → 2.2.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.
@@ -1,6 +1,6 @@
1
- import { createGeneratedDokployRuntime } from '../../generated/dokploy-sdk.js';
2
- import { buildHelpers } from '../context/execute-context.js';
1
+ import { createExecuteContext } from '../context/execute-context.js';
3
2
  import { createSearchCatalogView } from '../context/search-context.js';
3
+ import { resolveSandboxLimits } from './limits.js';
4
4
  import { runSandboxedFunction } from './runner.js';
5
5
  const pendingCalls = new Map();
6
6
  let requestIdCounter = 0;
@@ -44,10 +44,27 @@ process.on('message', async (message) => {
44
44
  const limits = payload.limits ?? undefined;
45
45
  const context = payload.mode === 'search'
46
46
  ? { catalog: createSearchCatalogView() }
47
- : {
48
- dokploy: createGeneratedDokployRuntime(rpcCall),
49
- helpers: buildHelpers(),
50
- };
47
+ : (() => {
48
+ const rpcExecutor = async (procedure, input) => {
49
+ const data = await rpcCall(procedure, input ?? {});
50
+ return {
51
+ data: data,
52
+ trace: {
53
+ procedure,
54
+ method: 'GET',
55
+ startedAt: Date.now(),
56
+ finishedAt: Date.now(),
57
+ durationMs: 0,
58
+ },
59
+ };
60
+ };
61
+ const maxCalls = limits?.maxCalls ?? resolveSandboxLimits().maxCalls;
62
+ const ctx = createExecuteContext(rpcExecutor, maxCalls);
63
+ return {
64
+ dokploy: ctx.dokploy,
65
+ helpers: ctx.helpers,
66
+ };
67
+ })();
51
68
  const execution = await runSandboxedFunction({
52
69
  code: String(payload.code),
53
70
  context,
@@ -2,578 +2,7 @@ import { type ToolDefinition } from '../../mcp/tool-factory.js';
2
2
  import type { GatewayCallResult } from '../gateway/api-gateway.js';
3
3
  import type { SandboxHost } from '../sandbox/host.js';
4
4
  type CallExecutor = (procedure: string, input?: Record<string, unknown>) => Promise<GatewayCallResult>;
5
- export declare function buildExecuteContext(executor: CallExecutor, maxCalls?: number): {
6
- dokploy: {
7
- call: (procedure: string, input?: Record<string, unknown>) => Promise<unknown>;
8
- admin: {
9
- setupMonitoring: (input?: {}) => Promise<unknown>;
10
- };
11
- ai: {
12
- create: (input?: {}) => Promise<unknown>;
13
- delete: (input?: {}) => Promise<unknown>;
14
- deploy: (input?: {}) => Promise<unknown>;
15
- get: (input?: {}) => Promise<unknown>;
16
- getAll: (input?: {}) => Promise<unknown>;
17
- getModels: (input?: {}) => Promise<unknown>;
18
- one: (input?: {}) => Promise<unknown>;
19
- suggest: (input?: {}) => Promise<unknown>;
20
- update: (input?: {}) => Promise<unknown>;
21
- };
22
- application: {
23
- cancelDeployment: (input?: {}) => Promise<unknown>;
24
- cleanQueues: (input?: {}) => Promise<unknown>;
25
- clearDeployments: (input?: {}) => Promise<unknown>;
26
- create: (input?: {}) => Promise<unknown>;
27
- delete: (input?: {}) => Promise<unknown>;
28
- deploy: (input?: {}) => Promise<unknown>;
29
- disconnectGitProvider: (input?: {}) => Promise<unknown>;
30
- killBuild: (input?: {}) => Promise<unknown>;
31
- markRunning: (input?: {}) => Promise<unknown>;
32
- move: (input?: {}) => Promise<unknown>;
33
- one: (input?: {}) => Promise<unknown>;
34
- readAppMonitoring: (input?: {}) => Promise<unknown>;
35
- readTraefikConfig: (input?: {}) => Promise<unknown>;
36
- redeploy: (input?: {}) => Promise<unknown>;
37
- refreshToken: (input?: {}) => Promise<unknown>;
38
- reload: (input?: {}) => Promise<unknown>;
39
- saveBitbucketProvider: (input?: {}) => Promise<unknown>;
40
- saveBuildType: (input?: {}) => Promise<unknown>;
41
- saveDockerProvider: (input?: {}) => Promise<unknown>;
42
- saveEnvironment: (input?: {}) => Promise<unknown>;
43
- saveGitProvider: (input?: {}) => Promise<unknown>;
44
- saveGiteaProvider: (input?: {}) => Promise<unknown>;
45
- saveGithubProvider: (input?: {}) => Promise<unknown>;
46
- saveGitlabProvider: (input?: {}) => Promise<unknown>;
47
- search: (input?: {}) => Promise<unknown>;
48
- start: (input?: {}) => Promise<unknown>;
49
- stop: (input?: {}) => Promise<unknown>;
50
- update: (input?: {}) => Promise<unknown>;
51
- updateTraefikConfig: (input?: {}) => Promise<unknown>;
52
- };
53
- auditLog: {
54
- all: (input?: {}) => Promise<unknown>;
55
- };
56
- backup: {
57
- create: (input?: {}) => Promise<unknown>;
58
- listBackupFiles: (input?: {}) => Promise<unknown>;
59
- manualBackupCompose: (input?: {}) => Promise<unknown>;
60
- manualBackupMariadb: (input?: {}) => Promise<unknown>;
61
- manualBackupMongo: (input?: {}) => Promise<unknown>;
62
- manualBackupMySql: (input?: {}) => Promise<unknown>;
63
- manualBackupPostgres: (input?: {}) => Promise<unknown>;
64
- manualBackupWebServer: (input?: {}) => Promise<unknown>;
65
- one: (input?: {}) => Promise<unknown>;
66
- remove: (input?: {}) => Promise<unknown>;
67
- update: (input?: {}) => Promise<unknown>;
68
- };
69
- bitbucket: {
70
- bitbucketProviders: (input?: {}) => Promise<unknown>;
71
- create: (input?: {}) => Promise<unknown>;
72
- getBitbucketBranches: (input?: {}) => Promise<unknown>;
73
- getBitbucketRepositories: (input?: {}) => Promise<unknown>;
74
- one: (input?: {}) => Promise<unknown>;
75
- testConnection: (input?: {}) => Promise<unknown>;
76
- update: (input?: {}) => Promise<unknown>;
77
- };
78
- certificates: {
79
- all: (input?: {}) => Promise<unknown>;
80
- create: (input?: {}) => Promise<unknown>;
81
- one: (input?: {}) => Promise<unknown>;
82
- remove: (input?: {}) => Promise<unknown>;
83
- };
84
- cluster: {
85
- addManager: (input?: {}) => Promise<unknown>;
86
- addWorker: (input?: {}) => Promise<unknown>;
87
- getNodes: (input?: {}) => Promise<unknown>;
88
- removeWorker: (input?: {}) => Promise<unknown>;
89
- };
90
- compose: {
91
- cancelDeployment: (input?: {}) => Promise<unknown>;
92
- cleanQueues: (input?: {}) => Promise<unknown>;
93
- clearDeployments: (input?: {}) => Promise<unknown>;
94
- create: (input?: {}) => Promise<unknown>;
95
- delete: (input?: {}) => Promise<unknown>;
96
- deploy: (input?: {}) => Promise<unknown>;
97
- deployTemplate: (input?: {}) => Promise<unknown>;
98
- disconnectGitProvider: (input?: {}) => Promise<unknown>;
99
- fetchSourceType: (input?: {}) => Promise<unknown>;
100
- getConvertedCompose: (input?: {}) => Promise<unknown>;
101
- getDefaultCommand: (input?: {}) => Promise<unknown>;
102
- getTags: (input?: {}) => Promise<unknown>;
103
- import: (input?: {}) => Promise<unknown>;
104
- isolatedDeployment: (input?: {}) => Promise<unknown>;
105
- killBuild: (input?: {}) => Promise<unknown>;
106
- loadMountsByService: (input?: {}) => Promise<unknown>;
107
- loadServices: (input?: {}) => Promise<unknown>;
108
- move: (input?: {}) => Promise<unknown>;
109
- one: (input?: {}) => Promise<unknown>;
110
- processTemplate: (input?: {}) => Promise<unknown>;
111
- randomizeCompose: (input?: {}) => Promise<unknown>;
112
- redeploy: (input?: {}) => Promise<unknown>;
113
- refreshToken: (input?: {}) => Promise<unknown>;
114
- search: (input?: {}) => Promise<unknown>;
115
- start: (input?: {}) => Promise<unknown>;
116
- stop: (input?: {}) => Promise<unknown>;
117
- templates: (input?: {}) => Promise<unknown>;
118
- update: (input?: {}) => Promise<unknown>;
119
- };
120
- customRole: {
121
- all: (input?: {}) => Promise<unknown>;
122
- create: (input?: {}) => Promise<unknown>;
123
- getStatements: (input?: {}) => Promise<unknown>;
124
- membersByRole: (input?: {}) => Promise<unknown>;
125
- remove: (input?: {}) => Promise<unknown>;
126
- update: (input?: {}) => Promise<unknown>;
127
- };
128
- deployment: {
129
- all: (input?: {}) => Promise<unknown>;
130
- allByCompose: (input?: {}) => Promise<unknown>;
131
- allByServer: (input?: {}) => Promise<unknown>;
132
- allByType: (input?: {}) => Promise<unknown>;
133
- allCentralized: (input?: {}) => Promise<unknown>;
134
- killProcess: (input?: {}) => Promise<unknown>;
135
- queueList: (input?: {}) => Promise<unknown>;
136
- removeDeployment: (input?: {}) => Promise<unknown>;
137
- };
138
- destination: {
139
- all: (input?: {}) => Promise<unknown>;
140
- create: (input?: {}) => Promise<unknown>;
141
- one: (input?: {}) => Promise<unknown>;
142
- remove: (input?: {}) => Promise<unknown>;
143
- testConnection: (input?: {}) => Promise<unknown>;
144
- update: (input?: {}) => Promise<unknown>;
145
- };
146
- docker: {
147
- getConfig: (input?: {}) => Promise<unknown>;
148
- getContainers: (input?: {}) => Promise<unknown>;
149
- getContainersByAppLabel: (input?: {}) => Promise<unknown>;
150
- getContainersByAppNameMatch: (input?: {}) => Promise<unknown>;
151
- getServiceContainersByAppName: (input?: {}) => Promise<unknown>;
152
- getStackContainersByAppName: (input?: {}) => Promise<unknown>;
153
- restartContainer: (input?: {}) => Promise<unknown>;
154
- };
155
- domain: {
156
- byApplicationId: (input?: {}) => Promise<unknown>;
157
- byComposeId: (input?: {}) => Promise<unknown>;
158
- canGenerateTraefikMeDomains: (input?: {}) => Promise<unknown>;
159
- create: (input?: {}) => Promise<unknown>;
160
- delete: (input?: {}) => Promise<unknown>;
161
- generateDomain: (input?: {}) => Promise<unknown>;
162
- one: (input?: {}) => Promise<unknown>;
163
- update: (input?: {}) => Promise<unknown>;
164
- validateDomain: (input?: {}) => Promise<unknown>;
165
- };
166
- environment: {
167
- byProjectId: (input?: {}) => Promise<unknown>;
168
- create: (input?: {}) => Promise<unknown>;
169
- duplicate: (input?: {}) => Promise<unknown>;
170
- one: (input?: {}) => Promise<unknown>;
171
- remove: (input?: {}) => Promise<unknown>;
172
- search: (input?: {}) => Promise<unknown>;
173
- update: (input?: {}) => Promise<unknown>;
174
- };
175
- gitea: {
176
- create: (input?: {}) => Promise<unknown>;
177
- getGiteaBranches: (input?: {}) => Promise<unknown>;
178
- getGiteaRepositories: (input?: {}) => Promise<unknown>;
179
- getGiteaUrl: (input?: {}) => Promise<unknown>;
180
- giteaProviders: (input?: {}) => Promise<unknown>;
181
- one: (input?: {}) => Promise<unknown>;
182
- testConnection: (input?: {}) => Promise<unknown>;
183
- update: (input?: {}) => Promise<unknown>;
184
- };
185
- github: {
186
- getGithubBranches: (input?: {}) => Promise<unknown>;
187
- getGithubRepositories: (input?: {}) => Promise<unknown>;
188
- githubProviders: (input?: {}) => Promise<unknown>;
189
- one: (input?: {}) => Promise<unknown>;
190
- testConnection: (input?: {}) => Promise<unknown>;
191
- update: (input?: {}) => Promise<unknown>;
192
- };
193
- gitlab: {
194
- create: (input?: {}) => Promise<unknown>;
195
- getGitlabBranches: (input?: {}) => Promise<unknown>;
196
- getGitlabRepositories: (input?: {}) => Promise<unknown>;
197
- gitlabProviders: (input?: {}) => Promise<unknown>;
198
- one: (input?: {}) => Promise<unknown>;
199
- testConnection: (input?: {}) => Promise<unknown>;
200
- update: (input?: {}) => Promise<unknown>;
201
- };
202
- gitProvider: {
203
- getAll: (input?: {}) => Promise<unknown>;
204
- remove: (input?: {}) => Promise<unknown>;
205
- };
206
- licenseKey: {
207
- activate: (input?: {}) => Promise<unknown>;
208
- deactivate: (input?: {}) => Promise<unknown>;
209
- getEnterpriseSettings: (input?: {}) => Promise<unknown>;
210
- haveValidLicenseKey: (input?: {}) => Promise<unknown>;
211
- updateEnterpriseSettings: (input?: {}) => Promise<unknown>;
212
- validate: (input?: {}) => Promise<unknown>;
213
- };
214
- mariadb: {
215
- changeStatus: (input?: {}) => Promise<unknown>;
216
- create: (input?: {}) => Promise<unknown>;
217
- deploy: (input?: {}) => Promise<unknown>;
218
- move: (input?: {}) => Promise<unknown>;
219
- one: (input?: {}) => Promise<unknown>;
220
- rebuild: (input?: {}) => Promise<unknown>;
221
- reload: (input?: {}) => Promise<unknown>;
222
- remove: (input?: {}) => Promise<unknown>;
223
- saveEnvironment: (input?: {}) => Promise<unknown>;
224
- saveExternalPort: (input?: {}) => Promise<unknown>;
225
- search: (input?: {}) => Promise<unknown>;
226
- start: (input?: {}) => Promise<unknown>;
227
- stop: (input?: {}) => Promise<unknown>;
228
- update: (input?: {}) => Promise<unknown>;
229
- };
230
- mongo: {
231
- changeStatus: (input?: {}) => Promise<unknown>;
232
- create: (input?: {}) => Promise<unknown>;
233
- deploy: (input?: {}) => Promise<unknown>;
234
- move: (input?: {}) => Promise<unknown>;
235
- one: (input?: {}) => Promise<unknown>;
236
- rebuild: (input?: {}) => Promise<unknown>;
237
- reload: (input?: {}) => Promise<unknown>;
238
- remove: (input?: {}) => Promise<unknown>;
239
- saveEnvironment: (input?: {}) => Promise<unknown>;
240
- saveExternalPort: (input?: {}) => Promise<unknown>;
241
- search: (input?: {}) => Promise<unknown>;
242
- start: (input?: {}) => Promise<unknown>;
243
- stop: (input?: {}) => Promise<unknown>;
244
- update: (input?: {}) => Promise<unknown>;
245
- };
246
- mounts: {
247
- allNamedByApplicationId: (input?: {}) => Promise<unknown>;
248
- create: (input?: {}) => Promise<unknown>;
249
- listByServiceId: (input?: {}) => Promise<unknown>;
250
- one: (input?: {}) => Promise<unknown>;
251
- remove: (input?: {}) => Promise<unknown>;
252
- update: (input?: {}) => Promise<unknown>;
253
- };
254
- mysql: {
255
- changeStatus: (input?: {}) => Promise<unknown>;
256
- create: (input?: {}) => Promise<unknown>;
257
- deploy: (input?: {}) => Promise<unknown>;
258
- move: (input?: {}) => Promise<unknown>;
259
- one: (input?: {}) => Promise<unknown>;
260
- rebuild: (input?: {}) => Promise<unknown>;
261
- reload: (input?: {}) => Promise<unknown>;
262
- remove: (input?: {}) => Promise<unknown>;
263
- saveEnvironment: (input?: {}) => Promise<unknown>;
264
- saveExternalPort: (input?: {}) => Promise<unknown>;
265
- search: (input?: {}) => Promise<unknown>;
266
- start: (input?: {}) => Promise<unknown>;
267
- stop: (input?: {}) => Promise<unknown>;
268
- update: (input?: {}) => Promise<unknown>;
269
- };
270
- notification: {
271
- all: (input?: {}) => Promise<unknown>;
272
- createCustom: (input?: {}) => Promise<unknown>;
273
- createDiscord: (input?: {}) => Promise<unknown>;
274
- createEmail: (input?: {}) => Promise<unknown>;
275
- createGotify: (input?: {}) => Promise<unknown>;
276
- createLark: (input?: {}) => Promise<unknown>;
277
- createNtfy: (input?: {}) => Promise<unknown>;
278
- createPushover: (input?: {}) => Promise<unknown>;
279
- createResend: (input?: {}) => Promise<unknown>;
280
- createSlack: (input?: {}) => Promise<unknown>;
281
- createTeams: (input?: {}) => Promise<unknown>;
282
- createTelegram: (input?: {}) => Promise<unknown>;
283
- getEmailProviders: (input?: {}) => Promise<unknown>;
284
- one: (input?: {}) => Promise<unknown>;
285
- receiveNotification: (input?: {}) => Promise<unknown>;
286
- remove: (input?: {}) => Promise<unknown>;
287
- testCustomConnection: (input?: {}) => Promise<unknown>;
288
- testDiscordConnection: (input?: {}) => Promise<unknown>;
289
- testEmailConnection: (input?: {}) => Promise<unknown>;
290
- testGotifyConnection: (input?: {}) => Promise<unknown>;
291
- testLarkConnection: (input?: {}) => Promise<unknown>;
292
- testNtfyConnection: (input?: {}) => Promise<unknown>;
293
- testPushoverConnection: (input?: {}) => Promise<unknown>;
294
- testResendConnection: (input?: {}) => Promise<unknown>;
295
- testSlackConnection: (input?: {}) => Promise<unknown>;
296
- testTeamsConnection: (input?: {}) => Promise<unknown>;
297
- testTelegramConnection: (input?: {}) => Promise<unknown>;
298
- updateCustom: (input?: {}) => Promise<unknown>;
299
- updateDiscord: (input?: {}) => Promise<unknown>;
300
- updateEmail: (input?: {}) => Promise<unknown>;
301
- updateGotify: (input?: {}) => Promise<unknown>;
302
- updateLark: (input?: {}) => Promise<unknown>;
303
- updateNtfy: (input?: {}) => Promise<unknown>;
304
- updatePushover: (input?: {}) => Promise<unknown>;
305
- updateResend: (input?: {}) => Promise<unknown>;
306
- updateSlack: (input?: {}) => Promise<unknown>;
307
- updateTeams: (input?: {}) => Promise<unknown>;
308
- updateTelegram: (input?: {}) => Promise<unknown>;
309
- };
310
- organization: {
311
- active: (input?: {}) => Promise<unknown>;
312
- all: (input?: {}) => Promise<unknown>;
313
- allInvitations: (input?: {}) => Promise<unknown>;
314
- create: (input?: {}) => Promise<unknown>;
315
- delete: (input?: {}) => Promise<unknown>;
316
- inviteMember: (input?: {}) => Promise<unknown>;
317
- one: (input?: {}) => Promise<unknown>;
318
- removeInvitation: (input?: {}) => Promise<unknown>;
319
- setDefault: (input?: {}) => Promise<unknown>;
320
- update: (input?: {}) => Promise<unknown>;
321
- updateMemberRole: (input?: {}) => Promise<unknown>;
322
- };
323
- patch: {
324
- byEntityId: (input?: {}) => Promise<unknown>;
325
- cleanPatchRepos: (input?: {}) => Promise<unknown>;
326
- create: (input?: {}) => Promise<unknown>;
327
- delete: (input?: {}) => Promise<unknown>;
328
- ensureRepo: (input?: {}) => Promise<unknown>;
329
- markFileForDeletion: (input?: {}) => Promise<unknown>;
330
- one: (input?: {}) => Promise<unknown>;
331
- readRepoDirectories: (input?: {}) => Promise<unknown>;
332
- readRepoFile: (input?: {}) => Promise<unknown>;
333
- saveFileAsPatch: (input?: {}) => Promise<unknown>;
334
- toggleEnabled: (input?: {}) => Promise<unknown>;
335
- update: (input?: {}) => Promise<unknown>;
336
- };
337
- port: {
338
- create: (input?: {}) => Promise<unknown>;
339
- delete: (input?: {}) => Promise<unknown>;
340
- one: (input?: {}) => Promise<unknown>;
341
- update: (input?: {}) => Promise<unknown>;
342
- };
343
- postgres: {
344
- changeStatus: (input?: {}) => Promise<unknown>;
345
- create: (input?: {}) => Promise<unknown>;
346
- deploy: (input?: {}) => Promise<unknown>;
347
- move: (input?: {}) => Promise<unknown>;
348
- one: (input?: {}) => Promise<unknown>;
349
- rebuild: (input?: {}) => Promise<unknown>;
350
- reload: (input?: {}) => Promise<unknown>;
351
- remove: (input?: {}) => Promise<unknown>;
352
- saveEnvironment: (input?: {}) => Promise<unknown>;
353
- saveExternalPort: (input?: {}) => Promise<unknown>;
354
- search: (input?: {}) => Promise<unknown>;
355
- start: (input?: {}) => Promise<unknown>;
356
- stop: (input?: {}) => Promise<unknown>;
357
- update: (input?: {}) => Promise<unknown>;
358
- };
359
- previewDeployment: {
360
- all: (input?: {}) => Promise<unknown>;
361
- delete: (input?: {}) => Promise<unknown>;
362
- one: (input?: {}) => Promise<unknown>;
363
- redeploy: (input?: {}) => Promise<unknown>;
364
- };
365
- project: {
366
- all: (input?: {}) => Promise<unknown>;
367
- allForPermissions: (input?: {}) => Promise<unknown>;
368
- create: (input?: {}) => Promise<unknown>;
369
- duplicate: (input?: {}) => Promise<unknown>;
370
- one: (input?: {}) => Promise<unknown>;
371
- remove: (input?: {}) => Promise<unknown>;
372
- search: (input?: {}) => Promise<unknown>;
373
- update: (input?: {}) => Promise<unknown>;
374
- };
375
- redirects: {
376
- create: (input?: {}) => Promise<unknown>;
377
- delete: (input?: {}) => Promise<unknown>;
378
- one: (input?: {}) => Promise<unknown>;
379
- update: (input?: {}) => Promise<unknown>;
380
- };
381
- redis: {
382
- changeStatus: (input?: {}) => Promise<unknown>;
383
- create: (input?: {}) => Promise<unknown>;
384
- deploy: (input?: {}) => Promise<unknown>;
385
- move: (input?: {}) => Promise<unknown>;
386
- one: (input?: {}) => Promise<unknown>;
387
- rebuild: (input?: {}) => Promise<unknown>;
388
- reload: (input?: {}) => Promise<unknown>;
389
- remove: (input?: {}) => Promise<unknown>;
390
- saveEnvironment: (input?: {}) => Promise<unknown>;
391
- saveExternalPort: (input?: {}) => Promise<unknown>;
392
- search: (input?: {}) => Promise<unknown>;
393
- start: (input?: {}) => Promise<unknown>;
394
- stop: (input?: {}) => Promise<unknown>;
395
- update: (input?: {}) => Promise<unknown>;
396
- };
397
- registry: {
398
- all: (input?: {}) => Promise<unknown>;
399
- create: (input?: {}) => Promise<unknown>;
400
- one: (input?: {}) => Promise<unknown>;
401
- remove: (input?: {}) => Promise<unknown>;
402
- testRegistry: (input?: {}) => Promise<unknown>;
403
- testRegistryById: (input?: {}) => Promise<unknown>;
404
- update: (input?: {}) => Promise<unknown>;
405
- };
406
- rollback: {
407
- delete: (input?: {}) => Promise<unknown>;
408
- rollback: (input?: {}) => Promise<unknown>;
409
- };
410
- schedule: {
411
- create: (input?: {}) => Promise<unknown>;
412
- delete: (input?: {}) => Promise<unknown>;
413
- list: (input?: {}) => Promise<unknown>;
414
- one: (input?: {}) => Promise<unknown>;
415
- runManually: (input?: {}) => Promise<unknown>;
416
- update: (input?: {}) => Promise<unknown>;
417
- };
418
- security: {
419
- create: (input?: {}) => Promise<unknown>;
420
- delete: (input?: {}) => Promise<unknown>;
421
- one: (input?: {}) => Promise<unknown>;
422
- update: (input?: {}) => Promise<unknown>;
423
- };
424
- server: {
425
- all: (input?: {}) => Promise<unknown>;
426
- buildServers: (input?: {}) => Promise<unknown>;
427
- count: (input?: {}) => Promise<unknown>;
428
- create: (input?: {}) => Promise<unknown>;
429
- getDefaultCommand: (input?: {}) => Promise<unknown>;
430
- getServerMetrics: (input?: {}) => Promise<unknown>;
431
- getServerTime: (input?: {}) => Promise<unknown>;
432
- one: (input?: {}) => Promise<unknown>;
433
- publicIp: (input?: {}) => Promise<unknown>;
434
- remove: (input?: {}) => Promise<unknown>;
435
- security: (input?: {}) => Promise<unknown>;
436
- setup: (input?: {}) => Promise<unknown>;
437
- setupMonitoring: (input?: {}) => Promise<unknown>;
438
- update: (input?: {}) => Promise<unknown>;
439
- validate: (input?: {}) => Promise<unknown>;
440
- withSSHKey: (input?: {}) => Promise<unknown>;
441
- };
442
- settings: {
443
- assignDomainServer: (input?: {}) => Promise<unknown>;
444
- checkGPUStatus: (input?: {}) => Promise<unknown>;
445
- cleanAll: (input?: {}) => Promise<unknown>;
446
- cleanAllDeploymentQueue: (input?: {}) => Promise<unknown>;
447
- cleanDockerBuilder: (input?: {}) => Promise<unknown>;
448
- cleanDockerPrune: (input?: {}) => Promise<unknown>;
449
- cleanMonitoring: (input?: {}) => Promise<unknown>;
450
- cleanRedis: (input?: {}) => Promise<unknown>;
451
- cleanSSHPrivateKey: (input?: {}) => Promise<unknown>;
452
- cleanStoppedContainers: (input?: {}) => Promise<unknown>;
453
- cleanUnusedImages: (input?: {}) => Promise<unknown>;
454
- cleanUnusedVolumes: (input?: {}) => Promise<unknown>;
455
- getDokployCloudIps: (input?: {}) => Promise<unknown>;
456
- getDokployVersion: (input?: {}) => Promise<unknown>;
457
- getIp: (input?: {}) => Promise<unknown>;
458
- getLogCleanupStatus: (input?: {}) => Promise<unknown>;
459
- getOpenApiDocument: (input?: {}) => Promise<unknown>;
460
- getReleaseTag: (input?: {}) => Promise<unknown>;
461
- getTraefikPorts: (input?: {}) => Promise<unknown>;
462
- getUpdateData: (input?: {}) => Promise<unknown>;
463
- getWebServerSettings: (input?: {}) => Promise<unknown>;
464
- haveActivateRequests: (input?: {}) => Promise<unknown>;
465
- haveTraefikDashboardPortEnabled: (input?: {}) => Promise<unknown>;
466
- health: (input?: {}) => Promise<unknown>;
467
- isCloud: (input?: {}) => Promise<unknown>;
468
- isUserSubscribed: (input?: {}) => Promise<unknown>;
469
- readDirectories: (input?: {}) => Promise<unknown>;
470
- readMiddlewareTraefikConfig: (input?: {}) => Promise<unknown>;
471
- readTraefikConfig: (input?: {}) => Promise<unknown>;
472
- readTraefikEnv: (input?: {}) => Promise<unknown>;
473
- readTraefikFile: (input?: {}) => Promise<unknown>;
474
- readWebServerTraefikConfig: (input?: {}) => Promise<unknown>;
475
- reloadRedis: (input?: {}) => Promise<unknown>;
476
- reloadServer: (input?: {}) => Promise<unknown>;
477
- reloadTraefik: (input?: {}) => Promise<unknown>;
478
- saveSSHPrivateKey: (input?: {}) => Promise<unknown>;
479
- setupGPU: (input?: {}) => Promise<unknown>;
480
- toggleDashboard: (input?: {}) => Promise<unknown>;
481
- toggleRequests: (input?: {}) => Promise<unknown>;
482
- updateDockerCleanup: (input?: {}) => Promise<unknown>;
483
- updateLogCleanup: (input?: {}) => Promise<unknown>;
484
- updateMiddlewareTraefikConfig: (input?: {}) => Promise<unknown>;
485
- updateServer: (input?: {}) => Promise<unknown>;
486
- updateServerIp: (input?: {}) => Promise<unknown>;
487
- updateTraefikConfig: (input?: {}) => Promise<unknown>;
488
- updateTraefikFile: (input?: {}) => Promise<unknown>;
489
- updateTraefikPorts: (input?: {}) => Promise<unknown>;
490
- updateWebServerTraefikConfig: (input?: {}) => Promise<unknown>;
491
- writeTraefikEnv: (input?: {}) => Promise<unknown>;
492
- };
493
- sshKey: {
494
- all: (input?: {}) => Promise<unknown>;
495
- create: (input?: {}) => Promise<unknown>;
496
- generate: (input?: {}) => Promise<unknown>;
497
- one: (input?: {}) => Promise<unknown>;
498
- remove: (input?: {}) => Promise<unknown>;
499
- update: (input?: {}) => Promise<unknown>;
500
- };
501
- sso: {
502
- addTrustedOrigin: (input?: {}) => Promise<unknown>;
503
- deleteProvider: (input?: {}) => Promise<unknown>;
504
- getTrustedOrigins: (input?: {}) => Promise<unknown>;
505
- listProviders: (input?: {}) => Promise<unknown>;
506
- one: (input?: {}) => Promise<unknown>;
507
- register: (input?: {}) => Promise<unknown>;
508
- removeTrustedOrigin: (input?: {}) => Promise<unknown>;
509
- showSignInWithSSO: (input?: {}) => Promise<unknown>;
510
- update: (input?: {}) => Promise<unknown>;
511
- updateTrustedOrigin: (input?: {}) => Promise<unknown>;
512
- };
513
- stripe: {
514
- canCreateMoreServers: (input?: {}) => Promise<unknown>;
515
- createCheckoutSession: (input?: {}) => Promise<unknown>;
516
- createCustomerPortalSession: (input?: {}) => Promise<unknown>;
517
- getCurrentPlan: (input?: {}) => Promise<unknown>;
518
- getInvoices: (input?: {}) => Promise<unknown>;
519
- getProducts: (input?: {}) => Promise<unknown>;
520
- upgradeSubscription: (input?: {}) => Promise<unknown>;
521
- };
522
- swarm: {
523
- getNodeApps: (input?: {}) => Promise<unknown>;
524
- getNodeInfo: (input?: {}) => Promise<unknown>;
525
- getNodes: (input?: {}) => Promise<unknown>;
526
- };
527
- user: {
528
- all: (input?: {}) => Promise<unknown>;
529
- assignPermissions: (input?: {}) => Promise<unknown>;
530
- checkUserOrganizations: (input?: {}) => Promise<unknown>;
531
- createApiKey: (input?: {}) => Promise<unknown>;
532
- deleteApiKey: (input?: {}) => Promise<unknown>;
533
- generateToken: (input?: {}) => Promise<unknown>;
534
- get: (input?: {}) => Promise<unknown>;
535
- getBackups: (input?: {}) => Promise<unknown>;
536
- getContainerMetrics: (input?: {}) => Promise<unknown>;
537
- getInvitations: (input?: {}) => Promise<unknown>;
538
- getMetricsToken: (input?: {}) => Promise<unknown>;
539
- getPermissions: (input?: {}) => Promise<unknown>;
540
- getServerMetrics: (input?: {}) => Promise<unknown>;
541
- getUserByToken: (input?: {}) => Promise<unknown>;
542
- haveRootAccess: (input?: {}) => Promise<unknown>;
543
- one: (input?: {}) => Promise<unknown>;
544
- remove: (input?: {}) => Promise<unknown>;
545
- sendInvitation: (input?: {}) => Promise<unknown>;
546
- session: (input?: {}) => Promise<unknown>;
547
- update: (input?: {}) => Promise<unknown>;
548
- };
549
- volumeBackups: {
550
- create: (input?: {}) => Promise<unknown>;
551
- delete: (input?: {}) => Promise<unknown>;
552
- list: (input?: {}) => Promise<unknown>;
553
- one: (input?: {}) => Promise<unknown>;
554
- runManually: (input?: {}) => Promise<unknown>;
555
- update: (input?: {}) => Promise<unknown>;
556
- };
557
- whitelabeling: {
558
- get: (input?: {}) => Promise<unknown>;
559
- getPublic: (input?: {}) => Promise<unknown>;
560
- reset: (input?: {}) => Promise<unknown>;
561
- update: (input?: {}) => Promise<unknown>;
562
- };
563
- };
564
- helpers: {
565
- sleep(ms: number): Promise<void>;
566
- assert(condition: unknown, message?: string): void;
567
- pick<T extends Record<string, unknown>, K extends keyof T>(value: T, keys: K[]): Pick<T, K>;
568
- limit<T>(items: T[], count: number): T[];
569
- selectOne<T>(items: T[], predicate?: (item: T) => boolean): NonNullable<T> | null;
570
- paginateUntil<T>(fetchPage: (offset: number) => Promise<{
571
- items: T[];
572
- total?: number;
573
- }>, predicate: (item: T) => boolean, pageSize?: number): Promise<NonNullable<T> | null>;
574
- };
575
- getCalls: () => import("../gateway/trace.js").GatewayTraceEntry[];
576
- };
5
+ export declare function buildExecuteContext(executor: CallExecutor, maxCalls?: number): import("../context/execute-context.js").ExecuteContext;
577
6
  export declare function runExecuteWithHost(code: string, host: SandboxHost): Promise<{
578
7
  result: unknown;
579
8
  logs: string[];
@@ -52,6 +52,7 @@ export const executeTool = createTool({
52
52
  description: 'Run JavaScript code against the Dokploy API. ' +
53
53
  'IMPORTANT: Do NOT wrap code in a function -- `dokploy` and `helpers` are already globals. ' +
54
54
  'Write bare code: `await dokploy.project.all()` or `const x = await dokploy.application.one({ applicationId: "id" }); return x`. ' +
55
+ 'Common reads: `application.one` returns application detail fields such as status, mounts, domains, and deployments, and supports optional `select`, `includeDeployments`, and `deploymentLimit`; `application.many` batches several shaped application reads; `project.overview` returns a compact per-environment and per-application state view; `deployment.all` returns deployment history entries. ' +
55
56
  'dokploy.<module>.<method>(params) calls the API. ' +
56
57
  'Modules: project, environment, application, compose, domain, postgres, mysql, mariadb, mongo, redis, ' +
57
58
  'deployment, docker, server, settings, user, notification, backup, mounts, registry, certificates, schedule, patch, sshKey, gitProvider, and more. ' +
@@ -51,7 +51,8 @@ export const searchTool = createTool({
51
51
  description: 'Search the Dokploy API catalog. ' +
52
52
  'IMPORTANT: Do NOT wrap code in a function -- `catalog` is already a global. ' +
53
53
  'Write bare code: `catalog.searchText("deploy")` or `catalog.getByTag("application")` or `catalog.get("application.one")`. ' +
54
- 'Returns procedure names, required/optional parameters, and HTTP methods.',
54
+ 'Common patterns: `catalog.get("application.one")` -> application detail fields plus optional shaping params; `catalog.get("application.many")` -> batched application reads; `catalog.get("project.overview")` -> compact project state view; `catalog.get("deployment.all")` -> deployment history entries. ' +
55
+ 'Returns procedure names, parameters, HTTP methods, schemas, and response hints for key endpoints.',
55
56
  schema: searchSchema,
56
57
  annotations: { readOnlyHint: true, idempotentHint: true, openWorldHint: true },
57
58
  handler: async ({ input }) => {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vibetools/dokploy-mcp",
3
- "version": "2.1.1",
3
+ "version": "2.2.1",
4
4
  "description": "Dokploy MCP server with Code Mode by default",
5
5
  "type": "module",
6
6
  "exports": {