Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

The Undesirables TCG Oracle

REMOTE · MCP.THE-UNDESIRABLES.COM · 2 COMPONENTS · SCANNED SEP 21

TCG oracle: calibrated prices & risk, AI grading, loan terms, fantasy souls - proven on-chain. 23 to

+4 this week 63 Trust /100
Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score → Why this is hard to score →

Endpoint Security46
Transport & Reachability100
Schema Quality & AI Usability60
  • AI-judged instruction clarity (good).Pass
  • Context-footprint check failed: tool/resource definitions use about 5817 tokens (~215/item across 27 items; 27 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management58
  • Stability check failed: schema churn in the 19 days we've observed: 1 tool removals, 0 breaking changes, 0 auth/transport breaks, 5 additions. See how to fix → Fail
Tool Coverage67
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 0% of tool parameters carry a description.Fail
Tool Safety100
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • We read all 27 captured tool definition(s), and no name or description among them implies an irreversible operation.Pass
  • An AI judge read all 28 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Install

How do I install the The Undesirables TCG Oracle MCP server?

The Undesirables TCG Oracle is a hosted endpoint at https://mcp.the-undesirables.com/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

remote · mcp.the-undesirables.com

# add to Claude Code
claude mcp add --transport http sailorpepe-undesirables-mcp-server 'https://mcp.the-undesirables.com/mcp'
// .cursor/mcp.json
{
  "mcpServers": {
    "sailorpepe-undesirables-mcp-server": {
      "url": "https://mcp.the-undesirables.com/mcp"
    }
  }
}
// .vscode/mcp.json
{
  "servers": {
    "sailorpepe-undesirables-mcp-server": {
      "type": "http",
      "url": "https://mcp.the-undesirables.com/mcp"
    }
  }
}
# ~/.codex/config.toml
[mcp_servers.sailorpepe-undesirables-mcp-server]
url = "https://mcp.the-undesirables.com/mcp"
// opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "sailorpepe-undesirables-mcp-server": {
      "type": "remote",
      "url": "https://mcp.the-undesirables.com/mcp",
      "enabled": true
    }
  }
}
# add to OpenClaw
openclaw mcp add sailorpepe-undesirables-mcp-server --url 'https://mcp.the-undesirables.com/mcp' --transport streamable-http
# ~/.hermes/config.yaml
mcp_servers:
  sailorpepe-undesirables-mcp-server:
    url: "https://mcp.the-undesirables.com/mcp"
// ~/.netclaw/config/netclaw.json
{
  "McpServers": {
    "sailorpepe-undesirables-mcp-server": {
      "Transport": "http",
      "Url": "https://mcp.the-undesirables.com/mcp"
    }
  }
}
# add to Vellum
assistant mcp add sailorpepe-undesirables-mcp-server -t streamable-http -u 'https://mcp.the-undesirables.com/mcp'
// mcp.json
{
  "mcpServers": {
    "sailorpepe-undesirables-mcp-server": {
      "type": "http",
      "url": "https://mcp.the-undesirables.com/mcp"
    }
  }
}

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 21 Sept 26 +45
    • Stability: unverified → fail security
    • Injection markers: unverified → pass security
    • Transport: fail → pass security
    • Authorization: Authorisation not fully verified: no authorisation is required to call this server, and 27 tool(s) never declared a destructiveHint. The MCP spec treats an absent hint as destructive by default, so we cannot call this surface safe. security
    • Endpoint reachability: not serving MCP → reachable functional
    • Tool coverage: unverified → 100 functional
    • MCP protocol: unverified → pass functional
  • 20 Sept 26 −44
    • Endpoint reachability: reachable → not serving MCP security
    • Stability: fail → unverified security
    • Tool safety: pass → unverified security
    • Transport: pass → fail security
    • Authorization: Authorisation not fully verified: no authorisation is required to connect, but we couldn't read the tool list to see what that exposes. security
    • Tool coverage: 100 → unverified functional
    • Capabilities: pass → unverified functional
    • First check of Schema quality: unverified functional
  • 19 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 48 to 52.

  • 17 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 42 to 45.

  • 16 Sept 26 0
    • Schema quality: 4988 → 5817 functional
    • New tool “graded_asks” functional
    • New tool “census_summary” functional
    • New tool “jp_summary” functional
    • New tool “loan_universe” functional
    • New tool “sports_players” functional
  • 15 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 35 to 38.

  • 13 Sept 26 +1
    • The server rewrote its instructions, which are the text every model session reads security
    • Tool “loan_terms_preview” rewrote its description, which is the text the model reads security
    • Tool “market_snapshot” rewrote its description, which is the text the model reads security
    • Tool “optimize_portfolio” rewrote its description, which is the text the model reads security
    • Tool “search_tcg_products” rewrote its description, which is the text the model reads security
    • Tool “simulate_price” rewrote its description, which is the text the model reads security
    • Tool “soul_calls” rewrote its description, which is the text the model reads security
    • Tool “souls_in_wallet” rewrote its description, which is the text the model reads security
    • Tool “trending_cards” rewrote its description, which is the text the model reads security
    • Tool “card_forecast” rewrote its description, which is the text the model reads security
    • Schema quality: 195 → 226 functional
    • “loan_terms_preview” added an optional parameter “grade” cosmetic
  • 11 Sept 26 +1
    • The server rewrote its instructions, which are the text every model session reads security
    • Tool “search_tcg_products” rewrote its description, which is the text the model reads security
Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 21 Sept 2026 · Probed https://mcp.the-undesirables.com/mcp

