@striderlabs/mcp-peloton
v1.0.0
Published
MCP server connector for Peloton fitness equipment and classes
Downloads
50
Maintainers
Readme
@striderlabs/mcp-peloton
An MCP (Model Context Protocol) server connector for Peloton fitness equipment and classes. Uses Playwright browser automation to interact with the Peloton platform.
Installation
npm install -g @striderlabs/mcp-peloton
npx playwright install chromiumUsage with Claude Desktop
Add to your Claude Desktop config (~/Library/Application Support/Claude/claude_desktop_config.json):
{
"mcpServers": {
"peloton": {
"command": "striderlabs-mcp-peloton"
}
}
}Or run directly:
striderlabs-mcp-pelotonTools
peloton_login
Log in to your Peloton account. Must be called before any other tool.
Parameters:
email(string, required): Peloton account emailpassword(string, required): Peloton account password
peloton_get_profile
Get the current user's Peloton profile information including username, stats, and settings.
peloton_search_classes
Search for Peloton classes with optional filters.
Parameters:
class_type(string, optional): Fitness discipline —cycling,running,strength,yoga,meditation,stretching,cardio,walking,bike_bootcampinstructor(string, optional): Instructor ID or nameduration(number, optional): Class duration in minutes (e.g.,20,30,45,60)difficulty(string, optional):beginner,intermediate, oradvancedlimit(number, optional): Max results to return (default: 20)
peloton_get_class_details
Get detailed information about a specific class.
Parameters:
class_id(string, required): The unique class identifier
peloton_get_schedule
Get scheduled live classes for a date range.
Parameters:
date_range(object, optional):start(string): Start datetime in ISO 8601 (e.g.,2024-01-15T00:00:00Z)end(string): End datetime in ISO 8601 (e.g.,2024-01-16T23:59:59Z)
peloton_book_live_class
Reserve a spot in a scheduled live class.
Parameters:
class_id(string, required): The live class identifier to book
peloton_get_workout_history
Retrieve the user's past workout history.
Parameters:
limit(number, optional): Number of workouts to fetch (default: 20, max: 100)
peloton_get_achievements
Get the user's Peloton achievements and badges.
peloton_get_challenges
List active Peloton challenges available to join.
peloton_join_challenge
Join a Peloton challenge.
Parameters:
challenge_id(string, required): The challenge identifier to join
peloton_get_instructors
Get a list of all Peloton instructors with their bios and specialties.
peloton_get_bookmarks
Get the user's bookmarked/favorited classes.
peloton_add_bookmark
Add a class to the user's bookmarks/favorites.
Parameters:
class_id(string, required): The class identifier to bookmark
Example Workflow
1. peloton_login(email="[email protected]", password="secret")
2. peloton_get_profile()
3. peloton_search_classes(class_type="cycling", duration=30, difficulty="intermediate")
4. peloton_get_class_details(class_id="<id from search>")
5. peloton_add_bookmark(class_id="<id>")
6. peloton_get_workout_history(limit=10)
7. peloton_get_achievements()
8. peloton_get_challenges()
9. peloton_join_challenge(challenge_id="<id>")Development
git clone https://github.com/markswendsen-code/mcp-peloton
cd mcp-peloton
npm install
npm run buildRequirements
- Node.js 18+
- Chromium (installed via
npx playwright install chromium) - A valid Peloton account
License
MIT
