Skip to main content
Glama

Pokémon VGC Damage Calculator MCP Server

README.md4.62 kB
# 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. <a href="https://glama.ai/mcp/servers/@jpbullalayao/pokemon-vgc-calc-mcp"> <img width="380" height="200" src="https://glama.ai/mcp/servers/@jpbullalayao/pokemon-vgc-calc-mcp/badge" alt="Pokémon VGC Damage Calculator Server MCP server" /> </a> ## Features - **MCP-compliant server** with TypeScript and the official MCP SDK - **Accurate damage calculations** powered by the community-vetted `@smogon/calc` library - **Comprehensive 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 ## Prerequisites - Node.js 18+ - npm ## Installation ```bash npm install -g pokemon-vgc-calc-mcp ``` ## Development ```bash npm run build # Build TypeScript npm run test # Run test calculation ``` ### MCP Client Configuration Configure your MCP client (Claude Desktop, Cursor, etc.): **Using remote npm package:** ```json { "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 ``` ```json { "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 flag - `field`: Field conditions including weather, terrain, and side effects **Output:** - `description`: Human-readable calculation result - `damage`: [min, max] damage range - `koChance`: Knock-out probability description - `fullResult`: Complete result object from smogon/calc ### Example Usage When called by an MCP client, the tool accepts parameters like: ```json { "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 OHKO ``` ## Testing ### Local MCP Server Testing You can test the local MCP server using the MCP Inspector: ```bash npm run build npx @modelcontextprotocol/inspector node path/to/pokemon-vgc-calc-mcp/dist/index.js ``` #### Test Input Example Use the following input to test the `calculateDamage` tool: ```json { "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 2HKO ``` ## Project Structure ``` src/ ├── index.ts # Main MCP server implementation ├── calculator.ts # Damage calculation wrapper └── types.ts # TypeScript type definitions ``` ## Author'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](https://twitter.com/professorragna) If you're interested in helping to fund this project, you can support me [here](https://www.buymeacoffee.com/professorragna). Any and all support is greatly appreciated! ## License MIT

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/jpbullalayao/pokemon-vgc-calc-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server