Skip to main content
Glama

cardmarket-mcp

AI authorship disclosure: this project was written entirely by an autonomous AI agent (mtg-builder-1, part of an experimental agent fleet). It has been tested with unit tests and live Scryfall calls only; the Cardmarket/TCGplayer paths have not been exercised against live accounts by the author — please report issues.

A read-only, bring-your-own-key MCP server for Magic: The Gathering pricing on Cardmarket and TCGplayer, with a free no-key tier powered by Scryfall.

  • BYO key: you supply your own API credentials as environment variables. They are used only to sign requests from your machine to the marketplace; this project never stores, logs or transmits them anywhere else. There is no hosted backend.

  • Read-only: no tool creates, edits or deletes listings. reprice_suggest returns suggestions only.

  • No scraping: official APIs only.

Tools

Tool

Needs

What it does

scryfall_search_cards

nothing

Scryfall-syntax search, prices + Cardmarket/TCGplayer ids

scryfall_card_prices

nothing

Fuzzy name lookup, optionally all printings, USD/EUR/TIX prices

cardmarket_product_search

Cardmarket keys

Find product ids

cardmarket_price_guide

Cardmarket keys

SELL/LOW/AVG/TREND (+foil, 1/7/30d avg)

cardmarket_compare_sellers

Cardmarket keys

Cheapest offers w/ seller, country, condition, language; price distribution

cardmarket_seller_stock

Cardmarket keys

A seller's public stock

tcgplayer_product_search

TCGplayer keys

Catalog search

tcgplayer_price_guide

TCGplayer keys

Market/low/mid/high per product

reprice_suggest

none (manual) or keys

Suggested price for one listing: strategies competitive, undercut_lowest, match_trend, premium; floor price; hold-band

Related MCP server: tcgplayer-api-mcp

Install / configure

Requires Node 18+.

{
  "mcpServers": {
    "cardmarket": {
      "command": "npx",
      "args": ["-y", "github:wminno/cardmarket-mcp"],
      "env": {
        "CARDMARKET_APP_TOKEN": "...",
        "CARDMARKET_APP_SECRET": "...",
        "CARDMARKET_ACCESS_TOKEN": "...",
        "CARDMARKET_ACCESS_TOKEN_SECRET": "...",
        "TCGPLAYER_CLIENT_ID": "...",
        "TCGPLAYER_CLIENT_SECRET": "..."
      }
    }
  }
}

All env vars are optional; omit the ones for services you don't use (Scryfall tools need none). Get Cardmarket credentials from your Cardmarket account → API page (a "dedicated app" gives you all four values). Note: TCGplayer has restricted issuing new API keys; that path only works if you already have access.

Remote (streamable-HTTP) mode

node src/index.js --http (PORT env, default 8080) runs a stateless server at POST /mcp, with /health and /.well-known/mcp/server-card.json. In this mode no server-side credentials are used: callers pass their own keys as request headers, used for that single request and never stored or logged: x-cardmarket-app-token, x-cardmarket-app-secret, x-cardmarket-access-token, x-cardmarket-access-token-secret, x-tcgplayer-client-id, x-tcgplayer-client-secret. The Scryfall tools and reprice_suggest (manual mode) need none. Note a hosted instance necessarily sees your headers in transit — if that matters to you, run the stdio version locally.

  • Scryfall data: used via the public API per Scryfall's guidelines (User-Agent set, rate-limited, attribution returned in every response). Prices are informational only, not for resale. Not affiliated with Scryfall.

  • Cardmarket and TCGplayer data is retrieved with your credentials under your agreement with those services; follow their API terms. Not affiliated with either.

  • Magic: The Gathering is © Wizards of the Coast. This is unofficial fan tooling.

  • Repricing output is a heuristic, not financial advice.

Develop

npm install && npm test · MIT licensed.

Available Tools

9 tools
cardmarket_compare_sellersCompare Cardmarket sellers & prices (BYO key)A
Read-only

Lists current offers for a Cardmarket product (cheapest first) with seller, country, condition, language, foil, quantity, plus price distribution stats. Optionally filter by min condition (MT,NM,EX,GD,LP,PL,PO), language id, foil, seller type. Requires your own Cardmarket credentials. Read-only.

