naftiko: 1.0.0-alpha2 info: label: Freshdesk REST API — Solutions description: 'Freshdesk REST API — Solutions. 15 operations. Lead operation: View a solution article. Self-contained Naftiko capability covering one Freshdesk business surface.' tags: - Freshdesk - Solutions created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: FRESHDESK_API_KEY: FRESHDESK_API_KEY capability: consumes: - type: http namespace: rest-solutions baseUri: https://{domain}.freshdesk.com/api/v2 description: Freshdesk REST API — Solutions business capability. Self-contained, no shared references. resources: - name: solutions-articles-article_id path: /solutions/articles/{article_id} operations: - name: getsolutionarticle method: GET description: View a solution article outputRawFormat: json outputParameters: - name: result type: object value: $. - name: updatesolutionarticle method: PUT description: Update a solution article outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: deletesolutionarticle method: DELETE description: Delete a solution article outputRawFormat: json outputParameters: - name: result type: object value: $. - name: solutions-categories path: /solutions/categories operations: - name: listsolutioncategories method: GET description: List all solution categories outputRawFormat: json outputParameters: - name: result type: object value: $. - name: createsolutioncategory method: POST description: Create a solution category outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: solutions-categories-category_id path: /solutions/categories/{category_id} operations: - name: getsolutioncategory method: GET description: View a solution category outputRawFormat: json outputParameters: - name: result type: object value: $. - name: updatesolutioncategory method: PUT description: Update a solution category outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: deletesolutioncategory method: DELETE description: Delete a solution category outputRawFormat: json outputParameters: - name: result type: object value: $. - name: solutions-categories-category_id-folders path: /solutions/categories/{category_id}/folders operations: - name: listsolutionfolders method: GET description: List solution folders in a category outputRawFormat: json outputParameters: - name: result type: object value: $. - name: createsolutionfolder method: POST description: Create a solution folder outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: solutions-folders-folder_id path: /solutions/folders/{folder_id} operations: - name: getsolutionfolder method: GET description: View a solution folder outputRawFormat: json outputParameters: - name: result type: object value: $. - name: updatesolutionfolder method: PUT description: Update a solution folder outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: deletesolutionfolder method: DELETE description: Delete a solution folder outputRawFormat: json outputParameters: - name: result type: object value: $. - name: solutions-folders-folder_id-articles path: /solutions/folders/{folder_id}/articles operations: - name: listsolutionarticles method: GET description: List solution articles in a folder outputRawFormat: json outputParameters: - name: result type: object value: $. - name: createsolutionarticle method: POST description: Create a solution article outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true authentication: type: basic username: '{{env.FRESHDESK_USER}}' password: '{{env.FRESHDESK_PASS}}' exposes: - type: rest namespace: rest-solutions-rest port: 8080 description: REST adapter for Freshdesk REST API — Solutions. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/solutions/articles/{article-id} name: solutions-articles-article-id description: REST surface for solutions-articles-article_id. operations: - method: GET name: getsolutionarticle description: View a solution article call: rest-solutions.getsolutionarticle outputParameters: - type: object mapping: $. - method: PUT name: updatesolutionarticle description: Update a solution article call: rest-solutions.updatesolutionarticle with: body: rest.body outputParameters: - type: object mapping: $. - method: DELETE name: deletesolutionarticle description: Delete a solution article call: rest-solutions.deletesolutionarticle outputParameters: - type: object mapping: $. - path: /v1/solutions/categories name: solutions-categories description: REST surface for solutions-categories. operations: - method: GET name: listsolutioncategories description: List all solution categories call: rest-solutions.listsolutioncategories outputParameters: - type: object mapping: $. - method: POST name: createsolutioncategory description: Create a solution category call: rest-solutions.createsolutioncategory with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/solutions/categories/{category-id} name: solutions-categories-category-id description: REST surface for solutions-categories-category_id. operations: - method: GET name: getsolutioncategory description: View a solution category call: rest-solutions.getsolutioncategory outputParameters: - type: object mapping: $. - method: PUT name: updatesolutioncategory description: Update a solution category call: rest-solutions.updatesolutioncategory with: body: rest.body outputParameters: - type: object mapping: $. - method: DELETE name: deletesolutioncategory description: Delete a solution category call: rest-solutions.deletesolutioncategory outputParameters: - type: object mapping: $. - path: /v1/solutions/categories/{category-id}/folders name: solutions-categories-category-id-folders description: REST surface for solutions-categories-category_id-folders. operations: - method: GET name: listsolutionfolders description: List solution folders in a category call: rest-solutions.listsolutionfolders outputParameters: - type: object mapping: $. - method: POST name: createsolutionfolder description: Create a solution folder call: rest-solutions.createsolutionfolder with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/solutions/folders/{folder-id} name: solutions-folders-folder-id description: REST surface for solutions-folders-folder_id. operations: - method: GET name: getsolutionfolder description: View a solution folder call: rest-solutions.getsolutionfolder outputParameters: - type: object mapping: $. - method: PUT name: updatesolutionfolder description: Update a solution folder call: rest-solutions.updatesolutionfolder with: body: rest.body outputParameters: - type: object mapping: $. - method: DELETE name: deletesolutionfolder description: Delete a solution folder call: rest-solutions.deletesolutionfolder outputParameters: - type: object mapping: $. - path: /v1/solutions/folders/{folder-id}/articles name: solutions-folders-folder-id-articles description: REST surface for solutions-folders-folder_id-articles. operations: - method: GET name: listsolutionarticles description: List solution articles in a folder call: rest-solutions.listsolutionarticles outputParameters: - type: object mapping: $. - method: POST name: createsolutionarticle description: Create a solution article call: rest-solutions.createsolutionarticle with: body: rest.body outputParameters: - type: object mapping: $. - type: mcp namespace: rest-solutions-mcp port: 9090 transport: http description: MCP adapter for Freshdesk REST API — Solutions. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: view-solution-article description: View a solution article hints: readOnly: true destructive: false idempotent: true call: rest-solutions.getsolutionarticle outputParameters: - type: object mapping: $. - name: update-solution-article description: Update a solution article hints: readOnly: false destructive: false idempotent: true call: rest-solutions.updatesolutionarticle with: body: tools.body outputParameters: - type: object mapping: $. - name: delete-solution-article description: Delete a solution article hints: readOnly: false destructive: true idempotent: true call: rest-solutions.deletesolutionarticle outputParameters: - type: object mapping: $. - name: list-all-solution-categories description: List all solution categories hints: readOnly: true destructive: false idempotent: true call: rest-solutions.listsolutioncategories outputParameters: - type: object mapping: $. - name: create-solution-category description: Create a solution category hints: readOnly: false destructive: false idempotent: false call: rest-solutions.createsolutioncategory with: body: tools.body outputParameters: - type: object mapping: $. - name: view-solution-category description: View a solution category hints: readOnly: true destructive: false idempotent: true call: rest-solutions.getsolutioncategory outputParameters: - type: object mapping: $. - name: update-solution-category description: Update a solution category hints: readOnly: false destructive: false idempotent: true call: rest-solutions.updatesolutioncategory with: body: tools.body outputParameters: - type: object mapping: $. - name: delete-solution-category description: Delete a solution category hints: readOnly: false destructive: true idempotent: true call: rest-solutions.deletesolutioncategory outputParameters: - type: object mapping: $. - name: list-solution-folders-category description: List solution folders in a category hints: readOnly: true destructive: false idempotent: true call: rest-solutions.listsolutionfolders outputParameters: - type: object mapping: $. - name: create-solution-folder description: Create a solution folder hints: readOnly: false destructive: false idempotent: false call: rest-solutions.createsolutionfolder with: body: tools.body outputParameters: - type: object mapping: $. - name: view-solution-folder description: View a solution folder hints: readOnly: true destructive: false idempotent: true call: rest-solutions.getsolutionfolder outputParameters: - type: object mapping: $. - name: update-solution-folder description: Update a solution folder hints: readOnly: false destructive: false idempotent: true call: rest-solutions.updatesolutionfolder with: body: tools.body outputParameters: - type: object mapping: $. - name: delete-solution-folder description: Delete a solution folder hints: readOnly: false destructive: true idempotent: true call: rest-solutions.deletesolutionfolder outputParameters: - type: object mapping: $. - name: list-solution-articles-folder description: List solution articles in a folder hints: readOnly: true destructive: false idempotent: true call: rest-solutions.listsolutionarticles outputParameters: - type: object mapping: $. - name: create-solution-article description: Create a solution article hints: readOnly: false destructive: false idempotent: false call: rest-solutions.createsolutionarticle with: body: tools.body outputParameters: - type: object mapping: $.