
Cyclesite Mcp Server
Connects Claude to Cyclesite, the UK's used bicycle marketplace, letting you search listings, get bike valuations, post sales, and run trust checks on sellers or bikes directly from your AI workflow. Useful when you're helping someone buy or sell a used bike in the UK and want to pull real marketplace data without tab switching. The server exposes Cyclesite's API through both stdio and streamable HTTP transports, so you can integrate it locally or call it remotely. Reach for this when you need to price check a bike model, verify a seller's reputation, or search inventory based on specific criteria like frame size, brand, or location.
- tools
- 34
- auth
- Secret needed
- transport
- STDIO, HTTP
- env vars
- 2
- last updated
- Oct 27, 2026
Install
From registry metadata$ npx add-mcp https://www.cyclesite.co.uk/api/mcp-server --name cyclesiteRun in your terminal. add-mcp asks which agents to add it to (Claude Code, Codex, Cursor and more). Add -g to install it for every project.
Review the command, arguments and environment values before installing. MCP servers run with your local permissions.
Other ways
Claude Code
$ claude mcp add --transport http cyclesite https://www.cyclesite.co.uk/api/mcp-serverRun in your terminal. Add --scope user to make it available in every project.
Tools
Verified live · 34 toolsVerified live against the running server on Nov 6, 2026.
search_bikesSearch live UK used-bike listings on Cyclesite (the UK's used bicycle marketplace). Filter by brand, category, city, price range, and condition. Returns up to 5 active listings with specs and listing URLs. Live data — refreshed continuously as new bikes are listed. Example que...6 params
Search live UK used-bike listings on Cyclesite (the UK's used bicycle marketplace). Filter by brand, category, city, price range, and condition. Returns up to 5 active listings with specs and listing URLs. Live data — refreshed continuously as new bikes are listed. Example que...
brandstringcategorystringroad · mtb · gravel · hybrid · ebike · kidscitystringconditionstringExcellent · Very_Good · Good · Fair · Poor · For_PartsmaxPricenumberminPricenumberget_recent_listingsWhat's new on Cyclesite right now: up to 10 of the freshest active UK listings, refreshed every 15 minutes. Suited to questions like 'what's new today?' or 'any new road bikes this week?' rather than a specific filter. Optional category + maxPrice filters. Live data.3 params
What's new on Cyclesite right now: up to 10 of the freshest active UK listings, refreshed every 15 minutes. Suited to questions like 'what's new today?' or 'any new road bikes this week?' rather than a specific filter. Optional category + maxPrice filters. Live data.
categorystringroad · mtb · gravel · hybrid · ebike · kidslimitnumbermaxPricenumberget_listing_detailFull details for a specific bike listing on Cyclesite: specs, condition, frame number presence, photos, delivery, seller's city. Takes the URL slug from a listing result. Example: 'tell me more about that 2022 Trek Domane'. The marketplace is not the seller: contact goes throu...1 params
Full details for a specific bike listing on Cyclesite: specs, condition, frame number presence, photos, delivery, seller's city. Takes the URL slug from a listing result. Example: 'tell me more about that 2022 Trek Domane'. The marketplace is not the seller: contact goes throu...
slug*stringfind_similar_listingsGiven a Cyclesite listing slug, return up to 5 similar active listings (same category, ±25% price, same brand or frame size weighted higher), as alternatives to one bike. Example: 'show me bikes like that one'.1 params
Given a Cyclesite listing slug, return up to 5 similar active listings (same category, ±25% price, same brand or frame size weighted higher), as alternatives to one bike. Example: 'show me bikes like that one'.
slug*stringsearch_by_locationFind Cyclesite listings within a radius of a UK town, city or postcode district (the first half of a postcode, e.g. 'BS1', 'M20'). A full postcode is cut to its district; coordinates are not accepted. Radius capped at 50 miles. Returns up to 10 listings ordered by distance, ro...5 params
Find Cyclesite listings within a radius of a UK town, city or postcode district (the first half of a postcode, e.g. 'BS1', 'M20'). A full postcode is cut to its district; coordinates are not accepted. Radius capped at 50 miles. Returns up to 10 listings ordered by distance, ro...
categorystringroad · mtb · gravel · hybrid · ebike · kidslimitnumbermaxPricenumberplace*stringradiusMilesnumberrecommend_bike_for_budgetCurated picks from Cyclesite's live UK inventory for a budget and intent. Prefers higher-engagement listings. Returns up to 5 picks with a one-line rationale each. Example queries: 'a road bike for £1,500 for weekend rides', 'best e-MTB I can buy under £3,000', 'commuter bike...5 params
Curated picks from Cyclesite's live UK inventory for a budget and intent. Prefers higher-engagement listings. Returns up to 5 picks with a one-line rationale each. Example queries: 'a road bike for £1,500 for weekend rides', 'best e-MTB I can buy under £3,000', 'commuter bike...
budgetGbp*numbercategorystringroad · mtb · gravel · hybrid · ebike · kidscitystringlimitnumberuseCasestringlist_brandsPaginated UK bike-brand catalogue from Cyclesite, ordered by stock level, for checking a brand name, listing the options or paging through the catalogue. Stock counts are returned as bands (none / 1-5 / 6-25 / 26-100 / 100+); Cyclesite doesn't expose precise per-brand inventor...3 params
Paginated UK bike-brand catalogue from Cyclesite, ordered by stock level, for checking a brand name, listing the options or paging through the catalogue. Stock counts are returned as bands (none / 1-5 / 6-25 / 26-100 / 100+); Cyclesite doesn't expose precise per-brand inventor...
limitnumberoffsetnumberqstringlist_models_for_brandModels for a brand on Cyclesite (paginated). Returns model names, year ranges, in-stock flag. Example: "what Trek road bikes are available?" (brandSlug "trek", category "road").4 params
Models for a brand on Cyclesite (paginated). Returns model names, year ranges, in-stock flag. Example: "what Trek road bikes are available?" (brandSlug "trek", category "road").
brandSlug*stringcategorystringroad · mtb · gravel · hybrid · ebike · kidslimitnumberoffsetnumberget_model_infoCyclesite catalogue entry for a brand+model: category, year range, model description, key specs, market summary. Reference data — refreshed when models are added or specs change. Example: 'tell me about the Specialized Allez'.2 params
Cyclesite catalogue entry for a brand+model: category, year range, model description, key specs, market summary. Reference data — refreshed when models are added or specs change. Example: 'tell me about the Specialized Allez'.
brand*stringmodel*stringget_spec_sheetAggregated spec sheet for a brand+model[+year], derived from Cyclesite's live UK inventory plus the catalogue record. Returns the most-common frame material, wheel size, groupset, brakes, weight, and (for e-bikes) motor and battery specs. Example: 'what groupset does a Canyon...3 params
Aggregated spec sheet for a brand+model[+year], derived from Cyclesite's live UK inventory plus the catalogue record. Returns the most-common frame material, wheel size, groupset, brakes, weight, and (for e-bikes) motor and battery specs. Example: 'what groupset does a Canyon...
brand*stringmodel*stringyearnumbercompare_bikesSide-by-side comparison of up to 3 bikes (each by brand+model[+year]). Returns spec sheets and valuations together, from the same measured UK data as the single-bike spec sheets and valuations. Example: 'compare a Trek Domane SL 6 against a Specialized Roubaix Comp'.1 params
Side-by-side comparison of up to 3 bikes (each by brand+model[+year]). Returns spec sheets and valuations together, from the same measured UK data as the single-bike spec sheets and valuations. Example: 'compare a Trek Domane SL 6 against a Specialized Roubaix Comp'.
bikes*arrayget_size_guideFrame-size recommendation for a rider's height and bike category, the same chart Cyclesite publishes at /bike-size-calculator (height to inside leg to seat tube), refined by real UK listing data where riders' declared heights are available. Children are sized by wheel diameter...2 params
Frame-size recommendation for a rider's height and bike category, the same chart Cyclesite publishes at /bike-size-calculator (height to inside leg to seat tube), refined by real UK listing data where riders' declared heights are available. Children are sized by wheel diameter...
categorystringroad · mtb · gravel · hybrid · ebike · kidsheightCm*numberget_valuationWhat a used UK bike is worth right now, Cyclesite's flagship tool. Returns median, range, a measured price-by-model-year curve, confidence level, and comparable active listings. When `year` is given, the answer is resolved against that model year's own measured median and conf...3 params
What a used UK bike is worth right now, Cyclesite's flagship tool. Returns median, range, a measured price-by-model-year curve, confidence level, and comparable active listings. When `year` is given, the answer is resolved against that model year's own measured median and conf...
brand*stringmodel*stringyearnumbersuggest_listing_priceFor a seller about to list: suggested ask, floor, and ceiling for their bike's brand+model[+year][+condition] on the UK market. Same measured UK used-price data as the valuations, framed as seller guidance. When `year` is given, the ask is anchored on that model year's own med...4 params
For a seller about to list: suggested ask, floor, and ceiling for their bike's brand+model[+year][+condition] on the UK market. Same measured UK used-price data as the valuations, framed as seller guidance. When `year` is given, the ask is anchored on that model year's own med...
brand*stringconditionstringExcellent · Very_Good · Good · Fair · Poor · For_Partsmodel*stringyearnumberget_market_indexCurrent UK used-bike market prices by category, from Cyclesite's nightly index. Returns median + range per category (road, mtb, gravel, e-bike, etc.). Example: 'how does the UK used-bike market look right now?'. Refreshed nightly from real UK market prices.
Current UK used-bike market prices by category, from Cyclesite's nightly index. Returns median + range per category (road, mtb, gravel, e-bike, etc.). Example: 'how does the UK used-bike market look right now?'. Refreshed nightly from real UK market prices.
No parameters. Call it with no arguments.
get_market_healthBuyer's-vs-seller's market signal for the UK used-bike market — should the user buy or sell now? Composite indicator from days-to-sell, asking-vs-sold-price spread, and inventory levels. Example: 'is now a good time to buy a road bike?'. Refreshed nightly.
Buyer's-vs-seller's market signal for the UK used-bike market — should the user buy or sell now? Composite indicator from days-to-sell, asking-vs-sold-price spread, and inventory levels. Example: 'is now a good time to buy a road bike?'. Refreshed nightly.
No parameters. Call it with no arguments.
get_depreciationBrands ranked by how well (or poorly) they hold their value, from Cyclesite's measured UK used-price data. Returns top N brands by % retained vs new RRP. Example: 'which bike brands hold their value best?'.2 params
Brands ranked by how well (or poorly) they hold their value, from Cyclesite's measured UK used-price data. Returns top N brands by % retained vs new RRP. Example: 'which bike brands hold their value best?'.
limitnumbersortstringbest · worstget_price_trendsUK used-bike price trends over the last N months by category, from Cyclesite's index series. Example: 'how have road-bike prices changed in 2026?'. Monthly data, refreshed at month-end.2 params
UK used-bike price trends over the last N months by category, from Cyclesite's index series. Example: 'how have road-bike prices changed in 2026?'. Monthly data, refreshed at month-end.
categorystringmonthsnumbergrade_listing_qualityCategorical quality grade for a Cyclesite listing (excellent / good / fair / weak) plus up to 2 wins and 2 flags. Helps a buyer assess trustworthiness; helps a seller self-audit. Example: 'is this listing trustworthy?' (provide the slug). Note: returns the *categorical* judgem...1 params
Categorical quality grade for a Cyclesite listing (excellent / good / fair / weak) plus up to 2 wins and 2 flags. Helps a buyer assess trustworthiness; helps a seller self-audit. Example: 'is this listing trustworthy?' (provide the slug). Note: returns the *categorical* judgem...
slug*stringdraft_listingSell-side helper: turn a seller's raw facts into a polished Cyclesite listing draft (title, description, suggested price, photo plan). Does not publish anything: publishing needs a signed-in account (OAuth). Useful for previewing what a listing would look like. Example: 'help...10 params
Sell-side helper: turn a seller's raw facts into a polished Cyclesite listing draft (title, description, suggested price, photo plan). Does not publish anything: publishing needs a signed-in account (OAuth). Useful for previewing what a listing would look like. Example: 'help...
brand*stringcitystringconditionstringExcellent · Very_Good · Good · Fair · Poor · For_PartsframeSizestringgroupsetstringitemConditionstringnew · usedknownIssuesstringmodel*stringwillShipbooleanyearnumbercheck_stolenCheck whether a UK bike's frame (serial) number matches a theft report held by Cyclesite. Live data, checked on every call. Rate-limited per serial number (3 an hour) to prevent enumeration. Example: 'does frame number WTU123456 match a theft report?'. Someone who has found a...1 params
Check whether a UK bike's frame (serial) number matches a theft report held by Cyclesite. Live data, checked on every call. Rate-limited per serial number (3 an hour) to prevent enumeration. Example: 'does frame number WTU123456 match a theft report?'. Someone who has found a...
serial*stringreport_stolenStep-by-step guidance for reporting a stolen UK bike: police, insurance, listing alerts. Returns a 5-step checklist plus the official Cyclesite report URL. Example: 'my bike was just stolen, what do I do?'.3 params
Step-by-step guidance for reporting a stolen UK bike: police, insurance, listing alerts. Returns a 5-step checklist plus the official Cyclesite report URL. Example: 'my bike was just stolen, what do I do?'.
brandstringmodelstringserialstringget_buying_guideSearch Cyclesite's expert buying guides (24+ articles by cycling-journalism authors). Returns up to 3 matching guides with title, excerpt, difficulty, reading time, and URL. Covers educational questions that don't need live inventory. Example: 'how do I choose a bike size?', '...2 params
Search Cyclesite's expert buying guides (24+ articles by cycling-journalism authors). Returns up to 3 matching guides with title, excerpt, difficulty, reading time, and URL. Covers educational questions that don't need live inventory. Example: 'how do I choose a bike size?', '...
limitnumberquery*stringpublish_listingPublish a Cyclesite listing on the user's behalf. Multi-step: the first call (no draftId) returns step:'photos_required' with a phone-friendly photo upload URL for the seller. Once 3+ photos are uploaded, a call with the same draftId returns either step:'live' (listing is free...24 params
Publish a Cyclesite listing on the user's behalf. Multi-step: the first call (no draftId) returns step:'photos_required' with a phone-friendly photo upload URL for the seller. Once 3+ photos are uploaded, a call with the same draftId returns either step:'live' (listing is free...
batteryCyclesnumberbatteryHealthPercentnumberbrandstringcategorystringroad · mtb · gravel · hybrid · ebike · kidscitystringconditionstringExcellent · Very_Good · Good · Fair · Poor · For_PartsdescriptionstringdraftIdstringebikeBatteryWhnumberframeSerialstringframeSizestringgroupsetstringisEbikebooleanitemConditionstringnew · usedknownIssuesstringmodelstringmotorBrandstringmotorModelstringmotorPositionstringMid-drive · Rear hub · Front hubpriceGbpnumber+4 more parameters. See the server's own documentation for the full schema.
list_my_listingsShow the authenticated user's Cyclesite listings (draft / active / sold). Requires OAuth scope `listings:read`. Example: 'how are my listings doing?'.2 params
Show the authenticated user's Cyclesite listings (draft / active / sold). Requires OAuth scope `listings:read`. Example: 'how are my listings doing?'.
limitnumberstatusstringactive · draft · sold · allmark_as_soldMark a Cyclesite listing as sold, optionally with the final sale price, where it sold and the date it sold. Requires OAuth scope `listings:manage`. Example: 'mark my Trek Domane as sold for £1,750 on Facebook last Saturday'.4 params
Mark a Cyclesite listing as sold, optionally with the final sale price, where it sold and the date it sold. Requires OAuth scope `listings:manage`. Example: 'mark my Trek Domane as sold for £1,750 on Facebook last Saturday'.
listingId*stringsalePriceGbpnumbersaleVenuestringcyclesite · facebook · ebay · gumtree · other_bike_site · elsewheresoldOnstringget_my_enquiriesShow the messages buyers have sent about the authenticated user's Cyclesite listings, newest first. Each enquiry is one buyer's conversation: its id, the listing, the buyer's latest message, the unread count and whether the seller has replied. The seller can answer an enquiry...2 params
Show the messages buyers have sent about the authenticated user's Cyclesite listings, newest first. Each enquiry is one buyer's conversation: its id, the listing, the buyer's latest message, the unread count and whether the seller has replied. The seller can answer an enquiry...
limitnumberlistingIdstringget_my_messagesRead the buyer's own Cyclesite message threads and any seller replies. With no arguments it lists the buyer's conversations; with a threadId it returns that thread's messages. Enquiries the buyer has sent to sellers appear here. Requires OAuth scope `listings:read`. Example: '...2 params
Read the buyer's own Cyclesite message threads and any seller replies. With no arguments it lists the buyer's conversations; with a threadId it returns that thread's messages. Enquiries the buyer has sent to sellers appear here. Requires OAuth scope `listings:read`. Example: '...
limitnumberthreadIdstringrespond_to_enquirySend the seller's reply to a buyer who messaged about one of the authenticated user's listings. Takes the id of one of the seller's enquiries. The buyer is notified, and the message tells them an AI assistant sent it on the seller's behalf. Requires OAuth scope `enquiries:resp...2 params
Send the seller's reply to a buyer who messaged about one of the authenticated user's listings. Takes the id of one of the seller's enquiries. The buyer is notified, and the message tells them an AI assistant sent it on the seller's behalf. Requires OAuth scope `enquiries:resp...
answer*stringenquiryId*stringsearchOpenAI deep-research / company-knowledge compatibility. Search Cyclesite's active UK used-bike listings by free-text query (matches title, brand, model). Returns the canonical OpenAI shape: { results: [{ id, title, url }] }. Each result id is a listing id.1 params
OpenAI deep-research / company-knowledge compatibility. Search Cyclesite's active UK used-bike listings by free-text query (matches title, brand, model). Returns the canonical OpenAI shape: { results: [{ id, title, url }] }. Each result id is a listing id.
query*stringfetchOpenAI deep-research / company-knowledge compatibility. Fetch the full document for one Cyclesite listing id. Returns { id, title, text, url, metadata }, where text is a plain-prose summary of the listing's description and specs, suitable for direct quoting in deep-research an...1 params
OpenAI deep-research / company-knowledge compatibility. Fetch the full document for one Cyclesite listing id. Returns { id, title, text, url, metadata }, where text is a plain-prose summary of the listing's description and specs, suitable for direct quoting in deep-research an...
id*stringsave_searchSubscribe the user to email alerts for Cyclesite listings matching a filter. We email them when a matching bike is listed or drops in price, instantly or in a daily digest, depending on their email preferences. Requires OAuth scope `listings:read` (read-only on data, but this...9 params
Subscribe the user to email alerts for Cyclesite listings matching a filter. We email them when a matching bike is listed or drops in price, instantly or in a daily digest, depending on their email preferences. Requires OAuth scope `listings:read` (read-only on data, but this...
alertFrequencystringinstant · daily · weeklybrandstringcategorystringroad · mtb · gravel · hybrid · ebike · kidscitystringconditionstringExcellent · Very_Good · Good · Fair · Poor · For_PartsmaxPricenumberminPricenumbermodelstringnamestringmake_enquirySend an enquiry to a Cyclesite seller on the buyer's behalf. It's saved to the buyer's Cyclesite inbox, where the seller's reply also arrives, and the seller is notified. Per-buyer-per-listing daily cap (2/day) prevents spam. Requires OAuth scope `enquiries:respond` (the scope...2 params
Send an enquiry to a Cyclesite seller on the buyer's behalf. It's saved to the buyer's Cyclesite inbox, where the seller's reply also arrives, and the seller is notified. Per-buyer-per-listing daily cap (2/day) prevents spam. Requires OAuth scope `enquiries:respond` (the scope...
listingId*stringmessage*stringreserve_listingHold a Cyclesite listing for 24 hours so other buyers can't claim it while the user decides. The hold is free and advisory: the seller isn't obligated to honour it. We never take a deposit or any payment for a bike; the buyer and seller arrange payment between them. Requires O...1 params
Hold a Cyclesite listing for 24 hours so other buyers can't claim it while the user decides. The hold is free and advisory: the seller isn't obligated to honour it. We never take a deposit or any payment for a bike; the buyer and seller arrange payment between them. Requires O...
listingId*stringSponsors
Configuration
CYCLESITE_API_URLdefault: https://www.cyclesite.co.ukCyclesite base URL. Override only for partner staging environments.
CYCLESITE_API_KEYsecretOptional partner API key for raised rate limits. Public tier works without one.
Readme
Details
- Repository
- github.com/tomalarrrr/the-sites
- Website
- www.cyclesite.co.uk
- Category
- Search & Web Crawling
- Package
cyclesite-mcp-server- Transport
- STDIO, HTTP
- Auth
- Required
- Registry
- MCP registry, active
- Resources
- 8
- Prompts
- 9
- Tools verified
- Nov 6, 2026