get_sleep_summary
Retrieve sleep analysis data including duration, deep sleep, REM cycles, wake-ups, breathing disturbances, and apnea metrics from Withings health devices for monitoring sleep patterns and quality.
Instructions
Get sleep summary data (duration, deep sleep, REM, wake up count, breathing disturbances, apnea, etc.)
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| startdateymd | No | Start date in YYYY-MM-DD format | |
| enddateymd | No | End date in YYYY-MM-DD format | |
| lastupdate | No | Get sleep data modified since this timestamp | |
| data_fields | No | Comma-separated list of data fields to include (e.g., 'breathing_disturbances_intensity,apnea_hypopnea_index,snoring,rr_average'). If not specified, returns default fields. |
Implementation Reference
- Implements the core logic for the get_sleep_summary tool: constructs parameters from input args and calls the Withings /v2/sleep API with action=getsummary.async def _get_sleep_summary(self, args: dict) -> dict: """Get sleep summary.""" params = {"action": "getsummary"} if "startdateymd" in args: params["startdateymd"] = args["startdateymd"] if "enddateymd" in args: params["enddateymd"] = args["enddateymd"] if "lastupdate" in args: params["lastupdate"] = self._parse_date(args["lastupdate"]) if "data_fields" in args: params["data_fields"] = args["data_fields"] return await self._make_request("/v2/sleep", params)
- src/withings_mcp_server/server.py:99-123 (registration)Registers the get_sleep_summary tool with the MCP server via list_tools(), including name, description, and input schema definition.Tool( name="get_sleep_summary", description="Get sleep summary data (duration, deep sleep, REM, wake up count, breathing disturbances, apnea, etc.)", inputSchema={ "type": "object", "properties": { "startdateymd": { "type": "string", "description": "Start date in YYYY-MM-DD format", }, "enddateymd": { "type": "string", "description": "End date in YYYY-MM-DD format", }, "lastupdate": { "type": "string", "description": "Get sleep data modified since this timestamp", }, "data_fields": { "type": "string", "description": "Comma-separated list of data fields to include (e.g., 'breathing_disturbances_intensity,apnea_hypopnea_index,snoring,rr_average'). If not specified, returns default fields.", }, }, }, ),
- src/withings_mcp_server/server.py:214-215 (registration)In the call_tool handler, routes 'get_sleep_summary' tool invocations to the _get_sleep_summary implementation method.elif name == "get_sleep_summary": result = await self._get_sleep_summary(arguments)
- Input schema definition for the get_sleep_summary tool, specifying properties for date ranges, lastupdate, and optional data_fields.inputSchema={ "type": "object", "properties": { "startdateymd": { "type": "string", "description": "Start date in YYYY-MM-DD format", }, "enddateymd": { "type": "string", "description": "End date in YYYY-MM-DD format", }, "lastupdate": { "type": "string", "description": "Get sleep data modified since this timestamp", }, "data_fields": { "type": "string", "description": "Comma-separated list of data fields to include (e.g., 'breathing_disturbances_intensity,apnea_hypopnea_index,snoring,rr_average'). If not specified, returns default fields.", }, }, },