@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.
Maintainers
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/mcpThat 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:
- 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. - 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. - Auto-idempotency. A fresh UUID is generated when
idempotency_keyis 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 # vitestReleasing 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-tagsThe workflow runs typecheck + tests, asserts that the tag matches
package.json, builds, and publishes with the repo's NPM_TOKEN
secret.
