Every change Wellknown observed on this MCP server, newest first, with what it was before and what it became. Tool-surface changes carry the definition diff. Nothing here is edited after the fact.
Changed the definition of "check_stolen"
⟨41 unchanged words⟩ reported stolen?'. Live data, checked on every call. If the user has found a bike rather than bought one, send them to https://www.cyclesite.co.uk/stolen-bikes/found, where they can check the frame number and leave the owner a message themselves.
Changed the definition of "check_stolen"
⟨38 unchanged words⟩ with serial WTU123456 reported stolen?'. Live data,cross-references multiple registrieschecked on every call.
Changed the definition of "publish_listing"
⟨24 unchanged words⟩ the next call returns either step:'live' (duringlistinglaunchispromofree, nofeepayment needed) or step:'payment_required' with a Stripe CheckoutURL for the £10.99 listing fee.URL. Idempotent — keep calling with the same draftId ⟨46 unchanged words⟩
Changed the definition of "find_similar_listings", "get_recent_listings", "search_bikes" and 1 more
⟨28 unchanged words⟩ "type":["string","null"]},"distanceMiles":{"type":["number","null"]},"ebikeBatteryWh":{"type":["number","null" ⟨22 unchanged words⟩ ,"isEbike":{"type":"boolean"},"listingId":{"type":["string","null"]},"model":{"type":["string","null" ⟨28 unchanged words⟩ :"Price in GBP.","type":"number"},"slug":{"type":["string","null"]},"title":{"type":"string"}, ⟨27 unchanged words⟩
⟨28 unchanged words⟩ Changed the definition of "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'.750 on Facebook last Saturday'.
⟨2 unchanged words⟩ {"type":"string"},"salePriceGbp":{"description":"What it actually sold for. Leave out if the seller did not say.","type":"number"},"saleVenue":{"description":"Where the sale was agreed.","enum":["cyclesite","facebook","ebay","gumtree","elsewhere"],"type":"string"},"soldOn":{"description":"The day it sold, YYYY-MM-DD. Leave out for today. Ignored if in the future or before the listing went up.","type":"string
Changed the definition of "draft_listing" and "publish_listing"
⟨20 unchanged words⟩ ,"groupset":{"type":"string"},"itemCondition":{"description":"Whether the bike is new (never ridden) or used. Defaults to used. A new bike gets no used-market price suggestion.","enum":["new","used"],"type":"string"},"knownIssues":{"description":"Honest declaration of any ⟨17 unchanged words⟩
{"properties":{"batteryCycles":{"description":"Charge cycles as the seller reports them.","type":"number"},"batteryHealthPercent":{"description":"Battery health as the seller reports it, 0-100.","type":"number"},"brand":{"type":"string"},"category" ⟨53 unchanged words⟩ first call.","type":"string"},"ebikeBatteryWh":{"description":"Battery capacity in watt-hours (100-3000).","type":"number"},"
Changed the definition of "get_valuation" and "suggest_listing_price"
⟨18 unchanged words⟩ 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 confidence interval, instead of the all-years median. Sourced from real UK market prices, the last-advertised ⟨21 unchanged words⟩
⟨4 unchanged words⟩ "},"model":{"type":"string"},"year":{"description":"Model year, e.g. 2022. Optional. When given, the response carries a `forYear` block resolving the valuation to that year, or saying in words why it could not be.","type":"number"}},"required":["brand","model"],"type":"object"}
Changed the definition of "check_stolen"
Check if a UK bicycle is reported stolen by serial number. Cyclesiteaggregates lookupschecksacrossanUKinternational stolen-bikedatabasesregistry—and theft reports filed by riders, the unique data we own. Per-serial rate-limited (3/hour ⟨6 unchanged words⟩ bike with serial WTU123456 reported stolen?'. Live data—, cross-references multiple registries on every call.
Certificate recorded, valid to 2026-11-23
Authorization not required
First tool surface recorded: 34 tools (server version 2.4.4)
Showing the latest 11 events. The API returns up to 500 and filters by kind: ?kind=tool_surface_changed
⟨28 unchanged words⟩ "type":["string","null"]},"distanceMiles":{"type":["number","null"]},"ebikeBatteryWh":{"type":["number","null" ⟨22 unchanged words⟩ ,"isEbike":{"type":"boolean"},"listingId":{"type":["string","null"]},"model":{"type":["string","null" ⟨28 unchanged words⟩ :"Price in GBP.","type":"number"},"slug":{"type":["string","null"]},"title":{"type":"string"}, ⟨27 unchanged words⟩
⟨28 unchanged words⟩ "type":["string","null"]},"distanceMiles":{"type":["number","null"]},"ebikeBatteryWh":{"type":["number","null" ⟨22 unchanged words⟩ ,"isEbike":{"type":"boolean"},"listingId":{"type":["string","null"]},"model":{"type":["string","null" ⟨28 unchanged words⟩ :"Price in GBP.","type":"number"},"slug":{"type":["string","null"]},"title":{"type":"string"}, ⟨27 unchanged words⟩
⟨8 unchanged words⟩ 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 median rather than the all-years median. Example: 'I'm selling a 2021 Specialized Allez ⟨8 unchanged words⟩
⟨14 unchanged words⟩ "},"model":{"type":"string"},"year":{"description":"Model year, e.g. 2021. Optional. Anchors the ask on that year when the curve covers it; `basis` in the response always names what the ask was actually derived from.","type":"number"}},"required":["brand","model"],"type":"object"}