MCP server providing VGC competitive Pokemon stats, damage calculations, and teambuilding tools to LLMs like Claude.
- Usage Statistics - Pokemon usage rates, common items, moves, abilities, EV spreads, and Tera types from Smogon ladder
- Tournament Teams - Search 500+ tournament teams from the VGC Pastes Repository with full details
- Damage Calculator - Full damage calculations using @smogon/calc with support for items, abilities, weather, terrain, and more
- Stat Calculator - Calculate actual stats at Level 50, compare speeds, find speed tier benchmarks
- Type Analysis - Type weaknesses/resistances, team type coverage analysis, offensive coverage
- Pokedex - Pokemon stats, moves, abilities, items, learnsets from Pokemon Showdown
- Python 3.11+
- Node.js 18+ (for damage calculator)
- uv (recommended) - Install from astral.sh
# Clone the repository
git clone https://github.com/dtsong/smogon-vgc-mcp.git
cd smogon-vgc-mcp
# Install dependencies
uv sync
# Install Node.js dependencies for damage calculator
npm installuvx --from git+https://github.com/dtsong/smogon-vgc-mcp smogon-vgc-mcpAdd the MCP server to your Claude Code settings file.
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Linux:
~/.config/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
Or for Claude Code CLI, use ~/.claude/settings.json.
{
"mcpServers": {
"smogon-vgc": {
"command": "uv",
"args": [
"run",
"--directory",
"/path/to/smogon-vgc-mcp",
"smogon-vgc-mcp"
]
}
}
}Replace /path/to/smogon-vgc-mcp with the actual path where you cloned the repository.
{
"mcpServers": {
"smogon-vgc": {
"command": "uvx",
"args": [
"--from",
"git+https://github.com/dtsong/smogon-vgc-mcp",
"smogon-vgc-mcp"
]
}
}
}After configuring the server, you'll need to fetch the data. Ask Claude to run these commands:
"Please refresh the VGC data"
This will trigger:
refresh_data- Fetches Smogon ladder usage statsrefresh_moveset_data- Fetches Tera types and checks/counters datarefresh_pokepaste_data- Fetches tournament teamsrefresh_pokedex_data- Fetches Pokedex data from Pokemon Showdown
Data is cached locally in a SQLite database, so you only need to refresh periodically.
Once configured, you can ask Claude things like:
- "What are the top 20 Pokemon in VGC right now?"
- "Show me Incineroar's usage stats, common items, and EV spreads"
- "What are Flutter Mane's most common teammates?"
- "Find Pokemon that commonly use Assault Vest"
- "What counters Urshifu?"
- "Find teams that use Incineroar + Flutter Mane core"
- "Calculate damage from 252 Atk Jolly Urshifu Close Combat into 252 HP / 84 Def Careful Incineroar"
- "How much damage does Flutter Mane do to Kingambit after Intimidate?"
- "What's the minimum Attack EVs needed for Dragonite to OHKO Amoonguss with Tera Normal Extreme Speed?"
- "Compare speed between max speed Kingambit and min speed Torkoal"
- "What does 252 Speed Jolly Flutter Mane outspeed?"
- "What are Kingambit's type weaknesses?"
- "Analyze type coverage for my team: Incineroar, Flutter Mane, Urshifu, Rillaboom, Farigiraf, Archaludon"
- "What moves can Incineroar learn?"
- "What's the base power of Moonblast?"
- "Show me all Fairy-type Pokemon"
get_pokemon- Comprehensive stats for a Pokemonfind_pokemon- Search Pokemon by nameget_top_pokemon- Usage rankingscompare_pokemon_usage- Compare across monthscompare_elo_brackets- Compare across skill levels
get_pokemon_teammates- Common teammatesfind_pokemon_by_item- Find users of an itemfind_pokemon_by_move- Find users of a movefind_pokemon_by_tera- Find users of a Tera typeget_pokemon_counters- Find counters
get_tournament_team- Full team detailssearch_tournament_teams- Search by Pokemon/player/tournamentget_pokemon_tournament_spreads- EV spreads from tournamentsfind_teams_with_pokemon_core- Find teams with specific Pokemon
calc_damage- Damage calculation with all modifiersanalyze_matchup- Full matchup analysiscalculate_pokemon_stats- Stat calculationcompare_pokemon_speeds- Speed comparisonget_speed_benchmarks- Speed tier analysis
get_type_weaknesses- Pokemon type matchupsanalyze_team_type_coverage- Team weakness analysisanalyze_move_coverage- Offensive coverage
dex_pokemon- Pokemon infodex_move- Move infodex_ability- Ability infodex_item- Item infodex_learnset- Pokemon learnset
The server supports multiple VGC formats. Most tools accept a format parameter:
regf- Regulation F (default)
Use list_available_formats to see all supported formats.
# Run tests
uv run pytest
# Lint and format
uv run ruff check --fix .
uv run ruff format .
# Type check
uv run ty check
# Test with MCP Inspector
npx @modelcontextprotocol/inspector uv run smogon-vgc-mcpMIT