宝可梦数据与战斗模拟服务

提供宝可梦数据资源和战斗模拟功能的MCP服务器,适用于游戏开发和数据分析场景。

  • by ishitaakolkar
  • JavaScript
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 ishitaakolkar/Pokemon-MCP-Battle-Simulation

使用说明

宝可梦MCP服务器与动画前端

概述

该项目实现了一个模型上下文协议(MCP)服务器,具有两大主要功能:

  1. 宝可梦数据资源 提供来自公众的全面宝可梦数据 PokéAPI,包括基础属性、类型、特性、招式以及进化链。
  2. 战斗模拟工具: 模拟任意两只宝可梦之间的战斗,实现属性相克、伤害计算逻辑、回合顺序以及状态效果。

提供了一个可选的HTML/CSS/JavaScript前端界面,用于演示目的,允许用户查看宝可梦的详细信息并运行动画战斗模拟。


特点/特性

后端(Node.js,Express)

  • 从PokéAPI检索宝可梦数据
  • 基础属性、类型、特性、招式、进化链
  • 与以下元素进行战斗模拟:
    • 类型有效性倍数
    • 简化伤害计算,包括稳定弹(STAB,即Same Type Attack Bonus,同类型攻击加成)
    • 基于速度的行动顺序
    • 状态效果:灼烧、中毒、麻痹
  • 全面战斗日志生成
  • 基于JSON的API响应,便于与其他系统或大型语言模型(LLM)轻松集成

前端

  • 搜索宝可梦并显示:
    • 官方精灵图(或官方角色图像)
    • 以表格形式展示的基础属性
    • 带颜色编码的类型徽章
    • 能力、进化链、招式表
  • 启动战斗模拟,使用:
    • 动画式生命值(HP)条更新
    • 卡片震动以产生击中效果
    • 逐步揭示的战斗日志,延迟显示
    • 获胜者展示

文件夹结构

(请参阅每个文件夹中的README文件以获取详细的文件说明)

宝可梦对战模拟/ ├── (在文件夹结构中,通常表示一个子文件夹或目录,但此处单独列出无具体含义,可理解为“包含”或“以下”之意,具体翻译需结合上下文) 资源 ├── (在文件夹或目录结构中,通常表示一个子目录或子项) 工具 ├──(在中文语境中,这通常是一个目录或文件结构的表示,但直接翻译并无对应词汇,可理解为“包含”或“下有”) 实用工具(或辅助工具) ├──(在文件夹结构中,通常表示一个子文件夹或子目录,但具体含义可能根据上下文有所不同) 前端 └── (在中文中,这个符号通常不直接翻译,而是根据上下文理解为表示列表或层级结构中的子项或后续内容,可意译为“子项”或“接下来”等,具体根据语境而定。) 测试


入门指南/开始使用

先决条件

  • Node.js v16及以上版本
  • 网络连接(使用PokéAPI实时获取数据)

安装依赖项

npm install

仅运行后端

node app.js

后端从……开始 http://localhost:3000


API 端点

宝可梦数据

GET /mcp/resource/pokemon/:name

战斗模拟

POST /mcp/tool/battle
{
  "pokemonA": "pikachu",
  "pokemonB": "charizard"
}

运行前端用户界面

  1. 启动后端服务,使用 node app.js
  2. 开放 /frontend/index.html 在浏览器中

测试

npm install --save-dev jest supertest
npm test

技术栈

  • 后端:Node.js、Express、Axios
  • 前端:HTML5,CSS3,JavaScript
  • 数据来源:PokéAPI
  • 测试:Jest,Supertest(可选)

笔记

附加的详细信息、系统行为说明以及已知限制均记录在 NOTES.md.


许可证

麻省理工学院许可证