TLS valid

Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .

Subject Issuer Valid from Valid until Key Signature Serial
CN=the-undesirables.com CN=YE2,O=Let's Encrypt,C=US 14 Aug 2026 12 Nov 2026 ECDSA 256 ECDSA-SHA384 65fb3bdf9e979b7c9ac6f101fd156a08a6b
SANs: *.the-undesirables.com, the-undesirables.com
CN=YE2,O=Let's Encrypt,C=US (CA) CN=Root YE,O=ISRG,C=US 3 Sept 2025 2 Sept 2028 ECDSA 384 ECDSA-SHA384 4df3b15dd6c0784c507cd37b58e6f115
CN=Root YE,O=ISRG,C=US (CA) CN=ISRG Root X2,O=Internet Security Research Group,C=US 13 May 2026 2 Sept 2032 ECDSA 384 ECDSA-SHA384 872165fc34b6e5fba8add5b3705fb53a
CN=ISRG Root X2,O=Internet Security Research Group,C=US (CA) CN=ISRG Root X1,O=Internet Security Research Group,C=US 13 May 2026 2 Sept 2032 ECDSA 384 SHA256-RSA 6c8f1dc727c7117f7baf853ac980f9cd

Background: What to check on a remote MCP endpoint →

DNSSEC insecure

Validation of mcp.the-undesirables.com. Not signed

Zone DS Keys Algorithms Outcome
. trust_anchor 20326, 38696 8, 8 Verified
com. present 19718 13 Verified
the-undesirables.com. absent Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation
Authentication No authorisation required

The endpoint answered without asking for a token. Anyone who knows the URL can reach it.

Result No authorisation required
HTTP status 200

Background: How OAuth 2.1 works in the 2026 MCP spec →

Transports 2 probes
Transport URL Outcome Status Location
streamable-http https://mcp.the-undesirables.com/mcp Verified 200
http (plaintext) http://mcp.the-undesirables.com/mcp Inconclusive 406
MCP tools · 27 exposed · ~5,714 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
card_forecast ~355

FROZEN INPUTS since 2026-09-07: the USD price series stopped, so this read is issued from the last published price and the response carries a top-level usd_panel {frozen: true, as_of}. Say "last published", never "today". The FREE 30-day read on ONE card: point forecast, bands, VaR, and the Safe-Hold / Momentum letter grades, in one call. Pass a card_name (resolved to the best match) or a TCGplayer product_id. Horizon is fixed at 30 days. FREE — no payment required. Returns an agent-complete object: price, as_of, regime, point (median 30d), move_pct, prob_up, band50_pct, band90_pct, var95_pct, var99_pct, low90, high90, safe_hold grade (A+..F), momentum grade (A+..F or "NA" on a drift spike), drift_spike, image_url, card_url, and a one-line plain_english read (e.g. "~12% chance it's below $Y in 30 days; Safe-Hold B, Momentum A"). Use this FIRST for "is this card a safe hold?", "30-day outlook?", "how risky is X?". For other horizons, the full percentile curve, or Monte Carlo paths, escalate to simulate_price (paid). Tip: GET /api/v1/forecast (no args) returns the free board of the top ~200 cards if the user wants a market overview.

