宝可梦数据查询服务

一个基于PokeAPI的MCP服务器,提供宝可梦和游戏道具信息的查询功能,适用于AI代理使用。

  • by chiuwa
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 chiuwa/pokemcp

使用说明

PokeAPI MCP服务器

该项目使用FastMCP实现了一个模型上下文协议(MCP)服务器。服务器与 PokeAPI 提供查询宝可梦和物品信息的工具。该服务器设计为易于AI代理使用。

特性

服务器公开了以下工具:

  • get_pokemon_details(pokemon_name_or_id: str):获取特定口袋妖怪的全面细节。
  • get_pokemon_types(pokemon_name_or_id: str):获取特定口袋妖怪的元素类型。
  • get_pokemon_color(pokemon_name_or_id: str):获取特定Pokemon的Pokedex颜色。
  • get_pokemon_shape(pokemon_name_or_id: str):获取特定口袋妖怪的Pokedex形状类别。
  • list_all_pokemon_names(limit: int = 2000, offset: int = 0):列出口袋妖怪的英文名称,支持分页。
  • get_item_details(item_name_or_id: str):获取特定游戏内物品的详细信息。
  • list_all_items(limit: int = 100, offset: int = 0):列出游戏中的物品,支持分页。

请参阅 SERVER_INSTRUCTIONS 中的变量和单个工具文档字符串 server.py 有关每个工具的参数和返回值的更多详细信息。

设置

  1. 先决条件:

    • Python(建议使用Python 3.10或更高版本 httpx 异步功能)
    • uv (推荐:一个非常快的Python包安装程序和解析器。)
    • 或者, pip 和 virtualenv (或 venv 如果不使用 uv)
  2. 创建并激活虚拟环境:

    推荐(使用 uv):

    # Create a virtual environment (e.g., in .venv)
    uv venv
    # Activate it
    source .venv/bin/activate  # On Windows: .venv\Scripts\activate
    

    替代方案(使用 venv):

    python -m venv venv
    source venv/bin/activate  # On Windows: venv\Scripts\activate
    
  3. 安装依赖项:

    推荐(使用 uv):

    uv pip install -r requirements.txt
    

    替代方案(使用 pip):

    pip install -r requirements.txt
    

运行服务器

要启动MCP服务器,请执行以下操作:

python server.py

默认情况下,服务器将在 http://0.0.0.0:7796 使用服务器发送事件(SSE)传输。您应该看到日志输出,指示服务器已启动并正在侦听连接。

启动客户端之前,请确保服务器正在运行。客户端将尝试连接到其中指定的服务器URL(默认为 http://localhost:7796/sse).


PokeAPI MCP伺服器

本项目使用FastMCP 实作了一个模型上下文协定(MCP)服务器。该服务器与 PokeAPI 互动,提供查询宝可梦(Pokémon) 和道具信息的工具。此服务器旨在方便AI Agent 使用。

主要功能

伺服器提供以下工具:

  • get_pokemon_details(pokemon_name_or_id: str):获取特定宝可梦的详细信息。
  • get_pokemon_types(pokemon_name_or_id: str):获取特定宝可梦的属性。
  • get_pokemon_color(pokemon_name_or_id: str):获取特定宝可梦的图鉴颜色。
  • get_pokemon_shape(pokemon_name_or_id: str):获取特定宝可梦的图鉴分类外形。
  • list_all_pokemon_names(limit: int = 2000, offset: int = 0):列出宝可梦的英文名称,支持分页。
  • get_item_details(item_name_or_id: str):获取特定游戏内道具的详细信息。
  • list_all_items(limit: int = 100, offset: int = 0):列出游戏内的道具,支持分页。

关于每个工具的参数和回传值的更详细信息,请参考 server.py 中的 SERVER_INSTRUCTIONS 变数和各个工具的docstrings。

设定步骤

  1. 先决条件:

    • Python (建议使用Python 3.10 或更新版本以获得 httpx 的非同步特性支援)
    • uv (推荐:一个极速的Python 套件安装器和解析器。)
    • 或者,如果您不使用 uv,则需要 pip 和 virtualenv (或 venv)
  2. 建立并启用虚拟环境:

    推荐(使用 uv):

    # 建立虛擬環境 (例如在 .venv 資料夾中)
    uv venv
    # 啟用虛擬環境
    source .venv/bin/activate  # Windows 環境: .venv\Scripts\activate
    

    替代方案 (使用 venv):

    python -m venv venv
    source venv/bin/activate  # Windows 環境: venv\Scripts\activate
    
  3. 安装依赖套件:

    推荐(使用 uv):

    uv pip install -r requirements.txt
    

    替代方案 (使用 pip):

    pip install -r requirements.txt
    

运行服务器

启动MCP 服务器:

python server.py

预设情况下,服务器将使用Server-Sent Events (SSE) 传输方式在 http://0.0.0.0:7796 上运行。您应该能看到日志输出,显示服务器已启动并正在监听联机。

在启动客户端之前,请确保服务器正在运行。客户端将尝试连接到其内部指定的服务器URL (预设为 http://localhost:7796/sse)。