这是一个通过标准化工具提供 Pokémon 数据的 Model Context Protocol (MCP) 服务器。此单仓库包含 MCP 服务器和数据摄入服务,用于从 PokeAPI 获取 Pokémon 数据。
这是一个 PNPM 单仓库,包含两个主要包:
系统使用一个共享的 SQLite 数据库(data/pokemon.sqlite)来存储 Pokémon 数据。
get_pokemon - 获取特定 Pokémon 的详细信息search_pokemon - 按名称、类型或其他标准搜索 Pokémonget_strongest_pokemon - 根据各种统计数据找到最强的 Pokémonget_pokemon_stats - 获取 Pokémon 的详细统计数据compare_pokemon - 比较两个 Pokémon 的统计数据get_type_effectiveness - 获取类型效果信息git clone https://github.com/grovesjosephn/pokemcp.git
cd pokemcp
pnpm install
./scripts/setup.sh
pnpm build
# 开发模式(带热重载)
pnpm dev
# 生产模式
cd packages/pokemon-mcp-server
pnpm start
# 视觉 GUI 测试
cd packages/pokemon-mcp-server
pnpm inspect
# 命令行界面测试
pnpm inspect:cli
# 运行数据摄入
cd packages/pokemon-mcp-ingestion
pnpm start
全局安装服务器:
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"
}
}
}
}
{
"mcpServers": {
"pokemon": {
"command": "node",
"args": ["/path/to/pokemcp/packages/pokemon-mcp-server/dist/server.js"],
"env": {
"POKEMON_DATA_DIR": "/path/to/pokemcp/data"
}
}
}
}
{
"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 - 类型效果关系pnpm format 和 pnpm lint使用约定提交格式:
<类型>[可选作用域]: <描述>
示例:
- feat(server): 添加 Pokémon 进化链工具
- fix(ingestion): 优雅处理缺失的物种 URL
- docs: 更新集成指南
MIT 许可证 - 查看 LICENSE 文件以获取详细信息