Pokémon VGC Damage Calculator MCP Server
The Pokémon VGC Damage Calculator MCP Server allows AI agents to perform accurate and detailed Pokémon battle damage calculations with the following capabilities:
Calculate damage output between attacking and defending Pokémon, considering their complete profiles (species, level, stats, EVs, IVs, nature, ability, item, status, and stat boosts)
Incorporate battle conditions including weather, terrain, side effects (Light Screen, Reflect), entry hazards (Stealth Rock, Spikes), and Ruin abilities
Determine damage ranges (minimum to maximum) and knockout probability
Provide both human-readable summaries and detailed calculation results
Handle errors and validate inputs for invalid Pokémon names, moves, or conditions
Offer a standardized MCP-compliant interface for AI interaction
Support zero-config deployment on Vercel with included testing tools
Required for running the MCP server, with the README specifying Node.js 18+ as a prerequisite
Used for package management and distribution of the Pokémon VGC Damage Calculator MCP server
Used for implementing the MCP server with type safety and modern JavaScript features
Provides deployment support for the Pokémon VGC Damage Calculator, allowing zero-configuration deployment to Vercel's platform
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 VGC Damage Calculator MCP Server calculate damage for Chien-Pao Icicle Crash vs Flutter Mane"
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 VGC Damage Calculator MCP Server
A server built using Model-Context Protocol (MCP) that provides AI agents a standardized interface for performing Pokémon damage calculations using the @smogon/calc package.
Features
MCP-compliant server with TypeScript and the official MCP SDK
Accurate damage calculations powered by the community-vetted
@smogon/calclibraryComprehensive input handling for Pokémon stats, abilities, items, moves, and field conditions
Error handling for invalid Pokémon names, moves, and input validation
Vercel deployment ready with zero-config deployment support
Related MCP server: PokeMCP
Prerequisites
Node.js 18+
npm
Installation
npm install -g pokemon-vgc-calc-mcpDevelopment
npm run build # Build TypeScript
npm run test # Run test calculationMCP Client Configuration
Configure your MCP client (Claude Desktop, Cursor, etc.):
Using remote npm package:
{
"mcpServers": {
"pokemon-calc": {
"command": "npx",
"args": ["pokemon-vgc-calc-mcp"],
"env": {}
}
}
}Local development:
Clone repo locally, build the project and then configure MCP client:
$ git clone git@github.com:jpbullalayao/pokemon-vgc-calc-mcp.git
$ npm install
$ npm run build{
"mcpServers": {
"pokemon-calc": {
"command": "node",
"args": ["path/to/pokemon-vgc-calc-mcp/dist/index.js"],
"env": {}
}
}
}Tools Available
The server exposes one primary tool: calculateDamage
Tool: calculateDamage
Calculates battle damage between an attacking and defending Pokémon.
Input Parameters:
attacker: Pokémon object with species, level, stats, ability, item, etc.defender: Pokémon object with species, level, stats, ability, item, etc.move: Move object with name and optional critical hit flagfield: Field conditions including weather, terrain, and side effects
Output:
description: Human-readable calculation resultdamage: [min, max] damage rangekoChance: Knock-out probability descriptionfullResult: Complete result object from smogon/calc
Example Usage
When called by an MCP client, the tool accepts parameters like:
{
"attacker": {
"species": "Pikachu",
"level": 50,
"ability": "Static",
"item": "Light Ball",
"nature": "Timid",
"evs": { "spa": 252, "spe": 252, "hp": 4 }
},
"defender": {
"species": "Charizard",
"level": 50,
"ability": "Blaze"
},
"move": {
"name": "Thunderbolt"
},
"field": {
"gameType": "Singles"
}
}Output:
**252 SpA Light Ball Pikachu Thunderbolt vs. 0 HP / 0 SpD Charizard: 198-234 (107 - 126.4%) -- guaranteed OHKO**
Damage: 198-234
KO Chance: guaranteed OHKOTesting
Local MCP Server Testing
You can test the local MCP server using the MCP Inspector:
npm run build
npx @modelcontextprotocol/inspector node path/to/pokemon-vgc-calc-mcp/dist/index.jsTest Input Example
Use the following input to test the calculateDamage tool:
{
"attacker": {
"species": "Chien-Pao",
"nature": "Jolly",
"evs": {
"atk": 252,
"spe": 252,
"hp": 4
},
"level": 50
},
"defender": {
"species": "Flutter Mane",
"nature": "Modest",
"evs": {
"hp": 164,
"def": 100
},
"level": 50
},
"move": {
"name": "Icicle Crash"
},
"field": {}
}Expected Output
**252 Atk Sword of Ruin Chien-Pao Icicle Crash vs. 164 HP / 100 Def Flutter Mane: 126-148 (83.4 - 98%) -- guaranteed 2HKO**
Damage: 126-148
KO Chance: guaranteed 2HKOProject Structure
src/
├── index.ts # Main MCP server implementation
├── calculator.ts # Damage calculation wrapper
└── types.ts # TypeScript type definitionsAuthor's Note
Interested in the progress of this project? Feel free to follow the repo for live updates!
If you need to get a hold of me regarding this project, feel free to either:
email me at professor.ragna@gmail.com
tweet me @professorragna
If you're interested in helping to fund this project, you can support me here. Any and all support is greatly appreciated!
License
MIT
Available Tools
1 toolcalculateDamageC
Calculates the battle damage between an attacking and a defending Pokémon, considering their stats, abilities, items, and field conditions.
Inputs: attacker (required), defender (required), move (required), field (required).
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 1 tool
With only one tool, there is no possibility of ambiguity or overlap between tools. The tool's purpose is clearly defined and distinct by default.
A single tool inherently has consistent naming, as there are no other tools to compare it against. The name 'calculateDamage' follows a clear verb_noun pattern.
One tool is too few for a server named 'Pokémon VGC Damage Calculator MCP Server', which implies a domain requiring multiple operations like damage calculation, stat lookup, move effects, or team analysis. A single tool feels incomplete for the apparent scope.
The server is severely incomplete for its domain. While damage calculation is a core function, there are obvious gaps such as missing tools for retrieving Pokémon stats, moves, abilities, or handling team compositions, which are essential for a comprehensive VGC calculator.
Maintenance
Related MCP Connectors
MCP server for OpenAI API (chat completions, image generation, embeddings) via AceDataCloud
MCP server for AI dialogue using various LLM models via AceDataCloud
Hosted MCP server to manage a restaurant menu from AI agents - 39 tools over the DuckHub API.
Official MCP server for Agentwork — delegate tasks to AI agents with human-in-the-loop
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceAn MCP server implementation that enables users to interact with the PokeAPI to fetch Pokemon information through natural language queries.-
- FlicenseBqualityDmaintenanceAn MCP server that provides detailed Pokémon information by integrating with the PokeAPI, allowing users to fetch comprehensive data about Pokémon and simulate battles.22-
- AlicenseNot gradedqualityDmaintenanceAn MCP server that enables accurate status and damage calculations for third-generation Pokémon games, including support for complex factors like weather, abilities, and items. It also provides tools for calculating optimal effort value (EV) distributions through brute-force damage matrix simulations.MIT
- 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.-