Skip to main content
Glama

get_user_activities

Retrieve authenticated user activities from Strava, filtered by timestamps and paginated for efficient data access. Use this tool to streamline activity tracking and analysis.

Instructions

Get the authenticated user's activities.

Args: ctx: The MCP request context before: An epoch timestamp for filtering activities before a certain time after: An epoch timestamp for filtering activities after a certain time page: Page number per_page: Number of items per page

Returns: List of activities

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
afterNo
beforeNo
pageNo
per_pageNo

Implementation Reference

  • The handler function for the 'get_user_activities' tool, decorated with @mcp.tool() for automatic registration in the MCP server. It extracts parameters from the context, calls StravaService.get_activities, converts models to dicts, and handles errors.
    @mcp.tool() async def get_user_activities( ctx: Context, before: int | None = None, after: int | None = None, page: int = 1, per_page: int = 30, ) -> list[dict]: """Get the authenticated user's activities. Args: ctx: The MCP request context before: An epoch timestamp for filtering activities before a certain time after: An epoch timestamp for filtering activities after a certain time page: Page number per_page: Number of items per page Returns: List of activities """ try: # Safely access service from context if not ctx.request_context.lifespan_context: raise ValueError("Lifespan context not available") # Cast service to StravaService to satisfy type checker service = cast(StravaService, ctx.request_context.lifespan_context.get("service")) if not service: raise ValueError("Service not available in context") activities = await service.get_activities(before, after, page, per_page) return [activity.model_dump() for activity in activities] except Exception as e: logger.error(f"Error in get_user_activities tool: {str(e)}") raise
  • Helper method in StravaService that proxies the get_activities call to the underlying StravaAPI client.
    async def get_activities( self, before: int | None = None, after: int | None = None, page: int = 1, per_page: int = 30, ) -> list[Activity]: """Get a list of activities for the authenticated athlete. Args: before: An epoch timestamp for filtering activities before a certain time after: An epoch timestamp for filtering activities after a certain time page: Page number per_page: Number of items per page Returns: List of activities """ try: logger.info("Getting activities for authenticated athlete") activities = await self.api.get_activities(before, after, page, per_page) logger.info(f"Retrieved {len(activities)} activities") return activities except Exception as e: logger.error(f"Error getting activities: {str(e)}") raise

Other Tools

Related Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/yorrickjansen/strava-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server