MTG Tools — Commander deck review and mana bases
Server Details
Commander deck reviews, precon upgrades, budget swaps, bracket guidance and mana bases.
- Status
- Healthy
- Uptime
- 100.0% over 24 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 9 tools
Most tools have distinct goals, but five deck-review tools (change_deck_bracket, find_replacements, reduce_deck_cost, repair_deck, upgrade_precon) share nearly identical input shapes, safeguards, and output descriptions. An agent must rely heavily on the tool name to choose correctly, and misselection between repair_deck, reduce_deck_cost, and upgrade_precon is plausible.
All tool names use consistent snake_case with a clear verb-object pattern such as import_deck, search_cards, and upgrade_precon. The longer build_mana_base and reduce_deck_cost names still fit the convention.
Nine tools is well within the expected 3–15 range and each tool maps to a recognizable Commander deck workflow. The set is scoped without obvious filler tools.
The surface covers importing, card/commander search, mana-base construction, bracket review, replacement finding, cost reduction, role repair, and precon upgrades. Minor gaps remain: there is no explicit standalone deck validation/legality check or generic deck analysis tool, though repair_deck and import_deck partially cover those needs.
Available Tools
9 toolsbuild_mana_baseBuild a Commander mana baseARead-onlyInspect
Generate 30–42 lands for a Commander within a USD purchase budget, optionally with acceleration. Supply ownedLands to buy only missing copies, lockedLands to keep specific lands, or currentLands with maxChanges for a limited upgrade. The USD budget minimum remains $20; it is a spending cap, not a target. Returns card quantities, reasoning, prices, coverage, warnings, and shopping links. Preview only: no saved build, email, purchase, or cart modification. Shopping imports match by card name; printing and final prices may differ. Always show warnings rather than describing a deficient build as optimal.
| Name | Required | Description | Default |
|---|---|---|---|
| bracket | No | ||
| budgetUsd | No | ||
| landCount | No | ||
| maxChanges | No | Maximum replaced land slots when currentLands is supplied. | |
| ownedLands | No | Land copies already owned; budget and cart charge only missing quantities. | |
| lockedLands | No | Required lands to retain, including quantities. Must be legal and not excluded. | |
| currentLands | No | Existing mana base for a limited upgrade; these copies count as owned. | |
| commanderName | Yes | ||
| excludedCards | No | ||
| includeAcceleration | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond annotations (readOnly, non-destructive), it adds critical behavioral context: 'Preview only: no saved build, email, purchase, or cart modification'; 'USD budget minimum remains $20; it is a spending cap, not a target'; and 'Shopping imports match by card name; printing and final prices may differ.' It also instructs the agent to always show warnings rather than misrepresenting a deficient build.
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 front-loaded with the core purpose and every sentence carries actionable information—budget semantics, mode selection, preview-only scope, price caveat, and warning handling. It is dense but not bloated.
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 10 parameters, no output schema, and preview-only behavior, the description covers the return contents ('card quantities, reasoning, prices, coverage, warnings, and shopping links') and the key behavioral risks. It does not elaborate on bracket or acceleration semantics, but the schema and annotations fill most remaining gaps.
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 only 40%, so the description must compensate. It usefully explains ownedLands, lockedLands, currentLands, and maxChanges, and clarifies budget cap semantics, but it leaves bracket, landCount, includeAcceleration, excludedCards, and commanderName mostly to bare schema types.
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 a precise verb and resource: 'Generate 30–42 lands for a Commander within a USD purchase budget, optionally with acceleration.' It clearly distinguishes the tool from siblings that change brackets, reduce cost, repair decks, search commanders, or upgrade precons.
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?
It names three concrete usage modes: ownedLands to buy only missing copies, lockedLands to keep specific lands, and currentLands with maxChanges for a limited upgrade. It does not explicitly contrast with sibling tools, but the mode-based guidance is strong.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
change_deck_bracketReview a Commander bracket transitionARead-onlyInspect
Review a Commander bracket transition using bracketshift. Input a full quantity-prefixed Commander decklist including the commander, or a public HTTPS Moxfield/Archidekt deck URL. URL imports exclude sideboards and Moxfield companions; provider access can fail, in which case request a plain-text export. replaceCard optionally restricts the review to one specific non-protected card. Budget is USD. Returns proposed cuts/additions, role counts, warnings, estimated cost, individual card links and a TCGplayer cartUrl for recommended cards not marked owned. Owned is a quantity-prefixed list of up to 150 card entries with up to 100 copies per named card; locked/excluded are newline-separated card names. Nothing is purchased or saved publicly. Show all warnings and let the player choose swaps. Bracket analysis is guidance, not certification.
| Name | Required | Description | Default |
|---|---|---|---|
| deck | Yes | Full quantity-prefixed decklist, or a public HTTPS Moxfield/Archidekt deck URL without query parameters. | |
| owned | No | Quantity-prefixed owned cards, up to 150 card entries and 16000 characters. Split larger collections before analysis. | |
| locked | No | ||
| bracket | No | ||
| excluded | No | ||
| budgetUsd | No | ||
| commander | Yes | ||
| maxChanges | No | ||
| replaceCard | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, and the description adds meaningful beyond-schema context: provider access can fail, nothing is purchased or saved publicly, warnings must be shown and the player chooses swaps, and bracket analysis is guidance not certification. This is solid added context, though return-format details are only lightly touched.
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?
Dense but front-loaded: the core action and accepted input forms come first, then constraints, then output expectations. Every sentence carries information, though the paragraph is long and could be broken up for scannability.
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 no output schema, the description carries the return-value burden and does so well (cuts/additions, role counts, warnings, estimated cost, card links, TCGplayer cartUrl). Combined with the safety context, it is complete enough to call correctly, with only minor gaps around 'bracket' and 'maxChanges' semantics.
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 low (22%), so the description does meaningful compensating: it explains deck, commander, budget as USD, replaceCard restriction to one non-protected card, owned entry/copy limits, and locked/excluded as newline-separated names. It still leaves 'bracket' (the 1-5 target) and 'maxChanges' unexplained, so it does not fully close the 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?
States a specific verb+resource ('Review a Commander bracket transition using bracketshift') and distinguishes the operation from the sibling set implicitly. It does not explicitly name any sibling tool to contrast with, so it lands at 4 rather than 5.
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?
Provides concrete input guidance (decklist or HTTPS Moxfield/Archidekt URL, fallback to plain-text export on provider failure) and the replaceCard narrowing behavior. However, there is no explicit when-to-use-this-vs-siblings guidance (e.g. vs find_replacements or reduce_deck_cost), leaving tool selection to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
find_replacementsFind a targeted card replacementARead-onlyInspect
Given a complete Commander decklist or public deck URL, commander, and replaceCard, propose at most one comparable-role replacement. The requested cut must be in the deck and cannot be the commander or protected. Preserve budget, owned, locked, excluded, color identity, legality, theme and bracket safeguards. Can return no safe swap. Heuristics are not functional equivalence. Show tradeoffs, warnings and optional missing-card affiliate purchase summary.
| Name | Required | Description | Default |
|---|---|---|---|
| deck | Yes | Full quantity-prefixed decklist, or a public HTTPS Moxfield/Archidekt deck URL without query parameters. | |
| owned | No | Quantity-prefixed owned cards, up to 150 card entries and 16000 characters. Split larger collections before analysis. | |
| locked | No | ||
| bracket | No | ||
| excluded | No | ||
| budgetUsd | No | ||
| commander | Yes | ||
| maxChanges | No | ||
| replaceCard | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover safety (readOnly, non-destructive, openWorld, non-idempotent), so the description's credit is for adding real context: at most one proposal, possible empty result, heuristics are not functional equivalence, and an affiliate purchase summary is surfaced. These are qualities the annotations do not convey. It doesn't mention latency, rate limits, or what a warning/tradeoff payload looks like.
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?
Inputs are front-loaded in the first sentence and no sentence is purely filler; the affiliate disclosure and heuristic caveat each carry information. The prose is dense and run-on, stacking safeguards into a bare list rather than structured clauses, which slightly hurts scanability.
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 9-parameter, no-output-schema tool, the description covers the core contract, safeguards and null-result case, but leaves maxChanges undefined, gives no sense of how tradeoffs/warnings are returned, and doesn't reconcile the one-replacement promise with the multi-change parameter. Adequate to call correctly in the common case, incomplete at the edges.
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 only 22%, so the description must carry weight; it does partially by naming the guardrail inputs (budget, owned, locked, excluded, bracket) and clarifying that deck accepts a decklist or public HTTPS URL. But it never explains maxChanges, budgetUsd units/default, or bracket values, and 'at most one replacement' sits uneasily beside a maxChanges parameter bounded 1-15 with default 5, leaving the agent unsure how they interact.
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 first sentence states a specific verb and resource: given a decklist/URL, commander and replaceCard, propose at most one comparable-role replacement. That is far more precise than the title and clearly separates it from siblings like upgrade_precon or reduce_deck_cost, which operate on whole decks rather than a targeted single-card swap. It stops short of naming a sibling alternative explicitly.
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?
Prerequisites are clear ('complete Commander decklist or public deck URL', 'requested cut must be in the deck and cannot be the commander or protected'), and 'Can return no safe swap' warns of a null outcome. However, no sibling tool is named as an alternative for deck-wide optimization (e.g. repair_deck, reduce_deck_cost), so the agent must infer when to prefer this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
import_deckImport a public Commander deck URLARead-onlyInspect
Read a public HTTPS Moxfield or Archidekt deck URL without credentials/query parameters. Returns quantity-prefixed main-deck text, tagged commander, card count and warnings. Excludes sideboards and Moxfield companions; no private access or saved server copy. Follow with a deck-review tool to validate names and legality. If Moxfield access is blocked, do not repeat the URL request. Ask for Download > Copy Plain Text, with the commander line marked CMDR.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only, open-world, non-destructive; the description adds substantive context beyond them: no credentials or query parameters, sideboards and Moxfield companions excluded, no private access, and no saved server copy. It also discloses the return shape (quantity-prefixed main-deck text, tagged commander, card count, warnings), which no output schema provides.
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?
Front-loaded with the action and source, followed by scope, exclusions, and recovery. Every sentence carries information, but the density makes it read as a run-on list and the *CMDR* fallback instruction sits awkwardly at the end.
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?
Covers input format, output shape, exclusions, error handling, and the recommended next step — everything an agent needs to call this correctly. The only minor omission is that idempotentHint=false (repeated fetches may see changed decks) goes unmentioned, but nothing critical is missing.
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?
With one parameter at 0% schema coverage, the description carries the burden and does so well: it specifies the URL must be public HTTPS, from Moxfield or Archidekt, and free of query parameters. It does not mention the 500-character limit or URL syntax edge cases, so it falls short of full compensation.
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?
States a specific verb and resource ('Read a public HTTPS Moxfield or Archidekt deck URL') and names the supported sources. It is unmistakable against siblings like build_mana_base or repair_deck, which transform decks rather than ingest them from a URL.
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?
Explicitly routes the agent forward ('Follow with a deck-review tool to validate names and legality') and handles the failure case ('If Moxfield access is blocked, do not repeat the URL request'), including a concrete fallback of asking the user for Download > Copy Plain Text with *CMDR* marking. This is when/when-not guidance with alternatives, not implicit usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
reduce_deck_costFind lower-cost deck replacementsARead-onlyInspect
Find lower-cost deck replacements using budgetswap. Input a full quantity-prefixed Commander decklist including the commander, or a public HTTPS Moxfield/Archidekt deck URL. URL imports exclude sideboards and Moxfield companions; provider access can fail, in which case request a plain-text export. replaceCard optionally restricts the review to one specific non-protected card. Budget is USD. Returns proposed cuts/additions, role counts, warnings, estimated cost, individual card links and a TCGplayer cartUrl for recommended cards not marked owned. Owned is a quantity-prefixed list of up to 150 card entries with up to 100 copies per named card; locked/excluded are newline-separated card names. Nothing is purchased or saved publicly. Show all warnings and let the player choose swaps. Bracket analysis is guidance, not certification.
| Name | Required | Description | Default |
|---|---|---|---|
| deck | Yes | Full quantity-prefixed decklist, or a public HTTPS Moxfield/Archidekt deck URL without query parameters. | |
| owned | No | Quantity-prefixed owned cards, up to 150 card entries and 16000 characters. Split larger collections before analysis. | |
| locked | No | ||
| bracket | No | ||
| excluded | No | ||
| budgetUsd | No | ||
| commander | Yes | ||
| maxChanges | No | ||
| replaceCard | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With annotations already declaring readOnly/openWorld, the description still adds real behavior: URL imports silently exclude sideboards and Moxfield companions, provider access can fail, nothing is purchased or saved publicly, and bracket analysis is 'guidance, not certification'. It also describes return content (cuts/additions, role counts, warnings, cost, TCGplayer cartUrl), which matters since no output schema exists.
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?
Front-loaded with purpose and input rules, but the body is a dense stream of clauses crammed into run-on sentences that mix parameters, failure modes, and output description without structure. Most sentences carry information, yet the packaging hurts scannability.
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 9-parameter tool with 22% schema coverage and no output schema, the description covers inputs, failure handling, return contents, and side-effect guarantees. The remaining gaps are the unexplained bracket and maxChanges parameters, which materially shape the output.
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 coverage is only 22%, but the description compensates for some gaps: replaceCard's limiting semantics, budget in USD, owned's 150-entry/100-copy limits, and that locked/excluded are newline-separated card names. It says nothing about bracket (1-5, default 3) or maxChanges, which remain undocumented in both places.
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?
States a specific verb and resource: 'Find lower-cost deck replacements using budgetswap', with scope clarified (single card via replaceCard, full deck otherwise). It does not differentiate itself from the sibling find_replacements, which sounds like the closest alternative, so an agent must guess between them.
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?
Gives concrete input requirements (full quantity-prefixed list including commander, or public HTTPS Moxfield/Archidekt URL), an explicit recovery path when provider access fails ('request a plain-text export'), and a downstream instruction ('let the player choose swaps'). It never names when to prefer a sibling tool such as find_replacements or upgrade_precon instead.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
repair_deckRepair deck roles and consistencyARead-onlyInspect
Repair deck roles and consistency using deckmender. Input a full quantity-prefixed Commander decklist including the commander, or a public HTTPS Moxfield/Archidekt deck URL. URL imports exclude sideboards and Moxfield companions; provider access can fail, in which case request a plain-text export. replaceCard optionally restricts the review to one specific non-protected card. Budget is USD. Returns proposed cuts/additions, role counts, warnings, estimated cost, individual card links and a TCGplayer cartUrl for recommended cards not marked owned. Owned is a quantity-prefixed list of up to 150 card entries with up to 100 copies per named card; locked/excluded are newline-separated card names. Nothing is purchased or saved publicly. Show all warnings and let the player choose swaps. Bracket analysis is guidance, not certification.
| Name | Required | Description | Default |
|---|---|---|---|
| deck | Yes | Full quantity-prefixed decklist, or a public HTTPS Moxfield/Archidekt deck URL without query parameters. | |
| owned | No | Quantity-prefixed owned cards, up to 150 card entries and 16000 characters. Split larger collections before analysis. | |
| locked | No | ||
| bracket | No | ||
| excluded | No | ||
| budgetUsd | No | ||
| commander | Yes | ||
| maxChanges | No | ||
| replaceCard | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnly/openWorld annotations, it discloses that nothing is purchased or saved publicly, that URL imports exclude sideboards and Moxfield companions, that budget is in USD, and that bracket analysis is guidance rather than certification. It does not explain why a read-only tool is marked non-idempotent (presumably price/stock drift), which is the one behavioral 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?
Front-loads the purpose, then input forms, then outputs, then caveats — a sensible order. Nearly every sentence adds operational detail, though the owned/locked/excluded sentence is dense and slightly reads as schema restatement.
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 no output schema, the description properly enumerates the return payload (proposed swaps, role counts, warnings, estimated cost, card links, cartUrl) and flags external-provider failure modes. Only the maxChanges parameter and the exact bracket semantics are left for the agent to guess.
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?
With only 22% schema coverage, the description carries the parameter burden and does: it defines the deck input forms, the replaceCard restriction (single non-protected card), owned as quantity-prefixed up to 150 entries/100 copies each, and locked/excluded as newline-separated names. maxChanges, bracket range, and the required-vs-embedded nature of commander are left unaddressed.
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?
States a concrete verb and resource — repair deck roles and consistency from a decklist or URL — and enumerates what comes back (cuts/additions, role counts, warnings, cost, cartUrl). It never names the nearest sibling (find_replacements, upgrade_precon, reduce_deck_cost), so the agent must infer boundaries, but the described output profile is distinctive enough to be recognizable.
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?
Gives real usage conditions: accept either a full quantity-prefixed list with commander or a public HTTPS Moxfield/Archidekt URL, and if provider access fails ask for a plain-text export. It also tells the agent to show all warnings and let the player choose swaps. It stops short of explicit 'use X instead of Y' routing against siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_cardsSearch Commander-legal cardsARead-onlyInspect
Search card names or Scryfall syntax. Optional WUBRG color identity and USD per-card price cap. C or blank colors means colorless only; omit colors for any identity. Repeated color letters are canonicalized. Returns up to20 results, Oracle text, prices (null when unknown), source and optional TCGplayer affiliate links. Show disclosure when displaying shopping links. Search is bounded and not an exhaustive recommendation. No purchases.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| query | Yes | ||
| colors | No | ||
| maxPriceUsd | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnly, openWorld, non-idempotent, and non-destructive behavior. The description adds useful non-annotation context: result cap, Oracle text, null prices, affiliate links, disclosure requirements, search boundedness, and 'No purchases.' It does not discuss error behavior or rate limits, but it is substantially more transparent than the annotations 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 dense and front-loaded: purpose first, then optional filters, color semantics, return shape, and behavioral cautions. Every sentence earns its place, with no filler.
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 no output schema, the description does a good job explaining return fields (Oracle text, prices, source, optional affiliate links) and result count. It covers all four parameters semantically and adds important behavioral caveats. Minor gaps remain around sorting, pagination, and error behavior, but nothing critical is missing for a bounded search tool.
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 carries the burden and largely succeeds. It explains query syntax ('Scryfall syntax'), color semantics ('C or blank colors means colorless only; omit colors for any identity'), price-cap meaning, and result count up to 20, which maps to the limit parameter. It does not spell out the limit default or range, but that is 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 states a specific verb and resource: 'Search card names or Scryfall syntax.' That clearly scopes it as a card-search tool, distinct from deck-manipulation siblings like import_deck or repair_deck. It does not explicitly distinguish itself from search_commanders, so it falls short of full sibling 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?
Usage is implied by 'Search card names or Scryfall syntax' and the color/price-cap options, but the description never says when to choose this over search_commanders or find_replacements. The 'bounded and not an exhaustive recommendation' note adds context but not selection guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_commandersSearch Commander cardsARead-onlyIdempotentInspect
Find Commander candidates by name. The existing autocomplete may include non-commander cards; only the primary field is validated as a supported Commander choice. Use the exact commander name for build_mana_base.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnly, idempotent, non-destructive, openWorld), so the bar is lower. The description still adds genuine value by warning that the autocomplete may return non-commander cards and that only the primary field is validated, which tells the agent to distrust secondary results.
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?
Three tight sentences with the core purpose front-loaded and the caveat followed by the downstream hint. The phrase "only the primary field is validated as a supported Commander choice" is slightly convoluted but earns its place as a warning.
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 single-parameter, read-only search with no output schema, the description covers purpose, result-quality caveat, and intended downstream use. It could still note result limits or matching behavior, but nothing essential to a correct call is missing.
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 coverage is 0% for the single query parameter, so the description must carry the weight. It conveys that the query is a name and recommends an exact name, but says nothing about length bounds, fuzzy matching, or how partial names behave — leaving the parameter only partly characterized.
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?
States a specific verb and resource ("Find Commander candidates by name") that an agent can immediately distinguish from the sibling search_cards tool. It doesn't explicitly name search_cards as the alternative, which keeps it short of a 5.
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?
It implies when the tool applies (finding a commander before build_mana_base) and adds the constraint to use the exact commander name for that downstream call. However, it never contrasts this with search_cards or states when not to use it, so usage is only implied rather than spelled out.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
upgrade_preconUpgrade a Commander preconARead-onlyInspect
Upgrade a Commander precon using preconworkshop. Input a full quantity-prefixed Commander decklist including the commander, or a public HTTPS Moxfield/Archidekt deck URL. URL imports exclude sideboards and Moxfield companions; provider access can fail, in which case request a plain-text export. replaceCard optionally restricts the review to one specific non-protected card. Budget is USD. Returns proposed cuts/additions, role counts, warnings, estimated cost, individual card links and a TCGplayer cartUrl for recommended cards not marked owned. Owned is a quantity-prefixed list of up to 150 card entries with up to 100 copies per named card; locked/excluded are newline-separated card names. Nothing is purchased or saved publicly. Show all warnings and let the player choose swaps. Bracket analysis is guidance, not certification.
| Name | Required | Description | Default |
|---|---|---|---|
| deck | Yes | Full quantity-prefixed decklist, or a public HTTPS Moxfield/Archidekt deck URL without query parameters. | |
| owned | No | Quantity-prefixed owned cards, up to 150 card entries and 16000 characters. Split larger collections before analysis. | |
| locked | No | ||
| bracket | No | ||
| excluded | No | ||
| budgetUsd | No | ||
| commander | Yes | ||
| maxChanges | No | ||
| replaceCard | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (readOnlyHint/destructiveHint), the description adds critical behavioral context: it guarantees that 'Nothing is purchased or saved publicly' (security/persistence) and details the limitations of the analysis ('Bracket analysis is guidance, not certification').
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 lengthy due to the tool's complexity, but it is perfectly structured. It front-loads the inputs, details the process/constraints, and concludes with outputs and safety guarantees, ensuring the agent flows logically from invocation to expected result.
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?
Since no output schema is present, the description is exceptionally complete by explicitly listing every return element: 'proposed cuts/additions, role counts, warnings, estimated cost, individual card links and a TCGplayer cartUrl'. It leaves no ambiguity about what the agent can expect to receive.
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 only 22%, yet the description compensates heavily by detailing the required formats for complex fields like `deck` (quantity-prefixed list or URL) and `owned` (up to 150 entries with specific quantity formats). This makes the low coverage tolerable by providing all necessary structural 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 explicitly states the tool's function: 'Upgrade a Commander precon.' It clearly defines the input mechanisms (URL vs. plain list) and the nature of the output (proposals and estimated costs), distinguishing it as a comprehensive optimization tool.
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?
It provides highly specific operational guidelines, such as noting that URL imports exclude sideboards/companions, and instructing the agent to request a plain-text export if provider access fails. It also manages user expectations regarding the output quality ('Bracket analysis is guidance, not certification').
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
1 tool update
- Changed
search_cards2 fields changed- added
Input schema / properties / colors / maxLengthAdded value: +30 - changed
Input schema / properties / colors / patternPrevious value: -"^[WUBRG]{0,5}$"New value: +"^(?:C|[WUBRG, ]*)$"
7 tool updates
- Changed
change_deck_bracket2 fields changed- added
Input schema / properties / deck / descriptionAdded value: +"Full quantity-prefixed decklist, or a public HTTPS Moxfield/Archidekt deck URL without query parameters." - added
Input schema / properties / replaceCardAdded value: +{ + "default": "", + "maxLength": 150, + "type": "string" +}
- Added
find_replacements - Added
import_deck - Changed
reduce_deck_cost2 fields changed- added
Input schema / properties / deck / descriptionAdded value: +"Full quantity-prefixed decklist, or a public HTTPS Moxfield/Archidekt deck URL without query parameters." - added
Input schema / properties / replaceCardAdded value: +{ + "default": "", + "maxLength": 150, + "type": "string" +}
- Changed
repair_deck2 fields changed- added
Input schema / properties / deck / descriptionAdded value: +"Full quantity-prefixed decklist, or a public HTTPS Moxfield/Archidekt deck URL without query parameters." - added
Input schema / properties / replaceCardAdded value: +{ + "default": "", + "maxLength": 150, + "type": "string" +}
- Added
search_cards - Changed
upgrade_precon2 fields changed- added
Input schema / properties / deck / descriptionAdded value: +"Full quantity-prefixed decklist, or a public HTTPS Moxfield/Archidekt deck URL without query parameters." - added
Input schema / properties / replaceCardAdded value: +{ + "default": "", + "maxLength": 150, + "type": "string" +}
4 tool updates
- Changed
change_deck_bracket1 field changed- added
Input schema / properties / owned / descriptionAdded value: +"Quantity-prefixed owned cards, up to 150 card entries and 16000 characters. Split larger collections before analysis."
- Changed
reduce_deck_cost1 field changed- added
Input schema / properties / owned / descriptionAdded value: +"Quantity-prefixed owned cards, up to 150 card entries and 16000 characters. Split larger collections before analysis."
- Changed
repair_deck1 field changed- added
Input schema / properties / owned / descriptionAdded value: +"Quantity-prefixed owned cards, up to 150 card entries and 16000 characters. Split larger collections before analysis."
- Changed
upgrade_precon1 field changed- added
Input schema / properties / owned / descriptionAdded value: +"Quantity-prefixed owned cards, up to 150 card entries and 16000 characters. Split larger collections before analysis."
4 tool updates
- Added
change_deck_bracket - Added
reduce_deck_cost - Added
repair_deck - Added
upgrade_precon
1 tool update
- Changed
build_mana_base4 fields changed- added
Input schema / properties / currentLandsAdded value: +{ + "default": [], + "description": "Existing mana base for a limited upgrade; these copies count as owned.", + "items": { + "properties": { + "name": { + "maxLength": 200, + "minLength": 1, + "type": "string" + }, + "quantity": { + "maximum": 99, + "minimum": 1, + "type": "integer" + } + }, + "required": [ + "name", + "quantity" + ], + "type": "object" + }, + "maxItems": 300, + "type": "array" +} - added
Input schema / properties / lockedLandsAdded value: +{ + "default": [], + "description": "Required lands to retain, including quantities. Must be legal and not excluded.", + "items": { + "properties": { + "name": { + "maxLength": 200, + "minLength": 1, + "type": "string" + }, + "quantity": { + "maximum": 99, + "minimum": 1, + "type": "integer" + } + }, + "required": [ + "name", + "quantity" + ], + "type": "object" + }, + "maxItems": 300, + "type": "array" +} - added
Input schema / properties / maxChangesAdded value: +{ + "default": 3, + "description": "Maximum replaced land slots when currentLands is supplied.", + "maximum": 10, + "minimum": 1, + "type": "integer" +} - added
Input schema / properties / ownedLandsAdded value: +{ + "default": [], + "description": "Land copies already owned; budget and cart charge only missing quantities.", + "items": { + "properties": { + "name": { + "maxLength": 200, + "minLength": 1, + "type": "string" + }, + "quantity": { + "maximum": 99, + "minimum": 1, + "type": "integer" + } + }, + "required": [ + "name", + "quantity" + ], + "type": "object" + }, + "maxItems": 300, + "type": "array" +}
2 tool updates
- First observed
build_mana_base - First observed
search_commanders
Related MCP Connectors
Magic: The Gathering card search, rules, rulings, deck analysis, brackets, and combo detection.
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.
Related MCP Servers
- AlicenseBqualityBmaintenanceLocal-first Commander deck planning, inventory fulfillment, and budget upgrades for Magic: The Gathering. Build, compare, price, and improve decks with pinned data and imported card inventory.11MIT
- AlicenseAqualityBmaintenanceEnables MCP clients like Claude to build and tune Magic: The Gathering decks using live card data — Scryfall search and lookups, decklist parsing and analysis (legality, mana curve, roles, price), Commander Spellbook combo detection, and EDHREC recommendations. Supports Commander-focused tasks such as finding combos, checking card prices, and surfacing new high-synergy cards by theme or budget.121MIT
- AlicenseAqualityCmaintenanceEnables Magic: The Gathering players to analyze deck lists using real Scryfall oracle text, detecting synergies and conflicts. Generates three viewable documents: an interactive synergy map, a detailed guide, and a printable cheat sheet.9MIT
- AlicenseAqualityCmaintenanceMagic: The Gathering MCP server with card search, rules lookup, deck analysis, and Commander intelligence1434 npm4MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.