list_activities_tool
Retrieve recent workout sessions from Strava to track athletic performance and training history.
Instructions
List recent activities for the authenticated athlete.
Args: limit: Number of activities to return (default 5)
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| result | Yes |
Implementation Reference
- Service function that fetches activities from Strava API using client.get_activities(). Handles safe extraction of moving_time and creates ActivitySummary dataclass instances with all relevant activity fields.
def list_activities(client: Client, limit: int) -> list[ActivitySummary]: """List recent activities for the authenticated athlete.""" activities = client.get_activities(limit=limit) result = [] for activity in activities: # Handle moving_time safely moving_time = ( getattr(activity.moving_time, "seconds", 0) if activity.moving_time else 0 ) summary = ActivitySummary( id=activity.id or 0, name=activity.name or "", type=str(activity.type), start_date=activity.start_date.isoformat() if activity.start_date else None, distance=float(activity.distance) if activity.distance else 0.0, moving_time=moving_time, total_elevation_gain=float(activity.total_elevation_gain) if activity.total_elevation_gain else 0.0, average_speed=float(activity.average_speed or 0.0), max_speed=float(activity.max_speed or 0.0), ) result.append(summary) return result - strava_mcp/models.py:41-57 (schema)ActivitySummary dataclass schema defining the structure of activity data returned by list_activities_tool. Includes fields like id, name, type, start_date, distance, moving_time, elevation_gain, and speeds. Provides to_dict() method for serialization.
@dataclass class ActivitySummary: """Summary of a Strava activity.""" id: int name: str type: str start_date: Optional[str] distance: float moving_time: int total_elevation_gain: float average_speed: float = 0.0 max_speed: float = 0.0 def to_dict(self) -> dict: """Convert to dictionary for serialization.""" return asdict(self)