Used for exposing locally running WHOOP MCP server to the internet for testing and integration with Poke AI assistant.
Enables cloud deployment of the WHOOP MCP server with one-click deployment, automatic configuration, and environment variable management for hosting the service.
WHOOP MCP Server for Poke
Connect your WHOOP fitness data to Poke AI assistant using the Model Context Protocol (MCP).
šÆ What This Does
This MCP server lets you query your WHOOP fitness data through Poke AI assistant using natural language:
"What's my recovery score today?" - Get your daily recovery metrics
"How did I sleep last night?" - Analyze your sleep performance
"Show me my strain data" - View workout strain and heart rate zones
"What's my biological age?" - Check your WHOOP Age and healthspan metrics
⨠Features
š 5 WHOOP Data Tools: Overview, Sleep, Recovery, Strain, Healthspan
š Automatic Token Refresh: Handles authentication seamlessly
š Cloud Ready: Deploy to Render with one click
š¤ Poke Compatible: Works out of the box with Poke AI
š What Makes This Different
This is a reverse-engineered implementation that directly interfaces with WHOOP's private API. No official SDK, no OAuth flows, no waiting for API approval. Perfect for developers who don't want to go through the hassle of WHOOP's official development program but still want programmatic access to their comprehensive fitness data.
š Quick Start
Prerequisites
Python 3.10 or higher
WHOOP account with active subscription
Poke account (for AI assistant integration)
Render account (free tier works)
Option 1: Deploy to Render (Recommended)
Click the "Deploy to Render" button above
Configure your deployment:
Name:
whoop-mcp-server(or your choice)Branch:
main
Set environment variables:
WHOOP_EMAIL: Your WHOOP account emailWHOOP_PASSWORD: Your WHOOP account password
Wait for deployment (~5-10 minutes)
Get your MCP URL:
https://your-service-name.onrender.com/mcpConnect to Poke:
Go to https://poke.com/settings/connections/integrations/new
Add your MCP URL
Start asking questions!
Option 2: Run Locally
Clone the repository:
git clone https://github.com/kabirrgrover/whoop-mcp-poke.git cd whoop-mcp-pokeCreate virtual environment:
python -m venv .venv source .venv/bin/activate # On Windows: .venv\Scripts\activateInstall dependencies:
pip install -r requirements.txtConfigure environment:
cp .env.example .env # Edit .env with your WHOOP credentialsRun the server:
python src/server.pyServer runs at:
http://localhost:8000/mcp
š§ Configuration
Environment Variables
Variable | Required | Description |
| ā Yes | Your WHOOP account email |
| ā Yes | Your WHOOP account password |
| ā No | Server port (default: 8000, auto-set by Render) |
WHOOP Credentials
Get your WHOOP credentials:
Sign up at https://www.whoop.com
Ensure you have an active WHOOP subscription
Use your login email and password
Security Note: Your credentials are stored securely in environment variables and never logged or exposed.
š± Using with Poke
Connect to Poke
Deploy your server to Render (or run locally with ngrok)
Go to https://poke.com/settings/connections/integrations/new
Add your MCP server URL
Test the connection
Testing the Connection
After connecting to Poke, test with:
You should see: ā MCP Server is working! Connection successful.
Available Tools
1. Overview Data
Ask Poke: "What's my WHOOP data for today?"
Returns:
Recovery score
Day strain
Sleep hours
Calories burned
HRV, RHR trends
Today's activities
2. Sleep Analysis
Ask Poke: "How did I sleep last night?"
Returns:
Sleep performance score
Hours slept vs needed
Sleep consistency
Sleep efficiency
Insights and recommendations
3. Recovery Metrics
Ask Poke: "What's my recovery score?"
Returns:
Recovery score (0-100%)
HRV with trends
RHR with trends
Respiratory rate
Coach insights
4. Strain Tracking
Ask Poke: "Show me my strain data"
Returns:
Strain score
Heart rate zone distribution
Strength activity time
Steps
Individual workouts
5. Healthspan
Ask Poke: "What's my biological age?"
Returns:
WHOOP Age (biological age)
Age comparison vs chronological
Pace of aging
Weekly trends
Example Conversation
šļø Architecture
Technology Stack
FastMCP 2.0 - MCP server framework
Python 3.10+ - Runtime
httpx - Async HTTP client
Render - Cloud hosting
AWS Cognito - WHOOP authentication
š ļø Development
Project Structure
Running Tests
Test your MCP server with the MCP Inspector:
Open http://localhost:3000 and connect to http://localhost:8000/mcp using "HTTP" transport.
š Security
ā Credentials stored in environment variables only
ā WHOOP tokens auto-refresh (24-hour lifetime)
ā No credentials in code or logs
ā HTTPS for all API calls
ā AWS Cognito authentication
Best Practices:
Never commit
.envfileUse strong WHOOP password
Rotate credentials if exposed
Use Render's environment variable encryption
š Troubleshooting
"Authentication failed" Error
Solution:
Verify your WHOOP email and password in Render environment variables
Try logging into https://app.whoop.com with the same credentials
Ensure your WHOOP subscription is active
"Invalid MCP server URL" in Poke
Solution:
Verify your URL is exactly:
https://your-service-name.onrender.com/mcpCheck that your Render service is running (green status)
Test the endpoint in a browser - you should see JSON response
Deployment Timeout on Render
Solution:
Check Render logs for specific errors
Verify all environment variables are set
Ensure
requirements.txthas all dependencies
Server responds but no data returned
Solution:
Verify your WHOOP subscription is active
Check you have recent WHOOP data (wear your strap!)
Try querying data from a specific date: "What was my recovery on 2025-11-01?"
"No module named 'fastmcp'" Error
Solution:
Verify
requirements.txthasfastmcp>=2.0.0On Render, trigger a manual deploy to reinstall dependencies
Check Render logs for failed dependency installation
š Resources
Documentation
Related Projects
Poke MCP Template - Official Poke template
MCP Inspector - Tool for testing MCP servers
š¤ Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
š License
MIT License - feel free to use this for your own projects!
ā Acknowledgments
Built with FastMCP 2.0
Designed for Poke AI Assistant
š¬ Support
If you have questions or issues:
Check the Troubleshooting section above
Open an issue on GitHub
Review FastMCP documentation
Check Poke's integration guide
š Quick Links
Use This Template: Click "Use this template" button above
Report Issues: GitHub Issues
Star on GitHub: Show your support! ā
Made with ā¤ļø for the WHOOP and Poke communities
This is an open-source project. Contributions, issues, and feature requests are welcome!
This server cannot be installed