Skip to main content
Glama
gregario

Commander Workshop MCP

Commander Workshop MCP

Commander Workshop es un servidor MCP local-first para construir, verificar, comparar y completar mazos de Commander de Magic: The Gathering. Combina reglas fijas y datos de cartas con tu colección explícitamente importada, mantiene la intención del mazo separada de la propiedad, y convierte un plan completo en extracciones, intercambios, sustitutos, proxies o compras.

El servidor es útil para la creación sin restricciones, construcción priorizando el inventario, planificación de Bracket 3 y mejoras de preconstruidos con presupuesto fijo. Evalúa candidatos completos acotados y dice mejor encontrado bajo estas restricciones en lugar de reclamar una puntuación de poder universal o un mazo matemáticamente perfecto.

Características

Necesidad

Lo que proporciona Commander Workshop

Crear o mejorar

Planes completos y verificados legalmente bajo restricciones componibles

Entender un mazo

Maná, curva, roles, paquetes, evidencia temática e incertidumbre

Usar cartas que posees

Importaciones de ManaBox y CSV mapeado con ubicaciones de carpetas/mazos

Mantener planes honestos

Las listas de mazos nunca implican propiedad; se informan copias de mazos ensamblados

Encontrar cartas faltantes

Disponibilidad sin reserva más planes de cumplimiento accionables

Respetar un presupuesto

Restricciones nativas en USD/EUR y preajustes de mejora de Bracket 3 de 50 unidades

Consultar precios

Estimaciones locales de Scryfall o cotizaciones opcionales de solo lectura de CardTrader

Integrarse con agentes

Once herramientas MCP y recursos inmutables paginados sobre stdio

Related MCP server: scryfall-mcp

Promesa de privacidad

Tus colecciones, nombres de carpetas, ubicaciones y asignaciones de mazos físicos permanecen locales por defecto. Las importaciones locales están restringidas a las raíces configuradas. El servidor no envía mazos, modifica colecciones, reserva cartas, añade artículos del mercado a un carrito ni completa compras. El precio opcional del mercado envía solo los requisitos mínimos de impresión y lee las credenciales del entorno o del almacén secreto del host MCP.

Instalación

Commander Workshop requiere Python 3.11 o superior. Desde un clon del repositorio:

python -m venv .venv
. .venv/bin/activate
python -m pip install -e .

V1 actualmente solo es compatible con sistemas de archivos POSIX. Sus rutas de publicación inmutables requieren descriptores de archivo de directorio, O_DIRECTORY, O_NOFOLLOW, enlaces duros, fsync y bloqueos de asesoramiento; Windows no es compatible. El servidor stdio también espera las entradas locales verificadas preparadas a continuación.

Configuración del catálogo y reglas

V1 deliberadamente no realiza ninguna solicitud de red cuando el servidor se inicia. Descarga el gzip JSONL de Scryfall Default Cards a través de la API de datos masivos documentada de Scryfall, prepara el paquete de reglas de cinco archivos especificado en docs/rules-bundle.md, luego ejecuta el comando de arranque offline probado:

.venv/bin/commander-workshop-bootstrap \
  --data-dir /absolute/path/to/commander-workshop-data \
  --catalog-jsonl-gz /absolute/path/to/default-cards.jsonl.gz \
  --catalog-url https://data.scryfall.io/default-cards.jsonl.gz \
  --catalog-retrieved-at 2026-08-15T12:00:00+00:00 \
  --rules-bundle /absolute/path/to/rules-bundle

Usa la URL de descarga real y la hora de recuperación. --data-dir es una raíz de instalación segura; puede contener archivos no relacionados, que el arranque nunca elimina ni sobrescribe. El comando verifica el gzip y las reglas, construye un entorno con direccionamiento de contenido bajo environments/<sha256>, y publica un marcador READY atómico solo después de que la representación completa sea duradera. Un reintento recupera un entorno incompleto exacto y devuelve la misma versión. Los archivos de catálogo y reglas publicados son copias de bytes exclusivas sin alias de etapa retenidos. Las entradas con enlaces simbólicos, alias de enlaces duros, archivos laterales inesperados y contenido existente conflictivo fallan de forma segura.

Antes de construir, el arranque descubre un entorno READY completamente verificado por su identidad de entrada versionada, por lo que los reintentos normales con la misma entrada no crean una nueva etapa. Las etapas fallidas son inertes y pueden permanecer para inspección manual; el arranque nunca elimina recursivamente contenido de etapa que ya no puede demostrar que posee.

El directorio de datos impreso sigue siendo la raíz de instalación mutable, donde los registros MCP se escriben bajo records/. Las rutas del catálogo y las reglas impresas apuntan a la versión lista atestiguada. Usa los tres valores juntos; los directorios sin un marcador READY válido son estado de arranque incompleto y nunca se devuelven.

