runalyze-mcp-server
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@runalyze-mcp-serverWhat was my HRV yesterday?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
🏃 Runalyze MCP Server
Access your Runalyze health metrics through AI assistants using the Model Context Protocol (MCP)
A secure MCP server that lets you retrieve health data (HRV, Sleep, Resting Heart Rate, Activities) from your Runalyze account directly within AI chat applications like Claude Desktop and ChatGPT Desktop.
🎯 Choose Your Setup
This server can be used in two ways. Choose the option that works best for you:
🖥️ Local Setup
Run on your own computer
Pros:
✅ Complete privacy - data stays on your machine
✅ No internet required after setup
✅ Free to use
✅ Full control
Cons:
⚠️ Requires Node.js installation
⚠️ Need to build from source
⚠️ Only works on the computer where it's installed
Setup time: ~5 minutes
☁️ Hosted Setup
Use our hosted server
Pros:
✅ No installation required
✅ Works from any device
✅ Always up-to-date
✅ Quick 2-minute setup
Cons:
⚠️ Requires internet connection
⚠️ Depends on hosted service availability
Setup time: ~2 minutes
Server URL: https://runalyze-mcp-server.fly.dev
Security Note: Both options are secure. The hosted version does NOT store your API token - you provide it with each request, just like the local version stores it in your config file.
Related MCP server: Pierre Fitness Platform MCP Server
📖 Table of Contents
🖥️ Option 1: Local Setup
Run the MCP server on your own computer.
Prerequisites
Before you start, make sure you have:
Node.js v18 or higher (via Devbox or manual install)
Yarn package manager (Installation guide)
A Runalyze account with premium access (Get premium)
An AI assistant that supports MCP (Claude Desktop, ChatGPT Desktop, VS Code extensions, etc.)
Installation
Step 1: Download and Build
# Clone the repository
git clone https://github.com/floriankimmel/runalyze-mcp-server.git
cd runalyze-mcp-serverOption A: Using Devbox (Recommended)
Devbox provides isolated, reproducible dev environments.
Install devbox and direnv:
# macOS brew install devbox direnvEnable direnv in the project:
direnv allowRun devbox scripts:
devbox run install # yarn install devbox run build # yarn build devbox run dev # yarn start:dev devbox run dev:http # yarn start:http:dev
Option B: Manual Setup
# Install dependencies
yarn install
# Build the server
yarn buildThe compiled server will be in the dist/ directory.
Step 2: Get Your Runalyze API Token
Log in to your Runalyze account
Go to Settings → Personal API: https://runalyze.com/settings/personal-api
Click Generate new token
Copy the token (you'll need it in the next step)
Configure Your AI Tool (Local)
Choose your AI assistant and follow the configuration steps:
For Claude Desktop 🟣
Locate your configuration file:
macOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows:
%APPDATA%\Claude\claude_desktop_config.jsonLinux:
~/.config/Claude/claude_desktop_config.json
Add the server configuration:
{
"mcpServers": {
"runalyze": {
"command": "node",
"args": [
"/absolute/path/to/runalyze-mcp-server/dist/main.js"
],
"env": {
"RUNALYZE_API_TOKEN": "your-api-token-here"
}
}
}
}Replace the values:
Change
/absolute/path/to/runalyze-mcp-serverto where you installed the serverReplace
your-api-token-herewith your Runalyze API token
Restart Claude Desktop
For ChatGPT Desktop 🟢
Open ChatGPT Desktop settings
Navigate to Developer Settings → MCP Servers
Click Add Server and configure:
Name:
runalyzeCommand:
nodeArguments:
/absolute/path/to/runalyze-mcp-server/dist/main.jsEnvironment Variables:
Key:
RUNALYZE_API_TOKENValue:
your-api-token-here
Save and restart ChatGPT Desktop
For Cline (VS Code Extension) 💙
Open VS Code settings (JSON)
Add this configuration:
{
"mcp.servers": {
"runalyze": {
"command": "node",
"args": [
"/absolute/path/to/runalyze-mcp-server/dist/main.js"
],
"env": {
"RUNALYZE_API_TOKEN": "your-api-token-here"
}
}
}
}Replace the path and token with your values
Reload VS Code
For Continue (VS Code Extension) 🔵
Open Continue configuration file (
~/.continue/config.json)Add to the
mcpServersarray:
{
"mcpServers": [
{
"name": "runalyze",
"command": "node",
"args": [
"/absolute/path/to/runalyze-mcp-server/dist/main.js"
],
"env": {
"RUNALYZE_API_TOKEN": "your-api-token-here"
}
}
]
}Replace the path and token with your values
Restart Continue
For Zed Editor 🌟
Open Zed settings (
~/.config/zed/settings.json)Add this configuration:
{
"mcp": {
"servers": {
"runalyze": {
"command": "node",
"args": [
"/absolute/path/to/runalyze-mcp-server/dist/main.js"
],
"env": {
"RUNALYZE_API_TOKEN": "your-api-token-here"
}
}
}
}
}Replace the path and token with your values
Restart Zed
☁️ Option 2: Hosted Setup
Use our hosted MCP server - no installation required!
Server URL: https://runalyze-mcp-server.fly.dev
Get Your Runalyze API Token
Log in to your Runalyze account
Go to Settings → Personal API: https://runalyze.com/settings/personal-api
Click Generate new token
Copy the token (you'll need it in the next step)
Configure Your AI Tool (Hosted)
Choose your AI assistant and follow the configuration steps:
For Claude Desktop 🟣
Note: Claude Desktop currently only supports STDIO transport. To use the hosted version, you would need an HTTP-to-STDIO bridge. For now, we recommend using the Local Setup with Claude Desktop.
For ChatGPT Desktop 🟢
Note: Check if ChatGPT Desktop supports HTTP transport for MCP servers. If not, use the Local Setup instead.
For MCP Clients with HTTP Support
If your AI tool supports MCP over HTTP, configure it with:
Endpoint URL:
https://runalyze-mcp-server.fly.dev/mcpAuthentication: Bearer token
Token: Your Runalyze API token
Example configuration format:
{
"mcpServers": {
"runalyze": {
"url": "https://runalyze-mcp-server.fly.dev/mcp",
"transport": "http",
"headers": {
"Authorization": "Bearer YOUR_RUNALYZE_TOKEN"
}
}
}
}Direct HTTP API Usage
You can also use the hosted server directly via HTTP:
Health Check (no authentication required):
curl https://runalyze-mcp-server.fly.dev/healthGet HRV Data:
curl -X POST https://runalyze-mcp-server.fly.dev/mcp \
-H "Authorization: Bearer YOUR_RUNALYZE_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"method": "tools/call",
"params": {
"name": "get-runalyze-hrv-data",
"arguments": {"page": 1}
}
}'Get Activities:
curl -X POST https://runalyze-mcp-server.fly.dev/mcp \
-H "Authorization: Bearer YOUR_RUNALYZE_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"method": "tools/call",
"params": {
"name": "get-runalyze-activities",
"arguments": {"page": 1}
}
}'Get Activity Details:
curl -X POST https://runalyze-mcp-server.fly.dev/mcp \
-H "Authorization: Bearer YOUR_RUNALYZE_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"method": "tools/call",
"params": {
"name": "get-runalyze-activity-detail",
"arguments": {"id": 12345}
}
}'🎯 What You Can Do
Once configured, you can ask your AI assistant questions like:
Activities
"Show me my recent activities from Runalyze"
"What workouts did I log this week?"
"Get details for activity 12345"
"Analyze my running data from last month"
Heart Rate Variability (HRV)
"What's my latest HRV data?"
"Show me my HRV trends over the past month"
"How is my recovery looking based on HRV?"
Sleep Data
"Show me my sleep data from last week"
"How many hours did I sleep last night?"
"What's my sleep pattern this month?"
Resting Heart Rate
"What was my resting heart rate this morning?"
"Show me my resting heart rate trend"
"Is my resting heart rate improving?"
The AI will automatically fetch your data and provide insights!
Available Tools
The server provides these tools to your AI assistant:
get-runalyze-activities- Get your activity list (runs, rides, workouts)get-runalyze-activity-detail- Get detailed info for a specific activityget-runalyze-hrv-data- Retrieve Heart Rate Variability measurementsget-runalyze-sleep-data- Get sleep tracking dataget-runalyze-heart-rate-rest-data- Get resting heart rate measurements
All tools support pagination for browsing through historical data.
🔒 Security Notes
Local Setup
Your API token is stored in your MCP client's configuration file on your computer
All communication happens locally on your machine
No data is sent to third parties
Token is validated at startup
Hosted Setup
No tokens are stored on the server
Each request requires your Runalyze API token in the Authorization header
You only access your own data
All communication is over HTTPS
The server is stateless - it doesn't remember anything between requests
Both options are secure. Choose based on your preference:
Local = Maximum privacy, everything on your machine
Hosted = Convenience, no installation needed
🐛 Troubleshooting
Local Setup Issues
Server won't start
✅ Check your API token is valid: https://runalyze.com/settings/personal-api
✅ Verify the path to
dist/main.jsis absolute and correct✅ Ensure Node.js v18+ is installed:
node --version✅ Check you ran
yarn buildsuccessfully✅ Try running
node /absolute/path/to/dist/main.jsmanually to see error messages
"Configuration validation failed"
✅ The
RUNALYZE_API_TOKENenvironment variable is missing in your config✅ Double-check your MCP client configuration syntax (valid JSON)
✅ Ensure the token has no extra spaces or quotes
No data returned
✅ Verify you have data in your Runalyze account
✅ Check your account has premium/supporter access (required for API)
✅ Ensure your API token has the necessary permissions
✅ Try accessing https://runalyze.com/api/v1/metrics/hrv directly in your browser while logged in
AI assistant doesn't see the tools
✅ Restart your AI assistant after configuration changes
✅ Check the MCP server appears in the AI assistant's MCP server list
✅ Look for error messages in the AI assistant's logs/developer console
✅ Verify the JSON configuration is valid (use a JSON validator)
Hosted Setup Issues
Connection fails
✅ Check the server is running:
curl https://runalyze-mcp-server.fly.dev/health✅ Verify you have internet connectivity
✅ Ensure the URL is correct:
https://runalyze-mcp-server.fly.dev/mcp
Authentication errors (401 Unauthorized)
✅ Ensure you're including the
Authorization: Bearer YOUR_TOKENheader✅ Verify your Runalyze API token is valid and not expired
✅ Check there are no extra spaces in the token
✅ Make sure you copied the complete token from Runalyze
404 or other errors
✅ Verify the endpoint path is
/mcpnot just/✅ Check you're using POST method, not GET
✅ Ensure Content-Type header is
application/json
AI tool doesn't support HTTP transport
✅ Many MCP clients currently only support STDIO transport
✅ Use the Local Setup instead
✅ Or use the HTTP API directly with curl/scripts
General Issues
Still having problems?
Check your Runalyze API token at https://runalyze.com/settings/personal-api
Verify you have premium access: https://runalyze.com/premium
Review Runalyze API Documentation
Check MCP Documentation
Open an issue on GitHub
📚 Learn More
🏃 Runalyze - Training analysis platform
📖 Model Context Protocol - MCP specification
🤖 Claude Desktop - AI assistant
💬 ChatGPT - AI assistant
🚀 For Developers
Want to contribute or deploy your own instance? Check out:
CONTRIBUTING.md - Development setup and guidelines
Fly.io Deployment Guide - Host your own instance
📝 License
MIT
Made with ❤️ for the Runalyze community
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/floriankimmel/runalyze-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server