withings-mcp
by brianokelly1
README.md
# withings-mcp
A local MCP server that gives Claude read access to your Withings scale data
(weight, and body-composition metrics like fat ratio, muscle mass, bone mass,
and hydration, where your scale records them).
## Setup
### 1. Register a Withings developer app
1. Go to https://developer.withings.com/dashboard/ and sign in (or create an account).
2. Create a new app.
3. Set the **Redirect URI** to `http://localhost:8934/callback` (must match exactly).
4. Copy the **Client ID** and **Client Secret**.
### 2. Install dependencies
```bash
pip install -r requirements.txt
```
### 3. Configure credentials
```bash
cp .env.example .env
```
Edit `.env` and fill in `WITHINGS_CLIENT_ID` and `WITHINGS_CLIENT_SECRET`.
### 4. Authorize (one time)
```bash
python auth.py
```
This opens your browser to log in to Withings and approve access. On success,
tokens are saved to `token.json` (gitignored). The server auto-refreshes the
access token from then on — you shouldn't need to run this again unless you
revoke access.
### 5. Register the server with Claude Code
```bash
claude mcp add withings -- python C:\Users\brian\Desktop\Claude\withings-mcp\server.py
```
Restart Claude Code (or reload MCP servers) afterward.
## Tools exposed
- `get_latest_weight()` — most recent weigh-in
- `get_weight_history(start_date?, end_date?)` — weigh-ins in a date range (`YYYY-MM-DD`), or full history if omitted
## Troubleshooting
- **"No saved Withings token found"** — run `python auth.py`.
- **Withings API error / status != 0** — the error body includes Withings' status
code; common ones are `401` (bad params) and `503` (invalid/expired token —
re-run `python auth.py`).
This server cannot be deployed
Maintenance
ActivitySlowing
ResponsivenessNo issues