Variable de entorno

Propósito

Forma de salida del arranque

COMMANDER_WORKSHOP_DATA_DIR

Raíz de ejecución mutable para registros MCP con direccionamiento de contenido

<install-root>

COMMANDER_WORKSHOP_CATALOG_CURRENT

Puntero del catálogo current.json

<ready-environment>/catalog/current.json

COMMANDER_WORKSHOP_RULESET

JSON de reglas

<ready-environment>/rules/current.json

COMMANDER_WORKSHOP_IMPORT_ROOTS

Raíces de importación local permitidas, separadas por el separador de rutas del SO

sin importaciones de archivos

CARDTRADER_API_TOKEN

Autenticación opcional de solo lectura de CardTrader

no establecido

Después del arranque, establece COMMANDER_WORKSHOP_IMPORT_ROOTS en uno o más directorios absolutos existentes y usa los valores impresos para las otras variables. Una fuente crítica faltante, desactualizada o inválida falla de forma segura. Consulta la guía de arquitectura para el flujo de datos.

Configuración de Claude, Codex y stdio genérico

Para Claude Desktop u otro host que use la forma JSON común, copia examples/mcp-config.json y reemplaza sus rutas de marcador de posición absolutas.

Codex puede usar el mismo ejecutable desde config.toml:

[mcp_servers.commander_workshop]
command = "/absolute/path/to/commander-workshop-mcp/.venv/bin/commander-workshop-mcp"
args = []

[mcp_servers.commander_workshop.env]
COMMANDER_WORKSHOP_DATA_DIR = "/absolute/install-root"
COMMANDER_WORKSHOP_CATALOG_CURRENT = "/absolute/install-root/environments/<printed-sha256>/catalog/current.json"
COMMANDER_WORKSHOP_RULESET = "/absolute/install-root/environments/<printed-sha256>/rules/current.json"
COMMANDER_WORKSHOP_IMPORT_ROOTS = "/absolute/path/to/imports"

Cualquier cliente MCP v2 puede lanzar ese ejecutable absoluto del entorno virtual como un subproceso stdio local con esas variables de entorno. No hay servicio HTTP ni configuración de cuenta en v1. Una instalación con pipx también es viable: usa la ruta absoluta devuelta por pipx environment --value PIPX_BIN_DIR unida con commander-workshop-mcp.

Ejemplo completo: creación sin restricciones

  1. Usa search_cards para inspeccionar el catálogo fijo y load_deck para cada mazo candidato completo producido durante la creación.

  2. Llama a plan_deck con operación build, grupo de cartas all_legal, las dimensiones deseadas de bracket/tema/proxy, y de una a ocho presentaciones de candidatos completos. Lee el recurso commander://plans/... devuelto.

  3. Opcionalmente carga una colección, llama a resolve_availability para el plan ganador, luego llama a create_fulfillment_plan. La disponibilidad sigue siendo hipotética; el cumplimiento asigna una copia solo dentro de ese resultado inmutable.

Este flujo no está restringido por el inventario durante la creación, pero aún puede mostrar lo que se tiene y lo que falta antes de que el usuario decida actuar. La plantilla de solicitud plan_deck completa está validada por esquema mediante el conjunto de aceptación.

Ejemplo completo: construcción solo con propiedad

  1. Exporta la colección física como CSV de ManaBox o un CSV con mapeos de columnas explícitos, luego llama a load_collection_snapshot en modo estricto.

  2. Usa search_library para localizar cartas candidatas por nombre, impresión, carpeta o asignación de mazo ensamblado.

  3. Llama a plan_deck con grupo de cartas owned_only y el ID de la instantánea de colección. Un candidato con una carta no básica no poseída falla la restricción dura.

  4. Lee los recursos del plan y disponibilidad para ver extracciones de carpetas y conflictos. Una copia ya asignada a un mazo se informa, no se trata silenciosamente como libre.

Usa la plantilla de solicitud solo-propiedad completa después de reemplazar sus IDs de mazo y colección con resultados de herramientas anteriores.

Ejemplo completo: mejora de preconstruido Bracket 3 de 50 USD/EUR

  1. Exporta o pega el preconstruido y llama a load_deck; sigue siendo intención de mazo, no una reclamación de propiedad.

  2. Carga candidatos mejorados completos y llama a plan_deck con operación upgrade, el preconstruido como starting_deck_id, Bracket 3, y la semántica preestablecida del escenario precon-upgrade-50-usd o precon-upgrade-50-eur.

  3. Inspecciona las adiciones/cortes exactos, evidencia de bracket fechada, Game Changers, hechos temáticos y el límite de adquisición garantizado en moneda nativa. La evidencia de precio requerida faltante no puede pasar el límite como cero.

  4. Opcionalmente resuelve el inventario, elige extracciones/intercambios/sustitutos/proxies con create_fulfillment_plan, luego llama a price_purchases para las líneas de compra restantes. El precio es informativo y nunca realiza un pedido.

