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

onthecheap-mcp

v0.3.3

Published

On the Cheap MCP server for Claude — developed and maintained by AI (Claude Code)

Readme

onthecheap-mcp

MCP server for the On the Cheap network — local guides to free and cheap things to do across 14 US cities. Daily event listings with times, prices and venues, plus a searchable archive of deals and guides.

Developed and maintained by AI (Claude Code). Use at your own discretion.

No credentials required. Every site is public, so the server reads them server-side over plain HTTPS. There is nothing to configure beyond which city you want, and no browser extension involved.

Install

npx onthecheap-mcp

Or as a Claude Code plugin:

/plugin marketplace add chrischall/onthecheap-mcp
/plugin install onthecheap-mcp

Choosing a city

One server reads the whole network. Every tool takes a site argument naming the city to read — there is no default and no configuration step:

| Key | Site | Area | | --- | --- | --- | | charlotte | Charlotte On The Cheap | Charlotte, NC | | denver | Mile High on the Cheap | Denver, CO | | atlanta | Atlanta on the Cheap | Atlanta, GA | | chicago | Chicago on the Cheap | Chicago, IL | | columbus | Columbus on the Cheap | Columbus, OH | | seattle | Greater Seattle on the Cheap | Seattle–Tacoma | | kansascity | Kansas City on the Cheap | Kansas City | | miami | South Florida on the Cheap | Miami / Broward / Palm Beach | | orlando | Orlando on the Cheap | Orlando, FL | | portland | Portland Living on the Cheap | Portland, OR | | richmond | RVA on the Cheap | Richmond, VA | | southernmaine | Southern Maine on the Cheap | Southern Maine | | triangle | Triangle on the Cheap | Raleigh / Durham / Chapel Hill | | national | Living On The Cheap | US-wide deals (no local events calendar) |

Common aliases work too — milehigh, raleigh, rva, kc, southflorida. otc_list_sites reports the same list.

site is required rather than defaulted on purpose: a server that quietly fell back to one city would answer a question about Denver with Charlotte's data and give no sign anything was wrong. An unknown key is refused with the valid ones listed.

Tools

All tools are read-only. Every tool except otc_list_sites takes a required site argument. The two event tools reject national, which has no local events calendar — it is still searchable via the other tools.

| Tool | What it does | | --- | --- | | otc_list_events | Everything on a given day — time, price, venue. free_only filters to no-cost listings. Defaults to today. | | otc_events_month_overview | Day-by-day counts for a month, to find the busiest days. Each day's list is a preview; total is the real count. | | otc_search_posts | Search articles by text, category, location and date range. Returns slim summaries by default. | | otc_get_post | One article in full, as readable text or raw HTML. Accepts an id, slug, or URL. | | otc_list_categories | Category ids and post counts, for filtering searches by topic. | | otc_list_locations | Local area ids and post counts, for filtering geographically. | | otc_list_sites | The cities in the network and their site keys. Takes no arguments. | | otc_healthcheck | Confirm one site is reachable. |

Examples

What's free in Charlotte this Saturday?

Find kids' events in Lake Norman in August

Compare free things to do in Denver and Portland next weekend

Two things worth knowing

Retired deals are excluded by default. Each site parks expired offers in an expired category, so searches skip them and you don't get deals that no longer exist. Pass include_expired: true to search the archive. The category's id differs on every site, so it's resolved by slug at request time — a hardcoded id silently disables the filter elsewhere.

Category and location ids are per-site. Each site is a separate WordPress install, so id 13 is a different category on every one of them. Resolve ids against the same site you then search — an id borrowed from another city will filter to something unrelated rather than error.

Month overviews are previews, with honest counts. The calendar shows at most four listings per day. otc_events_month_overview reports each day's true total alongside the preview — call otc_list_events with a date for the complete schedule.

Configuration

None. The city is a per-call site argument, not an environment variable, so there is nothing to set up before use.

Development

npm install
npm test
npm run build

See docs/OTC-API.md for the verified data surface, including the events calendar's US M-D-YYYY date routing (an ISO date is silently parsed as 1970), the month-view truncation, and why term ids are never hardcoded.

License

MIT