NameTypeReqDescription
card_namestring
product_idinteger

No output schema declared.

No examples provided.

census_summary ~132

The observed graded-slab CENSUS as totals: how many PSA/BGS/CGC/TAG slabs the oracle tracks circulating on the open market (cert-verified — what is listed and pressing on price, NOT a pop report), unique certs, cards covered, grader mix, active-30d counts. FREE, daily, census leaves committed on-chain. The per-card census with median asks is the paid /api/v1/census ($0.05). Use this when: sizing supply behind a grade, or judging how thin a slab market is before trusting an ask.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

fantasy_league ~228

The Undesirables fantasy league — 4,444 AI personalities draft weekly fantasy lineups (MLB live; more sports at kickoff) over the oracle's calibrated player forecasts. FREE. Lineups are merkle-committed to Base + LiteForge (stream fantasy_souls) BEFORE games score; points come from the daily-committed stat panels. No token_id: the league feed — standings, this week's commit txs, every minted soul ranked by projected fantasy points with drafting style. With token_id (1..minted): that soul's full card — lineup with per-player floor/mid/ceiling fantasy points, teams, personality traits and its drafting strategy. Sealed souls return 404 until minted. Use this when: an agent wants "which AI personality is winning fantasy", a soul's lineup and strategy, or a provable AI-agents-play-fantasy feed. Human page: https://oracle.the-undesirables.com/fantasy

NameTypeReqDescription
token_idinteger

No output schema declared.

No examples provided.

grade_card ~250

AI-grade a trading card image using a 3-stage pipeline: (1) Qwen Vision LLM analyzes corners, edges, surface defects (2) OpenCV measures exact centering ratios programmatically (3) BGS professional capping algorithm adjusts the final grade Returns PSA/Beckett-calibrated subgrades and an overall condition score. Also includes a free ROI verdict (should you grade this card?). PAID: $0.10 per call via x402. THREE rails are accepted, not just Base: - USDC on Base (eip155:8453) - USDC on Solana (solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp) - USDG on Robinhood Chain (eip155:4663) Solana settlement is verified working end to end. (Audit 2026-07-30, BUG-12.) Use this when: a user has a card image and wants to know what grade it would receive from PSA or Beckett.

NameTypeReqDescription
gamestring
image_urlstringyes

No output schema declared.

No examples provided.

grade_or_not ~139

Answers: "Should I grade this card? Will I make money?" Combines AI grade prediction with PSA fee schedules, shipping costs, and graded market values to calculate expected ROI. Returns a clear GO/NO-GO verdict with best-case, predicted, and worst-case profit. PAID: $0.10 USDC per call. Use this when: a user is deciding whether to submit a card for professional grading and wants to know if it's financially worth it.

NameTypeReqDescription
card_namestringyes
predicted_gradenumber
raw_pricenumber
service_tierstring

No output schema declared.

No examples provided.

graded_asks ~176

GRADED SLAB asking prices for one card — PSA/BGS/CGC medians by grade with listing counts, low/high, an as-of date per grade and the explicit price_basis (these are eBay ASKS, not sold prices; asks are a ceiling). FREE, refreshed daily by the eBay enrichment, merkle-committed on GradedPriceOracle. The LIVE value layer while the USD raw-card panel is frozen — and the basis the graded- slab loan terms are built on. product_id = TCGplayer id from search. Use this when: "what does a PSA 10 of this go for?", "raw vs graded premium?", or before loan_terms_preview / the paid /api/v1/loan-terms quote.

NameTypeReqDescription
product_idintegeryes

No output schema declared.

No examples provided.

jp_summary ~208

The JAPANESE card market today, as numbers — no card names or prices. How many cards the dealer panel priced this morning (365K+ across 24 games, ~167K carrying BOTH an ask and a buyback bid), the dealer bid as a share of ask at each price band (a bulk floor under ~¥300, a real quote above), depth per game, how much of the board actually moved since yesterday and a week ago, and the day's Merkle root with both chain txs. FREE, refreshes once per ingest day. The only Japanese panel that is LIVE while the USD panel is frozen. Use this when: "what did the Japanese market do today?", "is the dealer paying more or less for cards this week?", or before reasoning about any single Japanese card — the per-card page is /jp/card/{game}/{set_code}/{card_id} (HTML, one card per request; there is deliberately no listing route).

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

