← Back to Portfolio
Haunted Labs Competitive Intelligence · npm: ygo-meta-mcp v1.1.1

ygo-meta-mcp

Multi-source competitive metagame intelligence and tournament discovery Model Context Protocol (MCP) server. Aggregates live top-cut tournament decks across YGOPRODeck, Yu-Gi-Oh! Meta, and Road of the King, computing sample-weighted Bayesian consensus tier rankings, empirical tech adoption (Main & Side), and immutable tournament decklists with sub-2ms local execution.

The Problem: Single-Source Bias in Metagame Reasoning

Competitive deckbuilders and tactical dueling agents require accurate, empirical metagame data to calibrate side decks and quantify archetype threats. However, existing tooling suffers from chronic single-source distortion:

  • Regional Partition Skew: Western circuits (YGOPRODeck) reflect North American and European Regional/YCS distributions, but completely ignore the Asian OCG circuit, which innovates format trends weeks in advance.
  • Sample Size Discrepancies: Small, unweighted weekly tournaments skew representation percentages. An archetype with 3 tops out of 10 decks (30%) appears falsely dominant compared to an archetype with 80 tops out of 500 premier decks (16%).
  • Runtime Scraping Fragility: Live web scraping in conversational agent sessions triggers rate limits (HTTP 429), breaks on frontend CSS changes, and adds 2–5 seconds of latency per user prompt.
The Multi-Source Bayesian Consensus Architecture
ygo-meta-mcp unifies tournament discovery across YGOPRODeck, Yu-Gi-Oh! Meta, and Road of the King into an embedded SQLite WAL database. By applying sample-weighted Bayesian aggregation, it neutralizes single-site bias and guarantees zero-latency, air-gapped metagame queries.

Mathematical Foundation: Sample-Weighted Consensus

To harmonize conflicting regional feeds into a single authoritative metagame reality, the engine calculates the sample-weighted consensus share \(S_{\text{consensus}}(A)\) for any given archetype \(A\):

Bayesian Sample-Weighted Formula Mathematics
S_consensus(A) = [ ∑ (N_i * P_i(A)) ] / [ ∑ N_i ]

Where:
  K   = Number of reporting upstream sources
  N_i = Verified tournament deck sample size from source i
  P_i = Percentage meta share reported by source i

Tier Thresholds:
  • Tier 1: S_consensus >= 15.0% (Format-defining / Dominant)
  • Tier 2: 7.0% <= S_consensus < 15.0% (Competitive Staple)
  • Tier 3: 3.0% <= S_consensus < 7.0% (Viable Contender)
  • Rogue:  S_consensus < 3.0% (Fringe / Anti-Meta Representation)

Upstream Source Providers

1. YGOPRODeck Tournament Analytics (API-First)

Queries internal structured AJAX endpoints (POST /api/tournament/getTopArchetypes.php) with precise timeframe mapping (dateStart="Format" for current post-release window, tier="NA" for competitive Tier 2+ events). Preserves exact source ranking on percentage ties.

2. Yu-Gi-Oh! Meta & Master Duel Meta (Rolling Window Ingestion)

Ingests real-time tournament top-cut data from the active 1-month rolling window (/api/v1/top-decks?sort[uploaded]=-1), providing native format partitioning for TCG (#tcgOnly), Asian OCG (#ocgOnly), and Genesys (#tournament=Genesys Format).

3. Road of the King (Asian OCG Championships)

Parses weekly OCG metagame reports from premier Asian circuits via deterministic semantic regex, extracting raw deck counts directly from editorial tournament breakdown tables.

Model Context Protocol (MCP) Tool Contract

When booted via stdio, ygo-meta-mcp exports 5 production analytical tools and 1 resource template:

Production MCP Tools JSON-RPC / Zod Schemas
1. get_meta_tier_list
   Inputs: format ("TCG", "OCG", "MasterDuel", "Genesys"), timeframe, source ("all", "ygoprodeck", "yugiohmeta", "roadoftheking"), min_share, limit
   Outputs: Normalized tier rankings, deck counts, and sample-weighted Bayesian consensus power scores

2. list_tournaments
   Inputs: format, since_date, source, limit
   Outputs: Concluded Premier, Regional, and CS events with dates, player counts, and winners

3. get_meta_decklists
   Inputs: tournament_id, archetype, placement, limit
   Outputs: Top-cut tournament deck profiles with player names, placements, and valid .ydk simulator strings

4. get_tech_adoption_trends
   Inputs: archetype, format, timeframe, min_adoption, limit
   Outputs: Empirical Main, Side, and Extra Deck tech card frequencies and average copy counts

5. evaluate_matchup_counters
   Inputs: target_archetype, format, limit
   Outputs: Opponent deck choke point diagnosis and statistically proven Side Deck counter cards

Zero-Install Integration via npx

Published globally on npm under the MIT license, developers and agents can connect immediately without cloning any repositories:

Cursor IDE Configuration (.cursor/mcp.json)

.cursor/mcp.json JSON
{
  "mcpServers": {
    "ygo-meta": {
      "command": "npx",
      "args": ["-y", "ygo-meta-mcp"],
      "trust": true
    }
  }
}

Claude Code & Claude Desktop (claude_desktop_config.json)

claude_desktop_config.json JSON
{
  "mcpServers": {
    "ygo-meta": {
      "command": "npx",
      "args": ["-y", "ygo-meta-mcp"]
    }
  }
}

The Recommended Dual-MCP Suite (Card Truth + Metagame)

For complete tournament grounding, pair ygoprodeck-mcp (pure card truth) with ygo-meta-mcp (competitive metagame):

Dual-MCP Configuration JSON
{
  "mcpServers": {
    "ygoprodeck": {
      "command": "npx",
      "args": ["-y", "ygoprodeck-mcp"],
      "trust": true
    },
    "ygo-meta": {
      "command": "npx",
      "args": ["-y", "ygo-meta-mcp"],
      "trust": true
    }
  }
}

Comparative Architecture Benchmark

Metric / Feature Live Web Scraper Single-Source API ygo-meta-mcp (v1.0.0)
Data Scope Single website only Single vendor only Multi-Source (YGOPD + YGM + RotK)
Sample Weighting Unweighted / Raw % Isolated sample Bayesian Sample-Weighted Consensus
Runtime Latency 1,200ms – 4,000ms 250ms – 800ms < 2ms (Local SQLite WAL)
Runtime Outbound HTTP Continuous HTML pulls 1 HTTP call per query 0 requests (Air-Gapped)
Cloud Pre-Sync No No Bi-weekly GitHub Actions Cron
Package Size N/A N/A 19.9 kB (npm tarball)