trainingpeaks
TrainingPeaks MCP server for Claude Desktop. No API approval needed - works with any account. Query workouts, CTL/ATL/TSB fitness data, power PRs via natural language.
claude mcp add --transport stdio jamsusmaximus-trainingpeaks-mcp /path/to/venv/bin/tp-mcp serve
How to use
This MCP server provides read-only access to your TrainingPeaks data through natural language queries via AI assistants that support the Model Context Protocol (MCP). Tools exposed include tp_get_workouts for listing workouts by date range, tp_get_workout for detailed metrics of a single workout, tp_get_peaks for comparing power or pace PRs, tp_get_fitness for tracking CTL/ATL/TSB, tp_get_workout_prs for PRs within a workout, and tp_refresh_auth to re-authenticate when the session expires. The server authenticates using a cookie stored securely on your device (not sent to Claude) and reads data from TrainingPeaks without making modifications to your account. When you ask questions like “What was my FTP progression this year?” or “Show my form trend for the last 8 weeks,” the MCP tools fetch the latest data and present summarized results suitable for conversational AI responses.
How to install
Prerequisites:
- Python 3.10+ installed on your system
- Git available to clone the repository
- Basic familiarity with Python virtual environments
Step 1: Clone the repository
git clone https://github.com/JamsusMaximus/trainingpeaks-mcp.git
cd trainingpeaks-mcp
Step 2: Create and activate a virtual environment
python3 -m venv .venv
# macOS/Linux
source .venv/bin/activate
# Windows
.venv\Scripts\activate
Step 3: Install the package in editable mode
pip install -e .
Step 4: Authenticate with TrainingPeaks (browser-based or manual entry)
- Follow the project instructions to extract your cookie securely using tp-mcp auth (browser or manual) as described in the README.
- Ensure the authentication step completes successfully before starting the server.
Step 5: Run the MCP server
# Ensure you're in the project root and the virtual environment is active
tp-mcp serve
Step 6: Configure your MCP client (Claude or other) to point at the server using the example mcp_config snippet and update the path to your local tp-mcp executable if needed.
Additional notes
Notes and tips:
- The cookie-based authentication is stored securely on your device and is never exposed to AI assistants.
- The MCP server operates in a read-only mode; it cannot modify TrainingPeaks data or account settings.
- If you upgrade Python or the package, re-create the virtual environment to ensure compatibility.
- The mcp_config example uses a local tp-mcp executable inside a Python virtual environment. Update the path to match your system setup.
- This server uses stdio transport; there is no HTTP server or open network port.
- If you encounter authentication issues, run tp-mcp auth-status to verify the current session state and tp-mcp auth-clear to reset.
- For Claude Desktop users, add the generated JSON snippet to your claude_desktop_config.json under mcpServers and restart Claude Desktop.
Related MCP Servers
mcp-claude-spotify
An integration that allows Claude Desktop to interact with Spotify using the Model Context Protocol (MCP).
mcp-spotify-player
MCP server to manage Spotify from MCP clients
mongo
MCP server that provide tools to LLMs such as claude in cursor to interact with MongoDB
ObsidianMCPServer
A Model Context Protocol (MCP) server that enables AI assistants to interact with your Obsidian vault
storybook
MCP server for Storybook - provides AI assistants access to components, stories, properties and screenshots. Built with TypeScript and Model Context Protocol SDK.
todo-txt
🔗 Model Context Protocol server for todo.txt files - Connect your todo.txt to AI assistants like Claude Desktop