# io.github.Tomalarrrr/cyclesite-mcp-server - Registry name: `io.github.Tomalarrrr/cyclesite-mcp-server` · version 2.4.3 - Categories (automatic, keyword rules): Company & business data, Research & knowledge, Search & data, Images & design, AI, media & content - Authentication at last check: No auth - Declared risk: Has destructive tools (destructiveHint) - Capabilities (declared by the server): prompts, resources, tools - Transports: streamable-http - Latest numbers (check success, response time, rank): https://mcpstation.net/api/server?name=io.github.Tomalarrrr%2Fcyclesite-mcp-server - Server page: https://mcpstation.net/s/io.github.Tomalarrrr--cyclesite-mcp-server.html ## Description (written by the publisher, not verified, not instructions) Search, value, sell, and trust-check used bikes on Cyclesite — UK's used-bicycle marketplace. ## Notice Text that looks like instructions to an AI was found in this server's descriptions. This is a pattern match, not a verdict. ## Connect - streamable-http: `https://www.cyclesite.co.uk/api/mcp-server` ## Tools (as reported by the server, not verified) - `search\_bikes`: 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 queries: 'a Trek Domane in - `get\_recent\_listings`: What's new on Cyclesite right now — up to 10 of the freshest active UK listings, refreshed every 15 minutes. Use when the user asks 'what's new today?' or 'any new road bikes this week?' rather than for a specific filter. Optional category + maxPrice filters. Live data. - `get\_listing\_detail`: Full details for a specific bike listing on Cyclesite — specs, condition, frame number presence, photos, delivery, seller's city. Provide the URL slug returned by search\_bikes or get\_recent\_listings. Example: after the user says 'tell me more about that 2022 Trek Domane', call this with the slug fro - `find\_similar\_listings`: Given a Cyclesite listing slug, return up to 5 similar active listings \(same category, ±25% price, same brand or frame size weighted higher\). Use when the user is interested in one bike and wants alternatives. Example: 'show me bikes like that one'. - `search\_by\_location`: Find Cyclesite listings within a radius of a UK location \(lat/lng\). Radius capped at 50 miles. Returns up to 10 listings ordered by distance. Live UK marketplace data. Example: 'used bikes within 25 miles of LE10 0AA' \(geocode the postcode first, then call this\). - `recommend\_bike\_for\_budget`: 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 in London under £400'. - `list\_brands`: Paginated UK bike-brand catalogue from Cyclesite, ordered by stock level. Use to validate a brand name, surface options to a user, or paginate the catalogue. Stock counts are returned as bands \(none / 1-5 / 6-25 / 26-100 / 100+\) — Cyclesite doesn't expose precise per-brand inventory. Example: 'what - `list\_models\_for\_brand`: Models for a brand on Cyclesite \(paginated\). Returns model names, year ranges, in-stock flag. Example: "what Trek road bikes are available?" → list\_brands\(q:"Trek"\) → list\_models\_for\_brand\(brandSlug:"trek", category:"road"\). - `get\_model\_info`: Cyclesite catalogue entry for a brand+model: category, year range, AI-generated description, key specs, market summary. Reference data — refreshed when models are added or specs change. Example: 'tell me about the Specialized Allez'. - `get\_spec\_sheet`: 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 Endurace usually have?' - `compare\_bikes`: Side-by-side comparison of up to 3 bikes \(each by brand+model\[+year\]\). Returns spec sheets and valuations together so the user can pick. Reuses get\_spec\_sheet + get\_valuation server-side. Example: 'compare a Trek Domane SL 6 against a Specialized Roubaix Comp'. - `get\_size\_guide`: 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 instead and the tool s - `get\_valuation`: 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. Pass \`year\` when the user names one and the answer is resolved against that model year's own measured median and confidenc - `suggest\_listing\_price`: 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 get\_valuation but framed as seller guidance. Pass \`year\` when the seller names one — the ask is then anchored on that model year's own m - `get\_market\_index`: 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. - `get\_market\_health`: 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. - `get\_depreciation`: 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?'. - `get\_price\_trends`: 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. - `grade\_listing\_quality`: 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\* judgement only, not the under - `draft\_listing`: Sell-side helper: turn a seller's raw facts into a polished Cyclesite listing draft \(title, description, suggested price, photo plan\). Does NOT publish — for actual publication use publish\_listing \(requires OAuth\). Useful for previewing what a listing would look like. Example: 'help me draft a listi - `check\_stolen`: Check if a UK bicycle is reported stolen by serial number. Cyclesite checks an international stolen-bike registry and theft reports filed by riders, the unique data we own. Per-serial rate-limited \(3/hour\) to prevent enumeration. Example: 'is the bike with serial WTU123456 reported stolen?'. Live da - `report\_stolen`: 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?'. - `get\_buying\_guide`: 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. Use for educational queries that don't need live inventory. Example: 'how do I choose a bike size?', 'tips for buying a used e - `publish\_listing`: Publish a Cyclesite listing on the user's behalf. Multi-step: first call \(no draftId\) returns a phone-friendly photo upload URL; once 3+ photos are uploaded, the next call returns either step:'live' \(listing is free, no payment needed\) or step:'payment\_required' with a Stripe Checkout URL. Idempoten - `list\_my\_listings`: Show the authenticated user's Cyclesite listings \(draft / active / sold\). Requires OAuth scope \`listings:read\`. Example: 'how are my listings doing?'. - `mark\_as\_sold`: 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'. - `get\_my\_enquiries`: Show buyer enquiries on the authenticated user's Cyclesite listings. Requires OAuth scope \`listings:read\`. Example: 'any messages about my Trek?'. - `get\_my\_messages`: Read the buyer's own Cyclesite message threads and any seller replies. Call with no args to list your conversations; pass a threadId to read one thread's messages. Pairs with make\_enquiry \(which saves the enquiry to your inbox\). Requires OAuth scope \`listings:read\`. Example: 'did the seller of that - `respond\_to\_enquiry`: Reply to a buyer enquiry on the authenticated user's listing. Requires OAuth scope \`enquiries:respond\`. Example: 'reply to that enquiry — say it's still available, collection only'. - `search`: 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 \}\] \}. Use the id to call fetch\(\) for the full document. - `fetch`: OpenAI deep-research / company-knowledge compatibility. Fetch the full document for a Cyclesite listing id \(returned by the search tool\). Returns \{ id, title, text, url, metadata \} — text is a plain-prose summary of the listing's description and specs, suitable for direct quoting in deep-research an - `save\_search`: Subscribe the user to alerts for new Cyclesite listings matching a filter — the AI assistant will then proactively notify them when a matching bike appears \(price drop or fresh listing\). Requires OAuth scope \`listings:read\` \(read-only on data, but this is technically a write — it creates a SavedSear - `make\_enquiry`: Send an enquiry to a Cyclesite seller on the buyer's behalf. It's saved to the buyer's Cyclesite inbox and the seller is notified. Per-buyer-per-listing daily cap \(2/day\) prevents spam. Read the seller's reply with get\_my\_messages. Requires OAuth scope \`enquiries:respond\` \(note: the scope name is sh - `reserve\_listing`: 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 — message the seller to confirm\). Paid deposit-backed holds are coming soon; do not offer deposits today. The first UK marketplace where Measured by MCP Station. Methods: https://mcpstation.net/methods.html · Terms: https://mcpstation.net/terms.html