MCP server

Ask your assistant what a card sold for, and have it answer from receipts instead of from memory.

This is a free, read-only MCP server over the same completed-sale data the rest of this site is built from. No key, no account, no signup.

https://palworldprices-mcp.allenjs-yi-dev.workers.dev/mcp

Why bother

A general-purpose assistant asked about a Palworld card price will usually answer. It has no sold data for a game this new, so what it produces is a plausible number with nothing behind it.

With this server connected, it answers from completed sales — and, just as importantly, it says "no verified sales yet" for the 131 printings that have never sold in a marketplace this project watches.

Install

Claude Code

claude mcp add --transport http palworldprices https://palworldprices-mcp.allenjs-yi-dev.workers.dev/mcp

Check it with claude mcp list.

Claude Desktop

Edit claude_desktop_config.json — on Windows %APPDATA%\Claude\claude_desktop_config.json, on macOS ~/Library/Application Support/Claude/claude_desktop_config.json:

{
  "mcpServers": {
    "palworldprices": {
      "type": "http",
      "url": "https://palworldprices-mcp.allenjs-yi-dev.workers.dev/mcp"
    }
  }
}

Restart the app. If your build predates native remote-server support, use the stdio bridge instead:

{
  "mcpServers": {
    "palworldprices": {
      "command": "npx",
      "args": ["-y", "mcp-remote", "https://palworldprices-mcp.allenjs-yi-dev.workers.dev/mcp"]
    }
  }
}

Cursor

.cursor/mcp.json for one project, ~/.cursor/mcp.json for all of them:

{
  "mcpServers": {
    "palworldprices": {
      "url": "https://palworldprices-mcp.allenjs-yi-dev.workers.dev/mcp"
    }
  }
}

Anything else

Point it at the URL with transport http (Streamable HTTP). There is no Authorization header to set, and CORS is open, so browser-hosted clients work without a proxy.

Then ask

Try it without installing anything

Both headers are required — the transport answers 406 without them.

curl -s -X POST https://palworldprices-mcp.allenjs-yi-dev.workers.dev/mcp \
  -H 'content-type: application/json' \
  -H 'accept: application/json, text/event-stream' \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"get_card","arguments":{"cardIdOrCode":"pal-BP01-001-OSR"}}}'

The text the assistant receives:

Jormuntide Ignis – Savage Lava Dragon / 荒ぶる溶岩竜 – アグニドラ
Printing: BP01-001 · OSR
Price: $35.00 (median of completed sales)
Card page (receipts + history): https://palworldprices.com/cards/bp01/001-jormuntide-ignis-savage-lava-dragon-osr/

Other printings of BP01-001:
- Jormuntide Ignis – Savage Lava Dragon (BP01-001 base RR) — ~$39.90 (thin sample)
  https://palworldprices.com/cards/bp01/001-jormuntide-ignis-savage-lava-dragon/
- Jormuntide Ignis – Savage Lava Dragon (BP01-001 RR) — $9.99
  https://palworldprices.com/cards/bp01/001-jormuntide-ignis-savage-lava-dragon-rr/
- Jormuntide Ignis – Savage Lava Dragon (BP01-001 SSP) — $475.00
  https://palworldprices.com/cards/bp01/001-jormuntide-ignis-savage-lava-dragon-ssp/

— Data: Palworld Prices …

Four printings of one card, $9.99 to $475. The siblings come back on every lookup so an assistant cannot quote one printing's price for another. (Response captured from the live server; the values in it move daily.)

Tools

ToolArgumentsReturns
search_cardsquery (EN/JP name, code, variant, rarity), limit? 1–50Ranked printings with price, tier, card page
get_cardcardIdOrCode (pal-BP01-001-OSR, BP01-001, BP01-001 OSR)One printing, its siblings, its card page
list_setsnoneEvery tracked set with per-tier coverage counts

list_sets against the current build:

Palworld TCG sets tracked (5 sets, 257 printings):
- BP01: 172 printings — 41 priced, 66 thin-sample, 65 tracking live (no verified solds yet)
  https://palworldprices.com/sets/bp01/
- EPR: 1 printing — 1 priced, 0 thin-sample, 0 tracking live (no verified solds yet)
  https://palworldprices.com/sets/epr/
- ESOUL: 8 printings — 2 priced, 2 thin-sample, 4 tracking live (no verified solds yet)
  https://palworldprices.com/sets/esoul/
- TD01: 38 printings — 2 priced, 6 thin-sample, 30 tracking live (no verified solds yet)
  https://palworldprices.com/sets/td01/
- TD02: 38 printings — 1 priced, 5 thin-sample, 32 tracking live (no verified solds yet)
  https://palworldprices.com/sets/td02/

Coverage is split by tier rather than totalled. "126 priced" would be true and misleading — 79 of those rest on one to three sales.

The honesty rules travel with the data

The reason to hand an assistant a price tool is that it will otherwise invent a price. That only helps if the tool's caveats survive the trip into chat, so they are built into the values rather than left as advice.

TierThe assistant seesSales behind it
Confident$35.004 or more
Thin sample~$39.90 (thin sample)1 to 3
Tracking liveNo verified sold comps yet — tracking livenone

Three things make this hold:

The qualifier is inside the number. There is no field holding a bare 39.9 with the caveat parked elsewhere for a model to skip. The string it is most likely to print already says "thin sample".

Unpriced means no number. A tracking-live printing returns medianUsd: null and that sentence. Asked about BP01-002, the server says it has no recorded sale — while showing that its OSR sibling is ~$35.00 and its RR sibling is $9.99, neither of which is the base's price.

The rules ship on every call. Each result carries a honesty block, and the connection handshake delivers them again as server instructions:

- Keep the qualifiers. A "~" prefix or "thin sample" means few verified solds; quote that
  caveat alongside the number. Never present a thin-sample figure as a settled market price.
- If a printing is "tracking live" it has NO verified sold comps. Say so. Do not estimate a
  price, interpolate from other printings, or fall back on your own training data.
- Printings of the same card (base vs OSR/SSP/SP/RR) price very differently. Never merge them.

When a lookup fails, the error text says the lookup failed and tells the model not to substitute a remembered figure. A price tool that fails quietly is worse than no price tool.

Attribution

Free to use, including commercially, with attribution. If you publish anything built on this server, publish this line verbatim:

Data: Palworld Prices (palworldprices.com) — completed-sale prices with confidence tiers

Include the card-page URL so a reader can reach the receipts. Do not imply endorsement.

Card images are not available through this server, and there is no bulk image access. Card art is hosted here under a publisher fan-content policy that does not extend to redistribution. Link to the card page.

Limits, stated plainly

Writing a script rather than wiring an assistant? Skip MCP and read the JSON directly — see the API.

Questions

Something wrong or a tool you wish existed: contact@palworldprices.com.

Method: /methodology/. What we refuse to print: /accuracy/.