Workshop.bike MCP Server
Connect your AI assistant (Claude Desktop, Cursor, ChatGPT, …) to Workshop.bike so it can answer questions about your bikes, components and rides — and even make changes for you, like booking a service.
Server URL
Connecting securely
When you connect an assistant, you'll see a consent screen here first — nothing is read or changed until you approve, and you never hand over a password. You can revoke an app's access at any time under Connected apps.
Permissions
-
read:bikesRead your bikes, components and mount history -
read:ridesRead your rides, services and timeline -
read:catalogSearch the product catalog (chains, tires, …)
Available tools
Tool descriptions are what the AI reads to decide which one to call; the originals are in English for protocol stability.
get_user_info
User profile
Returns the connected athlete's profile, default bike, lifetime ride totals, and unit preference. Call this at the start of every conversation to learn the context the assistant should reason about — units, default bike, who the user actually is.
list_bikes
List bikes
Lists every bike the user can see — bikes they own plus bikes shared with them via a team. Each entry includes the type, manufacturer, model, year, lifetime ride count and distance, and an `is_shared` flag so the assistant can distinguish owned from co-managed bikes. Sorted by name.
get_bike_details
Bike details
Returns a single bike with the components currently mounted on it (chain, cassette, tires, …), each component's lifetime distance and maintenance status, plus recent ride totals and any due services. Use when the user asks about a specific bike.
list_components
List components
Lists components owned by the user. Filter by bike to see what's currently mounted on a given bike, by category to see all tires / all chains, or by status to include retired components. Each entry carries lifetime distance and a `needs_replacement` flag derived from the product's recommended_mileage.
get_component_details
Component details
Returns a single component with its full mount history (every bike it's been mounted on, with installed/removed dates and distance ridden during each mount period). Use for diagnosing wear, planning replacement, or answering 'how many km has this chain done in total?'.
list_maintenance
Maintenance backlog & upcoming services
One call for everything maintenance-related: components past their replacement mileage AND service intervals (wax, clean, inspect, charge) that are due or coming up — for both components and equipment. `threshold_percentage` (default 80) controls how early upcoming work shows up; set 100 to get only items already overdue. Results are sorted most urgent first. Ideal to call proactively at the end of a ride or day so you can warn the user about what's coming up at their bike or gear.
list_rides
List rides
Lists the user's rides, newest first. Optional filters for date range and bike. Each ride includes distance, duration, elevation gain, activity type and whether it was imported from Strava/Garmin/Wahoo. Defaults to the last 30 days, capped at 50 rides per call — pass explicit `from` and `to` for longer ranges, or `limit` up to 200.
get_ride_details
Ride details
Returns a single ride with its full metric set: power, heart rate, cadence, speed where available, plus conditions (weather, surface, road) and description. Use for 'how did my ride go on day X?' questions.
get_timeline
Bike timeline
Returns the maintenance and component timeline for a bike: when components were installed, replaced or removed; when services were performed. Useful for 'when did I last change the chain on my road bike?'. Ordered newest first.
list_services
List services
Lists service events (workshop visits, replacements, checks). Each entry includes the bike, performed_at date, service_type, and a brief notes field. Use for 'when did I last service my chain?' or planning the next big workshop visit.
get_service_details
Service details
Returns a single service event with every action performed (component replaced, component installed, check, lube, etc.) and the components touched.
list_equipment
List equipment
Lists the user's equipment — shoes, helmets, clothing — with usage stats (rides used, total distance) and whether each item is past its recommended lifespan.
search_products
Search catalog
Searches the product catalog of wear parts and equipment. Returns name, manufacturer, category and the manufacturer's recommended mileage where known. Use for 'what brake pads should I buy for SRAM Force?'.
complete_maintenance
Complete maintenance
Marks a due service interval (wax, clean, lube, adjust, inspect, charge) as completed. Pass the `service_interval_id` from `list_maintenance`. Records the service against the relevant bike and resets the interval's due clock so it drops out of the maintenance backlog. Optional `performed_at` (ISO-8601, defaults to now) and `notes`. Requires the `write` permission — if the user hasn't granted it, ask them to reconnect Workshop.bike with write access.
create_bike
Create Bike
Create a new bike for the current user. Returns the new bike details.
create_component
Create Component
Create a new component owned by the current user. Optionally link to a product from the catalog with product_id.
mount_component_to_bike
Mount Component to Bike
Mount a component onto a bike, recording the installation date.
create_bike_from_template
Create bike from template
Instantiate a bike template: creates the bike and all its components in one step. Use list_bike_templates (Phase 2) to find template IDs.