Pokemon TCG Card Search MCP
Búsqueda de cartas de JCC Pokémon MCP
Este servidor de Protocolo de Contexto de Modelo (MCP) le permite a Claude buscar y mostrar tarjetas del juego de cartas coleccionables de Pokémon.
Instrucciones de configuración
Actualice su archivo de configuración de Claude:
Abra
/Users/ABSOLUTE_PATH_HERE/Library/Application Support/Claude/claude_desktop_config.jsonAgregue la siguiente configuración (elimine cualquier configuración de MCP existente):
{ "mcpServers": { "ptcg-mcp": { "command": "node", "args": ["ABSOLUTE_PATH_HERE/dist/index.js"] } } }Salí Claude:
Abrir el Administrador de tareas
Encuentra y abandona a Claude por completo
Reiniciar Claude:
El MCP de búsqueda de cartas de Pokémon TCG se cargará automáticamente
Ahora puedes hacerle preguntas a Claude sobre las cartas de Pokémon
Related MCP server: Poke-MCP
Uso
Una vez configurado, puedes hacerle preguntas a Claude sobre las cartas de Pokémon como:
"Muéstrame Pokémon básicos legales estándar con retirada libre"
Encuentra Pokémon de tipo agua con más de 120 PS.
"Buscar tarjetas de Pikachu"
Claude mostrará las tarjetas correspondientes con sus imágenes e información relevante.
Características
Busque tarjetas por nombre, tipo, subtipo, legalidad y más
Ver imágenes de tarjetas en alta resolución
Filtrar por varios atributos de tarjeta:
Nombre (admite coincidencia exacta con
!y comodines con*)Subtipos (por ejemplo, Básico, EX, GX, V, VMAX, etc.)
Legalidades (estándar, ampliadas, ilimitadas)
Tipos (Agua, Fuego, Hierba, etc.)
Costo de retiro
HP
Números de la Pokédex nacional
¡Y más!
Consultas de ejemplo
A continuación se muestran algunos ejemplos de consultas que puedes probar:
"Muéstrame Pokémon básicos legales estándar con retirada libre"
Encuentra Pokémon de tipo agua con más de 120 PS.
"Buscar tarjetas con 'char*' en su nombre"
"Muéstrame las cartas prohibidas en formato estándar"
Encuentra Pokémon EX que evolucionen de Charmander.
Sintaxis de consulta
Búsqueda de nombre
Búsqueda regular:
name:pikachuCoincidencia exacta:
!name:pikachuComodín:
name:char*Conservar guiones:
name:chien-pao
Filtros
Tipos:
types:watero-types:water(excluir)Subtipos:
subtypes:basicLegalidades:
legalities.standard:legalHP:
hp:[100 TO 200]Costo de retiro:
convertedRetreatCost:0
Consultas de rango
Utilice [ y ] para rangos inclusivos, { y } para rangos exclusivos:
hp:[100 TO 200]- HP entre 100 y 200 (inclusive)hp:{100 TO 200}- HP entre 100 y 200 (exclusivo)hp:[* TO 100]- HP hasta 100hp:[100 TO *]- HP 100 o superior
Formato de respuesta
El MCP devuelve información de la tarjeta, incluyendo:
Nombre de la tarjeta
Nombre del conjunto
Imagen de tarjeta de alta resolución
Legalidades de la tarjeta
Otros datos de la tarjeta según se solicite
Notas
El MCP utiliza la API de Pokémon TCG para obtener datos de las cartas.
Las imágenes se muestran directamente desde el CDN de la API de Pokémon TCG
Todas las consultas no distinguen entre mayúsculas y minúsculas.
Se pueden combinar varios filtros en una sola consulta
Available Tools
2 toolspokemon-card-priceC
Look up the current market price for a Pokemon card
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | CRITICAL: Never infer or guess values. Never provide default values. Never make assumptions about what the user might want. Never try to be systematic or methodical. Never try to find "specific examples". Just query exactly what was asked for, nothing more and nothing less. CRITICAL: Query exactly what was asked for. Do not try to be systematic. Do not try to find specific examples. Do not try to be methodical. Just make the exact query requested. IMPORTANT: For hyphenated names like "chien-pao", you MUST preserve the hyphen exactly as it appears. For example, "chien-pao ex" should have name "chien-pao" (with the hyphen) and subtypes ["EX"]. Never remove or modify hyphens in the name. Use * for wildcard matching (e.g., "char*" to match all cards starting with "char", or "char*der" to match cards starting with "char" and ending with "der"). Use ! for exact matching (e.g., "!value" to match only exact value). IMPORTANT: If no name is explicitly provided in the query, do not include a name field at all. | |
| set | No | CRITICAL: Never infer or guess values. Never provide default values. Never make assumptions about what the user might want. Never try to be systematic or methodical. Never try to find "specific examples". Just query exactly what was asked for, nothing more and nothing less. The set information for this card. Use dot notation (.) to search nested fields (e.g., "set.id:sm1" for set ID, "attacks.name:Spelunk" for attack names). For example, "set.id:sm1" to find cards from a specific set. If no set information is explicitly mentioned, omit this field entirely. |
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. It states the tool looks up 'current market price' but doesn't specify data sources, freshness, accuracy, rate limits, authentication needs, or error conditions. For a price lookup tool with zero annotation coverage, 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?
The description is a single, efficient sentence that states the core functionality without unnecessary words. It's appropriately sized for a simple lookup tool and front-loads the 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 no annotations and no output schema, the description is insufficient. It doesn't explain what format the price data returns (single value, range, historical data), currency, confidence metrics, or typical response structure. The agent has minimal context about what to expect from this 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 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 how 'name' and 'set' parameters affect price lookup results or provide usage 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 verb ('look up') and resource ('current market price for a Pokemon card'), making the purpose immediately understandable. However, it doesn't explicitly differentiate from the sibling tool 'pokemon-card-search', which likely has overlapping functionality for searching cards rather than specifically checking prices.
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 the sibling 'pokemon-card-search' tool, nor does it mention any prerequisites, constraints, or alternative scenarios. The agent must infer usage based solely on the tool name and description without explicit direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pokemon-card-searchC
Searches for Pokemon cards
| Name | Required | Description | Default |
|---|---|---|---|
| attacks | No | CRITICAL: Never infer or guess values. Never provide default values. Never make assumptions about what the user might want. Never try to be systematic or methodical. Never try to find "specific examples". Just query exactly what was asked for, nothing more and nothing less. The attacks available to this Pokemon card. Use dot notation (.) to search nested fields (e.g., "set.id:sm1" for set ID, "attacks.name:Spelunk" for attack names). For example, "attacks.name:Spelunk" to find cards with a specific attack name. If no attack information is explicitly mentioned, omit this field entirely. | |
| convertedRetreatCost | No | CRITICAL: Never infer or guess values. Never provide default values. Never make assumptions about what the user might want. Never try to be systematic or methodical. Never try to find "specific examples". Just query exactly what was asked for, nothing more and nothing less. CRITICAL: Query exactly what was asked for. Do not try to be systematic. Do not try to find specific examples. Do not try to be methodical. Just make the exact query requested. The converted retreat cost for a given Pokemon card. If no converted retreat cost is explicitly mentioned, omit this field. If the user explicitly specifies "free retreat", set this to 0. Use ! for exact matching (e.g., "!value" to match only exact value). Use [ and ] for inclusive ranges (e.g., [1 TO 3] for values 1-3). Use { and } for exclusive ranges (e.g., {1 TO 3} for values more than 1 and less than 3). Use * for unbounded ranges (e.g., [* TO 100] for values up to 100, or [100 TO *] for values 100 or higher). | |
| evolvesTo | No | CRITICAL: Never infer or guess values. Never provide default values. Never make assumptions about what the user might want. Never try to be systematic or methodical. Never try to find "specific examples". Just query exactly what was asked for, nothing more and nothing less. The Pokemon this card evolves into. Use negative values with a "-" prefix to exclude values (e.g., ["-value"] to exclude value). Use ! for exact matching (e.g., "!value" to match only exact value). If no evolution information is explicitly mentioned, omit this field entirely. | |
| hp | No | CRITICAL: Never infer or guess values. Never provide default values. Never make assumptions about what the user might want. Never try to be systematic or methodical. Never try to find "specific examples". Just query exactly what was asked for, nothing more and nothing less. The HP (Hit Points) of the Pokemon card. Use ! for exact matching (e.g., "!value" to match only exact value). Use [ and ] for inclusive ranges (e.g., [1 TO 3] for values 1-3). Use { and } for exclusive ranges (e.g., {1 TO 3} for values more than 1 and less than 3). Use * for unbounded ranges (e.g., [* TO 100] for values up to 100, or [100 TO *] for values 100 or higher). If no HP is explicitly mentioned, omit this field entirely. | |
| legalities | No | CRITICAL: Never infer or guess values. Never provide default values. Never make assumptions about what the user might want. Never try to be systematic or methodical. Never try to find "specific examples". Just query exactly what was asked for, nothing more and nothing less. CRITICAL: Query exactly what was asked for. Do not try to be systematic. Do not try to find specific examples. Do not try to be methodical. Just make the exact query requested. The legalities for a given card. For each legality passed in, the value is "legal" without quotes. Use negative values with a "-" prefix to exclude values (e.g., ["-value"] to exclude value). Use ! for exact matching (e.g., "!value" to match only exact value). Use dot notation (.) to search nested fields (e.g., "set.id:sm1" for set ID, "attacks.name:Spelunk" for attack names). For example, "legalities.standard:banned" to find cards banned in Standard. If no legalities are explicitly mentioned, omit this field entirely. | |
| name | No | CRITICAL: Never infer or guess values. Never provide default values. Never make assumptions about what the user might want. Never try to be systematic or methodical. Never try to find "specific examples". Just query exactly what was asked for, nothing more and nothing less. CRITICAL: Query exactly what was asked for. Do not try to be systematic. Do not try to find specific examples. Do not try to be methodical. Just make the exact query requested. IMPORTANT: For hyphenated names like "chien-pao", you MUST preserve the hyphen exactly as it appears. For example, "chien-pao ex" should have name "chien-pao" (with the hyphen) and subtypes ["EX"]. Never remove or modify hyphens in the name. Use * for wildcard matching (e.g., "char*" to match all cards starting with "char", or "char*der" to match cards starting with "char" and ending with "der"). Use ! for exact matching (e.g., "!value" to match only exact value). IMPORTANT: If no name is explicitly provided in the query, do not include a name field at all. | |
| nationalPokedexNumbers | No | CRITICAL: Never infer or guess values. Never provide default values. Never make assumptions about what the user might want. Never try to be systematic or methodical. Never try to find "specific examples". Just query exactly what was asked for, nothing more and nothing less. The National Pokedex numbers of the Pokemon. Use ! for exact matching (e.g., "!value" to match only exact value). Use [ and ] for inclusive ranges (e.g., [1 TO 3] for values 1-3). Use { and } for exclusive ranges (e.g., {1 TO 3} for values more than 1 and less than 3). Use * for unbounded ranges (e.g., [* TO 100] for values up to 100, or [100 TO *] for values 100 or higher). If no Pokedex numbers are explicitly mentioned, omit this field entirely. | |
| page | No | CRITICAL: Never infer or guess values. Never provide default values. Never make assumptions about what the user might want. Never try to be systematic or methodical. Never try to find "specific examples". Just query exactly what was asked for, nothing more and nothing less. The page number for pagination. Use ! for exact matching (e.g., "!value" to match only exact value). Use [ and ] for inclusive ranges (e.g., [1 TO 3] for values 1-3). Use { and } for exclusive ranges (e.g., {1 TO 3} for values more than 1 and less than 3). Use * for unbounded ranges (e.g., [* TO 100] for values up to 100, or [100 TO *] for values 100 or higher). If no page is explicitly mentioned, omit this field entirely. | |
| pageSize | No | CRITICAL: Never infer or guess values. Never provide default values. Never make assumptions about what the user might want. Never try to be systematic or methodical. Never try to find "specific examples". Just query exactly what was asked for, nothing more and nothing less. The number of cards per page. Use ! for exact matching (e.g., "!value" to match only exact value). Use [ and ] for inclusive ranges (e.g., [1 TO 3] for values 1-3). Use { and } for exclusive ranges (e.g., {1 TO 3} for values more than 1 and less than 3). Use * for unbounded ranges (e.g., [* TO 100] for values up to 100, or [100 TO *] for values 100 or higher). If no page size is explicitly mentioned, omit this field entirely. | |
| regulationMark | No | CRITICAL: Never infer or guess values. Never provide default values. Never make assumptions about what the user might want. Never try to be systematic or methodical. Never try to find "specific examples". Just query exactly what was asked for, nothing more and nothing less. The regulation mark (also known as "block") of the card (e.g., "F", "G", "H"). This indicates which regulation block the card belongs to. Use negative values with a "-" prefix to exclude values (e.g., ["-value"] to exclude value). Use ! for exact matching (e.g., "!value" to match only exact value). If no regulation mark is explicitly mentioned, omit this field entirely. | |
| set | No | CRITICAL: Never infer or guess values. Never provide default values. Never make assumptions about what the user might want. Never try to be systematic or methodical. Never try to find "specific examples". Just query exactly what was asked for, nothing more and nothing less. The set information for this card. Use dot notation (.) to search nested fields (e.g., "set.id:sm1" for set ID, "attacks.name:Spelunk" for attack names). For example, "set.id:sm1" to find cards from a specific set. If no set information is explicitly mentioned, omit this field entirely. | |
| subtypes | No | CRITICAL: Never infer or guess values. Never provide default values. Never make assumptions about what the user might want. Never try to be systematic or methodical. Never try to find "specific examples". Just query exactly what was asked for, nothing more and nothing less. CRITICAL: Query exactly what was asked for. Do not try to be systematic. Do not try to find specific examples. Do not try to be methodical. Just make the exact query requested. For example, "chien pao ex" should have name "chien pao" and subtypes ["EX"]. If multiple subtypes are present like "basic pikachu ex", use ["Basic", "EX"]. Use negative values with a "-" prefix to exclude values (e.g., ["-value"] to exclude value). Use ! for exact matching (e.g., "!value" to match only exact value). If no subtypes are explicitly mentioned in the query, omit this field entirely. | |
| types | No | CRITICAL: Never infer or guess values. Never provide default values. Never make assumptions about what the user might want. Never try to be systematic or methodical. Never try to find "specific examples". Just query exactly what was asked for, nothing more and nothing less. The types of the Pokemon card (e.g., ["Grass", "Psychic"]). Use negative values with a "-" prefix to exclude values (e.g., ["-value"] to exclude value). Use ! for exact matching (e.g., "!value" to match only exact value). If no types are explicitly mentioned, omit this field entirely. | |
| weaknesses | No | CRITICAL: Never infer or guess values. Never provide default values. Never make assumptions about what the user might want. Never try to be systematic or methodical. Never try to find "specific examples". Just query exactly what was asked for, nothing more and nothing less. The weaknesses of this Pokemon card. Use negative values with a "-" prefix to exclude values (e.g., ["-value"] to exclude value). Use ! for exact matching (e.g., "!value" to match only exact value). Use dot notation (.) to search nested fields (e.g., "set.id:sm1" for set ID, "attacks.name:Spelunk" for attack names). For example, "weaknesses.type:Water" to find cards weak to Water. If no weakness information is explicitly mentioned, omit this field entirely. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but offers no behavioral information. It doesn't disclose whether this is a read-only operation, if it requires authentication, rate limits, pagination behavior, or what the output looks like. For a search tool with 14 parameters, this lack of transparency is critical.
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 extremely concise at three words, with zero wasted text. It is front-loaded and efficiently states the core function without unnecessary elaboration, though this brevity contributes to other deficiencies.
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 (14 parameters, nested objects, no output schema, no annotations), the description is completely inadequate. It fails to explain the search scope, result format, pagination, or how parameters interact. For a rich search tool, this minimal description leaves the agent with insufficient 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 fully documents all 14 parameters with detailed descriptions. The tool description adds no parameter information beyond what's in the schema, meeting the baseline score of 3 for high schema coverage without additional 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 'Searches for Pokemon cards' restates the tool name with minimal elaboration. It specifies the verb ('Searches') and resource ('Pokemon cards'), but lacks detail on scope, filtering capabilities, or how it differs from the sibling tool 'pokemon-card-price'. This is a tautology that provides no meaningful 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?
No guidance is provided on when to use this tool versus alternatives. The description does not mention the sibling tool 'pokemon-card-price' or any context for choosing between search and price lookup. There is no indication of prerequisites, typical use cases, or limitations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
The two tools have clearly distinct purposes: one searches for cards, while the other looks up prices for cards. There is no overlap in functionality, making it easy for an agent to choose the right tool based on the task.
Both tool names follow a consistent pattern of 'pokemon-card-' prefix followed by a descriptive action (search, price). This uniformity makes the tools predictable and easy to understand.
With only two tools, the server feels thin for a card search domain. It lacks operations like filtering, sorting, or detailed card information retrieval, which are typical for such a purpose, making the scope incomplete.
The tool set is severely incomplete for a Pokemon TCG card search server. It covers basic search and price lookup but misses essential operations such as filtering by attributes (e.g., type, rarity), getting card details, or managing collections, leading to potential agent failures.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
TCGdex MCP — multi-language open trading card game database (Pokémon TCG and more).
Provide detailed Pokémon data and information through a standardized MCP interface. Enable LLMs an…
Live TCG card and decklist prices for AI assistants. 22+ games, no account, ready-to-buy links.
Magic: The Gathering card search, rules, rulings, deck analysis, brackets, and combo detection.
Related MCP Servers
- AlicenseAqualityBmaintenanceA comprehensive Model Context Protocol server that integrates with the Scryfall API to provide Magic: The Gathering card data to AI assistants like Claude.141MIT
- FlicenseNot gradedqualityDmaintenanceA Model Context Protocol server that provides comprehensive Pokemon data and battle simulation capabilities to AI assistants. It enables users to access detailed stats, types, and moves while simulating battles with realistic mechanics like type effectiveness and status effects.
- 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.1MIT
- FlicenseNot gradedqualityDmaintenanceA Model Context Protocol server that provides LLMs with Pokémon data access and battle simulation capabilities, including an interactive web interface.
Appeared in Searches
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/jlgrimes/ptcg-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server