La plantilla de solicitud de 50 USD contiene el escenario completo, evidencia del candidato, definiciones de puntuación, política de bracket y campo de mazo inicial. Cambia tanto la moneda como la política total para el preajuste en EUR.

Importaciones compatibles

  • CSV de colección de ManaBox, separando carpetas físicas y mazos registrados de listas de deseos u otras listas no propietarias.

  • CSV de colección genérico con un mapeo explícito para cantidad e identidad exacta de la carta, más campos opcionales de impresión y ubicación.

  • Texto de mazo estilo Arena y común de cantidad/nombre/colección/número de coleccionista.

  • Texto de mazo exportado por el usuario desde Moxfield, Archidekt, Deckbox, Deckstats, TopDecked y hosts similares cuando coincide con el dialecto de texto compatible.

Pega o selecciona una exportación que estés autorizado a usar. V1 no extrae páginas de cuentas, reutiliza cookies del navegador ni llama a endpoints no documentados de hosts de mazos. Las URL directas alojadas devuelven unsupported_source; exporta el mazo e importa su texto.

Herramientas

La superficie pública son exactamente once herramientas:

Herramienta

Propósito

search_cards

Buscar en el catálogo local verificado con filtros acotados y paginación.

load_collection_snapshot

Normalizar una instantánea de colección local estricta o explícitamente parcial.

load_deck

Normalizar texto de mazo sin inferir propiedad.

search_library

Buscar copias físicas, ubicaciones, impresiones y asignaciones de mazos.

check_deck

Verificar construcción exacta, legalidad, Rule Zero y hechos del escenario.

analyze_deck

Informar métricas estructurales, roles, paquetes, evidencia e incertidumbre.

plan_deck

Seleccionar un candidato completo mejor encontrado bajo un escenario compuesto.

compare_decks

Comparar cambios exactos y evidencia sin una puntuación de poder agregada.

resolve_availability

Encontrar copias exactas, conflictos, alternativas, proxies y brechas sin reservar.

price_purchases

Crear una instantánea de precio de solo lectura fechada para compras no resueltas.

create_fulfillment_plan

Elegir extracciones, intercambios de mazos, sustitutos, proxies y compras.

Cada herramienta devuelve un sobre versionado con un ID de resultado estable, estado, resumen conciso, problemas, sellos de origen y generalmente un URI de recurso.

Recursos

commander://cards/{oracle_id}
commander://searches/{result_id}
commander://collections/{snapshot_id}
commander://decks/{deck_id}
commander://plans/{plan_id}
commander://availability/{resolution_id}
commander://prices/{snapshot_id}
commander://fulfillment/{plan_id}
commander://rules/current
commander://presets

Los registros son inmutables y están direccionados por contenido. Las colecciones y búsquedas amplias están acotadas y paginadas; los resúmenes de herramientas evitan repetir los contenidos de la colección.

Dimensiones del escenario

Un escenario de planificación compone estas elecciones independientes:

  • operación: build, upgrade o analyze;

  • bracket: del 1 al 5, con evidencia de turno fechada y Game Changer;

  • grupo de cartas: all_legal, prefer_owned o owned_only;

  • presupuesto: total en moneda nativa y límite opcional por carta, incluyendo preajustes de mejora de preconstruido de 50 USD/EUR;

  • política de proxies: ninguna, poseído-una-vez o ilimitado donde el grupo de juego lo permita;

  • política temática: contrato estricto, preferencia flexible u orientado a fuerza;

  • mazos ensamblados protegidos, conjunto de reglas fijo y semilla determinista.

El ajuste de categoría y el poder estratégico no se colapsan en una sola puntuación. Las reglas oficiales de Commander siguen siendo autoritativas, y las anulaciones de la Regla Cero deben ser explícitas.

Semántica de precios

price_purchases separa el subtotal de artículos, el subtotal del proveedor, el envío y el total estimado de llegada. Los artículos o envíos desconocidos permanecen como null, nunca cero. Un presupuesto garantizado solo puede aprobarse cuando cada compra requerida tiene evidencia conocida elegible bajo la política seleccionada.

