naftiko: 1.0.0-alpha2 info: label: Dokploy API — compose description: 'Dokploy API — compose. 31 operations. Lead operation: compose.create. Self-contained Naftiko capability covering one Dokploy business surface.' tags: - Dokploy - compose created: '2026-05-25' modified: '2026-05-25' binds: - namespace: env keys: DOKPLOY_API_KEY: DOKPLOY_API_KEY DOKPLOY_URL: DOKPLOY_URL capability: consumes: - type: http namespace: dokploy-compose baseUri: ${DOKPLOY_URL}/api description: Dokploy API — compose business capability. Self-contained, no shared references. resources: - name: create path: /compose.create operations: - name: compose-create method: POST description: compose-create outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body required: true - name: one path: /compose.one operations: - name: compose-one method: GET description: compose-one outputRawFormat: json outputParameters: - name: result type: object value: $. - name: update path: /compose.update operations: - name: compose-update method: POST description: compose-update outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body required: true - name: saveEnvironment path: /compose.saveEnvironment operations: - name: compose-saveEnvironment method: POST description: compose-saveEnvironment outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body required: true - name: delete path: /compose.delete operations: - name: compose-delete method: POST description: compose-delete outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body required: true - name: cleanQueues path: /compose.cleanQueues operations: - name: compose-cleanQueues method: POST description: compose-cleanQueues outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body required: true - name: clearDeployments path: /compose.clearDeployments operations: - name: compose-clearDeployments method: POST description: compose-clearDeployments outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body required: true - name: killBuild path: /compose.killBuild operations: - name: compose-killBuild method: POST description: compose-killBuild outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body required: true - name: loadServices path: /compose.loadServices operations: - name: compose-loadServices method: GET description: compose-loadServices outputRawFormat: json outputParameters: - name: result type: object value: $. - name: loadMountsByService path: /compose.loadMountsByService operations: - name: compose-loadMountsByService method: GET description: compose-loadMountsByService outputRawFormat: json outputParameters: - name: result type: object value: $. - name: fetchSourceType path: /compose.fetchSourceType operations: - name: compose-fetchSourceType method: POST description: compose-fetchSourceType outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body required: true - name: randomizeCompose path: /compose.randomizeCompose operations: - name: compose-randomizeCompose method: POST description: compose-randomizeCompose outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body required: true - name: isolatedDeployment path: /compose.isolatedDeployment operations: - name: compose-isolatedDeployment method: POST description: compose-isolatedDeployment outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body required: true - name: getConvertedCompose path: /compose.getConvertedCompose operations: - name: compose-getConvertedCompose method: GET description: compose-getConvertedCompose outputRawFormat: json outputParameters: - name: result type: object value: $. - name: deploy path: /compose.deploy operations: - name: compose-deploy method: POST description: compose-deploy outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body required: true - name: redeploy path: /compose.redeploy operations: - name: compose-redeploy method: POST description: compose-redeploy outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body required: true - name: stop path: /compose.stop operations: - name: compose-stop method: POST description: compose-stop outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body required: true - name: start path: /compose.start operations: - name: compose-start method: POST description: compose-start outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body required: true - name: getDefaultCommand path: /compose.getDefaultCommand operations: - name: compose-getDefaultCommand method: GET description: compose-getDefaultCommand outputRawFormat: json outputParameters: - name: result type: object value: $. - name: refreshToken path: /compose.refreshToken operations: - name: compose-refreshToken method: POST description: compose-refreshToken outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body required: true - name: deployTemplate path: /compose.deployTemplate operations: - name: compose-deployTemplate method: POST description: compose-deployTemplate outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body required: true - name: templates path: /compose.templates operations: - name: compose-templates method: GET description: compose-templates outputRawFormat: json outputParameters: - name: result type: object value: $. - name: getTags path: /compose.getTags operations: - name: compose-getTags method: GET description: compose-getTags outputRawFormat: json outputParameters: - name: result type: object value: $. - name: disconnectGitProvider path: /compose.disconnectGitProvider operations: - name: compose-disconnectGitProvider method: POST description: compose-disconnectGitProvider outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body required: true - name: move path: /compose.move operations: - name: compose-move method: POST description: compose-move outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body required: true - name: processTemplate path: /compose.processTemplate operations: - name: compose-processTemplate method: POST description: compose-processTemplate outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body required: true - name: previewTemplate path: /compose.previewTemplate operations: - name: compose-previewTemplate method: POST description: compose-previewTemplate outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body required: true - name: import path: /compose.import operations: - name: compose-import method: POST description: compose-import outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body required: true - name: cancelDeployment path: /compose.cancelDeployment operations: - name: compose-cancelDeployment method: POST description: compose-cancelDeployment outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body required: true - name: search path: /compose.search operations: - name: compose-search method: GET description: compose-search outputRawFormat: json outputParameters: - name: result type: object value: $. - name: readLogs path: /compose.readLogs operations: - name: compose-readLogs method: GET description: compose-readLogs outputRawFormat: json outputParameters: - name: result type: object value: $. exposes: - type: rest namespace: dokploy-compose-rest port: 8080 description: REST adapter for Dokploy API — compose. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/compose.create name: create description: REST surface for create. operations: - method: POST name: compose-create description: compose-create call: dokploy-compose.compose-create with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/compose.one name: one description: REST surface for one. operations: - method: GET name: compose-one description: compose-one call: dokploy-compose.compose-one outputParameters: - type: object mapping: $. - path: /v1/compose.update name: update description: REST surface for update. operations: - method: POST name: compose-update description: compose-update call: dokploy-compose.compose-update with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/compose.saveEnvironment name: saveEnvironment description: REST surface for saveEnvironment. operations: - method: POST name: compose-saveEnvironment description: compose-saveEnvironment call: dokploy-compose.compose-saveEnvironment with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/compose.delete name: delete description: REST surface for delete. operations: - method: POST name: compose-delete description: compose-delete call: dokploy-compose.compose-delete with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/compose.cleanQueues name: cleanQueues description: REST surface for cleanQueues. operations: - method: POST name: compose-cleanQueues description: compose-cleanQueues call: dokploy-compose.compose-cleanQueues with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/compose.clearDeployments name: clearDeployments description: REST surface for clearDeployments. operations: - method: POST name: compose-clearDeployments description: compose-clearDeployments call: dokploy-compose.compose-clearDeployments with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/compose.killBuild name: killBuild description: REST surface for killBuild. operations: - method: POST name: compose-killBuild description: compose-killBuild call: dokploy-compose.compose-killBuild with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/compose.loadServices name: loadServices description: REST surface for loadServices. operations: - method: GET name: compose-loadServices description: compose-loadServices call: dokploy-compose.compose-loadServices outputParameters: - type: object mapping: $. - path: /v1/compose.loadMountsByService name: loadMountsByService description: REST surface for loadMountsByService. operations: - method: GET name: compose-loadMountsByService description: compose-loadMountsByService call: dokploy-compose.compose-loadMountsByService outputParameters: - type: object mapping: $. - path: /v1/compose.fetchSourceType name: fetchSourceType description: REST surface for fetchSourceType. operations: - method: POST name: compose-fetchSourceType description: compose-fetchSourceType call: dokploy-compose.compose-fetchSourceType with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/compose.randomizeCompose name: randomizeCompose description: REST surface for randomizeCompose. operations: - method: POST name: compose-randomizeCompose description: compose-randomizeCompose call: dokploy-compose.compose-randomizeCompose with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/compose.isolatedDeployment name: isolatedDeployment description: REST surface for isolatedDeployment. operations: - method: POST name: compose-isolatedDeployment description: compose-isolatedDeployment call: dokploy-compose.compose-isolatedDeployment with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/compose.getConvertedCompose name: getConvertedCompose description: REST surface for getConvertedCompose. operations: - method: GET name: compose-getConvertedCompose description: compose-getConvertedCompose call: dokploy-compose.compose-getConvertedCompose outputParameters: - type: object mapping: $. - path: /v1/compose.deploy name: deploy description: REST surface for deploy. operations: - method: POST name: compose-deploy description: compose-deploy call: dokploy-compose.compose-deploy with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/compose.redeploy name: redeploy description: REST surface for redeploy. operations: - method: POST name: compose-redeploy description: compose-redeploy call: dokploy-compose.compose-redeploy with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/compose.stop name: stop description: REST surface for stop. operations: - method: POST name: compose-stop description: compose-stop call: dokploy-compose.compose-stop with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/compose.start name: start description: REST surface for start. operations: - method: POST name: compose-start description: compose-start call: dokploy-compose.compose-start with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/compose.getDefaultCommand name: getDefaultCommand description: REST surface for getDefaultCommand. operations: - method: GET name: compose-getDefaultCommand description: compose-getDefaultCommand call: dokploy-compose.compose-getDefaultCommand outputParameters: - type: object mapping: $. - path: /v1/compose.refreshToken name: refreshToken description: REST surface for refreshToken. operations: - method: POST name: compose-refreshToken description: compose-refreshToken call: dokploy-compose.compose-refreshToken with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/compose.deployTemplate name: deployTemplate description: REST surface for deployTemplate. operations: - method: POST name: compose-deployTemplate description: compose-deployTemplate call: dokploy-compose.compose-deployTemplate with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/compose.templates name: templates description: REST surface for templates. operations: - method: GET name: compose-templates description: compose-templates call: dokploy-compose.compose-templates outputParameters: - type: object mapping: $. - path: /v1/compose.getTags name: getTags description: REST surface for getTags. operations: - method: GET name: compose-getTags description: compose-getTags call: dokploy-compose.compose-getTags outputParameters: - type: object mapping: $. - path: /v1/compose.disconnectGitProvider name: disconnectGitProvider description: REST surface for disconnectGitProvider. operations: - method: POST name: compose-disconnectGitProvider description: compose-disconnectGitProvider call: dokploy-compose.compose-disconnectGitProvider with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/compose.move name: move description: REST surface for move. operations: - method: POST name: compose-move description: compose-move call: dokploy-compose.compose-move with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/compose.processTemplate name: processTemplate description: REST surface for processTemplate. operations: - method: POST name: compose-processTemplate description: compose-processTemplate call: dokploy-compose.compose-processTemplate with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/compose.previewTemplate name: previewTemplate description: REST surface for previewTemplate. operations: - method: POST name: compose-previewTemplate description: compose-previewTemplate call: dokploy-compose.compose-previewTemplate with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/compose.import name: import description: REST surface for import. operations: - method: POST name: compose-import description: compose-import call: dokploy-compose.compose-import with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/compose.cancelDeployment name: cancelDeployment description: REST surface for cancelDeployment. operations: - method: POST name: compose-cancelDeployment description: compose-cancelDeployment call: dokploy-compose.compose-cancelDeployment with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/compose.search name: search description: REST surface for search. operations: - method: GET name: compose-search description: compose-search call: dokploy-compose.compose-search outputParameters: - type: object mapping: $. - path: /v1/compose.readLogs name: readLogs description: REST surface for readLogs. operations: - method: GET name: compose-readLogs description: compose-readLogs call: dokploy-compose.compose-readLogs outputParameters: - type: object mapping: $. - type: mcp namespace: dokploy-compose-mcp port: 9090 transport: http description: MCP adapter for Dokploy API — compose. One tool per consumed operation, routed inline through this capability’s consumes block. tools: - name: compose-create description: compose-create hints: readOnly: false destructive: false idempotent: false call: dokploy-compose.compose-create with: body: tools.body outputParameters: - type: object mapping: $. - name: compose-one description: compose-one hints: readOnly: true destructive: false idempotent: true call: dokploy-compose.compose-one outputParameters: - type: object mapping: $. - name: compose-update description: compose-update hints: readOnly: false destructive: false idempotent: false call: dokploy-compose.compose-update with: body: tools.body outputParameters: - type: object mapping: $. - name: compose-saveEnvironment description: compose-saveEnvironment hints: readOnly: false destructive: false idempotent: false call: dokploy-compose.compose-saveEnvironment with: body: tools.body outputParameters: - type: object mapping: $. - name: compose-delete description: compose-delete hints: readOnly: false destructive: false idempotent: false call: dokploy-compose.compose-delete with: body: tools.body outputParameters: - type: object mapping: $. - name: compose-cleanQueues description: compose-cleanQueues hints: readOnly: false destructive: false idempotent: false call: dokploy-compose.compose-cleanQueues with: body: tools.body outputParameters: - type: object mapping: $. - name: compose-clearDeployments description: compose-clearDeployments hints: readOnly: false destructive: false idempotent: false call: dokploy-compose.compose-clearDeployments with: body: tools.body outputParameters: - type: object mapping: $. - name: compose-killBuild description: compose-killBuild hints: readOnly: false destructive: false idempotent: false call: dokploy-compose.compose-killBuild with: body: tools.body outputParameters: - type: object mapping: $. - name: compose-loadServices description: compose-loadServices hints: readOnly: true destructive: false idempotent: true call: dokploy-compose.compose-loadServices outputParameters: - type: object mapping: $. - name: compose-loadMountsByService description: compose-loadMountsByService hints: readOnly: true destructive: false idempotent: true call: dokploy-compose.compose-loadMountsByService outputParameters: - type: object mapping: $. - name: compose-fetchSourceType description: compose-fetchSourceType hints: readOnly: false destructive: false idempotent: false call: dokploy-compose.compose-fetchSourceType with: body: tools.body outputParameters: - type: object mapping: $. - name: compose-randomizeCompose description: compose-randomizeCompose hints: readOnly: false destructive: false idempotent: false call: dokploy-compose.compose-randomizeCompose with: body: tools.body outputParameters: - type: object mapping: $. - name: compose-isolatedDeployment description: compose-isolatedDeployment hints: readOnly: false destructive: false idempotent: false call: dokploy-compose.compose-isolatedDeployment with: body: tools.body outputParameters: - type: object mapping: $. - name: compose-getConvertedCompose description: compose-getConvertedCompose hints: readOnly: true destructive: false idempotent: true call: dokploy-compose.compose-getConvertedCompose outputParameters: - type: object mapping: $. - name: compose-deploy description: compose-deploy hints: readOnly: false destructive: false idempotent: false call: dokploy-compose.compose-deploy with: body: tools.body outputParameters: - type: object mapping: $. - name: compose-redeploy description: compose-redeploy hints: readOnly: false destructive: false idempotent: false call: dokploy-compose.compose-redeploy with: body: tools.body outputParameters: - type: object mapping: $. - name: compose-stop description: compose-stop hints: readOnly: false destructive: false idempotent: false call: dokploy-compose.compose-stop with: body: tools.body outputParameters: - type: object mapping: $. - name: compose-start description: compose-start hints: readOnly: false destructive: false idempotent: false call: dokploy-compose.compose-start with: body: tools.body outputParameters: - type: object mapping: $. - name: compose-getDefaultCommand description: compose-getDefaultCommand hints: readOnly: true destructive: false idempotent: true call: dokploy-compose.compose-getDefaultCommand outputParameters: - type: object mapping: $. - name: compose-refreshToken description: compose-refreshToken hints: readOnly: false destructive: false idempotent: false call: dokploy-compose.compose-refreshToken with: body: tools.body outputParameters: - type: object mapping: $. - name: compose-deployTemplate description: compose-deployTemplate hints: readOnly: false destructive: false idempotent: false call: dokploy-compose.compose-deployTemplate with: body: tools.body outputParameters: - type: object mapping: $. - name: compose-templates description: compose-templates hints: readOnly: true destructive: false idempotent: true call: dokploy-compose.compose-templates outputParameters: - type: object mapping: $. - name: compose-getTags description: compose-getTags hints: readOnly: true destructive: false idempotent: true call: dokploy-compose.compose-getTags outputParameters: - type: object mapping: $. - name: compose-disconnectGitProvider description: compose-disconnectGitProvider hints: readOnly: false destructive: false idempotent: false call: dokploy-compose.compose-disconnectGitProvider with: body: tools.body outputParameters: - type: object mapping: $. - name: compose-move description: compose-move hints: readOnly: false destructive: false idempotent: false call: dokploy-compose.compose-move with: body: tools.body outputParameters: - type: object mapping: $. - name: compose-processTemplate description: compose-processTemplate hints: readOnly: false destructive: false idempotent: false call: dokploy-compose.compose-processTemplate with: body: tools.body outputParameters: - type: object mapping: $. - name: compose-previewTemplate description: compose-previewTemplate hints: readOnly: false destructive: false idempotent: false call: dokploy-compose.compose-previewTemplate with: body: tools.body outputParameters: - type: object mapping: $. - name: compose-import description: compose-import hints: readOnly: false destructive: false idempotent: false call: dokploy-compose.compose-import with: body: tools.body outputParameters: - type: object mapping: $. - name: compose-cancelDeployment description: compose-cancelDeployment hints: readOnly: false destructive: false idempotent: false call: dokploy-compose.compose-cancelDeployment with: body: tools.body outputParameters: - type: object mapping: $. - name: compose-search description: compose-search hints: readOnly: true destructive: false idempotent: true call: dokploy-compose.compose-search outputParameters: - type: object mapping: $. - name: compose-readLogs description: compose-readLogs hints: readOnly: true destructive: false idempotent: true call: dokploy-compose.compose-readLogs outputParameters: - type: object mapping: $.