naftiko: 1.0.0-alpha2 info: label: Wahoo Cloud API — Workout File Uploads description: >- FIT-file upload capability for the Wahoo Cloud API. Posts a FIT file asynchronously and polls the returned token for processing state. tags: - Wahoo - Workouts - FIT - Uploads created: '2026-05-25' modified: '2026-05-25' binds: - namespace: env keys: WAHOO_ACCESS_TOKEN: WAHOO_ACCESS_TOKEN capability: consumes: - type: http namespace: cloud-file-uploads baseUri: https://api.wahooligan.com description: Wahoo Cloud Workout File Uploads surface. resources: - name: v1-workout-file-uploads path: /v1/workout_file_uploads operations: - name: createWorkoutFileUpload method: POST description: Upload a FIT file for asynchronous ingestion. inputParameters: - name: file in: formData type: file required: true - name: v1-workout-file-uploads-token path: /v1/workout_file_uploads/{token} operations: - name: getWorkoutFileUpload method: GET description: Get upload status by token. inputParameters: - name: token in: path type: string required: true authentication: type: bearer value: '{{env.WAHOO_ACCESS_TOKEN}}' placement: header exposes: - type: mcp namespace: cloud-file-uploads-mcp port: 9090 transport: http description: MCP adapter for Wahoo Cloud Workout File Uploads. tools: - name: wahoo-upload-fit description: Upload a FIT file to Wahoo Cloud. hints: { readOnly: false, destructive: false, idempotent: false } call: cloud-file-uploads.createWorkoutFileUpload with: { file: tools.file } - name: wahoo-get-fit-upload-status description: Get the processing state of an uploaded FIT file. hints: { readOnly: true, destructive: false, idempotent: true } call: cloud-file-uploads.getWorkoutFileUpload with: { token: tools.token }