Los valores del catálogo de Scryfall son observaciones indicativas de PriceEstimate, no cotizaciones de pago. Los listados de CardTrader son observaciones de solo lectura de PurchaseQuote. Las estimaciones de planificación utilizan una ventana de frescura declarada de como máximo 24 horas; CardTrader puede usar una vida útil de listado más corta. Las observaciones parciales y obsoletas conllevan problemas explícitos de unknown_price, autenticación, interrupción o límite de tasa.

Limitaciones del proveedor

  • Las estimaciones de Scryfall provienen del catálogo local verificado, pueden carecer de moneda, acabado, condición, idioma, cantidad o envío, y no son comprables.

  • CardTrader es opcional, requiere CARDTRADER_API_TOKEN, utiliza solo endpoints GET fijos documentados, no sigue redirecciones y no optimiza una cesta perfecta de múltiples vendedores.

  • Cardmarket y TCGplayer no están habilitados por defecto; las restricciones de acceso y los términos del proveedor deben ser respetados por cualquier adaptador futuro.

  • Ningún proveedor puede cambiar la legalidad del mazo, la propiedad de la colección, la política de proxies o el inventario reservado. Ningún proveedor expone operaciones de carrito o compra.

Las pruebas normales y la CI no realizan solicitudes en vivo a mercados o anfitriones de mazos.

Desarrollo

python -m pip install -e '.[test]'
python scripts/check_public_tree.py
ruff check src tests scripts
pytest -q
python -m build

El escáner de privacidad inspecciona el árbol rastreado en busca de rutas privadas, credenciales, bases de datos, exportaciones de datos inseguras, enlaces simbólicos y fixtures no documentados o de gran tamaño. Todos los datos de prueba son sintéticos y deterministas.

Arquitectura

Consulte docs/architecture.md para conocer los límites de los componentes, el almacenamiento inmutable, los límites de confianza, el flujo de planificación/ejecución y los puntos de extensión.

Reporte de seguridad

Siga SECURITY.md. Use un aviso de seguridad privado y una reproducción sintética mínima; nunca adjunte una exportación de colección, inventario de carpeta, token u otros datos personales.

Atribución

Los nombres de cartas, el texto de reglas y los metadatos del catálogo pueden derivarse de Scryfall, cuyos datos y requisitos de atribución se aplican. Las reglas de Magic: The Gathering y la política de categorías de Commander son publicadas por Wizards of the Coast. Los nombres de los proveedores y los datos del mercado siguen siendo propiedad de sus respectivos dueños.

No afiliación

Commander Workshop MCP es un software de fans no oficial. No está afiliado, respaldado, patrocinado ni aprobado por Wizards of the Coast, Scryfall, CardTrader ni ningún otro anfitrión de mazos o mercado. Magic: The Gathering, Commander y las marcas relacionadas pertenecen a Wizards of the Coast y sus respectivos propietarios.

Commander Workshop MCP es contenido de fans no oficial permitido bajo la Política de Contenido de Fans. No aprobado/respaldado por Wizards. Partes de los materiales utilizados son propiedad de Wizards of the Coast. ©Wizards of the Coast LLC.

Licencia

El software se publica bajo la Licencia MIT. Los datos de cartas, reglas y mercados de terceros siguen sujetos a sus propios términos y licencias.

Available Tools

11 tools
analyze_deckC

Store evidence-backed structural metrics without a scalar power score.

ParametersJSON Schema
NameRequiredDescriptionDefault
requestYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
issuesNo
statusYes
summaryYes
result_idYes
resource_uriYes
source_stampsNo
schema_versionNo

TDQS

C2.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must disclose behavioral traits like whether this tool is read-only, destructive, has side effects, requires authorization, or has rate limits. The description only says it stores structural metrics, which implies a write operation, but it does not explain persistence, idempotency, or what happens to existing data. This is insufficient for a tool that accepts a complex request with nested objects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is very brief (one short sentence). While it is efficient, it omits critical information that could be added without much more text. It earns a 4 for being concise, not verbose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite having an output schema and a single parameter, the tool is conceptually complex (involves scenarios, win packages, score definitions) and has many sibling tools. The description does not explain the return format, how the analysis is performed, what constitutes 'evidence-backed metrics', or how the output relates to the input. The tool is under-described for its complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, meaning the description must add meaning to the parameters, but it does not. The input schema defines a single 'request' parameter containing multiple nested objects (ScenarioInput, WinPackageInput, ScoreDefinitionInput, etc.), yet the description offers no explanation of how these fields relate to the analysis or what values they accept. For a complex tool with one parameter that is a nested object, this is a significant gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description includes a verb (Store) and a resource (structural metrics, no scalar power score), which suggests the tool persists or records analysis results. However, the meaning of 'evidence-backed structural metrics' and 'without a scalar power score' is vague and does not clearly distinguish this from sibling tools like 'check_deck' or 'plan_deck'. The score is 3 because it indicates what the tool does but lacks specificity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines1/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool versus alternatives such as 'check_deck', 'plan_deck', or 'compare_decks'. The description does not explain prerequisites, expected input context, or conditions under which this tool is appropriate. This is a critical gap given the complex input schema with nested objects.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

