神奇宝贝百科 SQLite 数据集 + Web API + MCP Server
概览
Pokemon-Wiki 从 神奇宝贝百科 抓取宝可梦、特性、招式与道具,将解析结果写入 SQLite,再以 HTTP 接口对外提供查询。Pokemon-Wiki 提供聚合后的只读查询,不提供百科镜像、页面编辑或运行时自动更新。 - :使用 jsoup 并行抓取列表页与详情页。 - :将解析结果写入仓库中的 pokemon_wiki.db。 - :提供宝可梦、特性、招式与道具的列表与详情。 - :提供 MCP Server,支持大模型查询宝可梦数据。 - :在 Docker Hub 提供可运行的查询服务镜像。 - :从 Docker Hub 拉取 maomao233/pokemon-wiki。 - :在 JDK 21 下执行 ./mvnw package -B -Dapp.dbfile=$(pwd)/pokemon_wiki.db。 Pokemon-Wiki 本地启动时默认监听 8080 端口。常用查询在线示例如下: - :https://pokemon.fantasticmao.cn/pokemon/detail?nameZh=妙蛙种子 - :https://pokemon.fantasticmao.cn/ability/detail?nameZh=茂盛 - :https://pokemon.fantasticmao.cn/move/detail?nameZh=飞叶快刀 Pokemon-Wiki 同时提供 MCP 端点 /mcp,协议为 Streamable HTTP,需要在 Agent mcpServers 配置中填写该端点: Pokemon-Wiki 由爬虫模块与查询模块组成。前者负责抓取百科页面并写入 SQLite;后者只读该库,并以 HTTP 接口和 MCP 端点对外提供查询。两个模块独立构建与运行。 Pokemon-Wiki 先抓取六类列表页,再按列表索引并发抓取详情页,最后将解析结果写入 SQLite。查询服务启动后读取该数据库并响应请求。
README
Pokemon Wiki
这是什么
Pokemon-Wiki 从 神奇宝贝百科 抓取宝可梦、特性、招式与道具,将解析结果写入 SQLite,再以 HTTP 接口对外提供查询。Pokemon-Wiki 提供聚合后的只读查询,不提供百科镜像、页面编辑或运行时自动更新。
[!IMPORTANT] 条目原文与图片仍归属神奇宝贝百科,详见该站 版权声明。
关键特性
- 页面抓取:使用 jsoup 并行抓取列表页与详情页。
- 离线数据:将解析结果写入仓库中的
pokemon_wiki.db。 - 查询接口:提供宝可梦、特性、招式与道具的列表与详情。
- 模型查询:提供 MCP Server,支持大模型查询宝可梦数据。
- 容器发布:在 Docker Hub 提供可运行的查询服务镜像。
下载与安装
Pokemon-Wiki 以容器镜像与源码两种方式分发。
- 容器镜像:从 Docker Hub 拉取
maomao233/pokemon-wiki。 - 源码构建:在 JDK 21 下执行
./mvnw package -B -Dapp.dbfile=$(pwd)/pokemon_wiki.db。
快速开始
基于 Docker 可快速启动应用服务:
docker run -p 8080:8080 maomao233/pokemon-wiki
或在已完成源码构建后,执行命令:
java -Dapp.dbfile=./pokemon_wiki.db -jar pokemon-wiki-web/target/pokemon-wiki-web.jar
Pokemon-Wiki 本地启动时默认监听 8080 端口。常用查询在线示例如下:
- 宝可梦详情:
- 特性详情:
- 招式详情:
[!TIP] 完整请求参数与返回字段见 接口文档。
Pokemon-Wiki 同时提供 MCP 端点 /mcp,协议为 Streamable HTTP,需要在 Agent mcpServers 配置中填写该端点:
{
"mcpServers": {
"pokemon-wiki": {
"url": "https://pokemon.fantasticmao.cn/mcp"
}
}
}
工作原理
架构
Pokemon-Wiki 由爬虫模块与查询模块组成。前者负责抓取百科页面并写入 SQLite;后者只读该库,并以 HTTP 接口和 MCP 端点对外提供查询。两个模块独立构建与运行。
[!NOTE] 查询服务启动后不再访问百科站点。
核心流程
Pokemon-Wiki 先抓取六类列表页,再按列表索引并发抓取详情页,最后将解析结果写入 SQLite。查询服务启动后读取该数据库并响应请求。
flowchart LR
wiki[52pokeWiki] --> spider[pokemon-wiki-spider]
spider --> db[pokemon_wiki.db]
db --> web[pokemon-wiki-web]
web --> api[HTTP 查询接口]
web --> mcp[MCP 只读 SQL]
常见问题
为何接口数据不是百科站点的实时内容?
查询模块只读预置的 SQLite 文件,运行时不访问百科站点。需要更新数据时,另行运行爬虫并替换该数据库文件。
为何二次开发可以直接使用仓库中的数据库?
爬虫将解析结果写入已纳入版本库的 pokemon_wiki.db。克隆仓库后即可连接该文件,无需先运行爬虫。
为何项目声明仅提供组合查询?
条目原文与图片仍归属神奇宝贝百科。使用数据须同时遵守该站 版权声明 与本仓库 LICENSE。
更新日志
版本变更见 CHANGELOG.md。
许可
许可条款见 LICENSE。
安装
docker run -p 8080:8080 maomao233/pokemon-wiki配置
{
"mcpServers": {
"pokemon-wiki": {
"url": "https://pokemon.fantasticmao.cn/mcp"
}
}
}