Skip to main content
Glama
mingun-kim

MTGDecks Metagame MCP Server

by mingun-kim

MTGDecks Metagame MCP

Ein Python/MCP-PoC, das öffentliche Seiten von MTGDecks.net liest und Metagame- und Deck-Informationen in ein konsistentes JSON-Format normalisiert.

Da keine dokumentierte öffentliche API verfügbar ist, werden das öffentliche HTML der Website und URL-basierte Filter verwendet. Eine Browser-Anmeldung oder Cookies sind nicht erforderlich.

Verfügbare Funktionen

get_metagame(
    format: str,
    source: str = "all",
)

get_recent_decks(
    format: str,
    platform: str | None = None,
    game_type: str | None = None,
    max_pages: int = 3,
)

get_archetype_decks(
    format: str,
    archetype: str,
    limit: int = 20,
)

get_top_performing_decks(
    format: str,
    platform: str | None = None,
    min_players: int | None = None,
    limit: int = 20,
)

Jede Funktion ist sowohl als Python-Funktion als auch als MCP-Tool verfügbar.

Related MCP server: Mystic Forge

Voraussetzungen

  • Python 3.10 oder höher

  • uv empfohlen

Installation

git clone <repository-url>
cd Metagame-MCP
uv sync

Um auch Entwicklungs- und Testabhängigkeiten zu installieren, verwenden Sie den folgenden Befehl.

uv sync --extra dev

MCP-Server ausführen

Der Server läuft standardmäßig über den stdio-Transport.

uv run mtgdecks-mcp

Ein Beispiel für die MCP-Host-Konfiguration finden Sie unten. cwd muss auf den tatsächlichen absoluten Pfad dieses Repositorys geändert werden.

{
  "mcpServers": {
    "mtgdecks": {
      "command": "uv",
      "args": ["run", "mtgdecks-mcp"],
      "cwd": "C:\\path\\to\\Metagame-MCP"
    }
  }
}

Die folgenden vier MCP-Tools werden registriert.

  • get_metagame

  • get_recent_decks

  • get_archetype_decks

  • get_top_performing_decks

Verwendung in Python

from mtgdecks_mcp import (
    get_archetype_decks,
    get_metagame,
    get_recent_decks,
    get_top_performing_decks,
)

metagame = get_metagame("Modern", source="mtgo")

recent = get_recent_decks(
    "Modern",
    platform="mtgo",
    game_type="BO3",
    max_pages=1,
)

archetype = get_archetype_decks(
    "Modern",
    "Boros Energy",
    limit=5,
)

top = get_top_performing_decks(
    "Modern",
    platform="mtgo",
    min_players=64,
    limit=10,
)

Bei mehreren Abfragen ist es effizienter, den Client direkt zu verwenden, um HTTP-Verbindungen wiederzuverwenden.

from mtgdecks_mcp import MTGDecksClient

with MTGDecksClient() as client:
    modern = client.get_metagame("Modern")
    pioneer = client.get_metagame("Pioneer")

Argumente

format

Der von MTGDecks.net verwendete Formatname. Z. B. Standard, Pioneer, Modern, Legacy, Pauper, Commander, Duel-Commander.

source

Wert

Bedeutung

all

Gesamtes Metagame

mtgo

Metagame der MTGO-Events

major

Metagame der letzten großen Events

mtgo-events, major-events und recent-major-events können ebenfalls als Aliase verwendet werden.

platform

  • mtgo

  • arena

  • tabletop

Die Groß-/Kleinschreibung wird nicht beachtet.

game_type

  • BO1

  • BO3

Die Groß-/Kleinschreibung wird nicht beachtet.

Einschränkung des Abfragebereichs

  • max_pages: 1~10

  • limit: 1~100

  • min_players: positive ganze Zahl

Antwortstruktur

Metagame

{
  "format": "Modern",
  "source": "all",
  "url": "https://mtgdecks.net/Modern",
  "selected_deck_count": 10994,
  "updated_at": "2026-08-21 06:47:39",
  "archetypes": [
    {
      "name": "Boros Energy",
      "url": "https://mtgdecks.net/Modern/boros-energy",
      "meta_share_percent": 7.98,
      "trend_percent": -2.85,
      "tier": "A",
      "win_rate_percent": 49.0,
      "top_25_conversion": 0.95,
      "deck_count": 877,
      "price_usd": 1109.0
    }
  ]
}

