返回市场
宝可梦服务器

宝可梦服务器

作者:grovesjosephn2 星标更新:2025-06-23

项目介绍

Pokémon MCP 服务器

这是一个通过标准化工具提供 Pokémon 数据的 Model Context Protocol (MCP) 服务器。此单仓库包含 MCP 服务器和数据摄入服务,用于从 PokeAPI 获取 Pokémon 数据。

架构

这是一个 PNPM 单仓库,包含两个主要包:

  • pokemon-mcp-server:通过标准化工具暴露 Pokémon 数据的 MCP 服务器
  • pokemon-mcp-ingestion:从 PokeAPI 获取数据并存储在 SQLite 中的数据摄入服务

系统使用一个共享的 SQLite 数据库(data/pokemon.sqlite)来存储 Pokémon 数据。

功能

可用的 MCP 工具

  • get_pokemon - 获取特定 Pokémon 的详细信息
  • search_pokemon - 按名称、类型或其他标准搜索 Pokémon
  • get_strongest_pokemon - 根据各种统计数据找到最强的 Pokémon
  • get_pokemon_stats - 获取 Pokémon 的详细统计数据
  • compare_pokemon - 比较两个 Pokémon 的统计数据
  • get_type_effectiveness - 获取类型效果信息

数据覆盖范围

  • 完整的来自 PokeAPI 的 Pokémon 数据
  • 统计数据、类型、能力和更多
  • 类型效果关系
  • 多种标准可搜索

快速开始

先决条件

  • Node.js 18+
  • PNPM
  • Git

安装

  1. 克隆仓库:
git clone https://github.com/grovesjosephn/pokemcp.git
cd pokemcp
  1. 安装依赖项:
pnpm install
  1. 设置数据库:
./scripts/setup.sh
  1. 构建所有包:
pnpm build

使用方法

运行 MCP 服务器

# 开发模式(带热重载)
pnpm dev

# 生产模式
cd packages/pokemon-mcp-server
pnpm start

使用 MCP Inspector 测试

# 视觉 GUI 测试
cd packages/pokemon-mcp-server
pnpm inspect

# 命令行界面测试
pnpm inspect:cli

数据摄入

# 运行数据摄入
cd packages/pokemon-mcp-ingestion
pnpm start

Claude Desktop 集成

选项 1:NPM 包(推荐)

全局安装服务器:

cd packages/pokemon-mcp-server
pnpm build
npm link

配置 Claude Desktop:

{
  "mcpServers": {
    "pokemon": {
      "command": "pokemon-mcp-server",
      "env": {
        "POKEMON_DATA_DIR": "/path/to/pokemcp/data"
      }
    }
  }
}

选项 2:直接 Node 执行

{
  "mcpServers": {
    "pokemon": {
      "command": "node",
      "args": ["/path/to/pokemcp/packages/pokemon-mcp-server/dist/server.js"],
      "env": {
        "POKEMON_DATA_DIR": "/path/to/pokemcp/data"
      }
    }
  }
}

选项 3:开发模式

{
  "mcpServers": {
    "pokemon": {
      "command": "pnpm",
      "args": ["--filter", "pokemon-mcp-server", "start"],
      "cwd": "/path/to/pokemcp",
      "env": {
        "POKEMON_DATA_DIR": "/path/to/pokemcp/data"
      }
    }
  }
}

开发

工作区命令

pnpm build         # 构建所有包
pnpm dev           # 在开发模式下运行所有包
pnpm test          # 对所有包运行测试
pnpm lint          # 对所有包进行代码检查
pnpm format        # 格式化所有文件
pnpm format:check  # 检查格式化

服务器包命令

cd packages/pokemon-mcp-server

pnpm build         # 编译 TypeScript
pnpm dev           # 监视模式(带 tsx)
pnpm start         # 运行服务器
pnpm inspect       # 运行 MCP Inspector GUI
pnpm inspect:cli   # 运行 MCP Inspector CLI
pnpm test          # 运行测试

摄入包命令

cd packages/pokemon-mcp-ingestion

pnpm build         # 编译 TypeScript
pnpm dev           # 监视模式
pnpm start         # 运行摄入
pnpm test          # 运行测试

测试

项目使用 Vitest 进行测试:

# 运行所有测试
pnpm test

# 运行特定包的测试
pnpm --filter pokemon-mcp-server test
pnpm --filter pokemon-mcp-ingestion test

数据库模式

SQLite 数据库包括以下表:

  • pokemon - 基本 Pokémon 信息
  • stats - Pokémon 统计数据(HP、攻击、防御等)
  • types - Pokémon 类型及其关系
  • abilities - Pokémon 能力
  • type_effectiveness - 类型效果关系

贡献

  1. 分叉仓库
  2. 创建功能分支
  3. 进行更改
  4. 添加测试
  5. 运行 pnpm formatpnpm lint
  6. 提交拉取请求

提交指南

使用约定提交格式:

<类型>[可选作用域]: <描述>

示例:
- feat(server): 添加 Pokémon 进化链工具
- fix(ingestion): 优雅处理缺失的物种 URL
- docs: 更新集成指南

许可证

MIT 许可证 - 查看 LICENSE 文件以获取详细信息

链接