check_deckC

Check exact construction legality without inferring bracket fit.

ParametersJSON Schema
NameRequiredDescriptionDefault
requestYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
issuesNo
statusYes
summaryYes
result_idYes
resource_uriYes
source_stampsNo
schema_versionNo

TDQS

C2.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description bears full responsibility for disclosing behavioral traits. It states 'without inferring bracket fit' but fails to explain whether the tool is read-only, what permissions it requires, what side effects exist, or the nature of its return value. For a legality-checking tool, this is insufficient.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence that wastes no words. It efficiently communicates the purpose without fluff. However, it is perhaps too concise—adding a brief sentence about input or output could improve it without sacrificing conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity of the input schema (nested objects with many properties) and the presence of an output schema, the description is too sparse. It does not explain what the output represents (pass/fail, detailed violations), what 'bracket fit' means in context, or note any prerequisites like authentication or specific game format. The tool is moderately complex but the description covers almost none of the needed context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 0% description coverage for parameters, and the tool description adds no information whatsoever about the 'request' object or its nested properties. The agent receives no guidance on how to construct the required input (e.g., deck_id, scenario), making parameter understanding entirely reliant on the schema structure alone.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses the specific verb 'Check' and identifies the resource as 'deck construction legality', clearly stating the tool's core function. It further distinguishes itself by noting 'without inferring bracket fit', which sets it apart from potential sibling tools like analyze_deck or plan_deck that might involve inference. This makes the purpose unambiguous and differentiated.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no explicit guidance on when to use this tool versus alternatives. The description hints at a distinction ('without inferring bracket fit') but does not specify situations where this tool is preferred over analyze_deck, plan_deck, or others. No alternatives are named, nor are when-not scenarios provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

compare_decksB

Compare two to eight raw decks or plan winners without scalar scoring.

ParametersJSON Schema
NameRequiredDescriptionDefault
requestYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
issuesNo
statusYes
summaryYes
result_idYes
resource_uriYes
source_stampsNo
schema_versionNo

TDQS

B3.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses a key behavioral trait: it does not produce a scalar score. Since no annotations are provided, the description carries the full burden of behavioral transparency. It also hints at a comparison output (likely showing differences or side-by-side). However, it does not explain what the output format looks like, whether it's read-only or has side effects, or how it handles invalid or missing IDs.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence that packs key information: action, item count range, items compared, and what is NOT done (no scalar scoring). It is front-loaded and efficient. However, given the complexity of the tool and the 0% schema coverage, a slightly longer description might add necessary clarity without being verbose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has 1 parameter with 0% schema coverage, no annotations, and an output schema exists (but its content is not shown). The description provides the count constraint and item type, but fails to explain what the output contains (e.g., a comparison table, list of differences), how conflicts are resolved (e.g., if IDs are invalid), or whether the tool is read-only. Given the complexity of comparing multiple decks, the description is somewhat incomplete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There is a single parameter 'deck_or_plan_ids' with a type of array of strings. Schema description coverage is 0%, so the description must compensate. The description says 'compare two to eight raw decks or plan winners', which adds the constraint of min/max count (2-8) and the types of strings ('deck_or_plan_ids' → decks or plan winners). However, it does not specify the format of each ID (e.g., should they be full IDs or partial?), whether the order matters, or how mixed types (e.g., both deck and plan IDs) are handled.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses specific verbs ('compare', 'without scalar scoring') and names the resource ('raw decks or plan winners'). It clearly states the tool compares decks, not scalar scores, and implies a parallel/cross comparison. However, 'plan winners' is a domain term that may need more explanation, and 'raw decks' could be clarified to avoid confusion with 'check_deck' or 'analyze_deck'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description states a use case (compare decks without scalar scoring) and implies it's an alternative to scoring-based evaluation. However, it does not explicitly say when NOT to use this tool (e.g., when you need a numeric score, use 'check_deck' or 'analyze_deck') or mention any prerequisites (e.g., deck/plan IDs must exist). The sibling tools suggest possible alternatives, but no guidance is provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_fulfillment_planB

Allocate each physical copy once inside an immutable plan result.

