MCP server for the Withings Health API with OAuth, local cache, and trend analysis
- ✓Open-source license (GPL-3.0)
- ✓Actively maintained (<30d)
- ✓Clear description
- ✓Topics declared
claude mcp add withings-mcp -- uvx withings-mcp{
"mcpServers": {
"withings-mcp": {
"command": "uvx",
"args": ["withings-mcp"]
}
}
}MCP Servers overview
# withings-mcp <!-- mcp-name: io.github.partymola/withings-mcp --> [](https://github.com/partymola/withings-mcp/actions/workflows/ci.yml) [](https://www.gnu.org/licenses/gpl-3.0) [](https://www.python.org/downloads/) [](https://pypi.org/project/withings-mcp/) [](https://glama.ai/mcp/servers/partymola/withings-mcp) MCP server for the [Withings Health API](https://developer.withings.com/) with OAuth, local SQLite cache, and trend analysis. **What makes this different from other Withings MCP servers:** - Local SQLite cache for fast offline queries and historical trend analysis - Incremental sync - only fetches new data since last sync - Broad Withings coverage: 17 body-composition metrics plus sleep, daily activity, workouts, and ECG/AFib - Automatic OAuth token refresh (access tokens: 3h, refresh tokens: 1 year) - Zero dependencies beyond `mcp` (HTTP via stdlib) - Python 3.13+ ## Tools | Tool | Description | Data source | |------|-------------|-------------| | `withings_sync` | Sync data from Withings API to local cache | Live API -> SQLite | | `withings_get_body` | Body composition (weight, fat%, muscle, bone, BP, SpO2) | Local cache (auto-syncs if stale) | | `withings_get_sleep` | Sleep summaries, or detailed phase time-series with `detail=True` | Cache (summary) / live (detail) | | `withings_get_activity` | Daily steps, distance, calories, active time | Local cache (auto-syncs if stale) | | `withings_get_workouts` | Workout sessions with type, duration, HR | Local cache (auto-syncs if stale) | | `withings_get_heart` | ECG recordings and AFib detection | Live API (always) | | `withings_get_devices` | Connected devices with battery status | Live API (always) | | `withings_trends` | Period averages, weekly/monthly/quarterly trends, comparisons | Local cache (auto-syncs if stale) | The cache-backed query tools auto-sync when their data is stale, and accept `live=True` to bypass the cache and fetch straight from the Withings API. `withings_get_heart` and `withings_get_devices` are always live. `withings_get_sleep(detail=True)` returns minute-by-minute sleep phases (live, up to 7 days per request). ## Prerequisites - Python 3.13+ - [uv](https://docs.astral.sh/uv/) (recommended) or pip - A Withings developer account and registered application ## Installation ```bash pip install withings-mcp ``` Or run it without installing with `uvx withings-mcp`. For development from a clone: ```bash git clone https://github.com/partymola/withings-mcp.git cd withings-mcp uv venv --python 3.13 .venv uv pip install -e . ``` ## Setup ### 1. Register a Withings app 1. Go to https://developer.withings.com/dashboard 2. Create a new application 3. Set the callback URL to `http://localhost:8585` 4. Note your Client ID and Client Secret ### 2. Authenticate ```bash .venv/bin/withings-mcp auth ``` This opens your browser for Withings authorization. After approving, tokens are saved locally in `config/`. ### 3. Register with Claude Code ```bash claude mcp add -s user withings -- /path/to/withings-mcp/.venv/bin/withings-mcp ``` ### 4. First sync In Claude Code, say: "Sync my Withings data" This runs `withings_sync` to populate the local cache. Subsequent syncs only fetch new data. You can also sync from the command line without an MCP client: ```bash .venv/bin/withings-mcp sync # all data types, last 30 days .venv/bin/withings-mcp sync --types body,sleep # a subset .venv/bin/withings-mcp sync --days 90 # deeper history on first sync ``` ## CLI ``` withings-mcp Start the MCP server (stdio transport) withings-mcp auth Interactive OAuth setup (opens the browser) withings-mcp sync Sync data to the local cache (--types, --days) withings-mcp --version Print the installed package version ``` ## Configuration | Environment Variable | Default | Description | |---------------------|---------|-------------| | `WITHINGS_MCP_CONFIG_DIR` | `./config/` | Directory for credentials and tokens | | `WITHINGS_MCP_DB_PATH` | `./withings.db` | SQLite database path | ## Example Prompts - "Sync my Withings data" - "Show my weight for the last 3 months" - "How has my sleep changed this year?" - "Compare my body composition this month vs last month" - "What workouts did I do in March?" - "What Withings devices do I have connected?" - "Show my sleep trends quarterly" ## Development ```bash # Install with dev dependencies uv pip install -e . && uv pip install pytest # Run tests (all use in-memory SQLite with fictional data) .venv/bin/python -m pytest tests/ -v ``` ## Security - **Read-only**: No tools modify data on Withings servers - **Local storage**: Health data stays in your local SQLite database - **Token storage**: OAuth tokens stored in `config/` (gitignored, file permissions 0600) - **Error messages**: Never contain health data values - only status codes - **Pre-commit hook**: An optional hook (`scripts/check-no-data.sh`) blocks database files and credentials from commits - install it with the one-liner in [CONTRIBUTING.md](https://github.com/partymola/withings-mcp/blob/main/CONTRIBUTING.md) ## Contributing See [CONTRIBUTING.md](https://github.com/partymola/withings-mcp/blob/main/CONTRIBUTING.md) for development setup, the test workflow, and the pre-commit hook. Changes are tracked in [CHANGELOG.md](https://github.com/partymola/withings-mcp/blob/main/CHANGELOG.md). ## License GPL-3.0-or-later
What people ask about withings-mcp
What is partymola/withings-mcp?
+
partymola/withings-mcp is mcp servers for the Claude AI ecosystem. MCP server for the Withings Health API with OAuth, local cache, and trend analysis It has 0 GitHub stars and was last updated today.
How do I install withings-mcp?
+
You can install withings-mcp by cloning the repository (https://github.com/partymola/withings-mcp) or following the README instructions on GitHub. ClaudeWave also provides quick install blocks on this page.
Is partymola/withings-mcp safe to use?
+
Our security agent has analyzed partymola/withings-mcp and assigned a Trust Score of 87/100 (tier: Trusted). See the full breakdown of passed checks and flags on this page.
Who maintains partymola/withings-mcp?
+
partymola/withings-mcp is maintained by partymola. The last recorded GitHub activity is from today, with 0 open issues.
Are there alternatives to withings-mcp?
+
Yes. On ClaudeWave you can browse similar mcp servers at /categories/mcp, sorted by popularity or recent activity.
Deploy withings-mcp to your cloud
Ship this repo to production in minutes. Each platform spins up its own environment with editable env vars.
Maintain this repo? Add a badge to your README
Drop the badge into your GitHub README to show it's tracked on ClaudeWave. Each badge links back to this page and reflects the live Trust Score.
[](https://claudewave.com/repo/partymola-withings-mcp)<a href="https://claudewave.com/repo/partymola-withings-mcp"><img src="https://claudewave.com/api/badge/partymola-withings-mcp" alt="Featured on ClaudeWave: partymola/withings-mcp" width="320" height="64" /></a>More MCP Servers
Fair-code workflow automation platform with native AI capabilities. Combine visual building with custom code, self-host or cloud, 400+ integrations.
User-friendly AI Interface (Supports Ollama, OpenAI API, ...)
An open-source AI agent that brings the power of Gemini directly into your terminal.
The fastest path to AI-powered full stack observability, even for lean teams.
Real-time global intelligence dashboard. AI-powered news aggregation, geopolitical monitoring, and infrastructure tracking in a unified situational awareness interface
🕷️ An adaptive Web Scraping framework that handles everything from a single request to a full-scale crawl!