Commander Workshop MCP
Commander Workshop MCP
Commander Workshop은 로컬 우선 MCP 서버로, Magic: The Gathering Commander 덱을 구축, 확인, 비교, 완성하기 위한 도구입니다. 고정된 규칙과 카드 데이터를 명시적으로 가져온 컬렉션과 결합하며, 덱 의도를 소유권과 분리하고, 완전한 계획을 뽑기, 교체, 대체, 프록시 또는 구매로 전환합니다.
이 서버는 제약 없는 브루잉, 인벤토리 우선 구성, Bracket 3 계획, 고정 예산 프리콘 업그레이드에 유용합니다. 제한된 완전 후보를 평가하며, 보편적인 파워 점수나 수학적으로 완벽한 덱을 주장하지 않고 이 제약 조건에서 찾은 최선을 제시합니다.
기능
필요 사항 | Commander Workshop이 제공하는 것 |
브루 또는 업그레이드 | 구성 가능한 제약 조건 하에 완전하고 합법성 확인된 계획 |
덱 이해하기 | 마나, 커브, 역할, 패키지, 테마 증거 및 불확실성 |
보유 카드 사용하기 | ManaBox 및 매핑된 CSV 가져오기 (바인더/덱 위치 포함) |
계획을 정직하게 유지 | 덱리스트는 절대 소유권을 암시하지 않음; 조립된 덱 사본은 보고됨 |
누락된 카드 찾기 | 비예약 가용성 및 실행 가능한 완성 계획 |
예산 존중하기 | 기본 USD/EUR 제약 조건 및 50단위 Bracket 3 업그레이드 프리셋 |
가격 확인 | 로컬 Scryfall 추정 또는 선택적 읽기 전용 CardTrader 견적 |
에이전트와 통합 | stdio를 통한 11개의 MCP 도구와 불변의 페이지 매김 리소스 |
Related MCP server: scryfall-mcp
개인정보 보호 약속
컬렉션, 바인더 이름, 위치, 실제 덱 할당은 기본적으로 로컬에 유지됩니다. 로컬 가져오기는 설정된 루트로 제한됩니다. 서버는 덱을 푸시하거나, 컬렉션을 수정하거나, 카드를 예약하거나, 마켓플레이스 항목을 장바구니에 추가하거나, 구매를 완료하지 않습니다. 선택적 마켓플레이스 가격 책정은 최소 인쇄 요구 사항만 전송하며, 환경 또는 MCP 호스트 비밀 저장소에서 자격 증명을 읽습니다.
설치
Commander Workshop은 Python 3.11 이상이 필요합니다. 저장소 체크아웃에서:
python -m venv .venv
. .venv/bin/activate
python -m pip install -e .V1은 현재 POSIX 파일 시스템만 지원합니다. 불변 게시 경로에는 디렉토리 파일 디스크립터, O_DIRECTORY, O_NOFOLLOW, 하드 링크, fsync 및 조언 잠금이 필요합니다. Windows는 지원되지 않습니다. stdio 서버는 다음에 준비된 검증된 로컬 입력도 기대합니다.
카탈로그 및 규칙 설정
V1은 서버 시작 시 의도적으로 네트워크 요청을 하지 않습니다. Scryfall의 문서화된 대량 데이터 API를 통해 Scryfall Default Cards JSONL gzip을 다운로드하고, docs/rules-bundle.md에 지정된 5개 파일 규칙 번들을 준비한 다음, 테스트된 오프라인 부트스트랩 명령을 실행하세요:
.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실제 다운로드 URL과 검색 시간을 사용하세요. --data-dir은 안전한 설치 루트입니다. 이미 관련 없는 파일이 포함되어 있을 수 있으며, 부트스트랩은 해당 파일을 절대 제거하거나 덮어쓰지 않습니다. 명령은 gzip과 규칙을 확인하고, environments/<sha256> 아래에 콘텐츠 주소 지정 환경을 구축하며, 완전한 표현이 지속된 후에만 원자적 READY 마커를 게시합니다. 재시도는 정확히 불완전한 환경을 복구하고 동일한 버전을 반환합니다. 게시된 카탈로그 및 규칙 파일은 독점 바이트 복사본이며, 유지된 스테이지 별칭이 없습니다. 심볼릭 링크된 입력, 하드 링크 별칭, 예상치 못한 사이드카, 충돌하는 기존 콘텐츠는 실패 시 닫힙니다.
빌드 전에 부트스트랩은 버전이 지정된 입력 ID로 완전히 검증된 READY 환경을 발견하므로, 일반적인 동일 입력 재시도는 새 스테이지를 생성하지 않습니다. 실패한 스테이지는 비활성 상태이며 수동 검사를 위해 남아 있을 수 있습니다. 부트스트랩은 더 이상 소유권을 증명할 수 없는 스테이지 콘텐츠를 재귀적으로 삭제하지 않습니다.
출력된 데이터 디렉토리는 변경 가능한 설치 루트로 유지되며, MCP 레코드는 records/ 아래에 기록됩니다. 출력된 카탈로그 및 규칙 경로는 인증된 준비 버전을 가리킵니다. 세 값을 모두 함께 사용하세요. 유효한 READY 마커가 없는 디렉토리는 불완전한 부트스트랩 상태이며 절대 반환되지 않습니다.
환경 변수 | 목적 | 부트스트랩 출력 형태 |
| 콘텐츠 주소 지정 MCP 레코드를 위한 변경 가능한 런타임 루트 |
|
| 카탈로그 |
|
| 규칙 세트 JSON |
|
| 허용된 로컬 가져오기 루트, OS 경로 구분자로 구분 | 파일 가져오기 없음 |
| 선택적 읽기 전용 CardTrader 인증 | 설정되지 않음 |
부트스트랩 후, COMMANDER_WORKSHOP_IMPORT_ROOTS를 하나 이상의 기존 절대 디렉토리로 설정하고 다른 변수에 대해 출력된 값을 사용하세요. 누락, 오래됨 또는 유효하지 않은 중요 소스는 실패 시 닫힙니다. 데이터 흐름은 아키텍처 가이드를 참조하세요.
Claude, Codex 및 일반 stdio 구성
Claude Desktop 또는 일반 JSON 형태를 사용하는 다른 호스트의 경우 examples/mcp-config.json을 복사하고 절대 자리 표시자 경로를 바꾸세요.
Codex는 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"모든 MCP v2 클라이언트는 해당 절대 가상 환경 실행 파일을 해당 환경 변수와 함께 로컬 stdio 하위 프로세스로 시작할 수 있습니다. v1에는 HTTP 서비스나 계정 설정이 없습니다. pipx 설치도 가능합니다: pipx environment --value PIPX_BIN_DIR이 반환한 절대 경로에 commander-workshop-mcp를 결합하여 사용하세요.
종단 간 예제: 제약 없는 브루잉
search_cards를 사용하여 고정 카탈로그를 검사하고, 브루 중 생성된 각 완전 후보 덱에 대해load_deck을 사용하세요.plan_deck을 호출하고 operationbuild, card poolall_legal, 원하는 bracket/theme/proxy 차원, 그리고 1~8개의 완전 후보 제출을 포함하세요. 반환된commander://plans/...리소스를 읽으세요.선택적으로 컬렉션을 로드하고, 승리한 계획에 대해
resolve_availability를 호출한 다음create_fulfillment_plan을 호출하세요. 가용성은 가상으로 유지됩니다. 완성은 해당 불변 결과 내에서만 사본을 할당합니다.
이 흐름은 브루잉 중 인벤토리에 의해 제약되지 않지만, 사용자가 행동을 결정하기 전에 보유한 것과 누락된 것을 보여줄 수 있습니다. 완전한 plan_deck 요청 템플릿은 수용 테스트 스위트에 의해 스키마 검증됩니다.
종단 간 예제: 소유 카드만으로 구성
실제 컬렉션을 ManaBox CSV 또는 명시적 열 매핑이 있는 CSV로 내보낸 다음, 엄격 모드에서
load_collection_snapshot을 호출하세요.search_library를 사용하여 이름, 인쇄, 바인더 또는 조립된 덱 할당으로 후보 카드를 찾으세요.card pool
owned_only와 컬렉션 스냅샷 ID로plan_deck을 호출하세요. 소유하지 않은 기본 카드가 있는 후보는 하드 제약 조건에 실패합니다.계획 및 가용성 리소스를 읽어 바인더 뽑기와 충돌을 확인하세요. 이미 덱에 할당된 사본은 보고되며, 조용히 무료로 처리되지 않습니다.
이전 도구 결과로 덱 및 컬렉션 ID를 대체한 후 완전한 소유 카드 전용 요청 템플릿을 사용하세요.
종단 간 예제: Bracket 3 USD/EUR 50 프리콘 업그레이드
프리콘을 내보내거나 붙여넣고
load_deck을 호출하세요. 이는 덱 의도로 유지되며 소유권 주장이 아닙니다.완전한 업그레이드 후보를 로드하고
plan_deck을 호출하되, operationupgrade,starting_deck_id로 프리콘, Bracket 3, 그리고precon-upgrade-50-usd또는precon-upgrade-50-eur시나리오 프리셋 의미론 중 하나를 사용하세요.정확한 추가/제거, 날짜가 있는 브래킷 증거, Game Changers, 테마 사실, 보장된 기본 통화 획득 한도를 검사하세요. 필수 가격 증거가 없으면 0으로 상한을 통과할 수 없습니다.
선택적으로 인벤토리를 확인하고,
create_fulfillment_plan으로 뽑기/덱 교체/대체/프록시를 선택한 다음, 남은 구매 라인에 대해price_purchases를 호출하세요. 가격 책정은 정보 제공용이며 주문을 하지 않습니다.
USD 50 요청 템플릿에는 전체 시나리오, 후보 증거, 점수 정의, 브래킷 정책 및 시작 덱 필드가 포함되어 있습니다. EUR 프리셋의 경우 통화와 총 정책을 모두 변경하세요.
지원되는 가져오기
ManaBox 컬렉션 CSV, 실제 바인더와 등록된 덱을 위시리스트 또는 기타 비소유 목록과 분리합니다.
일반 컬렉션 CSV, 수량 및 정확한 카드 ID에 대한 명시적 매핑과 선택적 인쇄 및 위치 필드 포함.
Arena 스타일 및 일반 수량/이름/세트/수집 번호 덱 텍스트.
Moxfield, Archidekt, Deckbox, Deckstats, TopDecked 등에서 사용자 내보내기 덱 텍스트 (지원되는 텍스트 방언과 일치하는 경우).
사용할 권한이 있는 내보내기를 붙여넣거나 선택하세요. V1은 계정 페이지를 스크랩하거나, 브라우저 쿠키를 재사용하거나, 문서화되지 않은 덱 호스트 엔드포인트를 호출하지 않습니다. 직접 호스트 URL은 unsupported_source를 반환합니다. 덱을 내보내고 텍스트를 가져오세요.
도구
공개 표면은 정확히 11개의 도구입니다:
도구 | 목적 |
| 제한된 필터와 페이지 매김으로 검증된 로컬 카탈로그 검색. |
| 엄격 또는 명시적으로 부분적인 로컬 컬렉션 스냅샷 정규화. |
| 소유권을 추론하지 않고 덱 텍스트 정규화. |
| 실제 사본, 위치, 인쇄 및 덱 할당 검색. |
| 정확한 구성, 합법성, Rule Zero 및 시나리오 사실 확인. |
| 구조적 메트릭, 역할, 패키지, 증거 및 불확실성 보고. |
| 구성된 시나리오 하에 완전한 최적 발견 후보 선택. |
| 집계 파워 점수 없이 정확한 변경 사항 및 증거 비교. |
| 예약 없이 정확한 사본, 충돌, 대안, 프록시 및 격차 찾기. |
| 해결되지 않은 구매에 대한 날짜가 있는 읽기 전용 가격 스냅샷 생성. |
| 뽑기, 덱 교체, 대체, 프록시 및 구매 선택. |
모든 도구는 안정적인 결과 ID, 상태, 간결한 요약, 문제, 소스 스탬프 및 일반적으로 리소스 URI가 포함된 버전이 지정된 봉투를 반환합니다.
리소스
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레코드는 불변이며 콘텐츠 주소 지정됩니다. 컬렉션 및 광범위한 검색은 제한되고 페이지가 매겨집니다. 도구 요약은 컬렉션 내용을 반향하지 않습니다.
시나리오 차원
계획 시나리오는 다음 독립적인 선택을 구성합니다:
operation: build, upgrade 또는 analyze;
bracket: 1~5, 날짜가 있는 턴 및 Game Changer 증거 포함;
card pool:
all_legal,prefer_owned또는owned_only;budget: 기본 통화 총액 및 선택적 카드당 상한, USD/EUR 50 프리콘 업그레이드 프리셋 포함;
proxy policy: none, owned-once 또는 unlimited (플레이그룹이 허용하는 경우);
theme policy: strict contract, flexible preference 또는 strength-oriented;
보호된 조립 덱, 고정 규칙 세트 및 결정론적 시드.
브래킷 적합성과 전략적 파워는 하나의 점수로 합쳐지지 않습니다. 공식 커맨더 규칙은 권위를 유지하며, Rule Zero 오버라이드는 명시적이어야 합니다.
가격 의미론
price_purchases는 항목 소계, 공급자 소계, 배송비, 예상 최종 합계를 분리합니다. 알 수 없는 항목이나 배송비는 null로 유지되며, 절대 0이 아닙니다. 보장된 예산은 선택된 정책 하에서 모든 필수 구매가 적격한 알려진 증거를 가질 때만 통과할 수 있습니다.
Scryfall 카탈로그 값은 참고용 PriceEstimate 관찰값이며, 체크아웃 견적이 아닙니다. CardTrader 목록은 읽기 전용 PurchaseQuote 관찰값입니다. 계획 견적은 최대 24시간의 선언된 신선도 기간을 사용합니다. CardTrader는 더 짧은 목록 수명을 사용할 수 있습니다. 부분적이거나 오래된 관찰값은 명시적인 unknown_price, 인증, 중단 또는 속도 제한 문제를 수반합니다.
공급자 제한 사항
Scryfall 견적은 검증된 로컬 카탈로그에서 제공되며, 통화, 마감, 상태, 언어, 수량 또는 배송 정보가 없을 수 있으며 구매할 수 없습니다.
CardTrader는 선택 사항이며,
CARDTRADER_API_TOKEN이 필요하고, 고정된 문서화된 GET 엔드포인트만 사용하며, 리디렉션을 따르지 않고, 완벽한 다중 판매자 바스켓을 최적화하지 않습니다.Cardmarket과 TCGplayer는 기본적으로 활성화되지 않습니다. 향후 어댑터는 접근 제한 및 공급자 약관을 준수해야 합니다.
어떤 공급자도 덱의 적법성, 컬렉션 소유권, 프록시 정책 또는 예비 재고를 변경할 수 없습니다. 어떤 공급자도 장바구니 또는 구매 작업을 노출하지 않습니다.
일반 테스트와 CI는 실시간 마켓플레이스나 덱 호스트 요청을 하지 않습니다.
개발
python -m pip install -e '.[test]'
python scripts/check_public_tree.py
ruff check src tests scripts
pytest -q
python -m build개인정보 스캐너는 추적된 트리에서 개인 경로, 자격 증명, 데이터베이스, 안전하지 않은 데이터 내보내기, 심볼릭 링크, 문서화되지 않았거나 과도한 크기의 픽스처를 검사합니다. 모든 테스트 데이터는 합성적이며 결정론적입니다.
아키텍처
컴포넌트 경계, 불변 저장소, 신뢰 경계, 계획/이행 흐름 및 확장 지점에 대해서는 docs/architecture.md를 참조하세요.
보안 보고
SECURITY.md를 따르세요. 비공개 보안 권고와 최소한의 합성 재현을 사용하세요. 컬렉션 내보내기, 바인더 인벤토리, 토큰 또는 기타 개인 데이터를 절대 첨부하지 마세요.
저작자 표시
카드 이름, 규칙 텍스트 및 카탈로그 메타데이터는 Scryfall에서 파생될 수 있으며, 해당 데이터 및 저작자 표시 요구 사항이 적용됩니다. Magic: The Gathering 규칙 및 Commander 브래킷 정책은 Wizards of the Coast에서 발행합니다. 공급자 이름 및 마켓플레이스 데이터는 해당 소유자의 재산입니다.
비제휴
Commander Workshop MCP는 비공식 팬 소프트웨어입니다. Wizards of the Coast, Scryfall, CardTrader 또는 기타 덱 호스트나 마켓플레이스와 제휴, 보증, 후원 또는 승인을 받지 않았습니다. Magic: The Gathering, Commander 및 관련 상표는 Wizards of the Coast 및 해당 소유자의 자산입니다.
Commander Workshop MCP는 팬 콘텐츠 정책에 따라 허용된 비공식 팬 콘텐츠입니다. Wizards의 승인/보증을 받지 않았습니다. 사용된 자료의 일부는 Wizards of the Coast의 재산입니다. ©Wizards of the Coast LLC.
라이선스
이 소프트웨어는 MIT 라이선스 하에 배포됩니다. 타사 카드, 규칙 및 마켓플레이스 데이터는 자체 약관 및 라이선스의 적용을 받습니다.
Available Tools
11 toolsanalyze_deckC
Store evidence-backed structural metrics without a scalar power score.
| Name | Required | Description | Default |
|---|---|---|---|
| request | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| issues | No | |
| status | Yes | |
| summary | Yes | |
| result_id | Yes | |
| resource_uri | Yes | |
| source_stamps | No | |
| schema_version | No |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| request | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| issues | No | |
| status | Yes | |
| summary | Yes | |
| result_id | Yes | |
| resource_uri | Yes | |
| source_stamps | No | |
| schema_version | No |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| request | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| issues | No | |
| status | Yes | |
| summary | Yes | |
| result_id | Yes | |
| resource_uri | Yes | |
| source_stamps | No | |
| schema_version | No |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| request | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| issues | No | |
| status | Yes | |
| summary | Yes | |
| result_id | Yes | |
| resource_uri | Yes | |
| source_stamps | No | |
| schema_version | No |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| format | No | auto | |
| mapping | No | ||
| observed_at | Yes | ||
| allow_partial | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| issues | No | |
| status | Yes | |
| summary | Yes | |
| result_id | Yes | |
| resource_uri | Yes | |
| source_stamps | No | |
| schema_version | No |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | ||
| label | Yes | ||
| format | No | arena |
Output Schema
| Name | Required | Description |
|---|---|---|
| issues | No | |
| status | Yes | |
| summary | Yes | |
| result_id | Yes | |
| resource_uri | Yes | |
| source_stamps | No | |
| schema_version | No |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| request | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| issues | No | |
| status | Yes | |
| summary | Yes | |
| result_id | Yes | |
| resource_uri | Yes | |
| source_stamps | No | |
| schema_version | No |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| request | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| issues | No | |
| status | Yes | |
| summary | Yes | |
| result_id | Yes | |
| resource_uri | Yes | |
| source_stamps | No | |
| schema_version | No |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| request | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| issues | No | |
| status | Yes | |
| summary | Yes | |
| result_id | Yes | |
| resource_uri | Yes | |
| source_stamps | No | |
| schema_version | No |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| query | Yes | ||
| offset | No | ||
| type_contains | No | ||
| color_identity | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| issues | No | |
| status | Yes | |
| summary | Yes | |
| result_id | Yes | |
| resource_uri | Yes | |
| source_stamps | No | |
| schema_version | No |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| query | Yes | ||
| offset | No | ||
| snapshot_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| issues | No | |
| status | Yes | |
| summary | Yes | |
| result_id | Yes | |
| resource_uri | Yes | |
| source_stamps | No | |
| schema_version | No |
TDQS
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.
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.
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.
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.
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.
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.
11 tool updates
v0.1.0- First observed
analyze_deck - First observed
check_deck - First observed
compare_decks - First observed
create_fulfillment_plan - First observed
load_collection_snapshot - First observed
load_deck - First observed
plan_deck - First observed
price_purchases - First observed
resolve_availability - First observed
search_cards - First observed
search_library
TDQS
Scored across 11 tools
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.
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.
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.
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
Related MCP Connectors
Organize and track your Magic: The Gathering collection, decks, prices and imports.
Live TCG card and decklist prices for AI assistants. 22+ games, no account, ready-to-buy links.
MTG market data: search 114K+ cards, price signals, AI analysis. Free tier available.
Commander deck reviews, precon upgrades, budget swaps, bracket guidance and mana bases.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceA 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.98 PyPI1MIT
- FlicenseNot gradedqualityDmaintenanceProvides access to Magic: The Gathering card data via Scryfall API, including search, rulings, sets, and local deck management with multi-owner support.-
- AlicenseAqualityDmaintenanceProvides AI assistants with comprehensive Magic: The Gathering data including card info, combos, draft analytics, Commander metagame, constructed formats, sideboard strategy, deck building, and rules.74MIT
- FlicenseNot gradedqualityAmaintenanceProvides Magic: The Gathering card, deck, provider, and statistical evidence tools for LLMs to make informed deckbuilding decisions.-