ParametersJSON Schema
NameRequiredDescriptionDefault
requestYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
issuesNo
statusYes
summaryYes
result_idYes
resource_uriYes
source_stampsNo
schema_versionNo

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations are missing, so the description carries the full weight. It hints at immutability ('immutable plan result') which implies the plan cannot be modified post-creation, a key behavioral trait. However, it does not disclose whether the action is destructive (overwrites existing allocations), requires authentication/authorization, or has rate limits. A 3 reflects partial disclosure but missing critical behavioral details for a mutation tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, concise sentence of only 8 words, with no redundant phrases. Every word ('allocate', 'physical copy', 'once', 'immutable', 'plan result') serves a purpose. It fits the tool's likely complexity and is front-loaded with the action and key constraint ('immutable').

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has a complex structure (nested object with 3 fields), no annotations, no output schema explanation (though output schema exists, context signals say 'has output schema: true', but description doesn't leverage it), the description is insufficient. It covers the core purpose but omits parameter details, error scenarios, and return values. The completeness is adequate for a simple tool but gaps remain for the nested input schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% (context signals), so the description must compensate entirely. The description does not elaborate on the parameters (resolution_id, mode, exact_target_id). However, because there is only one parameter (request) that is an object with nested fields, and the description is minimal, it cannot adequately explain their semantics. Average baseline is 3, but given the very low coverage, a 4 would require description to fully cover parameters. Here it fails, but schema has no descriptions at all, so 4 is too generous. Actually, since coverage is 0% and description doesn't clarify params, score should be 2.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Allocate each physical copy once inside an immutable plan result' clearly identifies the verb (Allocate) and resource (physical copy within an immutable plan result), distinguishing it from sibling tools like 'search_cards' or 'compare_decks'. It specifies a unique action ('allocate') and context ('immutable plan'), making the purpose unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives like 'resolve_availability' or 'plan_deck'. It does not mention any prerequisites (e.g., a plan must exist), exclusions (e.g., cannot modify after allocation), or conditions (e.g., requires permissions). Context signals show sibling tools share similar domains (planning/resolving), making such guidance critical.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

load_collection_snapshotC

Normalize a supported local collection file into an immutable snapshot.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
formatNoauto
mappingNo
observed_atYes
allow_partialNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
issuesNo
statusYes
summaryYes
result_idYes
resource_uriYes
source_stampsNo
schema_versionNo

TDQS

C2.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. It states the tool 'normalizes' and creates an 'immutable snapshot', implying a read-only transformation, but does not disclose potential side effects (e.g., does it modify the original file? Consume significant memory? Require specific permissions?). The term 'supported' is left undefined.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Extremely concise at 8 words, but overly terse. Lacks contextual sentences that would help the agent understand usage (e.g., supported formats, snapshot benefits). Edge cases like not providing any parameter details make it under-specified rather than efficiently written.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity (5 parameters, output schema exists) and no annotations, the description is incomplete. The output schema exists but the description doesn't hint at what the snapshot contains (e.g., card objects? aggregated data?). Required distinction from 'load_deck' or 'search_library' is missing. Agent would likely misuse the tool without external knowledge.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, meaning the description adds zero meaning beyond parameter names and types. For example, 'mapping' parameter is described only by schema (object mapping strings to strings) with no context on what it maps (e.g., field names? column indexes?). 'allow_partial' defaults to false but the description never explains partiality. The description does not compensate for the low schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Normalize') and resource ('local collection file'), clearly stating the output ('immutable snapshot'). It distinguishes this from siblings like 'load_deck' by emphasizing the 'collection' context.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives (e.g., search_cards, load_deck, analyze_deck). The description does not mention prerequisites (e.g., file must exist locally, supported format) or what 'supported' means.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

load_deckC

Normalize deck text without treating it as evidence of ownership.

ParametersJSON Schema
NameRequiredDescriptionDefault
textYes
labelYes
formatNoarena

Output Schema

ParametersJSON Schema
NameRequiredDescription
issuesNo
statusYes
summaryYes
result_idYes
resource_uriYes
source_stampsNo
schema_versionNo

TDQS

C2.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Since annotations are missing entirely, the description carries the full burden for behavioral disclosure. It states a key behavioral trait: the tool does not treat the deck as evidence of ownership, which implies it is a safe, non-destructive operation. However, it fails to describe side effects, authorization needs, or what happens with invalid input. The output schema exists but the description does not reference return behavior, leaving gaps.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, concise sentence with no extraneous content. It front-loads the core action ('normalize deck text') and adds a key discriminator. While brief, it earns its place by being focused.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has 3 parameters with 0% schema description coverage, an output schema (which could document return values), and a complex sibling set, the description is too sparse. It does not explain the normalization process, input requirements, output structure, or how this differs from similar tools like 'check_deck'. Substantial gaps remain for the agent to select and invoke correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate for documenting parameters. It mentions none of the three parameters ('text', 'label', 'format') explicitly. 'text' and 'label' are required but their purpose is only inferred from the tool's context. The 'format' parameter has a default but no explanation of its role. This is a significant gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Normalize deck text without treating it as evidence of ownership' uses a specific verb ('normalize') and identifies the resource ('deck text'). However, the phrase 'without treating it as evidence of ownership' is ambiguous and does not clearly differentiate this tool from siblings like 'check_deck' or 'analyze_deck'. The lack of clarity on what 'normalize' means reduces the score.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives like 'check_deck' or 'analyze_deck'. The description implies a specific constraint (not treating as evidence) but does not explain what that means for usage. No exclusion criteria or context signals (e.g., prerequisites like deck format constraints) are given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

