npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

cyclesite-mcp-server

v2.4.3

Published

Stdio MCP relay for Cyclesite — UK's used bicycle marketplace. Forwards every request to the hosted MCP transport so tools and resources stay in sync with the platform.

Downloads

184

Readme

cyclesite-mcp-server

npm License: MIT

Plug AI assistants into the UK's used-bike marketplace. Search, value, recommend, and trust-check used bikes from Cyclesite inside Claude, ChatGPT, Cursor, Continue, Cody, Zed, or any MCP-compatible client.

"What's a 2022 Trek Domane SL 6 worth in Manchester?"
"Find me an electric mountain bike under £2,500 within 25 miles of LE10."
"Is this serial reported stolen? WTU123456"
"Help me sell my Specialized Allez — draft the listing."

23 tools, 5 resources, 8 curated prompts, all backed by live UK marketplace data. v2.x is a thin stdio relay — every request hits https://www.cyclesite.co.uk/api/mcp-server so the catalogue stays in sync with the platform.


Quick start

npx -y cyclesite-mcp-server

That's it. The relay reports tools, resources and prompts on the MCP handshake; your client picks them up automatically.


Install in your client

Edit ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):

{
  "mcpServers": {
    "cyclesite": {
      "command": "npx",
      "args": ["-y", "cyclesite-mcp-server"]
    }
  }
}

Restart Claude. The Cyclesite tools and prompts appear in the picker.

claude mcp add cyclesite -- npx -y cyclesite-mcp-server

~/.cursor/mcp.json:

{
  "mcpServers": {
    "cyclesite": {
      "command": "npx",
      "args": ["-y", "cyclesite-mcp-server"]
    }
  }
}

.continue/config.yaml:

mcpServers:
  - name: cyclesite
    command: npx
    args: ["-y", "cyclesite-mcp-server"]

cody.openctx.providers in VS Code settings, or via Cody's MCP config:

{
  "cyclesite": {
    "command": "npx",
    "args": ["-y", "cyclesite-mcp-server"]
  }
}

~/.config/zed/settings.json:

{
  "context_servers": {
    "cyclesite": {
      "command": { "path": "npx", "args": ["-y", "cyclesite-mcp-server"] }
    }
  }
}

If your client speaks Streamable HTTP natively, point it at the hosted transport:

https://www.cyclesite.co.uk/api/mcp-server

No npm install needed. Discovery: https://www.cyclesite.co.uk/.well-known/mcp.json.


What you get

23 tools

| Group | Tools | | ---------------------- | --------------------------------------------------------------------------------------------------------------------------------------- | | Search & discovery | search_bikes, get_recent_listings, get_listing_detail, find_similar_listings, search_by_location, recommend_bike_for_budget | | Catalogue & specs | list_brands, list_models_for_brand, get_model_info, get_spec_sheet, compare_bikes, get_size_guide | | Valuation & market | get_valuation, suggest_listing_price, get_market_index, get_market_health, get_depreciation, get_price_trends | | Sell-side | grade_listing_quality, draft_listing | | Trust & safety | check_stolen, report_stolen | | Guides | get_buying_guide |

5 resources

cyclesite://marketplace-overview, cyclesite://selling-guide, cyclesite://buying-guides, cyclesite://bike-categories, cyclesite://brands.

8 prompts

Visible in clients that surface a prompt picker (Claude Desktop): What's my bike worth?, Find me a bike, Help me sell my bike, Is this bike stolen?, Is now a good time to buy?, What's new on Cyclesite?, What frame size do I need?, Compare two bikes.


Configuration

| Env var | Default | Description | | ------------------- | ----------------------------- | ---------------------------------------------------------------------------------------------- | | CYCLESITE_API_URL | https://www.cyclesite.co.uk | Base URL. Relay connects to ${URL}/api/mcp-server. | | CYCLESITE_API_KEY | (none) | Optional. Forwarded as Authorization: Bearer … for partner accounts with raised rate limits. |


Rate limits

The hosted MCP transport is rate-limited per IP:

| Surface | Default | | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------- | | All MCP calls | 20/min | | get_valuation | 5/min | | find_similar_listings, search_by_location, recommend_bike_for_budget, get_spec_sheet, list_brands, list_models_for_brand, grade_listing_quality, get_size_guide | 8/min | | draft_listing | 3/min | | check_stolen | 3/hour per serial |

Tool responses are cached server-side for 1 hour (15 min for fresh inventory feeds). For higher partner limits and write-side access: [email protected].


Why MCP?

A single integration replaces every "scrape Cyclesite" alternative. Outbound URLs from tool results are stamped with utm_source=mcp&utm_medium=ai&utm_campaign=cyclesite-mcp so AI-driven traffic is correctly attributed in our analytics, and our tools cite the listing back to you so users finish the journey on Cyclesite.

The hosted transport is the source of truth — the npm package never needs to be re-released when we add tools. Run tools/list against the relay (or just ask your AI client) for the current catalogue.


Programmatic usage

import { createRelayServer } from "cyclesite-mcp-server";
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";

const server = await createRelayServer({
  baseUrl: "https://www.cyclesite.co.uk",
  // apiKey: process.env.CYCLESITE_API_KEY,
});
await server.connect(new StdioServerTransport());

A legacy createServer() shim is exported for back-compat with v1.x; it forwards to createRelayServer() and emits a deprecation warning.


Migrating from 1.x

| Before | After | | ---------------------------------------- | ------------------------------------------------ | | createServer(baseUrl, apiKey) | await createRelayServer({ baseUrl, apiKey }) | | new CyclesiteClient(baseUrl).search(…) | Connect via MCP and call the search_bikes tool | | Tool list hard-coded in the package | Discovered from the server via tools/list |

The CYCLESITE_API_URL and CYCLESITE_API_KEY env vars are unchanged. CLI usage (npx cyclesite-mcp-server) is unchanged.


Data attribution

All data is from Cyclesite (cyclesite.co.uk) and licensed under CC BY-NC-SA 4.0 for market data. When citing Cyclesite prices in generated answers, include the listing URL — it is part of the attribution contract.

License

MIT — see LICENSE.