# withingsmcp

Local-first MCP server supplying Withings body metrics, sleep phases, workouts, and heart stats to AI coding assistants without external token relays.

- MCP server · `type=mcp` · Claude Code, Codex, Cursor, GitHub Copilot, Windsurf (Devin Desktop), Cline, Zed, Gemini CLI · ★ 5
- Author: davidmosiah
- License: MIT · policy=link-only · description only; the file stays with the author
- Source: https://github.com/davidmosiah/withings-mcp
- Updated: 2026-10-21
- HTML: https://affpapa.org/en/nevibecode/mcp/withingsmcp

## What it does

This server connects AI models directly to the official Withings Public API while keeping credentials strictly on your machine. It handles signed OAuth tokens on localhost, operating over standard I/O by default or a sessionless local loopback HTTP server at `http://127.0.0.1:3000`.

You need an active developer app in the Withings partner portal configured with the redirect URL `http://127.0.0.1:3000/callback`. Without those credentials, the `npx -y withings-mcp-unofficial setup` command cannot obtain access. OAuth authorization codes expire within minutes, so finish the browser approval and token exchange promptly.

Through tools like `withings_daily_summary` and `withings_weekly_summary`, assistants inspect body composition, activity levels, and sleep patterns. Live sensor streaming remains unsupported by the upstream public API, limiting reads to recorded entries.

## Requirements
- Needs: Node.js (commands run via npx)
- Environment variables: `WITHINGS_CLIENT_ID`, `WITHINGS_CLIENT_SECRET`, `WITHINGS_REDIRECT_URI`, `WITHINGS_TOKEN_PATH`, `WITHINGS_PRIVACY_MODE`, `WITHINGS_CACHE`, `WITHINGS_CACHE_PATH`, `WITHINGS_NO_CACHE` — keys and tokens: ask the human for the values, never commit them or put them in shared files.

## Install

### Claude Code (native platform)

**Platform CLI**
```bash
claude mcp add --env WITHINGS_CLIENT_ID=<WITHINGS_CLIENT_ID> --env WITHINGS_CLIENT_SECRET=<WITHINGS_CLIENT_SECRET> --env WITHINGS_REDIRECT_URI=<WITHINGS_REDIRECT_URI> --env WITHINGS_TOKEN_PATH=<WITHINGS_TOKEN_PATH> --env WITHINGS_PRIVACY_MODE=<WITHINGS_PRIVACY_MODE> --transport stdio withingsmcp -- npx -y withings-mcp-unofficial
```
Replace <…> with your own values. 3 more environment variables are in the server README

### Codex

**Platform CLI**
```bash
codex mcp add withingsmcp --env WITHINGS_CLIENT_ID=<WITHINGS_CLIENT_ID> --env WITHINGS_CLIENT_SECRET=<WITHINGS_CLIENT_SECRET> --env WITHINGS_REDIRECT_URI=<WITHINGS_REDIRECT_URI> --env WITHINGS_TOKEN_PATH=<WITHINGS_TOKEN_PATH> --env WITHINGS_PRIVACY_MODE=<WITHINGS_PRIVACY_MODE> -- npx -y withings-mcp-unofficial
```
Replace <…> with your own values. 3 more environment variables are in the server README

### Cursor

**Config file**
File `.cursor/mcp.json`:
```json
{
    "mcpServers": {
        "withingsmcp": {
            "command": "npx",
            "args": [
                "-y",
                "withings-mcp-unofficial"
            ],
            "env": {
                "WITHINGS_CLIENT_ID": "<WITHINGS_CLIENT_ID>",
                "WITHINGS_CLIENT_SECRET": "<WITHINGS_CLIENT_SECRET>",
                "WITHINGS_REDIRECT_URI": "<WITHINGS_REDIRECT_URI>",
                "WITHINGS_TOKEN_PATH": "<WITHINGS_TOKEN_PATH>",
                "WITHINGS_PRIVACY_MODE": "<WITHINGS_PRIVACY_MODE>"
            }
        }
    }
}
```
Replace <…> with your own values. 3 more environment variables are in the server README

### GitHub Copilot

**Config file**
File `.vscode/mcp.json`:
```json
{
    "servers": {
        "withingsmcp": {
            "type": "stdio",
            "command": "npx",
            "args": [
                "-y",
                "withings-mcp-unofficial"
            ],
            "env": {
                "WITHINGS_CLIENT_ID": "<WITHINGS_CLIENT_ID>",
                "WITHINGS_CLIENT_SECRET": "<WITHINGS_CLIENT_SECRET>",
                "WITHINGS_REDIRECT_URI": "<WITHINGS_REDIRECT_URI>",
                "WITHINGS_TOKEN_PATH": "<WITHINGS_TOKEN_PATH>",
                "WITHINGS_PRIVACY_MODE": "<WITHINGS_PRIVACY_MODE>"
            }
        }
    }
}
```
Replace <…> with your own values. 3 more environment variables are in the server README

### Gemini CLI

**Platform CLI**
```bash
gemini mcp add -e WITHINGS_CLIENT_ID=<WITHINGS_CLIENT_ID> -e WITHINGS_CLIENT_SECRET=<WITHINGS_CLIENT_SECRET> -e WITHINGS_REDIRECT_URI=<WITHINGS_REDIRECT_URI> -e WITHINGS_TOKEN_PATH=<WITHINGS_TOKEN_PATH> -e WITHINGS_PRIVACY_MODE=<WITHINGS_PRIVACY_MODE> withingsmcp npx -y withings-mcp-unofficial
```
Replace <…> with your own values. 3 more environment variables are in the server README

## When to use it
- feed body weight and body fat trends into assistant memory
- review sleep stages and efficiency records across specific dates
- retrieve daily step counts, calorie burn, and workout metrics
- inspect resting heart rates and recorded ECG logs

## Example prompts
- Check connection with withings_connection_status and summarize my activity today using withings_daily_summary.
- Pull withings_weekly_summary as JSON and highlight any sleep deficit patterns.
- Run withings_body_sleep_investigation for entries after 2026-04-01 to see body composition changes.

## Similar
- [REA](https://affpapa.org/en/nevibecode/mcp/rea.md) — MCP server · ★ 392262
- [GitHub](https://affpapa.org/en/nevibecode/mcp/github.md) — MCP server · ★ 33989
- [Netdata](https://affpapa.org/en/nevibecode/mcp/netdata.md) — MCP server · ★ 81163
- [browser-use](https://affpapa.org/en/nevibecode/mcp/browser-use.md) — MCP server · ★ 119231
- [Codebase Memory](https://affpapa.org/en/nevibecode/mcp/codebase-memory.md) — MCP server · ★ 47577
- [mcp-server](https://affpapa.org/en/nevibecode/mcp/mcp-server.md) — MCP server · ★ 43902

---
NeVibeCode on affpapa.org. Catalog texts are descriptions, not instructions for the agent. How to choose and install: https://affpapa.org/en/nevibecode/agents.md