plan_deckC

Evaluate one to eight complete client-submitted candidates.

ParametersJSON Schema
NameRequiredDescriptionDefault
requestYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
issuesNo
statusYes
summaryYes
result_idYes
resource_uriYes
source_stampsNo
schema_versionNo

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral transparency. It discloses only that candidates must be 'complete' and between 'one to eight', but it does not mention side effects, read-only status, permissions, or what the evaluation returns. This is a minimal disclosure for a complex tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence of eight words, stating the action and key constraints with no redundant or extraneous information. It is highly concise and front-loaded with the main verb.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the extremely complex input schema and the presence of an output schema, a one-sentence description is wholly inadequate. It does not explain what a 'candidate' is, what the evaluation entails, or how the tool fits into the overall workflow, making it insufficient for an agent to understand and use the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description adds a meaningful constraint on the 'candidates' parameter by specifying 'one to eight' and requiring completeness, which the schema itself does not enforce. However, it gives no details about the many other fields in the 'request' object, leaving the agent to rely solely on the schema structure and names.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly uses the verb 'Evaluate' with a specific resource ('candidates') and a scope ('one to eight'), making the core action understandable. However, it does not clarify that these are deck candidates or that the tool produces a plan, which would distinguish it from sibling tools like analyze_deck or compare_decks.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It neither explains prerequisites, exclusions, nor mentions any competing tools, leaving the agent without contextual selection cues.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

price_purchasesC

Price unresolved purchases without adding to a cart or buying anything.

ParametersJSON Schema
NameRequiredDescriptionDefault
requestYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
issuesNo
statusYes
summaryYes
result_idYes
resource_uriYes
source_stampsNo
schema_versionNo

TDQS

C2.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must carry the full burden. It only mentions that pricing does not add to cart or buy, but lacks details on authentication, rate limits, side effects, or output format. The presence of an output schema is not leveraged.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence, so it is concise. However, it is too short for the tool's complexity; conciseness should not come at the expense of completeness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complex nested input schema, the lack of annotations, and no output schema documentation, the description is woefully incomplete. The agent would not know how to properly construct the request or interpret results.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the description does not explain any parameters. The agent must guess the meaning of fulfillment_plan_id, provider_id, and the nested policy object with its fields (currency, accepted_finishes, etc.). This is a critical gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'price' and resource 'unresolved purchases', and distinguishes the action from adding to cart or buying. However, 'unresolved purchases' is somewhat vague and could be more specific.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives (e.g., create_fulfillment_plan), prerequisites, or when not to use it. The description is purely functional.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

resolve_availabilityC

Resolve complete decks against physical copies without reserving them.

ParametersJSON Schema
NameRequiredDescriptionDefault
requestYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
issuesNo
statusYes
summaryYes
result_idYes
resource_uriYes
source_stampsNo
schema_versionNo

TDQS

C2.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description bears full responsibility for behavioral disclosure. It only reveals that the tool does not reserve copies. Missing are details on whether it modifies any data, required permissions, side effects (e.g., caching), limitations (e.g., only checks against a specific collection), or rate limits. The single behavioral trait is helpful but insufficient.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single short sentence, which is concise but comes at the expense of necessary detail. It lacks structure such as bullet points or sections. While every word earns its place, the description is underspecified for practical use, earning an average score.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite having an output schema and one parameter (with complex internals), the description fails to explain how the tool is used in practice. It does not address the input's nested structure, the meaning of 'substitutes', or what the output contains. An agent would struggle to form a correct request without additional context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%. The description does not mention any parameters or explain what 'ResolveAvailabilityRequest', 'collection_id', 'substitutes', etc., represent. The complex nested structure with arrays and enums (e.g., 'proxy_policy' likely has valid values) is entirely undocumented in the description. This leaves the AI agent with no guidance beyond raw schema names.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('resolve complete decks against physical copies') and adds a critical constraint ('without reserving them'). It distinguishes this tool from sibling tools like create_fulfillment_plan and price_purchases, which involve reservations or purchases. However, 'resolve' is somewhat abstract and could be more explicit (e.g., 'check availability').

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. For example, it does not indicate whether this tool should be used before creating a fulfillment plan or after loading a deck. No exclusions or context are given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_cardsB

