This server provides AI assistants with comprehensive, structured Pokemon battle data from Pokemon Showdown for competitive analysis and team building.
Core Data Lookup:
Pokemon details - Base stats, types, abilities, weight, and competitive tier
Move information - Power, accuracy, type, category, priority, and effects
Ability descriptions - Full explanations of ability mechanics
Item effects - Held item battle effects
Battle Mechanics:
Type effectiveness calculator - Damage multipliers for type matchups (e.g., Electric vs Water/Flying = 4x)
Priority move search - Find moves that act before normal speed order
Strategic Tools:
Pokemon by ability - Discover all Pokemon with a specific ability
Dangerous abilities list - Battle-critical abilities categorized by impact (immunity, defense, reflect, offense, priority, contact)
Use Cases:
Team building and type coverage analysis
Matchup calculations and speed tier optimization
Battle strategy and replay analysis
Learning competitive mechanics
Key Features:
Works completely offline with local data (1,500+ Pokemon, 950+ moves, 300+ abilities, 580+ items)
No API keys or rate limits
Zero hallucination - authoritative Pokemon Showdown data
Click on "Install 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., "@Pokemon Showdown MCP Serverwhat are Garchomp's stats and abilities?"
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.
mcpkmn-showdown
An MCP server that gives AI assistants complete knowledge of competitive Pokemon.
Give Claude (or any MCP-compatible LLM) instant access to Pokemon stats, moves, abilities, items, and type matchups—no API keys, no rate limits, works offline.

Why This Exists
Without this MCP server, getting accurate Pokemon battle data into an LLM is painful:
Hallucination city — LLMs frequently make up stats, forget abilities, or miscalculate type matchups
No structured data — You're stuck copy-pasting from Bulbapedia or Serebii
Can't build agents — No programmatic way for an AI to query battle mechanics
With mcpkmn-showdown:
Zero hallucination — Data comes directly from Pokemon Showdown, the competitive standard
Structured responses — Tools return formatted data ready for reasoning
Agent-ready — Build bots that analyze replays, suggest teams, or play battles
Quickstart (5 minutes)
1. Install
2. Configure Claude Desktop
Add to your config file:
OS | Path |
macOS |
|
Windows |
|
3. Restart Claude Desktop
4. Try it
Ask Claude: "What's the best ability for Garchomp and why?"
What You Can Do
Here are concrete workflows this MCP enables:
Workflow | Example Prompt |
Team Analysis | "Analyze this team's type coverage and suggest improvements" |
Matchup Calc | "Is Choice Scarf Garchomp fast enough to outspeed Dragapult?" |
Set Building | "Build a Trick Room sweeper that can handle Fairy types" |
Replay Analysis | "What went wrong in this battle? [paste replay log]" |
Learning | "Explain how Intimidate affects damage calculations" |
API Reference
Tools Overview
Tool | Purpose | Key Input |
| Pokemon stats, types, abilities |
|
| Move power, accuracy, effects |
|
| What an ability does in battle |
|
| Held item effects |
|
| Damage multiplier calculation |
|
| Find priority moves |
|
| Pokemon with a specific ability |
|
| Battle-critical abilities by category |
|
get_pokemon
Look up complete Pokemon data.
Schema:
Example:
get_move
Look up move details including effects and priority.
Schema:
Example:
get_ability
Look up what an ability does in battle.
Schema:
Example:
get_item
Look up held item battle effects.
Schema:
Example:
get_type_effectiveness
Calculate type matchup multipliers.
Schema:
Example:
search_priority_moves
Find moves that act before normal speed order.
Schema:
Example:
search_pokemon_by_ability
Find all Pokemon with a specific ability.
Schema:
Example:
list_dangerous_abilities
List abilities that significantly impact battle outcomes.
Schema:
Categories:
immunity— Levitate, Flash Fire, Volt Absorb, Water Absorb, etc.defense— Multiscale, Fur Coat, Fluffy, Marvel Scale, etc.reflect— Magic Bounceoffense— Huge Power, Pure Power, Gorilla Tactics, etc.priority— Prankster, Gale Wingscontact— Rough Skin, Iron Barbs, Flame Body, Static, etc.
Architecture
Why MCP?
LLMs hallucinate Pokemon data — wrong stats, forgotten abilities, botched type calculations. MCP tools let the model query authoritative data instead of guessing from training.
Why local JSON instead of connecting to Pokemon Showdown?
Pokemon Showdown doesn't have a REST API. Their data is served as minified JavaScript for their web client. Connecting live would mean parsing JS on every query, network latency, rate limiting concerns, and breaking if they change formats.
Approach | Tradeoff |
Local JSON | Instant, offline, reliable — but data can go stale |
Live connection | Always fresh — but slow, fragile, requires internet |
For reference data (stats, moves, abilities), local is the right call. The data only changes with new games/DLC. For live features (ladder stats, ongoing battles), we'd need WebSocket connections — that's on the roadmap.
Data sources (from Pokemon Showdown):
pokedex.json— 1,500+ Pokemon with stats, types, abilitiesmoves_showdown.json— 950+ moves with effectsabilities_full.json— 300+ abilities with descriptionsitems.json— 580+ items with effectstypechart.json— Complete type effectiveness matrix
To refresh the data: python -m mcpkmn_showdown.data_fetcher
Safety & Limits
Concern | How It's Handled |
Rate limits | None — all data is local, no external API calls |
Data freshness | Ships with latest Showdown data; manually updateable |
Input validation | Names normalized and validated before lookup |
Error handling | Returns helpful "not found" messages, never crashes |
Credential handling | No credentials needed, no auth, no API keys |
Roadmap
Planned features:
Live battle integration (connect to a running Showdown battle)
Team import/export (paste Showdown format, get structured data)
Damage calculator integration
Format-specific tier lists and banlists
Usage statistics from Smogon
Help wanted — good first issues:
Add
get_formattool to explain format rules (OU, UU, etc.)Add
search_pokemon_by_typetoolAdd
search_moves_by_typetoolImprove form normalization (regional forms, Gigantamax, etc.)
Add more test coverage
See CONTRIBUTING.md for how to get started.
Contributing
See CONTRIBUTING.md for full guidelines. Quick start:

We Want Your Feedback
If you try this out, please let us know:
Is the tool naming/schema intuitive for an agent? Would different boundaries help?
What's missing for your use case? Teambuilding? Laddering? Replay analysis? Eval harness?
Any security/abuse concerns? Anything that could be misused?
Does it behave well under load? Concurrent requests? Long sessions?
Open an issue or reach out: @drewsungg
Related Projects
pokemon-llm-battle-bot — LLM-powered Pokemon battle bot using this MCP
Pokemon Showdown — The competitive battle simulator
Model Context Protocol — The MCP specification
License
MIT License — see LICENSE for details.
Author
Andrew Sung — @drewsungg