get_activity_streams
Retrieve detailed time-series data for Strava activities, including GPS coordinates, heart rate, power, cadence, altitude, and velocity metrics to analyze performance.
Instructions
Get detailed time-series data (streams) for an activity: GPS coordinates, heartrate, power, cadence, altitude, etc.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| activity_id | Yes | The Strava activity ID | |
| stream_types | No | Types of streams to retrieve |
Implementation Reference
- src/index.ts:160-193 (handler)The implementation of the get_activity_streams tool, which fetches time-series data from Strava for a given activity ID.
server.tool( "get_activity_streams", "Get detailed time-series data (streams) for an activity: GPS coordinates, heartrate, power, cadence, altitude, etc.", { activity_id: z.number().describe("The Strava activity ID"), stream_types: z .array( z.enum([ "time", "distance", "latlng", "altitude", "velocity_smooth", "heartrate", "cadence", "watts", "temp", "moving", "grade_smooth", ]) ) .default(["time", "distance", "heartrate", "altitude", "velocity_smooth"]) .describe("Types of streams to retrieve"), }, async ({ activity_id, stream_types }) => { const keys = stream_types.join(","); const streams = await stravaFetch( `/activities/${activity_id}/streams?keys=${keys}&key_type=time` ); return { content: [{ type: "text", text: JSON.stringify(streams, null, 2) }], }; } );