NameRequiredDescriptionDefault
foilNo
limitNo
userTypeNo
idProductYes
languageIdNo
minConditionNo

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare read-only and open-world behavior, and the description adds useful context beyond them: results are cheapest first, include seller/country/condition/language/foil/quantity plus price distribution stats, and require the caller's own Cardmarket credentials. It does not disclose rate limits or pagination behavior, but the added auth and ordering details are substantive.

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

Conciseness5/5

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

The description is front-loaded and efficient: the first sentence states the core listing behavior and returned fields, the second covers filters, and the third covers credentials and read-only status. There is little wasted text for the amount of useful information provided.

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

Completeness4/5

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

With no output schema, the description helpfully lists the main returned fields and price-distribution stats, and it discloses the credential requirement. The main remaining gap is the unmentioned limit behavior and minimal explanation of the userType parameter, but the definition is otherwise complete enough to call correctly.

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

Parameters3/5

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

Schema description coverage is 0%, so the description must carry parameter meaning. It covers several filters (min condition, language id, foil, seller type) and repeats the condition enum values, but it omits the limit parameter entirely and does not explain the userType enum values beyond 'seller type'.

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

Purpose4/5

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

The description states a specific verb and resource: it lists current offers for a Cardmarket product, sorted cheapest first, and includes seller and price-distribution details. It is clear what the tool does, but it does not explicitly differentiate itself from siblings such as cardmarket_seller_stock or cardmarket_price_guide.

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

Usage Guidelines3/5

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

The optional filters imply usage for narrowing seller offers, and the credential requirement gives important setup context. However, there is no explicit guidance on when to use this versus cardmarket_price_guide or cardmarket_seller_stock, nor any stated exclusions.

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

cardmarket_price_guideCardmarket price guide (BYO key)A
Read-only

Get the Cardmarket price guide (SELL, LOW, LOWEX, AVG, TREND, foil variants, 1/7/30-day averages) for a product id. Requires your own Cardmarket credentials. Read-only.

NameRequiredDescriptionDefault
idProductYes

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, so 'Read-only' is a repeat; however, the BYO-credentials requirement is genuine context an agent needs before calling. No mention of auth-failure behavior, rate limits, or what happens for unknown product ids, which is the gap for an openWorld tool.

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

Conciseness5/5

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

Two sentences, front-loaded with the action and resource, then the return field list, then prerequisites. Every clause carries information; no filler.

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

Completeness4/5

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

No output schema exists, so the description must carry the return shape—and it does by enumerating the price categories and averaging windows. Combined with the credential note, an agent has enough to call correctly; only error/edge behavior is absent.

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

Parameters3/5

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

Only one parameter (idProduct) with 0% schema description coverage; the description says 'for a product id', which is the bare minimum needed, but adds no format, origin (Cardmarket catalogue id), or validation guidance. Baseline 3 for a single self-named parameter is barely met, not exceeded.

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

Purpose5/5

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

Specific verb+resource ('Get the Cardmarket price guide') scoped to a product id, and the enumerated price fields (SELL, LOW, TREND, foil variants, averages) make it unambiguous what the tool returns. Naming Cardmarket distinguishes it from tcgplayer_price_guide and scryfall_card_prices.

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

Usage Guidelines3/5

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

States a prerequisite (own Cardmarket credentials) and that it is read-only, implying the use case, but never says when to pick this over tcgplayer_price_guide or scryfall_card_prices, nor when it is inapplicable (e.g., non-Cardmarket-listed products).

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

cardmarket_seller_stockA seller's stock on Cardmarket (BYO key)B
Read-only

Read-only view of a given Cardmarket seller's public stock (username or user id), optionally filtered by game and a name search, so you can compare their prices against market. Requires your own Cardmarket credentials.

NameRequiredDescriptionDefault
userYesCardmarket username or id
startNo
idGameNo
maxResultsNo

TDQS

B3.4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint and openWorldHint, so the safety profile is covered; the description still adds real value by stating the data is 'public stock' (scope limit) and that a BYO Cardmarket credential is required (auth prerequisite). It does not mention pagination behavior or result caps, which keeps it short of a 5.

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

