Pokémon数据资源与战斗模拟工具

一个提供全面Pokémon数据和高级战斗模拟功能的MCP服务器,适用于AI模型集成和交互式演示。

  • by shailendra31888
  • Python
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 shailendra31888/pokemon_Mcp-server

使用说明

🚀 Pokémon MCP 服务器 — 数据资源 + 战斗模拟工具

🌟 概述

这个项目实施了一项全面的(计划/措施/方案) MCP(模型上下文协议)服务器 这为人工智能模型提供了访问三种强大功能的途径:

1. 🐾 精灵宝可梦数据资源 一个资源,可公开访问宝可梦API(https://pokeapi.co/)中的全面宝可梦数据,包括属性、类型、技能、招式和进化链。

2. ⚔️ 战斗模拟工具 – 一款高级工具,能够模拟任意两只宝可梦之间的真实战斗,具备类型相克、基于属性的伤害计算、回合顺序以及多种状态效果等功能。

3. 🎮 交互式网页演示 – 一个美观的Streamlit网页界面,展示所有功能,包括高品质宝可梦图片、互动战斗模拟和详细分析。

这台服务器充当了人工智能与宝可梦世界的桥梁,使大型语言模型(LLMs)能够检索全面知识,并以互动方式模拟包含完整战斗机制的对战。

🐾 第一部分:宝可梦数据资源

✨ 实施特性

  • 🌐 宝可梦API集成连接到公共的宝可梦API(https://pokeapi.co/),具备强大的错误处理和重试逻辑
  • 📊 全面数据展示详细的宝可梦信息,包括:
    • 基础属性生命值(HP),攻击力,防御力,特攻力,特防力,速度
    • 类型火、水、草、电以及全部18种宝可梦属性
    • 能力所有宝可梦能力,格式正确
    • 招式数据库可用招式,包含威力、准确率、类型、伤害类别及详细效果描述
    • 进化链完整的进化序列,顺序正确
    • 物理数据身高、体重和宝可梦图鉴编号

🔧 MCP资源实现

  • 资源URI: pokemon://{name} (例如。, pokemon://charizard)
  • 响应格式包含所有宝可梦数据的结构化JSON
  • MCP合规性遵循MCP资源设计模式,实现大型语言模型(LLM)的无缝集成
  • 缓存内置重试机制,实现高效数据检索
  • 错误处理优雅处理无效宝可梦名称和网络问题

📦 可交付成果

  • ✅ 完整的MCP服务器实现,包含宝可梦数据资源
  • ✅ 完整的文档,包含设置和使用说明
  • ✅ 验证用的健壮测试套件(test_part1.py)
  • ✅ 用于展示功能的交互式网页演示streamlit_demo.py)

⚔️ 第二部分:战斗模拟工具

🎯 高级战斗机制

  • 工具签名: simulate_battle(pokemon_a, pokemon_b, max_turns=100, seed=None)
  • 综合战斗系统:
    • **🔥 类型有效性(或“属性相克”)**完成包含准确倍数的18型效果图表
    • 💪 损伤计算使用攻击力、防御力和招式威力的宝可梦风格伤害公式
    • ⚡ 行动顺序基于速度的转向判定,附带适当排序
    • 🎲 随机化种子支持以实现可重复的战斗和测试

🌟 状态效果系统

  • 🔥 燃烧每回合造成10%最大生命值伤害 + 视觉指示器
  • ☠️ 毒药每回合造成12%的生命值(HP)伤害,且伤害效果随回合增加而加剧
  • ⚡ 麻痹25%的几率跳过回合 + 移动限制
  • 🧠 智能状态推断基于招式名称的自动状态应用
  • 📊 状态追踪在整个战斗持续期间持续生效

🎮 战斗特色

  • 📜 详细战斗记录逐步行动描述及结果详情
  • 🏆 冠军判定首先昏倒或在最大回合后拥有最高HP
  • 💥 效果传达信息“超级有效!”“不太有效……”“没有效果!”
  • 🎯 移动过滤仅限战斗中使用的伤害性招式(不包括仅改变状态的招式)
  • ⚖️ 平衡伤害经过精心调整,以避免一次性淘汰

🔧 MCP工具实现

  • MCP 集成完全符合MCP工具规范
  • JSON 响应格式:
{
  "winner": "blastoise",
  "log": [
    "--- Turn 1 ---",
    "charizard used fire-punch → blastoise lost 14 HP!",
    "It's not very effective...",
    "blastoise is now affected by burn!",
    "--- Turn 2 ---",
    "blastoise is hurt by its burn (7 HP)!",
    "blastoise used hydro-pump → charizard lost 28 HP!",
    "It's super effective!",
    "charizard fainted!"
  ]
}

📦 增强的交付成果

  • ✅ 符合MCP标准的生产就绪战斗模拟工具
  • ✅ 全面的属性相克系统(涵盖全部18种属性)
  • ✅ 多种状态效果,采用真实机制
  • ✅ 详细的战斗日志,附带效能指标
  • ✅ 交互式网页演示,包含视觉化的战斗展示
  • ✅ 示例使用模式和大型语言模型(LLM)集成指南

🎮 第三部分:交互式网页演示

🌟 Streamlit 网页界面功能

  • 🖼️ 高质量图片来自PokeAPI精灵图库的官方宝可梦艺术作品
  • 📊 交互式统计数据显示可视化进度条和详细的统计数据细分
  • 🥊 战斗竞技场实时战斗模拟,带有视觉反馈
  • 📱 响应式设计简洁、现代的界面,带有标签和有序的布局
  • 🎨 丰富的用户界面元素表情符号、动画和庆祝效果

🎯 演示功能

  • 26款热门宝可梦多代精心挑选之作
  • 视觉战斗日志彩色编码的效果指标和状态影响
  • 战斗分析回合数、效率统计和性能指标
  • 可重复的战斗种子控制以确保测试和演示的一致性

🚀 可用的宝可梦

第一代皮卡丘、火焰暴龙、水君、梦幻怪、超能力飞天魔、猛虎拳、幻影鬼、喷火龙、妙蛙种子(注:此处“Mewtwo”通常译为“妙蛙种子”的进化形态“超梦”,但为保持列表形式一致,直译为“Mewtwo”,实际翻译中可根据上下文调整)、喵喵(注:此处“Mew”通常指“喵喵”或“梦幻宝贝”,但为保持列表简洁,直译为“Mew”) 第二代炽焰咆哮虎,野蛮海猫,闪电鸟,暴君龙
第三代布莱赛肯(Blaziken)、史汪普(Swampert)、加德诺(Gardevoir)、梅塔格罗斯(Metagross) 第四代烈咬陆鲨、龙舞、时炎、天袭、阿尔宙斯 第五代烈咬陆鲨(Serperior),喷火龙(Emboar),水君(Samurott)

🛠️ 安装与设置

📋 要求

  • Python 3.10及以上版本 (推荐:Python 3.12)
  • 网络连接 (用于访问PokéAPI)
  • 虚拟环境 (强烈推荐)

⚙️ 设置说明

# Clone or navigate to project directory
cd pokemon-mcp-server

# Create and activate virtual environment
python -m venv .venv
source .venv/bin/activate  # On Windows: .venv\Scripts\activate

# Install all dependencies
pip install -r requirements.txt

2. 🎮 发布交互式网页演示

# Start the Streamlit web interface
streamlit run streamlit_demo.py

这将会:

  • 🌐 打开你的浏览器 自动地转换为/变为 http://localhost:8501
  • 🖼️ 展示精美的宝可梦图片 附有详细统计数据
  • ⚔️ 启用互动战斗 任意两只宝可梦之间
  • 📊 显示实时战斗日志 附带效果指标
  • 🎯 提供战斗分析 以及性能指标

3. 🖥️ 运行MCP服务器

# Start the MCP server (stdio mode)
python -m pkmon_core.server

服务器运行于 stdio 模式 并等待MCP客户端连接。按Ctrl+C停止。

4. 🔧 手动功能测试

# Test individual functions
python -c "
from pkmon_core.server import get_pokemon, simulate_battle
import json

# Test Pokémon resource
print('=== POKÉMON RESOURCE TEST ===')
data = get_pokemon('charizard')
pokemon = json.loads(data)
print(f'Name: {pokemon[\"name\"]}')
print(f'Types: {pokemon[\"types\"]}')
print(f'HP: {pokemon[\"stats\"][\"hp\"]}')

# Test battle simulation
print('\n=== BATTLE SIMULATION TEST ===')
result = simulate_battle('charizard', 'blastoise', seed=42, max_turns=10)
print(f'Winner: {result[\"winner\"]}')
print('Sample battle log:')
for line in result['log'][:5]:
    print(f'  {line}')
"

📚 使用示例

🔗 MCP 客户端集成

配置您的MCP客户端(如Claude Desktop)以进行连接:

{
  "mcpServers": {
    "pokemon": {
      "command": "python",
      "args": ["-m", "pkmon_core.server"],
      "cwd": "/path/to/pokemon-mcp-server"
    }
  }
}

🐾 资源使用情况

Resource: pokemon://charizard
Resource: pokemon://pikachu
Resource: pokemon://mewtwo

⚔️ 工具使用

{
  "tool": "simulate_battle",
  "parameters": {
    "pokemon_a": "charizard",
    "pokemon_b": "blastoise",
    "seed": 42,
    "max_turns": 20
  }
}

📖 文档

  • 📋 完整测试指南: HOW_TO_TEST.md
  • 💡 大型语言模型(LLM)示例: examples/llm_examples.md
  • 🔧 实施细节查看源代码于 pkmon_core/

🎯 主要功能概览

  • ✅ 完全符合MCP(多芯片模块)规范遵循MCP规范的资源和工具
  • ✅ 表示“正确”或“已确认”。 全面的宝可梦数据统计数据、类型、特性、招式、进化链
  • ✅ 高级战斗系统类型效果、状态效果、均衡战斗
  • ✅ 美观的网页界面高质量图像、互动战斗、数据分析
  • ✅ 鲁棒性测试全面的测试套件,通过率100%
  • ✅ 已准备好投入生产错误处理、重试逻辑、性能优化
  • ✅ 表示“正确”或“确认”。 可扩展设计易于添加更多宝可梦、招式或战斗机制

🏆 任务合规性

这个实现 完全符合并超越(预期/标准) 所有作业要求:

  • ✅ 第一部分宝可梦数据资源,全面集成PokéAPI
  • ✅ 第二部分具有高级战斗机制的战斗模拟工具
  • ✅ MCP合规性适当的资源和工具实施
  • ✅ 文档完整的安装、使用和测试说明
  • ✅ 测试对所有功能进行严格验证
  • ✅ 奖励功能带有视觉增强效果的交互式网页演示

🎉 准备好战斗了!您的宝可梦MCP服务器已准备好投入生产,并经过全面测试!