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

@wassupskins/mcp

v0.1.1

Published

Model Context Protocol server for the Wassup Skins API. Lets AI agents (Claude Desktop, Cursor, Continue) compare prices, place purchases, and wait for delivery.

Readme

@wassupskins/mcp

Model Context Protocol server for the Wassup Skins API. Lets AI agents — Claude Desktop, Cursor, Continue, and any other MCP client — compare prices, place purchases, and wait for delivery without bespoke HTTP plumbing.

Tools

| Tool | What it does | |---|---| | wassup_get_prices | Returns aggregated prices for one skin across every supported marketplace. | | wassup_search_listings | Browses the catalog. Useful when the agent doesn't yet know the market_hash_name. | | wassup_get_market_capabilities | Per-market flags — buy mode, merchant-key requirement. Use before wassup_buy. | | wassup_get_balance | Project wallet totals across every marketplace. | | wassup_get_purchase | Snapshot of a single purchase request's status. | | wassup_list_purchases | Paginated history with filters. | | wassup_buy | Initiates a purchase. Requires confirm: true — without it the tool returns a structured preview. Honors a per-call cents cap. | | wassup_wait_for_purchase | Blocks until a purchase reaches a terminal state, then returns the final detail. |

Install

The package is published on npm and runnable directly with npx — no clone, no build:

npx -y @wassupskins/mcp

That dialer is what your MCP client invokes; you usually don't run it by hand.

Configure Claude Desktop

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

{
  "mcpServers": {
    "wassupskins": {
      "command": "npx",
      "args": ["-y", "@wassupskins/mcp"],
      "env": {
        "WASSUP_API_KEY": "wassup_<keyId>_<secret>",
        "WASSUP_API_BASE": "https://api.wassupskins.com"
      }
    }
  }
}

Restart Claude Desktop. The server's tools should appear in the MCP panel after the connection completes. Server logs go to stderr; check Claude Desktop's MCP debugger if a tool call fails.

Configure Cursor

Add the same entry under mcpServers in your Cursor settings JSON. Cursor uses the same shape as Claude Desktop.

Multi-project setups

Run multiple instances with different env blocks:

{
  "mcpServers": {
    "wassupskins-prod":    { "command": "npx", "args": ["-y", "@wassupskins/mcp"], "env": { "WASSUP_API_KEY": "wassup_prod_…" } },
    "wassupskins-staging": { "command": "npx", "args": ["-y", "@wassupskins/mcp"], "env": { "WASSUP_API_KEY": "wassup_stg_…", "WASSUP_API_BASE": "https://staging.api.wassupskins.com" } }
  }
}

Environment variables

| Var | Default | Required | Notes | |---|---|---|---| | WASSUP_API_KEY | — | yes | Project API key. Plaintext only at creation time. | | WASSUP_API_BASE | https://api.wassupskins.com | no | Override for staging or self-hosted. No trailing slash. | | WASSUP_REALTIME_URL | derived from WASSUP_API_BASE | no | Full WebSocket URL incl. /v1/realtime/ws. | | WASSUP_MAX_PURCHASE_CENTS_PER_CALL | unlimited | no | Safety cap on each item's max_price_cents in wassup_buy. Strongly recommended in prod. | | WASSUP_WAIT_DEFAULT_SECONDS | 300 | no | Default timeout for wassup_wait_for_purchase. Hard cap 1800. |

Safety

wassup_buy is the only tool that spends money. Three layers of safety:

  1. Explicit confirm. The Zod schema requires confirm: true. Without it, the tool returns a structured preview of what would be bought — agents have to reason about the cost in two messages.
  2. Per-call cents cap. Set WASSUP_MAX_PURCHASE_CENTS_PER_CALL. If any item exceeds the cap, the tool rejects with the limit in the error so the agent self-corrects.
  3. Auto-idempotency. A fresh UUID is generated when idempotency_key is omitted. The API replays the original response on subsequent identical calls — never double-charges.

Recommended production posture: WASSUP_MAX_PURCHASE_CENTS_PER_CALL set, WASSUP_API_KEY scoped to a single project, and explicit human review for any first-time integration.

Local development (contributors only)

If you're hacking on the server itself, clone the monorepo:

git clone https://github.com/shokhboz-abdullaev/wassup-skins.git
cd wassup-skins/mcp
npm install
npm run dev        # tsx — runs from src/, watches stdio
npm run build      # tsc — emits dist/
npm run typecheck  # tsc --noEmit
npm test           # vitest

Releasing a new version

The repo's mcp publish GitHub Action publishes on a mcp-v* tag:

# 1. Bump version
cd mcp
npm version patch   # or minor / major
# 2. Push the tag the bump created
git push --follow-tags

The workflow runs typecheck + tests, asserts that the tag matches package.json, builds, and publishes with the repo's NPM_TOKEN secret.