口袋妖怪战斗模拟–MCP服务器
最小化MCP服务器暴露:
- 来自PokeAPI的Pokemon数据
- 一个简单的战斗模拟器(类型有效性、状态效果、日志)
本文档解释了安装、运行、Claude Desktop设置以及如何测试。
MCP架构(概述)
flowchart LR
subgraph Client[Claude Desktop]
UI[User prompt]
MCPClient[MCP client]
end
subgraph Server[MCP Pokémon Server]
Tools[Tools]
Resources[Resources]
Engine[BattleEngine]
API[PokeAPI Client]
end
subgraph PokeAPI[PokeAPI]
DS[(Types\nMoves\nPokémon)]
end
UI --> MCPClient
MCPClient |stdio JSON-RPC| Server
Server --> Resources
Server --> Tools
Tools --> Engine
Engine --> API
Resources --> API
API --> |HTTPS| DS先决条件
- Windows上的Node.js 18+(建议通过nvm Windows或nodejs.org安装程序)
- 互联网接入(适用于PokeAPI和首次依赖安装)
- 已安装Claude Desktop
项目结构
mcp-pokemon/
├── src/
│ ├── server/ # MCP server (registers resources + tools)
│ ├── data_layer/ # PokeAPI client + caching
│ ├── battle/ # battle engine
│ └── schemas/ # TypeScript interfaces
├── scripts/
│ └── ingest_pokeapi.ts # optional: pre-fetch data to local JSON
├── data/ # generated by ingestion (optional)
├── dist/ # compiled JS
├── package.json
└── tsconfig.json1) 安装
npm install2) 构建
npm run build这将TypeScript编译为 dist/.
3) 运行服务器(选择一个)
- 开发(tsx+TypeScript):
npm run dev- 生产(编译JS):
node dist/server/index.js预期产量: Pokémon MCP Server running on stdio.
4) 配置克劳德桌面(Windows)
编辑文件:
C:\Users\\AppData\Roaming\Claude\claude_desktop_config.json添加此条目(必要时调整路径):
{
"mcpServers": {
"pokemon": {
"command": "node",
"args": ["C:\\Users\\Sujal\\mcp-pokemon\\dist\\server\\index.js"],
"env": {
"NODE_ENV": "production"
}
}
}
}笔记:
- 开发备选方案:
"command": "npx", "args": ["tsx", "src/server/index.ts"]. - 编辑配置后重新启动Claude Desktop。
5) 可选:预取数据
下载类型效果、流行动作和第一代口袋妖怪 data/.
npm run ingest6) 使用Claude
示例提示:
- 列出可用的MCP工具
- 获取皮卡丘的详细信息
- 搜索名字中带有“char”的口袋妖怪
- 跟我说说“霹雳”这个动作
- 模拟50级Charizard和Blastoise之间的战斗
工具:
get_pokemon(identifier: string)search_pokemon(query: string)get_move(moveName: string)simulate_battle(pokemon1: string, pokemon2: string, level1?: number, level2?: number)
资源:
pokemon://data–宝可梦数据资源的元数据和使用帮助
故障排除
- 如果Claude显示“服务器已断开连接”,请打开日志:“打开日志文件夹”→
mcp-server-pokemon.log. - 确保配置路径指向绝对值
dist/server/index.js. - 编辑后重建:
npm run build. - 手动测试:
node dist/server/index.js(除了stdio横幅,没有错误)。
卸载/清理
# remove build output
rd /s /q dist
# remove downloaded data (if created by ingest)
rd /s /q data许可证
麻省理工学院
