宝可梦对战模拟器

一个基于PokeAPI数据的宝可梦对战模拟服务器,提供宝可梦信息查询和战斗模拟功能。

  • by Sujal-py3
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 Sujal-py3/MCP-server-with-claude

使用说明

口袋妖怪战斗模拟–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.json

1) 安装

npm install

2) 构建

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\<YourUser>\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 ingest

6) 使用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

许可证

麻省理工学院