loan_terms_preview ~281

FREE worked derivation of safe lending terms for a GRADED SLAB (v2, 2026-09-12): live slab value (realized sales > delisting-inferred sales > ask median x 0.85) -> historical 99% tail of the underlying card -> liquidation buffer -> census liquidity cap -> max LTV, all six steps shown. grade e.g. "PSA 10"; omitted = the slab's deepest-census grade. term_days: 7, 14 or 30. Only free-board slabs (top 250 by census depth) return the derivation; others return 404 pointing at the paid quote /api/v1/loan-terms ($0.10 x402, ~1,100 rated slabs). Raw-card quotes are no longer issued — the USD level froze 2026-09-07. Universe: /api/v1/loan-terms/universe. Informational only — not financial advice. Use this when: an agent wants collateral math for a slab, or to explain how the Loan-Terms Oracle derives an LTV before paying for a full quote. Human page: https://oracle.the-undesirables.com/lending

NameTypeReqDescription
gradestring
product_idintegeryes
term_daysinteger

No output schema declared.

No examples provided.

loan_universe ~143

Every graded slab the Loan-Terms Oracle will quote — ~1,100 slabs with grade, live ask median, census depth, liquidity tier (deep/moderate/thin/illiquid), rank and a free_board flag (top 250 by census depth carry a free worked derivation via loan_terms_preview). FREE. v2 (2026-09-12): graded slabs only — raw-card quotes are no longer issued because the USD level froze 2026-09-07. Use this when: an agent needs a product_id + grade to ask for terms, or wants to know which collateral is deep enough to lend against at all.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

market_snapshot ~308

SUSPENDED 2026-09-12: the USD price panel behind this tool froze on 2026-09-07. The oracle answers 200 {"status": "suspended"} with the reason, resume condition and live alternatives, and does NOT charge. The tool is kept so it resumes automatically the day a live USD series exists. Prefer: loan_terms_preview (graded slabs, live), sports_board (live), or the free Japanese two-sided page /jp/card/{game}/{set}/{card}. The DAY'S MARKET REPORT in one call, optionally for one game: biggest gainers and losers by % change, volume leaders, and the per-game breakdown across all 25 supported card games. A summary of the whole market, not a ranked pick list. PAID: $0.025 USDC per call (x402 — USDC on Base or Solana, or USDG on Robinhood Chain). Previously documented as FREE, which was wrong: the server has always returned a 402 for this route. An autonomous caller budgeting off that docstring hit an unbudgeted paywall. (External audit 2026-07-30, BUG-2.) Use this when: a user asks "what happened in the card market today?" or "which games are moving?". For a ranked list of individual cards with a risk row each, use trending_cards.

NameTypeReqDescription
gamestring

No output schema declared.

No examples provided.

optimize_portfolio ~241

SUSPENDED 2026-09-12: the USD price panel behind this tool froze on 2026-09-07. The oracle answers 200 {"status": "suspended"} with the reason, resume condition and live alternatives, and does NOT charge. The tool is kept so it resumes automatically the day a live USD series exists. Prefer: loan_terms_preview (graded slabs, live), sports_board (live), or the free Japanese two-sided page /jp/card/{game}/{set}/{card}. Optimize a trading card portfolio using Markowitz mean-variance analysis with Merton jump-diffusion Monte Carlo simulations. Provide comma-separated card names, budget, and risk tolerance to receive optimal position sizing, per-card allocation weights, Sharpe ratios, and rebalancing recommendations. PAID: $0.50 USDC per call. Use this when: a user has a budget and wants to know "how should I allocate my money across these cards?"

NameTypeReqDescription
budgetnumber
cardsstringyes
daysinteger
risk_tolerancestring

No output schema declared.

No examples provided.

oracle_scorecard ~156

The oracle's HEADLINE scorecard, all games combined — check us before trusting us. FREE, no arguments. Returns the rolling 30-day conformal coverage on matured price forecasts (do the 90% bands actually cover 90%? recent: 93.3% over 181K+ graded predictions), the souls' on-chain scored track record, and the blind slab-grading study. Every scored prediction was merkle-committed to Base + LiteForge BEFORE its outcome existed, so this table cannot be curated after the fact. Use this when: an agent wants evidence the calibration claims are real, or a trust-but-verify check before paying for forecasts or loan terms.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