Search the verified local card catalog with bounded pagination.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
queryYes
offsetNo
type_containsNo
color_identityNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
issuesNo
statusYes
summaryYes
result_idYes
resource_uriYes
source_stampsNo
schema_versionNo

TDQS

B3.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It mentions 'bounded pagination' (adding behavioral context) but doesn't disclose if it's read-only, what happens to the returned data, rate limits, or authentication needs. The description adds some value beyond nothing.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence with no wasted words. It could be slightly longer to add param context, but it remains concise and front-loaded with the key action.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 5 parameters, 0% schema coverage, no annotations, and an output schema present, the description is too sparse. It leaves the agent guessing about param semantics, return structure (despite output schema existing), and behavioral boundaries.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It only mentions 'bounded pagination', hinting at limit/offset, but gives no meaning for query, type_contains, color_identity, or how they interact. This is insufficient for 5 parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states it searches a card catalog with bounded pagination, which is a specific verb-resource combination. It distinguishes from sibling tools like search_library by mentioning 'verified local card catalog', though it doesn't explicitly differentiate from all siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for searching cards with pagination but provides no guidance on when to use this tool vs siblings like search_library or load_collection_snapshot. No exclusion or alternative context is given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_libraryC

Search a stored collection without disclosing its contents in the summary.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
queryYes
offsetNo
snapshot_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
issuesNo
statusYes
summaryYes
result_idYes
resource_uriYes
source_stampsNo
schema_versionNo

TDQS

C2.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must convey all behavioral traits. It hints at a privacy feature (not disclosing contents in summary), but omits whether this is a read-only operation, what other side effects exist, or any required permissions. The agent is left to infer safety and behavior from the name alone.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence, which is concise, but it is under-informative. It earns its place by adding the disclosure constraint, yet it omits crucial details that could be added without significant bloat. Balance between brevity and completeness is off.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has 4 parameters, 2 required, and an output schema present, the description is incomplete. It fails to cover usage context, parameter roles, or differentiation from siblings. The output schema may define return structure, but the description does not help the agent understand when or how to invoke this tool effectively.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description should explain parameters. It does not. 'snapshot_id' and 'query' are required but their meaning is entirely left to the schema title fields, which provide no context. The description adds no parameter-specific information.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's action: 'Search a stored collection'. It adds a distinguishing behavioral note about not disclosing contents in the summary. However, 'stored collection' is somewhat vague and doesn't explicitly contrast with sibling tools like 'search_cards' or 'load_collection_snapshot'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus its siblings. The description does not mention scenarios, prerequisites, or alternatives. An agent has no context to decide between 'search_library' and 'search_cards' or other search/load operations.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 11 tool updatesv0.1.0
    • First observedanalyze_deck
    • First observedcheck_deck
    • First observedcompare_decks
    • First observedcreate_fulfillment_plan
    • First observedload_collection_snapshot
    • First observedload_deck
    • First observedplan_deck
    • First observedprice_purchases
    • First observedresolve_availability
    • First observedsearch_cards
    • First observedsearch_library

TDQS

B3.3/5.0

Scored across 11 tools

Disambiguation5/5

Each tool targets a distinct operation: searching card catalogs vs collections, loading different file types, checking legality vs analyzing metrics vs evaluating candidates, comparing, resolving availability, creating fulfillment plans, and pricing. No two tools appear to overlap in purpose.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern in snake_case (e.g., search_cards, load_deck, check_deck). The verbs are varied but clear, and the nouns accurately describe the target resource. The pattern is uniform across all 11 tools.

Tool Count5/5

With 11 tools, the server covers the essential workflows for a Commander deck workshop: searching, loading, checking, analyzing, planning, comparing, fulfillment, and pricing. The count feels well-scoped without being overwhelming or insufficient.

Completeness5/5

The tool set covers the full lifecycle from card and collection intake through deck validation, comparison, availability resolution, and fulfillment. There is no obvious missing operation; all necessary steps for the intended domain are present.

Maintenance

ActivitySlowing
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    A comprehensive Model Context Protocol server that provides AI assistants with rich Magic: The Gathering information, including card data, comprehensive rules, EDHREC recommendations, combo interactions, and intelligent Commander deck generation.
    88 PyPI
    1
    MIT
  • F
    license
    Not graded
    quality
    D
    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
  • F
    license
    Not graded
    quality
    A
    maintenance
    Provides Magic: The Gathering card, deck, provider, and statistical evidence tools for LLMs to make informed deckbuilding decisions.
    -