Deck-Listen

Die Deck-Abfragefunktionen geben gemeinsam pages und decks zurück. pages enthält die tatsächlich abgerufenen Original-Seiten-URLs.

{
  "format": "Modern",
  "pages": ["https://mtgdecks.net/Modern/decklists/page:1"],
  "decks": [
    {
      "name": "deck",
      "url": "https://mtgdecks.net/Modern/example-decklist-123",
      "author": "Player",
      "archetype": "Boros Energy",
      "game_type": "BO3",
      "platform": "mtgo",
      "event": "MTGO Modern Challenge",
      "event_level": 3,
      "players": 94,
      "spiciness_percent": 30.0,
      "date": "2026-08-20",
      "price_usd": 1112.0,
      "placement": "1st",
      "wins": 5,
      "losses": 0,
      "draws": 0,
      "win_rate_percent": 100.0
    }
  ]
}

Felder, für die die MTGDecks-Seite keinen Wert liefert, können null sein. Die Preise sind USD-Werte basierend auf Paper/TCGPlayer auf der Seite.

get_top_performing_decks berechnet keinen eigenen Leistungswert, sondern verwendet die aufsteigende Sortierung nach rank von MTGDecks. Daher werden zuerst Decks mit guten Event-Ergebnissen wie Sieg, Zweiter oder Top 8 zurückgegeben.

Tests

uv run pytest

Die Tests verwenden gespeicherte HTML-Beispiele und httpx.MockTransport, ohne auf externe Websites zuzugreifen.

Projektstruktur

src/mtgdecks_mcp/
├── __init__.py   # 공개 Python API
├── parsers.py    # MTGDecks HTML 정규화
├── server.py     # MCP 도구 등록과 stdio 서버
└── service.py    # URL 구성, HTTP 클라이언트, 네 가지 기능

tests/
├── test_parsers.py
└── test_service.py

Einschränkungen und Nutzungsbedingungen

  • Da dieses Projekt von der öffentlichen HTML-Struktur abhängt, können bei Änderungen am Markup oder an den Pfaden von MTGDecks.net Parser-Anpassungen erforderlich sein.

  • Massen-Crawling, paralleles Sammeln und Cache-/Datenbank-Persistenz sind nicht im Umfang des PoC enthalten.

  • Die Genauigkeit und Verfügbarkeit der Quelldaten hängt von MTGDecks.net ab.

  • Alle normalisierten Ergebnisse enthalten eine nachvollziehbare Quell-URL.

  • Die Nutzungsbedingungen von MTGDecks beschränken Inhalte auf persönliche, nicht-kommerzielle Zwecke. Bevor Sie auf kommerzielle Dienste oder kontinuierliches Massen-Sammeln erweitern, prüfen Sie die Genehmigung von MTGDecks oder eine API-Partnerschaft.

Verwandte Dokumentation: MTGDecks-Nutzungsbedingungen

F
license - not found
Not graded
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • A
    license
    A
    quality
    D
    maintenance
    Provides AI assistants with 69 tools, 19 prompts, and 21 resources for deep access to Magic: The Gathering, including card data, combos, draft analytics, Commander metagame, competitive constructed, sideboard strategy, deck building, and rules engine, working with any MCP client.
    56
    16
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Unified MCP server for Magic: The Gathering, combining Scryfall card search and pricing, EDHRec commander recommendations, Archidekt deck reading, and decklist validation into a single service.
    MIT
  • F
    license
    Not graded
    quality
    B
    maintenance
    Provides access to Magic: The Gathering card data via Scryfall API, including search, rulings, sets, and local deck management with multi-owner support.
  • A
    license
    A
    quality
    B
    maintenance
    Provides AI assistants with comprehensive Magic: The Gathering data including card info, combos, draft analytics, Commander metagame, constructed formats, sideboard strategy, deck building, and rules.
    74
    MIT

View all related MCP servers

Related MCP Connectors

  • Scryfall MCP — Magic: The Gathering card database.

  • Crypto intelligence MCP for market data, DeFi, wallets, security, DEX, NFTs, and Solana.

  • BGG MCP provides access to the BoardGameGeek API through the Model Context Protocol, enabling retr…

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/mingun-kim/MTG-Metagame-MCP'

If you have feedback or need assistance with the MCP directory API, please join our Discord server