宝可梦伤害计算服务

一个基于Model-Context Protocol (MCP)的服务器,为AI代理提供标准化的宝可梦伤害计算接口。

  • by jpbullalayao
  • TypeScript
  • 本地部署
  • 2 星标
  • 更新于
在 GitHub 查看 jpbullalayao/pokemon-vgc-calc-mcp

使用说明

宝可梦VGC伤害计算器MCP服务器

一个使用模型-上下文协议(MCP)构建的服务器,为人工智能代理提供一个标准化接口,用于执行宝可梦伤害计算 @smogon/calc 包。

功能

  • 符合MCP标准的服务器 使用TypeScript和官方MCP SDK
  • 准确的伤害计算 由社区审核通过的平台提供支持 @smogon/calc 图书馆
  • 全面的输入处理 对于宝可梦的属性、特性、道具、招式和场地条件
  • 错误处理 对于无效的宝可梦名称、招式以及输入验证
  • Vercel 部署准备就绪 支持零配置部署

先决条件

  • Node.js 18+
  • npm

安装

npm install -g pokemon-vgc-calc-mcp

开发

npm run build  # Build TypeScript
npm run test   # Run test calculation

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

工具:计算伤害

计算攻击方和防守方宝可梦之间的战斗伤害。

输入参数:

  • 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

测试

本地MCP服务器测试

您可以使用MCP Inspector测试本地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

项目结构

src/
├── index.ts       # Main MCP server implementation
├── calculator.ts  # Damage calculation wrapper
└── types.ts       # TypeScript type definitions

作者注

对这个项目的进展感兴趣吗?欢迎随时关注仓库获取最新更新!

如果你需要就这个项目联系我,请随时通过以下任一方式:

如果你有兴趣资助这个项目,你可以支持我 好的,以下是原文内容的翻译:任何支持都将不胜感激!

许可证

麻省理工学院