naftiko: 1.0.0-alpha2 info: label: Under Armour Connected Fitness description: Unified capability for Under Armour's Connected Fitness platform. Combines workout tracking, route management, user profiles, and heart rate zones into a single workflow surface for fitness app developers, health platform integrators, and athlete analytics use cases. tags: - Under Armour - Fitness - Connected Fitness - Workouts - Routes - Health created: '2026-05-03' modified: '2026-05-06' binds: - namespace: env keys: MAPMYFITNESS_ACCESS_TOKEN: MAPMYFITNESS_ACCESS_TOKEN capability: consumes: - type: http namespace: mapmyfitness baseUri: https://api.ua.com description: Under Armour MapMyFitness Connected Fitness REST API authentication: type: bearer token: '{{MAPMYFITNESS_ACCESS_TOKEN}}' resources: - name: workouts path: /v7.1/workout/ description: Fitness workout records with aggregates and time series operations: - name: list-workouts method: GET description: List workouts for a user with optional filters inputParameters: - name: user in: query type: string required: true description: User ID to filter workouts by - name: activity_type in: query type: string required: false description: Activity type filter - name: order_by in: query type: string required: false description: Sort order (start_datetime or -start_datetime) - name: limit in: query type: integer required: false description: Number of results per page outputRawFormat: json outputParameters: - name: result type: object value: $. - name: create-workout method: POST description: Create a new fitness workout outputRawFormat: json outputParameters: - name: result type: object value: $. body: type: json data: name: '{{tools.name}}' start_datetime: '{{tools.start_datetime}}' start_locale_timezone: '{{tools.timezone}}' aggregates: '{{tools.aggregates}}' - name: workout-item path: /v7.1/workout/{id}/ description: Single workout operations operations: - name: get-workout method: GET description: Get a single workout by ID inputParameters: - name: id in: path type: string required: true description: Workout ID - name: field_set in: query type: string required: false description: Set to time_series for GPS and metric data outputRawFormat: json outputParameters: - name: result type: object value: $. - name: delete-workout method: DELETE description: Delete a workout inputParameters: - name: id in: path type: string required: true description: Workout ID outputRawFormat: json outputParameters: - name: result type: object value: $. - name: routes path: /v7.1/route/ description: Fitness routes with GPS waypoints and elevation data operations: - name: list-routes method: GET description: List routes for a user or near a location inputParameters: - name: user in: query type: string required: false description: User ID - name: close_to_location in: query type: string required: false description: Lat,lng for proximity search - name: search_radius in: query type: integer required: false description: Search radius in meters outputRawFormat: json outputParameters: - name: result type: object value: $. - name: create-route method: POST description: Create a new route outputRawFormat: json outputParameters: - name: result type: object value: $. body: type: json data: name: '{{tools.name}}' distance: '{{tools.distance}}' description: '{{tools.description}}' - name: route-item path: /v7.1/route/{id}/ description: Single route operations operations: - name: get-route method: GET description: Get a single route by ID inputParameters: - name: id in: path type: string required: true description: Route ID - name: field_set in: query type: string required: false description: default or detailed (includes GPS points) outputRawFormat: json outputParameters: - name: result type: object value: $. - name: users path: /v7.1/user/ description: User profile search and social connections operations: - name: list-users method: GET description: Search for users or get social connections inputParameters: - name: q in: query type: string required: false description: Search query - name: friends_with in: query type: string required: false description: Get friends of this user outputRawFormat: json outputParameters: - name: result type: object value: $. - name: user-self path: /v7.1/user/self/ description: Current authenticated user profile operations: - name: get-current-user method: GET description: Get the current authenticated user's profile outputRawFormat: json outputParameters: - name: result type: object value: $. - name: heart-rate-zones path: /v7.1/heart_rate_zone/ description: Heart rate zone configuration operations: - name: list-heart-rate-zones method: GET description: Get heart rate zones for a user inputParameters: - name: user in: query type: string required: true description: User ID outputRawFormat: json outputParameters: - name: result type: object value: $. - name: devices path: /v7.1/device/ description: Registered fitness devices operations: - name: list-devices method: GET description: List fitness devices for a user inputParameters: - name: user in: query type: string required: true description: User ID outputRawFormat: json outputParameters: - name: result type: object value: $. - name: webhooks path: /v7.1/webhook/ description: Webhook event subscriptions operations: - name: list-webhooks method: GET description: List webhook subscriptions outputRawFormat: json outputParameters: - name: result type: object value: $. - name: create-webhook method: POST description: Create a webhook subscription outputRawFormat: json outputParameters: - name: result type: object value: $. body: type: json data: callback_url: '{{tools.callback_url}}' event_type: '{{tools.event_type}}' shared_secret: '{{tools.shared_secret}}' exposes: - type: rest port: 8080 namespace: connected-fitness-api description: Unified REST API for Under Armour Connected Fitness. resources: - path: /v1/workouts name: workouts description: Fitness workouts with aggregates operations: - method: GET name: list-workouts description: List workouts for a user call: mapmyfitness.list-workouts with: user: rest.user outputParameters: - type: object mapping: $. - method: POST name: create-workout description: Create a new workout call: mapmyfitness.create-workout outputParameters: - type: object mapping: $. - path: /v1/workouts/{id} name: workout-item description: Single workout record operations: - method: GET name: get-workout description: Get a workout by ID call: mapmyfitness.get-workout with: id: rest.id outputParameters: - type: object mapping: $. - method: DELETE name: delete-workout description: Delete a workout call: mapmyfitness.delete-workout with: id: rest.id outputParameters: - type: object mapping: $. - path: /v1/routes name: routes description: Fitness routes with GPS data operations: - method: GET name: list-routes description: List routes for a user or near a location call: mapmyfitness.list-routes with: user: rest.user outputParameters: - type: object mapping: $. - method: POST name: create-route description: Create a new route call: mapmyfitness.create-route outputParameters: - type: object mapping: $. - path: /v1/routes/{id} name: route-item description: Single route with optional GPS waypoints operations: - method: GET name: get-route description: Get a route by ID call: mapmyfitness.get-route with: id: rest.id outputParameters: - type: object mapping: $. - path: /v1/users/me name: current-user description: Current authenticated user profile operations: - method: GET name: get-current-user description: Get the authenticated user's profile call: mapmyfitness.get-current-user outputParameters: - type: object mapping: $. - path: /v1/users name: users description: User search and social connections operations: - method: GET name: list-users description: Search users or retrieve friend connections call: mapmyfitness.list-users outputParameters: - type: object mapping: $. - path: /v1/heart-rate-zones name: heart-rate-zones description: Heart rate training zones operations: - method: GET name: list-heart-rate-zones description: Get heart rate zones for a user call: mapmyfitness.list-heart-rate-zones with: user: rest.user outputParameters: - type: object mapping: $. - path: /v1/devices name: devices description: Registered fitness devices operations: - method: GET name: list-devices description: List fitness devices for a user call: mapmyfitness.list-devices with: user: rest.user outputParameters: - type: object mapping: $. - path: /v1/webhooks name: webhooks description: Webhook event subscriptions operations: - method: GET name: list-webhooks description: List webhook subscriptions call: mapmyfitness.list-webhooks outputParameters: - type: object mapping: $. - method: POST name: create-webhook description: Create a webhook subscription call: mapmyfitness.create-webhook outputParameters: - type: object mapping: $. - type: mcp port: 9090 namespace: connected-fitness-mcp transport: http description: MCP server for AI-assisted fitness tracking and analysis with Under Armour Connected Fitness. tools: - name: list-workouts description: List fitness workouts for a user with optional date and activity type filters hints: readOnly: true openWorld: false call: mapmyfitness.list-workouts with: user: tools.user outputParameters: - type: object mapping: $. - name: get-workout description: Get a specific workout record including aggregate metrics and optional time series GPS data hints: readOnly: true openWorld: false call: mapmyfitness.get-workout with: id: tools.id outputParameters: - type: object mapping: $. - name: create-workout description: Record a new fitness workout with distance, time, and energy metrics hints: readOnly: false destructive: false idempotent: false call: mapmyfitness.create-workout outputParameters: - type: object mapping: $. - name: delete-workout description: Delete a workout record hints: readOnly: false destructive: true idempotent: true call: mapmyfitness.delete-workout with: id: tools.id outputParameters: - type: object mapping: $. - name: list-routes description: List fitness routes for a user or near a geographic location hints: readOnly: true openWorld: true call: mapmyfitness.list-routes outputParameters: - type: object mapping: $. - name: get-route description: Get route details including GPS waypoints and elevation data hints: readOnly: true openWorld: false call: mapmyfitness.get-route with: id: tools.id outputParameters: - type: object mapping: $. - name: create-route description: Create a new fitness route with GPS waypoints hints: readOnly: false destructive: false idempotent: false call: mapmyfitness.create-route outputParameters: - type: object mapping: $. - name: get-current-user description: Get the profile of the currently authenticated user hints: readOnly: true openWorld: false call: mapmyfitness.get-current-user outputParameters: - type: object mapping: $. - name: list-users description: Search for users or retrieve social connections and friend lists hints: readOnly: true openWorld: true call: mapmyfitness.list-users outputParameters: - type: object mapping: $. - name: list-heart-rate-zones description: Get heart rate training zones configured for a user hints: readOnly: true openWorld: false call: mapmyfitness.list-heart-rate-zones with: user: tools.user outputParameters: - type: object mapping: $. - name: list-devices description: List fitness devices and wearables registered to a user hints: readOnly: true openWorld: false call: mapmyfitness.list-devices with: user: tools.user outputParameters: - type: object mapping: $. - name: create-webhook description: Subscribe to fitness events like workout creation and updates via webhook hints: readOnly: false destructive: false idempotent: false call: mapmyfitness.create-webhook outputParameters: - type: object mapping: $.