宝可梦数据服务器

提供宝可梦传记、统计数据和进化链数据的MCP服务器集合,用于AI助手访问。

  • by frabatx
  • Cypher
  • 本地部署
  • 2 星标
  • 更新于
在 GitHub 查看 frabatx/pokemon-mcp-server

使用说明

口袋妖怪MCP服务器

一组 模型上下文协议(MCP) 用于通过Claude Desktop、Cursor和其他MCP客户端等人工智能助手访问口袋妖怪数据的服务器。

快速开始

先决条件

  • Python 3.12+ 随着 紫外线 包管理器
  • Docker 桌面版 (适用于Evolutions服务器/Neo4j)
  • Node.js (用于MCP检验员测试)

设置

# Clone repository
git clone https://github.com/frabatx/pokemon-mcp-servers.git
cd pokemon-mcp-servers

# Setup a server (e.g. Biography Server)
cd servers/biography-server
uv sync
uv run main.py
# Expected: [READY] Server listening on stdio

# Test with MCP Inspector
npx @modelcontextprotocol/inspector uv run main.py
# Open http://localhost:5173

Neo4j设置(进化服务器)

# From project root
./setup.sh          # macOS/Linux
.\setup.ps1         # Windows PowerShell

可用服务器

服务器 描述 数据源 工具
传记服务器 详细的口袋妖怪传记 biographies.json (809口袋妖怪) 4个工具
统计服务器 战斗统计、类型分析、比较 statistics.csv (41列) 16个工具
进化服务器 进化链和类型关系 Neo4j图形数据库 2个工具

项目架构

pokemon-mcp-servers/
├── data/                           # Shared data
│   ├── biographies.json
│   ├── statistics.csv
│   └── pokemon.cypher
├── docs/                           # Documentation
│   ├── registry-pattern.md         # Design pattern deep dive
│   └── new-server-guide.md         # How to create a new server
├── servers/                        # Independent MCP servers
│   ├── biography-server/
│   ├── statistics-server/
│   └── evolutions-server/
├── docker-compose.yml              # Neo4j infrastructure
└── setup.sh / setup.ps1            # One-command Neo4j setup

每个服务器都遵循相同的结构:

my-server/
├── main.py              # Entry point (uv run main.py)
├── src/
│   ├── tools/
│   │   ├── __init__.py  # Auto-registration
│   │   ├── register.py  # Registry pattern
│   │   └── *.py         # Tool implementations
│   └── utils/
│       └── load_data.py # Data loading
└── pyproject.toml

注册模式

此项目使用高级 注册模式 用于可扩展的工具管理。添加新工具=创建1个文件。无需更改 main.py.

看 docs/register-pattern.md 进行全深度潜水。

客户端配置

克劳德桌面版

添加 ~/Library/Application Support/Claude/claude_desktop_config.json (macOS)或 %APPDATA%\Claude\claude_desktop_config.json (Windows):

{
  "mcpServers": {
    "pokemon-biography": {
      "command": "uv",
      "args": ["run", "main.py"],
      "cwd": "/absolute/path/to/pokemon-mcp-servers/servers/biography-server"
    },
    "pokemon-statistics": {
      "command": "uv",
      "args": ["run", "main.py"],
      "cwd": "/absolute/path/to/pokemon-mcp-servers/servers/statistics-server"
    },
    "pokemon-evolutions": {
      "command": "uv",
      "args": ["run", "main.py"],
      "cwd": "/absolute/path/to/pokemon-mcp-servers/servers/evolutions-server",
      "env": {
        "NEO4J_URI": "bolt://localhost:7687",
        "NEO4J_USER": "neo4j",
        "NEO4J_PASSWORD": "your_password"
      }
    }
  }
}

光标

添加 .cursor/mcp.json 在项目根目录中:

{
  "mcpServers": {
    "pokemon-biography": {
      "command": "uv",
      "args": ["run", "main.py"],
      "cwd": "/absolute/path/to/pokemon-mcp-servers/servers/biography-server"
    }
  }
}

资源

资源提供静态数据,AI助手可以在不调用工具的情况下读取这些数据以获取上下文。

传记服务器

URI 描述
pokemon://biography/list 809个口袋妖怪名字的完整列表
pokemon://biography/{name} 特定口袋妖怪的传记(模板)

统计服务器

URI 描述
pokemon://stats/types 所有18种口袋妖怪
pokemon://stats/generations Pokedex范围和计数的世代
pokemon://stats/type-chart 类型有效性图(弱点、阻力、豁免)
pokemon://stats/schema 包含所有列定义的数据集架构

提示

提示是预先配置的工作流程,指导人工智能完成多步任务。

传记服务器

提示 描述
pokemon-quiz 互动问答:从传记摘录中猜出口袋妖怪
pokemon-comparison 两款口袋妖怪的详细比较
evolution-story 关于口袋妖怪进化历程的叙事故事

统计服务器

提示 描述
build-team 组建一支由6人组成的有竞争力的团队,实现均衡的覆盖率
type-matchup-analysis 分析团队的类型匹配和覆盖差距
counter-finder 为对手Pokemon寻找最佳对手

工具参考

传记服务器(4个工具)

工具 说明
search_biography 按名字搜索口袋妖怪传记
search_biography_fulltext 全文搜索所有传记
get_random_biography 获取随机的口袋妖怪传记
list_all_pokemon 列出所有可用的口袋妖怪

统计服务器(16个工具)

工具 说明
get_pokemon_stats 获取口袋妖怪的完整统计数据
calculate_type_effectiveness 计算类型有效性乘数
get_resistances_and_weaknesses 获得口袋妖怪的类型抵抗力/弱点
find_pokemon_resistant_to_types 找到对特定类型有抵抗力的口袋妖怪
filter_pokemon_multi_criteria 按多个条件筛选口袋妖怪
get_pokemon_by_stat_range 在统计范围内找到口袋妖怪
get_pokemon_by_type_combination 按type1/type2组合查找口袋妖怪
get_pokemon_by_ability 通过能力找到口袋妖怪
get_pokemon_by_generation 按世代列出口袋妖怪
compare_pokemon_head_to_head 比较两个口袋妖怪统计数据
find_similar_pokemon 查找统计上相似的口袋妖怪
get_top_pokemon_by_stat 特定统计的前N个口袋妖怪
get_extreme_pokemon 具有最高/最低统计值的口袋妖怪
calculate_stat_percentile 计算统计百分位数排名
aggregate_stats_by_type 按类型汇总统计数据
calculate_bst_distribution 基础统计总分布分析

进化服务器(2个工具)

工具 说明
get_pokemon_types 从图中获取类型信息
get_pokemon_evolutions 从图中获取进化链

创建新服务器

看 docs/new-server-guide.md 获取分步指南。

数据模式

传记.json

{"name": "Pikachu", "bio": "Biology [ edit ] Pikachu is..."}

statistics.csv(41列)

主要栏目: name, pokedex_number, hp, attack, defense, sp_attack, sp_defense, speed, base_total, type1, type2, abilities, against_* (18个类型有效性栏), height_m, weight_kg, generation, is_legendary

故障排除

问题 解决方案
工具未注册 签入 src/tools/__init__.py
get_all_tools() 返回空 导入注册表后导入工具.py
找不到模块 运行 uv sync
检查员无法连接 所有打印件必须连接到 stderr,不 stdout
导入错误 验证 src/ 有 __init__.py 文件

资源

许可证

MIT许可证-请参阅 许可证 了解详情。

作者

弗朗西斯科·巴蒂斯塔 - @frabatx