Conciseness4/5

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

A single front-loaded sentence that leads with the resource and scope, then adds filters, purpose, and the credential prerequisite with no filler. It is efficiently sized for a four-parameter read tool.

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

Completeness3/5

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

No output schema exists, and the description does not say what a result record looks like or that results are capped/paginated, even though maxResults (max 200) and start imply paging. Combined with the phantom 'name search' filter and undocumented parameters, the definition leaves real gaps for an agent to fill by guessing.

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

Parameters2/5

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

Schema description coverage is only 25%, so the description must compensate, and it only partly does: it clarifies that 'user' accepts a username or id and that game filtering exists. Worse, it advertises a 'name search' filter that has no corresponding parameter in the schema, while the two pagination-related parameters (start, maxResults with a 1-200 range) go entirely unexplained.

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

Purpose4/5

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

States a specific verb and resource: a read-only view of a Cardmarket seller's public stock, keyed by username or user id, with the intent 'compare their prices against market'. It is distinguishable from cardmarket_product_search and cardmarket_price_guide, though it never names the closest sibling (cardmarket_compare_sellers) to sharpen the boundary.

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

Usage Guidelines3/5

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

The phrase 'so you can compare their prices against market' implies the use case, and 'Requires your own Cardmarket credentials' flags a prerequisite. But there are no explicit when-to-use/when-not rules and no routing to alternatives such as cardmarket_compare_sellers, leaving selection to inference.

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

reprice_suggestRepricing suggestion (advice only)A
Read-only

Suggests a new price for ONE of your listings. SUGGESTION ONLY — this server never creates, edits or deletes listings. Provide your current price plus either (a) marketplace='cardmarket' with idProduct (fetches live data with your creds), or (b) marketplace='manual' with your own reference numbers. Strategies: competitive (default), undercut_lowest, match_trend, premium.

NameRequiredDescriptionDefault
idNoCardmarket idProduct or TCGplayer productId
foilNo
trendNo
lowestNo
averageNo
strategyNocompetitive
floorPriceNoNever suggest below this (your cost basis)
marketplaceNomanual
undercutPctNo
currentPriceYes
minConditionNo
competitorPricesNo

TDQS

A4/5.0
Behavior4/5

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

The readOnlyHint is reinforced with explicit wording that this is SUGGESTION ONLY and that the server never creates, edits, or deletes listings. It also discloses that cardmarket mode fetches live data using the caller's credentials, adding useful context beyond the annotations, though it does not describe rate limits or return behavior.

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

Conciseness4/5

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

The description is front-loaded with purpose and safety, then moves into input modes and strategy options. It is compact and largely waste-free, though the parenthetical credential note is slightly dense.

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

Completeness3/5

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

For a 12-parameter tool with no output schema and low schema description coverage, the description should explain more about required reference fields for manual mode, the tcgplayer path, and the shape of the returned suggestion. It covers the central concept and safety behavior well but leaves meaningful gaps.

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

Parameters3/5

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

Schema description coverage is only 17%, and the description compensates for some key parameters: currentPrice, marketplace modes, idProduct, and the strategy enum including the competitive default. It omits important semantics for many other parameters, including tcgplayer mode, floorPrice, undercutPct, minCondition, foil, and competitorPrices, so coverage of the 12-parameter schema is only partial.

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

Purpose5/5

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

The description states a specific verb and resource: 'Suggests a new price for ONE of your listings.' It also immediately distinguishes this advice tool from mutation tools by saying the server never creates, edits, or deletes listings.

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

Usage Guidelines4/5

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

It clearly explains the two input modes: Cardmarket with idProduct and credentials, or manual mode with your own reference numbers. However, it does not explicitly position the tool against sibling price-guide or seller-comparison tools, so the when-to-use guidance is strong but not fully comparative.

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

scryfall_card_pricesCard price lookup (free, Scryfall)A
Read-only

FREE tier. Fuzzy-name card lookup returning all printings' prices (usd, usd_foil, eur, eur_foil, tix) from Scryfall bulk-derived data, updated daily. No credentials.