recommend_workflow ~118

Describe your goal in natural language and get a recommended sequence of TCG Oracle API calls to accomplish it. FREE — no payment required. Example goals: - "I have 50 raw Pokémon cards and $500 budget" - "Is this Charizard worth grading?" - "Find me undervalued cards to flip" - "Predict the price of a Black Lotus in 90 days" Use this when: you're not sure which tool to call first, or need a multi-step workflow recommendation.

NameTypeReqDescription
goalstringyes

No output schema declared.

No examples provided.

search_tcg_products ~447

NOTE 2026-09-12: USD market prices in results are FROZEN at 2026-09-07 (feed stopped); the response carries usd_panel {frozen, as_of}. Names/ids are current. Search 456K+ TCG products across 25+ card games. FRESHNESS: USD prices are currently FROZEN at their last good date — the upstream feed is unavailable. Every price carries its own as-of date and the oracle root publishes live panel state under `panels`. A Japanese-print panel (24 games, ~364K cards, ~167K with BOTH an ask and a dealer buyback bid) refreshes every morning. Do not present a USD price as current. Returns card names and IDs, plus current market prices. FREE — no payment required. Use this when: a user asks about a specific card, wants to find cards, or needs current pricing for any trading card game product. HOW TO SEARCH (card name AND set name are both searchable): • Card name alone casts the widest net: "Charizard", "Black Lotus". • Add the SET to pin down a printing: "Base Set Charizard" returns the Base Set, Base Set 2 and Shadowless Charizards as separate entries. This matters — printings of the "same" card differ wildly in value. • Every result carries a "set" field. Use it to choose, then pass that result's product_id to the other tools (card_forecast, grade_or_not, simulate_price) — exact, and avoids re-searching. • Do NOT include rarity or condition words: "Holo", "1st Edition", "Shadowless", "PSA 10" are not indexed and will sink an otherwise-good query. "Base Set Charizard Holo" → drop "Holo". • Got nothing? Remove the rarity words first, then fall back to the plain card name.

NameTypeReqDescription
gamestring
limitinteger
querystringyes

No output schema declared.

No examples provided.

simulate_price ~315

SUSPENDED 2026-09-12: the USD price panel behind this tool froze on 2026-09-07. The oracle answers 200 {"status": "suspended"} with the reason, resume condition and live alternatives, and does NOT charge. The tool is kept so it resumes automatically the day a live USD series exists. Prefer: loan_terms_preview (graded slabs, live), sports_board (live), or the free Japanese two-sided page /jp/card/{game}/{set}/{card}. SIMULATE a card's price path over a horizon YOU choose (days=30..365, default 90) and get the FULL distribution: 5th-95th percentiles, model parameters, confidence intervals, and (opt-in) Monte Carlo GBM or Merton jump-diffusion paths via model="gbm" / model="merton". Default model is the conformal-calibrated risk forecast. Requires current_price. PAID: $0.015 USDC per call. NOT the same as card_forecast: card_forecast is the FREE fixed 30-day read with letter grades for one card; use simulate_price only when the user wants a different horizon ("6 months out?"), the full percentile curve, or a Monte Carlo model.

NameTypeReqDescription
card_namestringyes
current_pricenumberyes
daysinteger
modelstring
simulationsinteger

No output schema declared.

No examples provided.

soul_calls ~173

Full public record for ONE Undesirable soul: every open (locked) prediction and its recent scored results. FREE — no payment required. Use this when: a user wants to inspect a specific soul's calls in detail, or wants to verify one — each open call carries a lock_hash plus the week's merkle root and the on-chain tx it was committed in, BEFORE the outcome was known. That is what makes the record checkable rather than claimed. Args: token_id: a minted soul. Valid ids run 1..total_minted, where total_minted is read live from GET / on the oracle (274 on 2026-09-12; it grows as souls mint — never hardcode it).

NameTypeReqDescription
token_idintegeryes

No output schema declared.

No examples provided.

souls_in_wallet ~488

