Skip to main content
Glama
mingun-kim

MTGDecks Metagame MCP Server

by mingun-kim

MTGDecks Metagame MCP

Un PoC de Python/MCP que lee las páginas públicas de MTGDecks.net y normaliza la información de metagame y mazos en un formato JSON consistente.

Como no se ha confirmado una API pública documentada, se utilizan el HTML público del sitio y filtros basados en URL. No se requiere inicio de sesión en el navegador ni cookies.

Funciones proporcionadas

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,
)

Cada función está disponible tanto como función de Python como herramienta MCP.

Related MCP server: Mystic Forge

Requisitos

  • Python 3.10 o superior

  • Se recomienda uv

Instalación

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

Para instalar también las dependencias de desarrollo y prueba, use el siguiente comando.

uv sync --extra dev

Ejecutar el servidor MCP

El servidor se ejecuta por defecto con transporte stdio.

uv run mtgdecks-mcp

Un ejemplo de configuración del host MCP es el siguiente. Debe cambiar cwd a la ruta absoluta real de este repositorio.

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

Las herramientas MCP registradas son las siguientes cuatro:

  • get_metagame

  • get_recent_decks

  • get_archetype_decks

  • get_top_performing_decks

Uso en 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,
)

Para múltiples consultas, es más eficiente usar el cliente directamente para reutilizar las conexiones HTTP.

from mtgdecks_mcp import MTGDecksClient

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

Argumentos

format

El nombre del formato utilizado en MTGDecks.net. Por ejemplo: Standard, Pioneer, Modern, Legacy, Pauper, Commander, Duel-Commander.

source

Valor

Significado

all

Metagame completo

mtgo

Metagame de eventos MTGO

major

Metagame de eventos principales recientes

mtgo-events, major-events, recent-major-events también se pueden usar como alias.

platform

  • mtgo

  • arena

  • tabletop

No distingue entre mayúsculas y minúsculas.

game_type

  • BO1

  • BO3

No distingue entre mayúsculas y minúsculas.

Límites del rango de consulta

  • max_pages: 1~10

  • limit: 1~100

  • min_players: entero positivo

Estructura de la respuesta

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
    }
  ]
}

Lista de mazos

Las funciones de consulta de mazos devuelven comúnmente pages y decks. pages contiene las URLs de las páginas originales realmente consultadas.

{
  "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
    }
  ]
}

Los campos que MTGDecks no proporciona en la página pueden ser null. Los precios son valores en USD según Paper/TCGPlayer de la página.

get_top_performing_decks no calcula su propia puntuación de rendimiento; utiliza la ordenación ascendente por rank de MTGDecks. Por lo tanto, se devuelven primero los mazos con mejores resultados en eventos, como ganadores, subcampeones y Top 8.

Pruebas

uv run pytest

Las pruebas no acceden a sitios externos; utilizan ejemplos HTML guardados y httpx.MockTransport.

Estructura del proyecto

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

Limitaciones y condiciones de uso

  • Este proyecto depende de la estructura HTML pública, por lo que si el marcado o las rutas de MTGDecks.net cambian, puede ser necesario modificar el analizador.

  • El rastreo masivo, la recopilación paralela y la persistencia en caché/base de datos no están incluidos en el alcance del PoC.

  • La precisión y disponibilidad de los datos originales dependen de MTGDecks.net.

  • Todos los resultados normalizados incluyen la URL original para trazabilidad.

  • Los términos de servicio de MTGDecks limitan el contenido a uso personal y no comercial. Antes de expandir a servicios comerciales o recopilación masiva continua, verifique el permiso de MTGDecks o una asociación de API.

Documentación relacionada: Términos de servicio de MTGDecks

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