NameRequiredDescriptionDefault
setNoSet code, e.g. 'mh3'
nameYes
all_printingsNo

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already cover readOnly and open-world behavior, yet the description still adds real operational context: it is free, needs no credentials, reads Scryfall bulk-derived data, and is refreshed daily. It stops short of saying how staleness or missing cards are handled, but the annotation bar is already met.

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

Conciseness5/5

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

Three compact clauses, front-loaded with the cost/credential signal an agent needs first, then capability, then data provenance. No filler sentences.

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

Completeness4/5

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

For a 3-parameter read-only tool with no output schema, the description names the returned price fields and the data freshness, which is most of what an agent needs. The remaining gap is the unexplained 'all_printings' toggle and no note on behavior when a fuzzy match fails or returns multiple cards.

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

Parameters3/5

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

Only 'set' has schema documentation (33% coverage); the description usefully clarifies that 'name' is a fuzzy match and enumerates which price fields come back. However, 'all_printings' is never explained, and the claim of returning 'all printings' prices sits awkwardly beside a parameter that defaults to false, leaving the agent to guess the actual default scope.

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

Purpose4/5

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

States a specific verb and resource ('Fuzzy-name card lookup returning all printings' prices') plus the currency fields returned, and names the data source (Scryfall bulk-derived, daily). It is clearly separable from the cardmarket/tcgplayer siblings by source and currency set, though it never explicitly contrasts itself with those price-guide tools.

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

Usage Guidelines3/5

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

'FREE tier' and 'No credentials' imply when to prefer this over credentialed price sources, and 'fuzzy-name lookup' hints at the input style. But there is no explicit when-to-use/when-not guidance versus tcgplayer_price_guide or cardmarket_price_guide, which are the obvious alternatives for price data.

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

scryfall_search_cardsSearch MTG cards (free, Scryfall)A
Read-only

FREE tier. Search Magic cards with Scryfall syntax (e.g. 'o:flying t:dragon'). Returns ids, set info, and USD/EUR/TIX prices, plus Cardmarket/TCGplayer product ids for use with the paid-API tools. Requires no credentials.

NameRequiredDescriptionDefault
limitNo
queryYesScryfall search query
uniqueNoprints

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare readOnlyHint and openWorldHint, so the safety profile is covered. The description adds real value beyond that: no credentials needed, free tier, and the exact return payload (ids, set info, USD/EUR/TIX prices, Cardmarket/TCGplayer product ids). It omits rate limits and pagination, keeping it below a 5.

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

Conciseness4/5

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

Three tight sentences with no waste and the key differentiator ('FREE tier') front-loaded. The example is well placed, though 'FREE tier. Requires no credentials' is mildly redundant with the later sentence.

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

Completeness4/5

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

With only 3 params, no output schema, and light annotations, the description does the heavy lifting by enumerating return fields and credential requirements. It's not fully complete because the meaning of 'unique' and 'limit' behavior (caps, defaults) is never addressed.

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

Parameters3/5

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

Schema coverage is only 33%: only 'query' is documented, and the description compensates usefully with a Scryfall syntax example ('o:flying t:dragon'). However, 'limit' and 'unique' are left unexplained in both schema and description, so the gap is only partly filled.

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

Purpose4/5

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

States a specific verb and resource ('Search Magic cards') and specifies the mechanism ('Scryfall syntax') with an example. It distinguishes itself from the paid-API siblings by noting the returned product ids are 'for use with the paid-API tools', though it doesn't name any sibling explicitly.

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

Usage Guidelines4/5

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

Clear context is given: this is the 'FREE tier' tool that 'requires no credentials', implicitly positioning it ahead of the paid cardmarket/tcgplayer tools for discovery. It doesn't give explicit when-not or name a specific alternative to use instead, so it stops short of full routing guidance.

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

tcgplayer_price_guideTCGplayer market prices (BYO key)A
Read-only

Market/low/mid/high/direct-low prices per subtype (Normal/Foil) for up to 50 TCGplayer product ids. Requires your own TCGplayer keys. Read-only.

NameRequiredDescriptionDefault
productIdsYes

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already cover read-only and open-world behavior, so the description's 'Read-only' adds nothing. What does add value is the BYO-key authentication requirement and the disclosure of what is returned (five price tiers broken out by subtype), which the agent cannot learn from 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.

Conciseness5/5

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

Three terse clauses, front-loaded with the return payload, then the id constraint, then the prerequisite. Every fragment carries information; nothing is padding.

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

Completeness4/5

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

For a one-parameter read tool with no output schema, the description tells the agent what comes back and what credentials are needed. The remaining gap is discoverability of product ids and the absence of a response shape, but neither blocks correct invocation.

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

Parameters3/5

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

Schema coverage is 0%, so the description must carry the parameter meaning — and it does partially, clarifying that productIds are TCGplayer product ids and that the cap is 50 (the schema states maxItems but not what an id is or where to get one). It omits any pointer to a lookup tool, leaving a real gap for a zero-coverage schema.

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

Purpose4/5

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

States concretely what the tool returns (market/low/mid/high/direct-low prices per Normal/Foil subtype) for a specific resource (TCGplayer product ids). The 'TCGplayer' qualifier implicitly separates it from cardmarket_price_guide and scryfall_card_prices, but it never names those alternatives explicitly.

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

Usage Guidelines3/5

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

Usage is implied by the marketplace name and the 'Requires your own TCGplayer keys' prerequisite, which is a useful gating condition. However, it never says when to prefer this over cardmarket_price_guide or scryfall_card_prices, nor how to obtain product ids (presumably via tcgplayer_product_search).

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. 9 tool updatesv0.1.0
    • First observedcardmarket_compare_sellers
    • First observedcardmarket_price_guide
    • First observedcardmarket_product_search
    • First observedcardmarket_seller_stock
    • First observedreprice_suggest
    • First observedscryfall_card_prices
    • First observedscryfall_search_cards
    • First observedtcgplayer_price_guide
    • First observedtcgplayer_product_search

TDQS

A3.6/5.0

Scored across 9 tools

Disambiguation3/5

Each tool is nominally tied to a provider (TCGplayer, Scryfall, Cardmarket) which helps, but there is real overlap: scryfall_search_cards and scryfall_card_prices both do fuzzy-name lookups returning prices, and cardmarket_price_guide vs. scryfall_card_prices vs. cardmarket_compare_sellers all surface price data with only subtle distinctions. The descriptions do most of the disambiguating work, so an agent can recover, but boundaries are not self-evident from names alone.

Naming Consistency3/5

There is a recognizable provider-prefixed scheme, but the word order flips: provider_noun_verb (cardmarket_product_search, tcgplayer_price_guide) vs. provider_verb_noun (scryfall_search_cards, cardmarket_compare_sellers). reprice_suggest breaks the provider-prefix convention entirely. Readable, but not a predictable single pattern.

Tool Count5/5

Nine tools is well within a sensible range and each corresponds to a distinct capability across three data providers plus a pricing strategy tool. Nothing feels padded or redundant at the count level.

Completeness3/5

Read-side coverage is decent (search, price guide, offers, seller stock) across three marketplaces, but the surface is a dead end for action: reprice_suggest is explicitly suggestion-only and there is no way to apply it, no listing CRUD, and no bulk/historical price retrieval beyond the TCGplayer 50-id batch. Agents can research pricing but cannot complete an end-to-end listing workflow.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    B
    quality
    D
    maintenance
    Enables AI assistants to search and retrieve Magic: The Gathering card data through the Scryfall API. Supports card searches, random card generation, autocomplete, set listings, and rulings lookup.
    22
    801 npm
    1
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    Provides access to TCGplayer trading card data, including search, product details, pricing, and market information, enabling natural language queries for card analysis.
    1
    -
  • A
    license
    A
    quality
    B
    maintenance
    Enables LLM clients to query live TCG inventory, pricing, alerts, profit and loss, and eBay listings directly through natural language tool calls.
    11
    MIT
  • F
    license
    A
    quality
    D
    maintenance
    Provides AI assistants with real-time access to Magic: The Gathering card data, prices, rulings, search, and synergy discovery via the Scryfall API.
    5
    -