Pokémon TCG Pocket MCP Server
Search every Pokémon TCG Pocket card with flexible, meaning-aware queries.
Search cards by name (typo-tolerant), type, rarity, set, evolution stage, category, and language.
Describe ability or trainer effects (e.g., "heal all Pokémon") for semantic search.
Describe attacks (e.g., "discard energy") for semantic search.
Combine exact filters (type + stage + set) in one call.
Get card details: HP, attacks with cost/damage, ability/effect text, image link, set, and rarity.
Page through results with
offsetandnextOffset.Search in six languages (English, French, German, Spanish, Italian, Brazilian Portuguese), with English fallback for untranslated cards.
Works offline after initial download, with local embedding model via Ollama or OpenAI.
Connects to MCP clients over stdio or HTTP (Claude, Cursor, VS Code).
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Pokémon TCG Pocket MCP ServerFind Water Pokémon that can heal"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Pokémon TCG Pocket MCP Server
Pokémon TCG Pocket MCP Server is an open-source Model Context Protocol (MCP) server that lets AI assistants like Claude search every Pokémon TCG Pocket card by name, type, rarity, set, evolution stage, ability effect and attack, in six languages.
Ask your AI assistant questions like "Which Water Pokémon can heal?" or "Show me all Crown rare cards from Genetic Apex", and it looks the answer up in a local, always up-to-date card database instead of guessing.
Key features
One search tool for all cards. Pokémon, Items, Supporters, Tools and Stadiums from every Pokémon TCG Pocket set (Genetic Apex, Mythical Island, Space-Time Smackdown and all later sets).
Search by meaning. Describe an ability or attack in your own words ("discard energy for big damage") and get the cards that do that, not just keyword matches.
Typo-tolerant names. "charizrd" still finds Charizard. Set names work the same way.
Exact filters. Type (Grass, Fire, Water, ...), rarity (One Diamond to Crown), evolution stage (Basic, Stage 1, Stage 2), card category and set.
Six languages. English, French, German, Spanish, Italian and Brazilian Portuguese card texts. Cards not yet translated fall back to English.
Always up to date. Downloads new sets and card fixes automatically every 24 hours from TCGdex.
Runs locally. Card data and search stay on your machine. Works with a free local embedding model through Ollama, or with OpenAI.
Works with any MCP client. Claude Desktop, Claude Code, Cursor, VS Code and other MCP-compatible apps, over stdio or HTTP.
Related MCP server: PokeAPI MCP Server
Example questions
Once connected, ask your assistant things like:
"Find Pokémon TCG Pocket cards that heal damage from all your Pokémon."
"Which Stage 2 Water Pokémon are there?"
"Show me the Crown rare cards from Genetic Apex."
"What does Glurak-ex do?" (German card names work too)
"Which Supporter cards let me draw cards?"
"Find Fire Pokémon whose attacks discard energy."
How to install
You need either Docker or Node.js 24+ with pnpm.
Option 1: Docker Compose (recommended)
This runs the server, its database and a local embedding model together.
git clone https://github.com/janthoXO/pokemon-tcg-pocket-mcp.git
cd pokemon-tcg-pocket-mcp
docker compose up -dThe server is then available at http://127.0.0.1:3000/mcp. The first start downloads the embedding model (about 1 GB) and all card data, which takes a few minutes.
Option 2: Node.js
git clone https://github.com/janthoXO/pokemon-tcg-pocket-mcp.git
cd pokemon-tcg-pocket-mcp
pnpm install
pnpm build
ollama pull bge-m3 # free local embedding model, requires OllamaYour MCP client then starts the server itself (see below).
How to connect your AI assistant
Claude Code
With Docker Compose running:
claude mcp add --transport http pokemon-tcg-pocket http://127.0.0.1:3000/mcpClaude Desktop, Cursor and other MCP clients
Add this to your client's MCP configuration (for Claude Desktop: claude_desktop_config.json). Replace the path with your checkout:
{
"mcpServers": {
"pokemon-tcg-pocket": {
"command": "node",
"args": ["/path/to/pokemon-tcg-pocket-mcp/dist/index.js"],
"env": {
"LANGUAGES": "en,de",
"DATABASE_URL": "file:/path/to/pokemon-tcg-pocket-mcp/data/cards.db"
}
}
}
}Set LANGUAGES to the languages you want (en, fr, de, es, it, pt-br). Use an absolute DATABASE_URL path, because MCP clients often start the server from a different working directory. All settings are listed in the developer guide.
How to use the search
The server gives your assistant one tool, search_cards. Your assistant fills in the fields for you; you just ask in normal language. Every field except language is optional, and empty fields match all cards.
Field | What it does | Example |
| Language of the card texts (required) |
|
| Card name, typos allowed |
|
| Pokémon type |
|
| Pokémon, Item, Supporter, Tool or Stadium |
|
| Evolution stage |
|
| Card rarity |
|
| Set code or set name |
|
| Describe an ability or trainer effect |
|
| Describe an attack |
|
| Maximum number of results (1 to 50) |
|
| Skip this many results, to get the next page |
|
Each result includes the card's name, type, stage, rarity, HP, set, ability or effect text, attacks with energy cost and damage, and a card image link. The response also reports total matching cards and, when more remain, a nextOffset to pass as offset for the next page.
How it works
flowchart LR
A[Your AI assistant] -- "search_cards" --> S[Pokémon TCG Pocket<br/>MCP server]
S --> D[(Local card database)]
T[(TCGdex card API)] -- "daily update" --> S
E[Embedding model<br/>Ollama or OpenAI] -. "understands effect<br/>and attack texts" .- SDaily update. The server downloads all Pokémon TCG Pocket cards from the free TCGdex API and stores them in a local database. After the first download, it only fetches sets that changed.
Understanding card texts. An embedding model turns every ability and attack text into a vector, so the server can find cards by meaning, not only by exact words.
Search. Your assistant calls
search_cards. The server filters by exact fields (type, rarity, stage, set), matches names with typo tolerance, and ranks the rest by how close the ability or attack text is to your description.
Technical details are in the developer guide.
Comparison
Feature | This MCP server | Calling the TCGdex API directly | Asking an AI without tools |
Search by ability or attack meaning | Yes | No | Unreliable |
Typo-tolerant card names | Yes | No | Yes |
Combine filters (type + stage + set) | Yes, in one call | Several requests | No |
Includes newest sets | Yes, updated daily | Yes | Only up to training cutoff |
Language fallback to English | Yes | No | Varies |
Works offline after first download | Yes (with local model) | No | Depends on the app |
Frequently asked questions
What is an MCP server?
The Model Context Protocol is an open standard that lets AI assistants use external tools. This MCP server adds a Pokémon TCG Pocket card search tool to any assistant that supports MCP.
Which Pokémon TCG Pocket sets are included?
All sets that TCGdex lists for Pokémon TCG Pocket, including promo sets. New sets appear automatically after the next daily update.
Which languages are supported?
English (en), French (fr), German (de), Spanish (es), Italian (it) and Brazilian Portuguese (pt-br). If a card is not yet available in your language, you get the English text and the result is marked with fallbackLanguage: "en".
Does it cost anything?
No. The server, TCGdex and the default Ollama embedding model are free. If you choose an OpenAI embedding model instead, OpenAI charges for embeddings (well under one US dollar for the first full download).
Does it include deck building, prices or meta statistics?
No. It is a card search. Card data comes from TCGdex, which has no prices or tournament data for Pokémon TCG Pocket.
Limitations and security
This server is built for personal use on your own computer or a trusted network:
The HTTP endpoint has no login. Keep it on
127.0.0.1(the default) and do not expose it to the internet.Run one server per database.
Details and hardening options are in the developer guide.
Credits and disclaimer
Card data from TCGdex. Pokémon and Pokémon TCG Pocket are trademarks of Nintendo, Creatures and GAME FREAK. This project is not affiliated with or endorsed by The Pokémon Company, Nintendo, Creatures, GAME FREAK or DeNA.
License
MIT. Free to use, modify and share, including commercially.
Available Tools
1 toolsearch_cardsSearch Pokémon TCG Pocket cardsARead-only
Search Pokémon TCG Pocket cards. All fields except language are optional; omitted or null fields match everything. Enum fields filter exactly, name and set filter fuzzily, effect and attack rank by meaning. Enum values are English in every language. Results with fallbackLanguage exist only in that language.
| Name | Required | Description | Default |
|---|---|---|---|
| set | No | Set id (e.g. "A1") or fuzzy set name. | |
| name | No | Card name, fuzzy matched. | |
| type | No | Pokémon type. | |
| limit | No | ||
| stage | No | Evolution stage, name or 0-2. | |
| attack | No | Semantic search over attacks (name, energy cost, damage, effect). | |
| effect | No | Semantic search over ability and trainer effect texts. | |
| offset | No | Number of results to skip, for paging. Use nextOffset from the previous call. | |
| rarity | No | ||
| category | No | ||
| language | Yes | Language of card texts and of name/set queries. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description significantly extends the annotations (readOnlyHint=true): it discloses query interpretation behavior (fuzzy, exact, semantic ranking), null-field semantics, and the fallbackLanguage quirk. This gives the agent a strong model of what to expect beyond the safety hint.
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?
Four sentences, each carrying distinct information: scope, optionality, matching behavior, and language/fallback. No filler or redundancy; the most important usage rule (all fields optional) is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the essential behavioral aspects: filtering semantics, null handling, and language fallback. Pagination is left to the schema (offset/limit descriptions). With no output schema, it doesn't state the return shape, but 'search cards' makes that largely inferable; minor gap only.
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 73%, and the description adds group-level semantics not explicit in the schema: name/set are fuzzy, effect/attack are semantic, enum fields are exact. It does not cover rarity/category specifics, but the 'enum fields filter exactly' rule applies to them, and the schema carries most parameter descriptions.
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 opens with 'Search Pokémon TCG Pocket cards' – a specific verb and resource that unambiguously defines the operation. With no sibling tools, there is no risk of confusion, and the rest of the description reinforces scope by describing the filtering model.
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 gives explicit guidance on how to query: optional fields, null semantics, exact vs fuzzy vs semantic matching, and English-only enum values. Since there are no sibling alternatives, there are no 'use instead' conditions to state, so the guidance is clear and sufficient.
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
v0.0.4- Changed
search_cards1 field changed- added
Input schema / properties / offsetAdded value: +{ + "default": 0, + "description": "Number of results to skip, for paging. Use nextOffset from the previous call.", + "maximum": 9007199254740991, + "minimum": 0, + "type": "integer" +}
1 tool update
v1.0.0- First observed
search_cards
TDQS
Scored across 1 tool
With only a single tool, there is no possibility of tool confusion or overlap. The tool's purpose is clearly defined and self-contained.
The sole tool uses a clear verb_noun convention ('search_cards'), which is internally consistent. With only one tool, the naming pattern is trivially uniform.
A single tool feels too sparse for a Pokémon TCG Pocket server, which likely expects capabilities like fetching card details, browsing sets, or managing collections. One search tool does not justify a server in most practical contexts.
The server only offers search, with no way to retrieve, compare, or manage specific cards or sets. This leaves significant gaps for any workflow beyond simple card lookup, forcing agents to improvise or fail.
Maintenance
Related MCP Connectors
Look up Pokemon TCG Pocket cards, sets, packs, and evaluate decks with battle simulations.
Live TCG card and decklist prices for AI assistants. 22+ games, no account, ready-to-buy links.
Provide detailed Pokémon data and information through a standardized MCP interface. Enable LLMs an…
TCGdex MCP — multi-language open trading card game database (Pokémon TCG and more).
Related MCP Servers
- AlicenseBqualityDmaintenanceEnables 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.221MIT
- AlicenseBqualityDmaintenanceEmpowers AI assistants to fetch and explore comprehensive Pokémon data from PokeAPI via 47 tools covering Pokémon, moves, items, game mechanics, and more.4781 npm1ISC
- AlicenseAqualityBmaintenanceEnables managing a Pokémon TCG Pocket card catalog and personal collection in SQLite, with card search, collection statistics, meta deck queries, and OCR-based capture rounds processed locally.17MIT
- FlicenseAqualityDmaintenanceProvides AI assistants with real-time access to Magic: The Gathering card data, prices, rulings, search, and synergy discovery via the Scryfall API.5-