README
🚀 Pokémon VGC伤害计算器MCP服务器
这是一个使用模型上下文协议(MCP)构建的服务器,它借助@smogon/calc包为AI智能体提供了一个标准化接口,用于进行宝可梦伤害计算。
✨ 主要特性
- 符合MCP标准的服务器:使用TypeScript和官方MCP SDK构建。
- 精确的伤害计算:由社区验证的
@smogon/calc库提供支持。 - 全面的输入处理:可处理宝可梦的各项数据,如属性、特性、携带物品、招式以及场地条件等。
- 错误处理:能对无效的宝可梦名称、招式和输入进行验证并处理。
- 支持Vercel部署:零配置即可轻松部署。
📦 安装指南
npm install -g pokemon-vgc-calc-mcp
🚀 快速开始
开发
npm run build # 构建TypeScript
npm run test # 运行测试计算
MCP客户端配置
配置你的MCP客户端(如Claude Desktop、Cursor等):
使用远程npm包:
{
"mcpServers": {
"pokemon-calc": {
"command": "npx",
"args": ["pokemon-vgc-calc-mcp"],
"env": {}
}
}
}
本地开发: 先将仓库克隆到本地,构建项目,然后配置MCP客户端:
$ 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": {}
}
}
}
可用工具
服务器提供了一个主要工具:calculateDamage
工具:calculateDamage
用于计算攻击方宝可梦和防守方宝可梦之间的战斗伤害。
输入参数:
attacker:宝可梦对象,包含宝可梦的种类、等级、属性、特性、携带物品等信息。defender:宝可梦对象,包含宝可梦的种类、等级、属性、特性、携带物品等信息。move:招式对象,包含招式名称和可选的会心一击标志。field:场地条件,包括天气、地形和副作用等。
输出:
description:人类可读的计算结果。damage:伤害范围 [最小值, 最大值]。koChance:击倒概率描述。fullResult:来自smogon/calc的完整结果对象。
💻 使用示例
基础用法
当MCP客户端调用该工具时,可传入如下参数:
{
"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"
}
}
输出:
**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
🔧 技术细节
项目结构
src/
├── index.ts # 主MCP服务器实现
├── calculator.ts # 伤害计算包装器
└── types.ts # TypeScript类型定义
测试
本地MCP服务器测试
你可以使用MCP检查器来测试本地MCP服务器:
npm run build
npx @modelcontextprotocol/inspector node path/to/pokemon-vgc-calc-mcp/dist/index.js
测试输入示例
使用以下输入来测试calculateDamage工具:
{
"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": {}
}
预期输出
**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
📄 许可证
本项目采用MIT许可证。
作者说明
如果你对本项目的进展感兴趣,欢迎关注该仓库以获取实时更新!
如果你有关于本项目的相关问题,可通过以下方式联系我:
- 发送邮件至 professor.ragna@gmail.com
- 在Twitter上联系我 @professorragna
如果你有意资助本项目,可以点击这里支持我。任何形式的支持我都万分感激!
Scan to join WeChat group