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

https://mcp.workshop.bike

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:bikes Read your bikes, components and mount history
  • read:rides Read your rides, services and timeline
  • read:catalog Search 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.