naftiko: 1.0.0-alpha2 info: label: Mistral AI Files API — Files description: 'Mistral AI Files API — Files. 6 operations. Lead operation: Mistral AI List files. Self-contained Naftiko capability covering one Mistral business surface.' tags: - Mistral - Files created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: MISTRAL_API_KEY: MISTRAL_API_KEY capability: consumes: - type: http namespace: files-files baseUri: https://api.mistral.ai/v1 description: Mistral AI Files API — Files business capability. Self-contained, no shared references. resources: - name: files path: /files operations: - name: listfiles method: GET description: Mistral AI List files outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: page in: query type: integer description: Page number for pagination - name: page_size in: query type: integer description: Number of items per page - name: purpose in: query type: string description: Filter files by purpose - name: uploadfile method: POST description: Mistral AI Upload a file outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: files-file_id path: /files/{file_id} operations: - name: getfile method: GET description: Mistral AI Get file details outputRawFormat: json outputParameters: - name: result type: object value: $. - name: deletefile method: DELETE description: Mistral AI Delete a file outputRawFormat: json outputParameters: - name: result type: object value: $. - name: files-file_id-content path: /files/{file_id}/content operations: - name: downloadfile method: GET description: Mistral AI Download file content outputRawFormat: json outputParameters: - name: result type: object value: $. - name: files-file_id-url path: /files/{file_id}/url operations: - name: getfilesignedurl method: GET description: Mistral AI Get a signed download URL outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: expiry in: query type: integer description: URL expiry time in hours authentication: type: bearer token: '{{env.MISTRAL_API_KEY}}' exposes: - type: rest namespace: files-files-rest port: 8080 description: REST adapter for Mistral AI Files API — Files. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/files name: files description: REST surface for files. operations: - method: GET name: listfiles description: Mistral AI List files call: files-files.listfiles with: page: rest.page page_size: rest.page_size purpose: rest.purpose outputParameters: - type: object mapping: $. - method: POST name: uploadfile description: Mistral AI Upload a file call: files-files.uploadfile with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/files/{file-id} name: files-file-id description: REST surface for files-file_id. operations: - method: GET name: getfile description: Mistral AI Get file details call: files-files.getfile outputParameters: - type: object mapping: $. - method: DELETE name: deletefile description: Mistral AI Delete a file call: files-files.deletefile outputParameters: - type: object mapping: $. - path: /v1/files/{file-id}/content name: files-file-id-content description: REST surface for files-file_id-content. operations: - method: GET name: downloadfile description: Mistral AI Download file content call: files-files.downloadfile outputParameters: - type: object mapping: $. - path: /v1/files/{file-id}/url name: files-file-id-url description: REST surface for files-file_id-url. operations: - method: GET name: getfilesignedurl description: Mistral AI Get a signed download URL call: files-files.getfilesignedurl with: expiry: rest.expiry outputParameters: - type: object mapping: $. - type: mcp namespace: files-files-mcp port: 9090 transport: http description: MCP adapter for Mistral AI Files API — Files. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: mistral-ai-list-files description: Mistral AI List files hints: readOnly: true destructive: false idempotent: true call: files-files.listfiles with: page: tools.page page_size: tools.page_size purpose: tools.purpose outputParameters: - type: object mapping: $. - name: mistral-ai-upload-file description: Mistral AI Upload a file hints: readOnly: false destructive: false idempotent: false call: files-files.uploadfile with: body: tools.body outputParameters: - type: object mapping: $. - name: mistral-ai-get-file-details description: Mistral AI Get file details hints: readOnly: true destructive: false idempotent: true call: files-files.getfile outputParameters: - type: object mapping: $. - name: mistral-ai-delete-file description: Mistral AI Delete a file hints: readOnly: false destructive: true idempotent: true call: files-files.deletefile outputParameters: - type: object mapping: $. - name: mistral-ai-download-file-content description: Mistral AI Download file content hints: readOnly: true destructive: false idempotent: true call: files-files.downloadfile outputParameters: - type: object mapping: $. - name: mistral-ai-get-signed-download description: Mistral AI Get a signed download URL hints: readOnly: true destructive: false idempotent: true call: files-files.getfilesignedurl with: expiry: tools.expiry outputParameters: - type: object mapping: $.