naftiko: 1.0.0-alpha2 info: label: Marketo Engage Rest API — Folder description: 'Marketo Engage Rest API — Folder. 8 operations. Lead operation: Marketo Get Folder by Name. Self-contained Naftiko capability covering one Marketo business surface.' tags: - Marketo - Folder created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: MARKETO_API_KEY: MARKETO_API_KEY capability: consumes: - type: http namespace: engage-rest-folder baseUri: https://localhost:8080 description: Marketo Engage Rest API — Folder business capability. Self-contained, no shared references. resources: - name: rest-asset-v1-folder-byName.json path: /rest/asset/v1/folder/byName.json operations: - name: getfolderbynameusingget method: GET description: Marketo Get Folder by Name outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: name in: query type: string description: Name of the folder. Not applicable for Programs required: true - name: type in: query type: string description: Type of folder. 'Folder' or 'Program' - name: root in: query type: string description: Parent folder reference - name: workSpace in: query type: string description: Name of the workspace - name: rest-asset-v1-folder-id}.json path: /rest/asset/v1/folder/{id}.json operations: - name: getfolderbyidusingget method: GET description: Marketo Get Folder by Id outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: integer description: Id of the folder to retrieve required: true - name: type in: query type: string description: Type of folder. 'Folder' or 'Program' required: true - name: updatefolderusingpost method: POST description: Marketo Update Folder Metadata outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: integer description: Id of the folder to update required: true - name: body in: body type: object description: Request body (JSON). required: true - name: rest-asset-v1-folder-id-content.json path: /rest/asset/v1/folder/{id}/content.json operations: - name: getfoldercontentusingget method: GET description: Marketo Get Folder Contents outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: integer description: Id of the folder to retrieve required: true - name: maxReturn in: query type: integer description: Maximum number of channels to return. Max 200, default 20 - name: offset in: query type: integer description: Integer offset for paging - name: type in: query type: string description: Type of folder. 'Folder' or 'Program'. Default is 'Folder' required: true - name: rest-asset-v1-folder-id-delete.json path: /rest/asset/v1/folder/{id}/delete.json operations: - name: deletefolderusingpost method: POST description: Marketo Delete Folder outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: integer description: Id of the folder to delete required: true - name: body in: body type: object description: Request body (JSON). required: true - name: rest-asset-v1-folder-id-tokens.json path: /rest/asset/v1/folder/{id}/tokens.json operations: - name: gettokensbyfolderidusingget method: GET description: Marketo Get Tokens by Folder Id outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: integer description: id required: true - name: folderType in: query type: string description: Type of folder. 'Folder' or 'Program' - name: addtokentofolderusingpost method: POST description: Marketo Create Token outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: integer description: Id of the folder to which the token will be associated with required: true - name: body in: body type: object description: Request body (JSON). required: true - name: rest-asset-v1-folder-id-tokens-delete.json path: /rest/asset/v1/folder/{id}/tokens/delete.json operations: - name: deletetokenbynameusingpost method: POST description: Marketo Delete Token by Name outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: integer description: id required: true - name: body in: body type: object description: Request body (JSON). required: true exposes: - type: rest namespace: engage-rest-folder-rest port: 8080 description: REST adapter for Marketo Engage Rest API — Folder. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/asset/v1/folder/byname-json name: rest-asset-v1-folder-byname-json description: REST surface for rest-asset-v1-folder-byName.json. operations: - method: GET name: getfolderbynameusingget description: Marketo Get Folder by Name call: engage-rest-folder.getfolderbynameusingget with: name: rest.name type: rest.type root: rest.root workSpace: rest.workSpace outputParameters: - type: object mapping: $. - path: /v1/asset/v1/folder/id-json name: rest-asset-v1-folder-id-json description: REST surface for rest-asset-v1-folder-id}.json. operations: - method: GET name: getfolderbyidusingget description: Marketo Get Folder by Id call: engage-rest-folder.getfolderbyidusingget with: id: rest.id type: rest.type outputParameters: - type: object mapping: $. - method: POST name: updatefolderusingpost description: Marketo Update Folder Metadata call: engage-rest-folder.updatefolderusingpost with: id: rest.id body: rest.body outputParameters: - type: object mapping: $. - path: /v1/asset/v1/folder/{id}/content-json name: rest-asset-v1-folder-id-content-json description: REST surface for rest-asset-v1-folder-id-content.json. operations: - method: GET name: getfoldercontentusingget description: Marketo Get Folder Contents call: engage-rest-folder.getfoldercontentusingget with: id: rest.id maxReturn: rest.maxReturn offset: rest.offset type: rest.type outputParameters: - type: object mapping: $. - path: /v1/asset/v1/folder/{id}/delete-json name: rest-asset-v1-folder-id-delete-json description: REST surface for rest-asset-v1-folder-id-delete.json. operations: - method: POST name: deletefolderusingpost description: Marketo Delete Folder call: engage-rest-folder.deletefolderusingpost with: id: rest.id body: rest.body outputParameters: - type: object mapping: $. - path: /v1/asset/v1/folder/{id}/tokens-json name: rest-asset-v1-folder-id-tokens-json description: REST surface for rest-asset-v1-folder-id-tokens.json. operations: - method: GET name: gettokensbyfolderidusingget description: Marketo Get Tokens by Folder Id call: engage-rest-folder.gettokensbyfolderidusingget with: id: rest.id folderType: rest.folderType outputParameters: - type: object mapping: $. - method: POST name: addtokentofolderusingpost description: Marketo Create Token call: engage-rest-folder.addtokentofolderusingpost with: id: rest.id body: rest.body outputParameters: - type: object mapping: $. - path: /v1/asset/v1/folder/{id}/tokens/delete-json name: rest-asset-v1-folder-id-tokens-delete-json description: REST surface for rest-asset-v1-folder-id-tokens-delete.json. operations: - method: POST name: deletetokenbynameusingpost description: Marketo Delete Token by Name call: engage-rest-folder.deletetokenbynameusingpost with: id: rest.id body: rest.body outputParameters: - type: object mapping: $. - type: mcp namespace: engage-rest-folder-mcp port: 9090 transport: http description: MCP adapter for Marketo Engage Rest API — Folder. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: marketo-get-folder-name description: Marketo Get Folder by Name hints: readOnly: true destructive: false idempotent: true call: engage-rest-folder.getfolderbynameusingget with: name: tools.name type: tools.type root: tools.root workSpace: tools.workSpace outputParameters: - type: object mapping: $. - name: marketo-get-folder-id description: Marketo Get Folder by Id hints: readOnly: true destructive: false idempotent: true call: engage-rest-folder.getfolderbyidusingget with: id: tools.id type: tools.type outputParameters: - type: object mapping: $. - name: marketo-update-folder-metadata description: Marketo Update Folder Metadata hints: readOnly: false destructive: false idempotent: false call: engage-rest-folder.updatefolderusingpost with: id: tools.id body: tools.body outputParameters: - type: object mapping: $. - name: marketo-get-folder-contents description: Marketo Get Folder Contents hints: readOnly: true destructive: false idempotent: true call: engage-rest-folder.getfoldercontentusingget with: id: tools.id maxReturn: tools.maxReturn offset: tools.offset type: tools.type outputParameters: - type: object mapping: $. - name: marketo-delete-folder description: Marketo Delete Folder hints: readOnly: false destructive: false idempotent: false call: engage-rest-folder.deletefolderusingpost with: id: tools.id body: tools.body outputParameters: - type: object mapping: $. - name: marketo-get-tokens-folder-id description: Marketo Get Tokens by Folder Id hints: readOnly: true destructive: false idempotent: true call: engage-rest-folder.gettokensbyfolderidusingget with: id: tools.id folderType: tools.folderType outputParameters: - type: object mapping: $. - name: marketo-create-token description: Marketo Create Token hints: readOnly: false destructive: false idempotent: false call: engage-rest-folder.addtokentofolderusingpost with: id: tools.id body: tools.body outputParameters: - type: object mapping: $. - name: marketo-delete-token-name description: Marketo Delete Token by Name hints: readOnly: false destructive: false idempotent: false call: engage-rest-folder.deletetokenbynameusingpost with: id: tools.id body: tools.body outputParameters: - type: object mapping: $.