Scryfall MCP Server
Scryfall MCP 서버
매직: 더 개더링 검색, 규칙 조회, 가격 확인, 세트 탐색 및 덱 구성 워크플로우를 위한 Scryfall 기반 MCP 서버입니다.
현재 프로젝트는 다음을 지원합니다:
로컬 MCP 클라이언트를 위한 기본 전송 수단으로
stdio지원src/http.ts를 통한 로컬 우선 Streamable HTTP 지원14개의 MCP 도구, 2개의 리소스, 2개의 프롬프트
제공 기능
도구
search_cards: 페이징, 정렬 및 선택적 가격 필터링을 사용하여 Scryfall 카드 검색을 실행합니다.get_card: 이름, 세트/수집 번호 또는 Scryfall ID로 카드 한 장을 가져옵니다.get_card_prices: 선택적 형식 컨텍스트 및 대안과 함께 가격 데이터를 반환합니다.random_card: 선택적 필터를 사용하여 무작위 카드를 가져옵니다.search_sets: 매직 세트를 검색하고 필터링합니다.query_rules: 컨텍스트와 함께 로컬 종합 규칙 파일을 검색합니다.build_scryfall_query: 자연어를 설명 가능한 Scryfall 쿼리로 변환합니다.search_format_staples: 특정 형식의 필수 카드 및 핵심 카드를 찾습니다.search_alternatives: 더 저렴하거나, 업그레이드되었거나, 유사한 카드를 찾습니다.find_synergistic_cards: 카드, 테마 또는 아키타입에 대한 시너지 조각을 찾습니다.batch_card_analysis: 여러 카드의 적법성, 가격, 시너지 또는 구성을 분석합니다.validate_brawl_commander: 브롤(Brawl) 및 스탠다드 브롤 사령관 적법성을 확인합니다.analyze_deck_composition: 덱 리스트의 커브, 색상 및 구조적 문제를 평가합니다.suggest_mana_base: 색상 요구 사항에 따라 대지 수와 마나 수정 패키지를 추천합니다.
리소스
card-database://bulk: 캐시된 Oracle 대량 스냅샷.set-database://all: 캐시된 세트 목록 스냅샷.
프롬프트
analyze_cardbuild_deck
Related MCP server: MTG-MCP
전송 수단
STDIO
Claude Desktop, Codex, MCP Inspector 및 대부분의 로컬 MCP 클라이언트에 권장됩니다.
npm run devnpm startStreamable HTTP
로컬 또는 명시적으로 제어되는 환경을 위한 별도의 진입점으로 제공됩니다.
npm run dev:httpnpm run start:http로컬 MCP 테스트용:
npm run dev:http:local
npm run smoke:http스모크 테스트는 /health를 확인하고, MCP initialize를 수행하며, notifications/initialized를 전송하고, tools/list를 검증합니다. 또한 대표적인 validate_brawl_commander 및 search_cards 도구 호출을 수행하여 로컬 HTTP 엔드포인트가 검색 이상의 기능을 하는지 확인합니다.
현재 HTTP 동작:
기본적으로
127.0.0.1에 바인딩/mcp에서POST|GET|DELETE서비스 제공GET /health서비스 제공HTTP_ALLOWED_ORIGINS가 설정되지 않은 경우 기본적으로 루프백이 아닌Origin헤더 거부
HTTP 진입점은 현재 유용하지만, 여전히 보수적으로 문서화되어 있습니다. 여기서는 공개 호스팅 용도로 제시되지 않습니다.
설정
사전 요구 사항
Node.js 18+
npm
설치
git clone https://github.com/bmurdock/scryfall-mcp.git
cd scryfall-mcp
npm install
cp .env.example .env검증
npm run lint
npm run type-check
npm test빌드
npm run build일반적인 명령어
npm run dev
npm run dev:http
npm start
npm run start:http
npm test
npm run test:watch
npm run test:ui
npm run lint
npm run type-check
npm run inspector구성
표준 값은 .env.example을 참조하십시오. 활발히 사용되는 주요 변수는 다음과 같습니다:
SCRYFALL_USER_AGENTRATE_LIMIT_MSRATE_LIMIT_QUEUE_MAXSCRYFALL_TIMEOUT_MSCACHE_MAX_SIZECACHE_MAX_MEMORY_MBLOG_LEVELNODE_ENVHEALTHCHECK_DEEPHTTP_HOSTHTTP_PORTHTTP_MCP_PATHHTTP_HEALTH_PATHHTTP_ALLOWED_ORIGINS
운영 참고 사항:
Scryfall API 호출은 공유 속도 제한기에 의해 전역적으로 직렬화됩니다. 배치 도구는 여러 로컬 조회를 예약할 수 있지만, 업스트림 Scryfall 요청 완료는 설계상 한 번에 하나씩 이루어집니다.
HTTP 429 응답은 자동으로 재시도되지 않습니다. 서버는 Scryfall의 스로틀 윈도우를 기록하고 다음 요청 시작을 지연시켜 호출자가 재시도 여부를 결정할 수 있도록 합니다.
CACHE_MAX_MEMORY_MB는card-database://bulk를 포함한 대규모 메모리 내 스냅샷을 유지할 수 있는지 여부를 제어합니다. 크기가 초과된 대량 스냅샷은 현재 읽기에 대해 반환될 수 있지만, 메타데이터는 캐시되지 않았음을 보고합니다.덱 리스트 분석은 카드 이름을 정확히 먼저 확인한 다음, 정확히 일치하지 않는 경우 퍼지(fuzzy) 조회를 수행하고 응답에 퍼지 해결 결과를 보고합니다.
덱 규모 도구는 Scryfall이 기본 카드 조회를 제한할 때 부분적인 분석이나 명시적인 재시도 메시지를 반환할 수 있습니다.
로컬 HTTP 시작 예시:
HTTP_HOST=127.0.0.1 HTTP_PORT=3000 npm run start:http도구 호출 예시
build_scryfall_query
{
"natural_query": "blue counterspells under $20 for modern",
"optimize_for": "precision"
}search_cards
{
"query": "c:r t:instant mv=1",
"limit": 10,
"order": "name"
}search_sets
{
"type": "expansion",
"released_after": "2020-01-01"
}find_synergistic_cards
{
"focus_card": "Obeka, Splitter of Seconds",
"synergy_type": "theme",
"format": "commander",
"color_identity": "UBR",
"limit": 12
}커맨더와 같은 워크플로우의 경우, 초점이 해결 가능한 카드가 아닌 테마일 때 color_identity를 전달하십시오. 초점이 카드로 해결되면 도구는 해당 카드의 색상 정체성을 추론하고 요청된 적법성, 아레나 가용성 및 색상 정체성에 따라 최종 결과를 필터링합니다.
analyze_deck_composition
{
"deck_list": "4 Lightning Bolt\n4 Monastery Swiftspear\n20 Mountain",
"format": "modern",
"strategy": "aggro"
}Claude Desktop 통합
빌드된 stdio 진입점을 Claude Desktop 구성에 추가하십시오.
macOS 경로: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows 경로: %APPDATA%/Claude/claude_desktop_config.json
{
"mcpServers": {
"scryfall": {
"command": "node",
"args": ["/absolute/path/to/scryfall-mcp/dist/index.js"]
}
}
}운영 참고 사항
속도 제한은 Scryfall 요청 간 최소 100ms의 기본 간격으로 프로세스 내에서 강제됩니다.
검색 응답, 카드 세부 정보, 가격, 세트 및 대량 스냅샷은 제한된 메모리 내 한도로 캐시됩니다.
대량 카드 리소스는 반복적인 읽기를 저렴하게 유지하기 위해 미리 직렬화된 스냅샷을 저장합니다.
세트 필터링은 잘못된 필터링된 캐시 재사용을 방지하기 위해 하나의 표준 캐시된
/sets데이터셋에서 파생됩니다.상태 확인은
ScryfallMCPServer.healthCheck()및 HTTP/health엔드포인트를 통해 사용할 수 있습니다.MCP 커넥터가 JSON-RPC/SSE 역직렬화 오류를 보고하는 경우, 원시 HTTP 스모크 경로와 비교하십시오:
npm run dev:http:local
npm run smoke:http스모크 명령이 성공하면 커넥터 오류 텍스트와 스모크 출력을 함께 캡처하십시오. 그러면 로컬 엔드포인트 프레이밍과 커넥터별 파싱이 분리됩니다.
문서 맵
현재 진실의 원천(source-of-truth) 문서:
라이선스
MIT
Available Tools
14 toolsanalyze_deck_compositionC
Analyze deck composition, mana curve, card types, and provide balance recommendations
| Name | Required | Description | Default |
|---|---|---|---|
| commander | No | Commander card name (for Commander/Brawl formats) | |
| deck_list | Yes | List of card names in the deck, one per line or comma-separated | |
| format | No | Format to analyze for (affects recommendations) | |
| strategy | No | Deck strategy archetype | unknown |
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 mentions analysis and recommendations but doesn't disclose behavioral traits like whether this is a read-only operation, computational requirements, rate limits, or what the output format looks like. For a tool with 4 parameters and no annotations, this is a significant gap in transparency.
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, efficient sentence that front-loads the core functionality. Every phrase ('analyze deck composition, mana curve, card types, and provide balance recommendations') earns its place by specifying what the tool does without unnecessary elaboration.
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 no annotations, no output schema, and 4 parameters, the description is incomplete. It doesn't explain what the analysis output includes, how recommendations are structured, or any behavioral constraints. For a complex analysis tool with multiple inputs, this leaves significant gaps for an AI agent to understand tool behavior.
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 100%, so the schema already documents all parameters thoroughly. The description adds marginal value by implying that 'format' affects recommendations and 'strategy' relates to archetype, but doesn't provide additional semantics beyond what's in the schema descriptions. Baseline 3 is appropriate when schema does the heavy lifting.
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 analyzes deck composition, mana curve, card types, and provides balance recommendations, which is a specific verb+resource combination. However, it doesn't explicitly distinguish this from sibling tools like 'validate_brawl_commander' or 'suggest_mana_base' that might overlap in deck analysis functions.
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 'batch_card_analysis' or 'search_format_staples'. The description implies usage for deck analysis but doesn't specify prerequisites, exclusions, or comparative contexts with sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
batch_card_analysisC
Analyze multiple cards for legality, prices, synergies, or deck composition
| Name | Required | Description | Default |
|---|---|---|---|
| analysis_type | Yes | Type of analysis to perform | |
| card_list | Yes | List of card names to analyze | |
| currency | No | Currency for price analysis | usd |
| format | No | Format for legality analysis | |
| group_by | No | How to group analysis results | |
| include_suggestions | No | Include improvement suggestions |
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 disclosure. It mentions analysis types but lacks details on permissions, rate limits, response format, or whether it's read-only or mutative. This is inadequate for a tool with 6 parameters and no output schema.
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, efficient sentence that front-loads the core purpose without unnecessary words. Every part contributes directly to understanding the tool's function, making it appropriately sized and well-structured.
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's complexity (6 parameters, no annotations, no output schema), the description is insufficient. It doesn't cover behavioral traits, output expectations, or usage context, leaving significant gaps for an AI agent to invoke it correctly without additional information.
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 100%, so the schema already documents all parameters. The description adds minimal value by listing analysis types (e.g., 'legality, prices') but doesn't provide additional semantics beyond what the schema's enum values and descriptions offer.
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 purpose: analyzing multiple cards for specific aspects (legality, prices, synergies, deck composition). It specifies the verb 'analyze' and resource 'multiple cards,' but doesn't explicitly differentiate from sibling tools like 'analyze_deck_composition' or 'get_card_prices,' which reduces clarity.
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 explicit guidance on when to use this tool versus alternatives is provided. The description lists analysis types but doesn't indicate scenarios for choosing this over siblings like 'analyze_deck_composition' or 'get_card_prices,' leaving usage context implied rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
build_scryfall_queryB
Convert natural language requests into optimized Scryfall search queries with explanations and alternatives
| Name | Required | Description | Default |
|---|---|---|---|
| explain_mapping | No | Whether to include detailed explanation of natural language to Scryfall mapping | |
| format | No | Magic format to restrict search to (optional) | |
| include_alternatives | No | Whether to include alternative query suggestions | |
| max_results | No | Target number of results for optimization | |
| natural_query | Yes | Natural language description of what you want to find (e.g., "red creatures under $5 for aggressive decks", "blue counterspells in modern") | |
| optimize_for | No | Search optimization strategy: precision (fewer, more relevant results), recall (broader search), discovery (interesting cards), budget (cost-effective) | precision |
| price_budget | No | Price constraints for the search | |
| test_query | No | Whether to test the generated query and optimize based on results |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. While it mentions the tool generates 'optimized Scryfall search queries with explanations and alternatives,' it doesn't describe what 'optimized' means operationally, whether it makes external API calls to Scryfall, what rate limits might apply, or what the output format looks like. For a complex 8-parameter tool with no annotation coverage, 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, efficient sentence that clearly states the tool's purpose and key features. Every word earns its place - 'convert,' 'natural language requests,' 'optimized Scryfall search queries,' 'explanations,' and 'alternatives' all contribute essential information without redundancy.
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?
For a complex tool with 8 parameters, no annotations, and no output schema, the description is inadequate. It doesn't explain what the tool actually returns (just that it generates queries 'with explanations and alternatives'), doesn't address behavioral aspects like whether it makes live API calls, and provides no guidance on error conditions or limitations. The 100% schema coverage helps with parameters but doesn't compensate for missing behavioral and output 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 100%, so the schema already documents all 8 parameters thoroughly. The description adds no specific parameter information beyond what's in the schema. The baseline score of 3 is appropriate when the schema does all the parameter documentation work.
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 specific action ('convert natural language requests into optimized Scryfall search queries') and the resource involved (Scryfall queries). It distinguishes from siblings by focusing on query generation rather than direct card searching (like search_cards) or analysis (like analyze_deck_composition). The inclusion of 'with explanations and alternatives' adds valuable differentiation.
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 context (natural language to query conversion) but doesn't explicitly state when to use this tool versus alternatives like search_cards or search_alternatives. It suggests this is for users who want to translate human descriptions into formal queries, but lacks explicit guidance on when this approach is preferred over direct querying.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
find_synergistic_cardsC
Find cards that synergize with a specific card, theme, or archetype
| Name | Required | Description | Default |
|---|---|---|---|
| arena_only | No | Only return cards available in Arena | |
| exclude_colors | No | Colors to exclude from results (e.g., "rb" to exclude red and black) | |
| focus_card | Yes | Card name or theme to build around | |
| format | No | Format legality requirement | |
| include_lands | No | Include synergistic lands | |
| limit | No | Number of synergistic cards to return | |
| max_cmc | No | Maximum mana value | |
| synergy_type | No | Type of synergy to discover |
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 of behavioral disclosure. It states the tool finds synergistic cards but doesn't describe how synergy is determined, what the output format looks like, whether it's a read-only operation, or any limitations like rate limits or permissions. This leaves significant gaps in understanding the tool's behavior for an AI agent.
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, clear sentence that efficiently conveys the core purpose without any wasted words. It is appropriately sized and front-loaded, making it easy for an AI agent to quickly grasp the tool's intent.
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's complexity (8 parameters, no annotations, no output schema), the description is incomplete. It doesn't address behavioral aspects like how synergy is calculated, output format, or usage context. While the schema covers parameters well, the lack of annotations and output schema means the description should do more to guide the agent, but it falls short.
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 100% description coverage, so the schema already documents all parameters thoroughly. The description adds no additional meaning beyond the schema, as it doesn't explain parameter interactions or provide examples. However, with high schema coverage, the baseline score is 3, as the schema compensates for the lack of param info in the description.
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 purpose: 'Find cards that synergize with a specific card, theme, or archetype.' It uses a specific verb ('find') and resource ('cards'), and distinguishes itself from siblings like 'search_cards' or 'search_alternatives' by focusing on synergy. However, it doesn't explicitly differentiate from all siblings, such as 'analyze_deck_composition' or 'suggest_mana_base,' which might also involve synergy in broader contexts.
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 explicit guidance on when to use this tool versus alternatives. It implies usage for synergy discovery but doesn't specify scenarios, prerequisites, or exclusions. For example, it doesn't clarify if this is for deck-building, card evaluation, or other contexts, nor does it mention when to choose 'search_alternatives' or 'analyze_deck_composition' instead.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_cardB
Get detailed information about a specific Magic: The Gathering card by name, set code+number, or Scryfall ID
| Name | Required | Description | Default |
|---|---|---|---|
| face | No | Which face to show for double-faced cards | |
| identifier | Yes | Card name, set code+collector number (e.g., "dom/123"), or Scryfall UUID | |
| include_image | No | Include image URL in response | |
| lang | No | 2-letter language code (default: en) | en |
| set | No | 3-letter set code for disambiguation when using card name |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but only states what the tool does, not how it behaves. It lacks disclosure about response format, error handling, rate limits, authentication needs, or whether it's a read-only operation. For a tool with 5 parameters and no annotation coverage, this is a significant gap.
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, efficient sentence that immediately conveys the core functionality without unnecessary words. It's front-loaded with the primary purpose and includes essential details about identification methods, making every word earn its place.
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?
For a tool with 5 parameters, no annotations, and no output schema, the description is inadequate. It doesn't explain what 'detailed information' includes, how results are structured, error conditions, or behavioral constraints. Given the complexity and lack of structured data, the description should provide more complete operational 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 100%, providing detailed documentation for all 5 parameters. The description adds minimal value beyond the schema by mentioning the three identification methods, which partially maps to the 'identifier' parameter. However, it doesn't explain parameter interactions or provide additional context beyond what's already in the schema.
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 ('Get detailed information') and resource ('a specific Magic: The Gathering card'), specifying three distinct identification methods (name, set code+number, or Scryfall ID). This distinguishes it from siblings like search_cards (which returns multiple results) or get_card_prices (which focuses on pricing data).
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 by stating it retrieves information about 'a specific' card, suggesting it's for single-card lookup rather than batch operations. However, it doesn't explicitly contrast with alternatives like search_cards (for multiple cards) or batch_card_analysis, nor does it mention when not to use it (e.g., for price data).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_card_pricesB
Get current price information for a Magic: The Gathering card by name, set/number, or Scryfall ID
| Name | Required | Description | Default |
|---|---|---|---|
| card_identifier | Yes | Card name, set/number, or Scryfall ID | |
| currency | No | Currency type for prices | usd |
| format_context | No | Show price relevance for specific format | |
| include_alternatives | No | Include budget alternatives and upgrades | |
| include_history | No | Include price trend data (not implemented in Scryfall API) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but only states the basic function without disclosing behavioral traits like rate limits, authentication requirements, error handling, or response format. It mentions 'price information' but doesn't specify what data points are returned or how results are structured.
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, efficient sentence that front-loads the core purpose without unnecessary words. Every element ('Get current price information', 'Magic: The Gathering card', identification methods) earns its place by contributing essential information.
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?
For a price lookup tool with 5 parameters, no annotations, and no output schema, the description is insufficient. It doesn't explain what 'price information' includes (e.g., market price, foil price, vendor prices), nor does it address behavioral aspects like data freshness, limitations, or error cases that would help an agent use it 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 100%, so the schema already documents all parameters thoroughly. The description adds minimal value by mentioning identification methods that map to 'card_identifier', but doesn't provide additional context beyond what's in the schema. Baseline 3 is appropriate when schema does the heavy lifting.
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 specific action ('Get current price information') and resource ('for a Magic: The Gathering card'), with explicit mention of three distinct identification methods (name, set/number, or Scryfall ID). This distinguishes it from siblings like 'get_card' (general card data) or 'search_cards' (search functionality).
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 'search_alternatives' or 'search_format_staples', nor does it mention prerequisites or context for usage. It simply states what the tool does without indicating appropriate scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
query_rulesC
Search Magic: The Gathering comprehensive rules for specific interactions and rule clarifications
| Name | Required | Description | Default |
|---|---|---|---|
| context_lines | No | Lines of context around matches | |
| exact_match | No | Require exact phrase matching | |
| query | Yes | Search term or rules question | |
| section | No | Specific rule section (e.g., "7" for Additional Rules) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but only states it searches for rules. It doesn't disclose behavioral traits like whether it returns full rule text or summaries, how results are ranked, if there are rate limits, or what happens with ambiguous queries.
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, efficient sentence that clearly states the purpose without unnecessary words. It's appropriately sized and front-loaded with the core functionality.
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?
For a search tool with 4 parameters and no output schema or annotations, the description is insufficient. It doesn't explain what the search returns, how results are formatted, or provide context about the comprehensive rules database being searched.
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 schema description coverage is 100%, so all parameters are documented in the schema. The description adds no additional meaning about parameters beyond what the schema provides, maintaining the baseline score.
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 searches Magic: The Gathering comprehensive rules for interactions and clarifications, which is a specific verb+resource combination. However, it doesn't differentiate from sibling tools like 'search_cards' or 'search_sets' which also search but different resources.
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 doesn't mention when this tool is appropriate versus other search tools in the sibling list or what types of rules questions it handles best.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
random_cardB
Get a random Magic: The Gathering card, optionally filtered by format or search criteria
| Name | Required | Description | Default |
|---|---|---|---|
| archetype | No | Deck archetype preference | |
| exclude_reprints | No | Exclude heavily reprinted cards | |
| format | No | Magic format to filter by legality | |
| price_range | No | Price constraints for random selection | |
| query | No | Optional Scryfall search query to filter random selection (e.g., "c:red", "type:creature") | |
| rarity_preference | No | Preferred rarity level | |
| similar_to | No | Find cards similar to this card |
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 the tool 'Get[s] a random... card' with filters, but does not disclose behavioral traits such as rate limits, authentication needs, whether it returns a single card or multiple, error handling, or data sources (e.g., Scryfall). For a tool with no annotations, this leaves significant gaps in understanding its operation.
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, efficient sentence that is front-loaded with the core purpose ('Get a random Magic: The Gathering card') and adds necessary qualification ('optionally filtered by format or search criteria'). There is zero waste, and every word earns its place.
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 (7 parameters, no annotations, no output schema), the description is insufficient. It does not explain what the tool returns (e.g., card details, image, pricing), how randomness is implemented, or any limitations. For a tool with rich input options but no structured output or behavioral annotations, more context is needed to guide effective use.
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 100%, so the schema already documents all 7 parameters thoroughly. The description adds minimal value beyond the schema by mentioning 'filtered by format or search criteria', which loosely maps to 'format' and 'query' parameters but does not provide additional syntax or meaning. Baseline 3 is appropriate as the schema does the heavy lifting.
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 ('Get') and resource ('a random Magic: The Gathering card'), and specifies the optional filtering capabilities ('optionally filtered by format or search criteria'). It distinguishes itself from siblings like 'get_card' (likely for specific cards) and 'search_cards' (likely for broader searches) by focusing on random selection with filters.
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 obtaining random cards with optional filters, but does not explicitly state when to use this tool versus alternatives like 'search_cards' or 'get_card'. It provides some context ('optionally filtered') but lacks explicit guidance on exclusions or comparisons with sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_alternativesB
Find budget alternatives, upgrades, or functionally similar cards
| Name | Required | Description | Default |
|---|---|---|---|
| direction | Yes | Type of alternative to find | |
| format | No | Format legality requirement | |
| limit | No | Number of alternatives to return | |
| max_price | No | Maximum price constraint | |
| min_price | No | Minimum price constraint | |
| preserve_function | No | Maintain similar functionality | |
| target_card | Yes | Card to find alternatives for |
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 of behavioral disclosure. It mentions the tool finds alternatives based on budget, upgrades, or similarity, but does not describe key behaviors like data sources, rate limits, authentication needs, or what happens if no matches are found. For a tool with 7 parameters and no annotations, this is a significant gap.
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, efficient sentence: 'Find budget alternatives, upgrades, or functionally similar cards.' It is front-loaded with the core purpose and contains no wasted words, making it highly concise and well-structured.
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's complexity (7 parameters, no annotations, no output schema), the description is minimally adequate. It states the purpose but lacks behavioral context, usage guidelines, and output details. The schema covers parameters well, but without annotations or output schema, the description should do more to compensate, resulting in a moderate score.
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 100%, so the schema already documents all parameters thoroughly. The description adds no additional meaning beyond what the schema provides, such as explaining how 'preserve_function' interacts with 'direction' or detailing price constraints. Baseline 3 is appropriate when the schema does the heavy lifting.
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 purpose: 'Find budget alternatives, upgrades, or functionally similar cards.' It specifies the verb ('Find') and resource ('cards'), but does not differentiate from sibling tools like 'search_cards' or 'find_synergistic_cards,' which might have overlapping purposes. The description is specific but lacks sibling distinction.
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 does not mention sibling tools or contexts where other tools might be more appropriate, such as 'search_cards' for general searches or 'find_synergistic_cards' for combo-related queries. Usage is implied by the purpose but not explicitly stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_cardsA
Search for Magic: The Gathering cards using Scryfall search syntax. Supports complex queries with operators like color:, type:, set:, etc.
| Name | Required | Description | Default |
|---|---|---|---|
| arena_only | No | Only return cards available in Arena | |
| direction | No | Sort direction | auto |
| format | No | Response format - text for human-readable, json for structured data | text |
| include_extras | No | Include tokens, emblems, and other extras in search results | |
| include_multilingual | No | Include cards in all languages | |
| include_variations | No | Include rare card variants | |
| limit | No | Number of cards to return (1-175) | |
| order | No | Sort order for results | |
| page | No | Page number for pagination (starts at 1) | |
| price_range | No | Price filtering constraints | |
| query | Yes | Scryfall search query using their syntax (e.g., "lightning bolt", "c:red type:instant", "set:dom") | |
| unique | No | Strategy for omitting similar cards | cards |
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 disclosure. While it mentions the search syntax and supports complex queries, it doesn't describe important behavioral aspects like rate limits, authentication requirements, response format details, pagination behavior beyond the 'page' parameter, or error handling. The description is insufficient for a tool with 12 parameters and no annotation coverage.
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 perfectly concise with two sentences that each earn their place. The first sentence establishes the core purpose, and the second adds valuable context about query capabilities. No wasted words or redundancy.
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's complexity (12 parameters, nested objects, no output schema, and no annotations), the description is incomplete. It doesn't explain what the tool returns, how results are structured, error conditions, rate limits, or authentication requirements. For a search tool with this level of complexity and no structured behavioral annotations, the description should provide more complete 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 100%, so the schema already documents all parameters thoroughly. The description adds minimal value beyond the schema by mentioning 'Scryfall search syntax' and 'complex queries with operators like color:, type:, set:, etc.', but doesn't provide additional parameter semantics beyond what's already in the structured schema. Baseline 3 is appropriate when schema does the heavy lifting.
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 purpose with specific verb ('Search for') and resource ('Magic: The Gathering cards'), and distinguishes it from siblings by specifying the search method ('using Scryfall search syntax'). It explicitly mentions what makes this tool unique among the sibling tools.
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 clear context about when to use this tool ('Search for Magic: The Gathering cards using Scryfall search syntax'), but doesn't explicitly mention when not to use it or name specific alternatives. It implies usage for complex queries but doesn't compare with siblings like 'get_card' or 'search_alternatives'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_format_staplesC
Find format staples, meta cards, and role-specific cards for competitive play
| Name | Required | Description | Default |
|---|---|---|---|
| color_identity | No | Color identity filter (e.g., "wr", "grixis", "colorless") | |
| format | Yes | Magic format to analyze | |
| limit | No | Number of results to return | |
| max_price | No | Maximum price in USD | |
| role | No | Card role in deck archetypes | |
| tier | No | Meta tier level | competitive |
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 of behavioral disclosure. It mentions 'find' but doesn't clarify if this is a read-only operation, what the output format looks like, or any limitations (e.g., rate limits, data freshness). For a search tool with 6 parameters and no annotations, this lack of behavioral context is a significant gap.
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, efficient sentence that front-loads the core purpose without unnecessary words. It directly states what the tool does and the context, earning its place with zero waste.
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 (6 parameters, no output schema, no annotations), the description is incomplete. It lacks details on behavioral traits, output format, and usage guidelines. While the schema covers parameters well, the description doesn't compensate for missing annotations or output information, making it inadequate for full agent understanding.
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 100%, so the schema fully documents all 6 parameters with descriptions and enums. The description adds no additional parameter semantics beyond implying a focus on competitive play, which aligns with the 'tier' parameter. Baseline 3 is appropriate as the schema does the heavy lifting.
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 purpose: 'Find format staples, meta cards, and role-specific cards for competitive play.' It specifies the verb 'find' and the resources (staples, meta cards, role-specific cards), and mentions the context (competitive play). However, it doesn't explicitly differentiate from sibling tools like 'search_cards' or 'search_alternatives' beyond the competitive focus.
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 minimal guidance on when to use this tool. It implies usage for competitive play analysis but doesn't specify when to choose it over alternatives like 'search_cards' or 'find_synergistic_cards.' No exclusions or prerequisites are mentioned, leaving the agent with little context for tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_setsC
Search for Magic: The Gathering sets with optional filtering by name, type, and release dates
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Set name or code to search for (partial matches supported) | |
| released_after | No | ISO date string - only show sets released after this date (YYYY-MM-DD) | |
| released_before | No | ISO date string - only show sets released before this date (YYYY-MM-DD) | |
| type | No | Filter by set type. Common types: core (yearly core sets), expansion (rotational sets), masters (reprint sets), commander (preconstructed Commander decks), promo (promotional cards), token (tokens and emblems) |
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 disclosure. It mentions 'search' and 'optional filtering' but doesn't describe what the search returns (e.g., list of sets with details), pagination behavior, rate limits, authentication needs, or error conditions. For a search tool with zero annotation coverage, this leaves significant 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, efficient sentence that front-loads the core purpose ('search for Magic: The Gathering sets') and then specifies the optional filtering. There's no wasted language or redundancy, making it appropriately concise.
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 no annotations and no output schema, the description is incomplete for a search tool. It doesn't explain what the tool returns (e.g., set names, codes, release dates), how results are structured, or any behavioral aspects like pagination or errors. This leaves the agent with insufficient context to use the 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?
The description lists the optional filtering parameters (name, type, release dates), which aligns with the input schema. Since schema description coverage is 100%, the schema already documents all parameters thoroughly. The description adds minimal value beyond what's in the schema, meeting the baseline for high 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 clearly states the verb ('search for') and resource ('Magic: The Gathering sets'), and specifies the optional filtering capabilities. However, it doesn't explicitly differentiate from sibling tools like 'search_cards' or 'search_format_staples' which might also search MTG content, so it doesn't reach the highest 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?
The description mentions optional filtering parameters but provides no guidance on when to use this tool versus alternatives like 'search_cards' or 'search_format_staples'. There's no context about use cases, prerequisites, or comparisons with sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
suggest_mana_baseC
Suggest optimal mana base composition and land recommendations for a deck
| Name | Required | Description | Default |
|---|---|---|---|
| average_cmc | No | Average converted mana cost of non-land cards | |
| budget | No | Budget constraint for land recommendations | moderate |
| color_intensity | No | Color intensity requirements (1-10 scale) | |
| color_requirements | Yes | Color requirements (e.g., "WU", "RBG", "WUBRG") | |
| deck_size | No | Total deck size | |
| format | No | Format to suggest lands for | |
| special_requirements | No | Special mana base requirements | |
| strategy | No | Deck strategy archetype | midrange |
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 of behavioral disclosure. It states the tool 'suggests' recommendations, implying a read-only or advisory function, but doesn't clarify if it's a simulation, calculation, or data lookup. It lacks details on performance, rate limits, authentication needs, or what the output entails (e.g., list of lands, percentages). For a tool with 8 parameters and no annotations, 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, efficient sentence: 'Suggest optimal mana base composition and land recommendations for a deck.' It is front-loaded with the core purpose, has zero redundant words, and appropriately sized for the tool's complexity. Every word earns its place, making it highly concise and well-structured.
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's complexity (8 parameters, nested objects, no output schema, and no annotations), the description is incomplete. It doesn't address behavioral aspects, output format, or usage context. While the schema covers parameters well, the description fails to compensate for the lack of annotations and output schema, leaving gaps in understanding how the tool behaves and what results to expect.
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 100%, meaning all parameters are documented in the input schema. The description adds no specific parameter details beyond implying it uses deck characteristics for suggestions. It doesn't explain how parameters like 'color_intensity' or 'special_requirements' influence the output. Since the schema handles the heavy lifting, the baseline score of 3 is appropriate, as the description provides minimal extra value.
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 purpose: 'suggest optimal mana base composition and land recommendations for a deck.' It specifies the verb ('suggest') and resource ('mana base composition and land recommendations'), making the function evident. However, it doesn't explicitly differentiate from sibling tools like 'analyze_deck_composition' or 'search_format_staples,' which might also relate to deck-building, so it doesn't reach the highest 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?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention any prerequisites, exclusions, or specific contexts for usage. Given the sibling tools include 'analyze_deck_composition' and 'search_format_staples,' which could overlap in deck analysis, the lack of differentiation is a significant gap, leaving the agent to infer usage based on tool names alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
validate_brawl_commanderB
Validate if a card can be a legal commander in Brawl or Standard Brawl formats
| Name | Required | Description | Default |
|---|---|---|---|
| card_identifier | Yes | Card name, set code+collector number, or Scryfall ID to validate | |
| format | Yes | Brawl format to validate for (brawl = Historic Brawl, standardbrawl = Standard Brawl) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but only states what the tool does without disclosing behavioral traits. It doesn't mention error handling, response format, rate limits, or whether this is a read-only operation (though implied by 'validate'). For a tool with no annotations, this leaves significant behavioral 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?
Single sentence that efficiently communicates the core purpose with zero waste. Every word earns its place - 'validate', 'card', 'legal commander', and 'Brawl or Standard Brawl formats' are all essential information.
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?
For a validation tool with no annotations and no output schema, the description is incomplete. It doesn't explain what constitutes a 'legal commander', what the validation criteria are, what the response looks like, or error conditions. The description should provide more context given the lack of structured metadata.
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 100%, so the schema already documents both parameters thoroughly. The description doesn't add any parameter semantics beyond what's in the schema - it doesn't explain validation logic, format differences, or provide examples. Baseline 3 is appropriate when schema does the heavy lifting.
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 specific action ('validate') and resource ('card') with precise context ('legal commander in Brawl or Standard Brawl formats'). It distinguishes from siblings like 'get_card' or 'search_cards' by focusing on format legality validation rather than retrieval or search.
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 when checking commander legality, but doesn't explicitly state when to use this tool versus alternatives like 'query_rules' or 'search_format_staples'. It provides basic context but lacks explicit guidance on prerequisites or comparisons with sibling tools.
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.
14 tool updates
v1.0.0- First observed
analyze_deck_composition - First observed
batch_card_analysis - First observed
build_scryfall_query - First observed
find_synergistic_cards - First observed
get_card - First observed
get_card_prices - First observed
query_rules - First observed
random_card - First observed
search_alternatives - First observed
search_cards - First observed
search_format_staples - First observed
search_sets - First observed
suggest_mana_base - First observed
validate_brawl_commander
TDQS
Scored across 14 tools
Every tool has a clearly distinct purpose with no significant overlap. For example, get_card retrieves a single card, search_cards handles complex queries, and analyze_deck_composition focuses on deck analysis, making misselection unlikely.
All tool names follow a consistent verb_noun pattern using snake_case, such as get_card, search_cards, and analyze_deck_composition. This predictability aids in agent understanding and usage.
With 14 tools, the server is well-scoped for Magic: The Gathering card and deck management. Each tool serves a specific function, from card retrieval to deck analysis, without feeling excessive or insufficient.
The tool surface comprehensively covers the domain, including card search, price checks, deck analysis, rules queries, and format validation. There are no obvious gaps, supporting full agent workflows for MTG-related tasks.
Maintenance
Related MCP Connectors
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…
The Mercado Pago MCP Server implements the Model Context Protocol to provide AI agents and LLMs with access to Mercado Pago's APIs and tools within compatible development environments. It acts as an intermediary that translates Mercado Pago resources into executable functions (tools) that AI applications can invoke to perform actions and automate flows. The server simplifies integration, enables using documentation to implement or improve code, and optimizes operations through natural language interactions without manual implementations.
A Model Context Protocol server for Wix AI tools
Model Context Protocol server for the Apideck Unified API. Connect any MCP-compatible agent framework to 100+ accounting systems, HRIS platforms, file storage providers, and more through one integration. More information https://www.apideck.com/mcp-server
Related MCP Servers
- AlicenseAqualityAmaintenanceMCP server for I Want My MTG that enables conversational search of Magic: The Gathering cards/sets and inventory management via API tools.60390 npm1MIT
- 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.28 PyPI1MIT
- AlicenseNot gradedqualityDmaintenanceMCP server for searching and retrieving Magic: The Gathering card information via the Scryfall API, with support for field presets, multiple output formats, and automatic rate limiting.72,932 npmMIT
- AlicenseNot gradedqualityDmaintenanceMCP server that searches and retrieves Magic: The Gathering card data from the Scryfall API.72,932 npmMIT