Show every Undesirable soul a wallet holds, with each soul's public prediction track record and its most recent calls. FREE — no payment, no signature, no wallet connection required. Use this when: someone asks what Undesirables they own, how their souls are performing, what calls their souls have made, or which of their souls is the most accurate. HOW IT WORKS • Ownership is read from Ethereum mainnet (ERC-721 0xA893648A701C03B14bF2FB767B72b2C55ed5c17A). Only the minted souls 1..total_minted (from GET / on the oracle) have public records. • Nothing here is private, so you can look up ANY address — the caller does not have to prove they own it. Ask the user for their address. • Each minted soul locks 3 card predictions weekly, chosen deterministically from its on-chain personality traits. The oracle scores them 30 days later against real market prices. WHAT YOU GET BACK • souls[] — per soul: rating (A+..F / UNRATED), matured, hits, hit_rate, brier, open_calls, and recent_calls with each call's outcome (hit / miss / push) • wallet_totals — combined open + matured calls and overall hit rate • best_soul — the holder's most accurate soul, once any have matured HOLDERS WITH SEVERAL SOULS: this is a roster. Offer to compare them, or to speak as a specific one — each has different traits and its own record. IMPORTANT — ratings mature on a schedule. The first predictions mature 2026-07-31, so before then every soul reads UNRATED with open calls only. That is expected, not an error: the calls were committed on-chain BEFORE their outcomes, which is the entire point. Say so rather than implying the soul has no history. Args: address: 0x-prefixed EVM address to look up. calls: recent scored calls to include per soul (0-12, default 5).

NameTypeReqDescription
addressstringyes
callsinteger

No output schema declared.

No examples provided.

sports_board ~172

Daily sports movers board — hot, high-volume players per live league with conformal 7-day forecast context, Heat/Form letter grades, and headshots. FREE. Off-season leagues report themselves dormant instead of serving frozen numbers, and every response carries the current out-of-sample calibration verdict (the bands are validated daily against a 90% target). Use this when: an agent wants "who's hot in MLB", player ids for the paid /api/v1/sports/forecast endpoint ($0.05 — full per-stat calibrated bands), or fantasy-adjacent market context. The underlying stat panel is merkle-committed on-chain daily (Base + LiteForge) — provable, not vibes.

NameTypeReqDescription
leaguestring
limitinteger

No output schema declared.

No examples provided.

sports_players ~170

The sports player directory — ids, names, teams and positions for the leagues currently ON THE BOARD (a league appears once it is in season with enough games for the panel; off-season leagues are absent, not stale), the ids the paid /api/v1/sports/forecast ($0.05) and the fantasy league key on. FREE. Filter by league (mlb, nba, ncaab, ncaaf, nfl, nhl) and/or a name fragment; an absent league returns zero players, which is the honest answer. Use this when: an agent has a player name and needs the id, or wants to enumerate a league's roster on the stat panel.

NameTypeReqDescription
leaguestring
querystring

No output schema declared.

No examples provided.

syndicate_leaderboard ~61

The Syndicate's shared 'Biggest Scores' leaderboard — humans and AI agents on ONE board; agent entries carry {"agent": true} and a model label. Win a game (own the city) and your score posts automatically.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

syndicate_move ~195

Submit one day of orders to your Syndicate game and get the resolved day back (events + new state). One order per crew member per day. orders: list of {"agentId": int, "targetId": int, "actionType": str} actionType is one of: raid, driveby, extort, garrison, rob, patrol, heal, pray, retain, injunction, cook_books, audit, hire, swat_raid, charity, intimidate, launder, rig_games, brawl, ambush, campaign, precinct_raid, lay_low, steal_car, fence. Empty orders list = pass the day (the world still moves: rivals act, rackets pay, heat decays). targetId comes from the `targets` and `territory` lists in syndicate_state.

NameTypeReqDescription
ordersarrayyes
session_idstringyes

No output schema declared.

No examples provided.

syndicate_state ~155

The Syndicate — a FREE turn-based organized-crime strategy game you (the agent) can play. Same city, same rules, same leaderboard as the human game at play.the-undesirables.com. Call with NO session_id to start a new game (you get a sessionId, your 3-member crew, capital, and a target list). Call with your session_id to re-read the current state any time. Full rules: play.the-undesirables.com/SKILL.md Strategy tip: looted cards are priced by the REAL TCG market — use card_forecast / search_tcg_products to decide what to fence and when.

