口袋妖怪战斗模拟器-MCP服务器
该项目是对构建服务器的技术评估,该服务器充当人工智能(特别是LLM)和神奇宝贝世界之间的桥梁。它为人工智能提供了两个主要功能:一个用于访问全面口袋妖怪信息的数据资源,以及一个用于模拟任何两个口袋妖怪之间战斗的战斗工具。服务器是根据模型上下文协议(MCP)标准构建的。
使用的技术
- python:核心编程语言。
- 快速 API:用于构建API端点的现代快速web框架。
- 乌维科恩:用于运行FastAPI应用程序的ASGI服务器。
- HTML、CSS、JavaScript:用于创建简单的本地用户界面,以便与作战模拟工具进行手动交互。
工作流程
该项目的工作流程以向外部AI提供结构化功能为中心。
- 来自AI/用户的请求:人工智能或人类用户向服务器的API端点之一发送请求。
- 服务器处理:FastAPI服务器接收请求。对于战斗模拟,它调用以下核心逻辑
battle_logic.py. - 模拟引擎:The
battle_logic.py该模块处理请求,检索口袋妖怪数据,运行战斗模拟(包括回合顺序、伤害计算和状态效果),并生成详细的日志。 - 响应:服务器将操作结果作为结构化JSON响应返回,然后AI或用户可以解释和使用。
______________________________________________________________________
设置和运行代码
按照以下步骤在本地设置和运行项目。
先决条件
- Python 3.7+
pip(Python包安装程序)
安装
- 导航到终端中的项目目录。
- 创建并激活Python虚拟环境:
- 视窗: - python -m venv venv - 随后 venv\Scripts\activate
- 安装必要的Python依赖项:
pip install "fastapi[all]" uvicorn
运行服务器
使用Uvicorn从终端启动服务器。确保您的虚拟环境处于活动状态。 uvicorn主:应用程序--reload
服务器将在以下时间启动 http://127.0.0.1:8000.
______________________________________________________________________
如何使用API
服务器通过MCP清单和专用的API端点公开其功能。
pip install "fastapi[all]" uvicorn
1.MCP清单
- 方法:
GET - 统一资源定位符:
http://127.0.0.1:8000/.well-known/mcp/manifest.json - 描述:返回
manifest.json详细说明服务器工具和资源的文件。
2.宝可梦数据资源
- 方法:
GET - 统一资源定位符:
http://127.0.0.1:8000/v1/resources/pokemon_data_resource/get?pokemon_name={name} - 描述:检索指定口袋妖怪的详细信息。
- 示例(终端):
curl "[http://127.0.0.1:8000/v1/resources/pokemon_data_resource/get?pokemon_name=charizard](http://127.0.0.1:8000/v1/resources/pokemon_data_resource/get?pokemon_name=charizard)"3.作战模拟工具
- 方法:
POST - 统一资源定位符:
http://127.0.0.1:8000/v1/tools/battle_simulation_tool/run - 描述:在两个宝可梦之间运行战斗模拟,并返回详细日志。
- 示例(终端):
irm http://localhost:8080/tools/battle_sim -Method POST -Headers @{"Content-Type"="application/json"} -Body '{"pokemon1": "pikachu", "pokemon2": "charmander"}'4.本地用户界面
- UI是一个单独的
index.html位于项目根目录中的文件。 - 使用“pip install”fastapi\[all\]“uvicorn”成功运行main.py后,开始在本地运行index.html
- 如何跑步:只需打开
index.html服务器运行后,在您的网络浏览器中。UI将自动连接到您的服务器以检索数据并运行模拟。
