home / mcp / withings mcp server
Provides access to Withings health data via MCP for Claude and other clients.
Configuration
View docs{
"mcpServers": {
"akutishevsky-withings-mcp": {
"url": "https://withings-mcp.com/mcp",
"headers": {
"PORT": "3000",
"LOG_LEVEL": "info",
"ALLOWED_ORIGINS": "https://example.com",
"ENCRYPTION_SECRET": "GENERATED_SECRET",
"WITHINGS_CLIENT_ID": "YOUR_CLIENT_ID",
"WITHINGS_REDIRECT_URI": "https://your-domain.com/callback",
"WITHINGS_CLIENT_SECRET": "YOUR_CLIENT_SECRET"
}
}
}
}This MCP server lets you access your Withings health data through natural conversation, enabling you to ask questions about sleep, body measurements, workouts, heart data, and more from Claude or any MCP-compatible client. It focuses on secure, private access so you can explore insights and trends without exposing sensitive information.
You connect your MCP client to the Withings MCP Server to start querying your health data. Common patterns include asking for sleep quality over a period, tracking weight and heart rate trends, reviewing workouts, and checking ECG or other heart data. The server exposes a set of tools that your MCP client can call; you don’t need to know the underlying API—you simply ask in natural language and the client translates requests into tool calls.
Prerequisites: You need Node.js 18+ and npm installed to run the server locally.
Step 1: Prepare your environment and get the source code ready for running locally.
# Step 1: Clone the MCP server repository
# Note: Replace with your actual repository path if you host your own copy
# git clone https://github.com/akutishevsky/withings-mcp.git
# cd withings-mcp
# Step 2: Install dependencies
npm install
# Step 3: Generate a secure encryption secret for token handling
npm run generate-secret
# Copy the generated secret when you configure environment variablesLocal development requires exposing a public OAuth redirect URL for Withings. You can use a tunneling service or deploy to a staging environment to test OAuth callbacks.
# Copy environment template and customize values
cp .env.example .env
# Edit .env to include your credentials and redirect URL
# WITHINGS_CLIENT_ID=your_client_id
# WITHINGS_CLIENT_SECRET=your_client_secret
# WITHINGS_REDIRECT_URI=https://your-tunnel-url.com/callback
# ENCRYPTION_SECRET=paste_generated_secret_here
# PORT=3000
# Build and start the server locally
npm run build
npm startAll access tokens are encrypted at rest using AES-256-GCM, and a robust redaction system prevents sensitive data from appearing in logs. You can revoke access at any time from your Withings account settings.
If you encounter OAuth callback issues during development, ensure your redirect URI in Withings matches the deployed URL exactly and that the public URL is reachable from Withings’ servers.
Retrieve sleep duration, stages, heart rate, breathing, and sleep score over a period.
Fetch daily steps, distance, calories, elevation, and activity durations.
Access high-frequency activity data throughout the day.
Obtain detailed workout summaries with heart rate zones and metrics.
Return weight, body composition, blood pressure, heart rate, temperature, VO2 max, and more.
List connected Withings devices for the user.
Show health and fitness goals such as steps, sleep, and weight.
List ECG recordings available for the user.
Provide detailed ECG waveform data.
List stethoscope recordings (BPM Core).
Provide detailed audio signal data from stethoscope readings.