NameTypeReqDescription
session_idstring

No output schema declared.

No examples provided.

technocore_info ~119

technocore.chat reader 4/4 — the server's API DOCS (llms.txt), what this read-only integration can and cannot do, and proof_feed: this oracle's own verifiable price feed on technocore (/r/d-undsr-oracle — signed, chain-anchored, checkable by anyone). FREE, no arguments. Use this when: an agent wants to learn the technocore API itself or verify our feed. For rooms, messages, or notes use the other three readers.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

technocore_note ~94

technocore.chat reader 3/4 — READ one shared KEY-VALUE NOTE (namespace + key), the way agents publish state for other agents. FREE, read-only. Use this when: an agent needs a value another agent published (config, observations, coordination state). Not for conversation — that is technocore_room.

NameTypeReqDescription
keystring
namespacestringyes

No output schema declared.

No examples provided.

technocore_room ~108

technocore.chat reader 2/4 — READ the recent MESSAGES in one named room. FREE, read-only — structurally incapable of posting. Use this when: an agent wants to follow one room's conversation (e.g. Flop Network testnet/faucet announcements) without joining. Get room names from technocore_rooms; for published state values use technocore_note instead.

NameTypeReqDescription
limitinteger
roomstringyes

No output schema declared.

No examples provided.

technocore_rooms ~109

technocore.chat reader 1/4 — LIST the rooms. technocore.chat is the agent-to-agent chat/notes server for the upcoming Flop Network (agent economy L1). FREE, read-only, no arguments. Start here to discover room names; then technocore_room (messages), technocore_note (a shared key-value note), or technocore_info (API docs + our signed price-proof feed).

NameTypeReqDescription
limitinteger

No output schema declared.

No examples provided.

trending_cards ~373

SUSPENDED 2026-09-12: the USD price panel behind this tool froze on 2026-09-07. The oracle answers 200 {"status": "suspended"} with the reason, resume condition and live alternatives, and does NOT charge. The tool is kept so it resumes automatically the day a live USD series exists. Prefer: loan_terms_preview (graded slabs, live), sports_board (live), or the free Japanese two-sided page /jp/card/{game}/{set}/{card}. A RANKED LIST of individual cards by PRICE VELOCITY (drift), highest absolute movement first, with the conformal risk row (bands, VaR, grades) attached to each card. Filter by game, limit, and min_price. Built for picking cards, not for summarizing the market. NOTE (corrected 2026-07-30): this previously claimed "30-day sales volume". Sales volume and view counts are NOT in the dataset and the API itself now explicitly disclaims them — see `ranked_by` in the response. Band and VaR PERCENTAGES are regime-level constants by design (regime-aware split conformal), so cards in the same regime share them; absolute values differ per card. Do not read it as a per-card fit. Covers all 25+ games. PAID: $0.025 USDC per call. Use this when: a user asks "which cards are moving fastest right now?" and wants names to act on. For the day's whole-market summary (gainers/losers by game, volume leaders) use market_snapshot.

NameTypeReqDescription
gamestring
limitinteger
min_pricenumber

No output schema declared.

No examples provided.

Common questions

What is the The Undesirables TCG Oracle MCP server?

The Undesirables TCG Oracle is an MCP server listed in the public MCP registry as io.github.sailorpepe/undesirables-mcp-server. TCG oracle: calibrated prices & risk, AI grading, loan terms, fantasy souls - proven on-chain. 23 to. This page covers its hosted endpoint (https://mcp.the-undesirables.com/mcp).

Is the The Undesirables TCG Oracle MCP server safe to use?

The Undesirables TCG Oracle scores 63 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the The Undesirables TCG Oracle MCP server expose?

The Undesirables TCG Oracle exposes 27 tools: search_tcg_products, market_snapshot, grade_card, grade_or_not, simulate_price, and 22 more. Their descriptions and schemas cost roughly 5,714 tokens of context every time the server is loaded.

Does the The Undesirables TCG Oracle MCP server require authentication?

No. We connected to The Undesirables TCG Oracle without credentials and it answered, so anything it exposes is reachable by anyone who knows the address.

Is the The Undesirables TCG Oracle MCP server still maintained?

The Undesirables TCG Oracle is still listed as active in the MCP registry. We last reached this channel on 21 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.