这是一个使用模型上下文协议(MCP)构建的服务器,它借助@smogon/calc包为AI智能体提供了一个标准化接口,用于进行宝可梦伤害计算。
@smogon/calc库提供支持。npm install -g pokemon-vgc-calc-mcp
npm run build # 构建TypeScript
npm run test # 运行测试计算
配置你的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
用于计算攻击方宝可梦和防守方宝可梦之间的战斗伤害。
输入参数:
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服务器:
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许可证。
如果你对本项目的进展感兴趣,欢迎关注该仓库以获取实时更新!
如果你有关于本项目的相关问题,可通过以下方式联系我:
如果你有意资助本项目,可以点击这里支持我。任何形式的支持我都万分感激!