项目简介

这是一个基于Python和Qt框架构建的桌面萌宠应用程序,具备AI对话能力。该仓库的亮点之一是其集成了Model Context Protocol (MCP) 的客户端功能,并且提供了一个可作为MCP服务器运行的天气工具示例。这意味着你可以运行包含在该仓库中的天气服务脚本,并让支持MCP协议的AI客户端(比如这个桌面萌宠应用本身或其他MCP客户端)调用其中的天气查询功能。

主要功能点 (MCP服务器示例)

  • 天气信息查询工具: 包含两个可通过MCP调用的工具:
    • 'get_alerts': 根据美国州的缩写代码查询当前天气警报。
    • 'get_forecast': 根据经纬度查询指定地点的天气预报。
  • MCP协议支持: 基于FastMCP框架实现,符合MCP协议规范,可通过Stdio传输协议与客户端通信。

安装步骤

本项目使用 'uv' 进行包管理,请先确保已安装 'uv'。

  1. 安装 uv:
    pip install uv
  2. 克隆仓库:
    git clone https://github.com/shuimqy/pet-ds.git
    cd pet-ds
  3. 创建并激活虚拟环境:
    uv venv
    • Windows: '.venv\Scripts\activate'
    • Unix/MacOS: 'source .venv/bin/activate'
  4. 安装依赖:
    uv pip compile pyproject.toml > requirements.txt
    uv pip install -r requirements.txt

服务器配置 (供MCP客户端使用)

本项目包含的MCP天气服务器 ('pet_ds/mcp/server/weather.py') 是一个独立的Python脚本,可以被MCP客户端通过Stdio协议调用。对于任何希望连接到此天气服务的MCP客户端,其配置通常需要指定如何启动这个服务器进程。

典型的MCP客户端配置信息会是一个JSON结构,包含以下关键信息:

  • 'name': 服务器的名称,例如 '"WeatherServer"'。
  • 'command': 用于启动服务器的可执行命令,对于Python脚本通常是 '"python"'。
  • 'args': 启动命令所需的参数列表,其中第一个参数应是服务器脚本的路径,例如 '["path/to/your/cloned/repo/pet_ds/mcp/server/weather.py"]'。
  • 'transport': 通信协议,本项目示例使用 '"stdio"'。

请注意: 上述配置信息是给 MCP客户端 使用的,用于告知客户端如何连接并启动此天气MCP服务器。你需要将 'path/to/your/cloned/repo' 替换为你实际克隆 'pet-ds' 仓库的路径。

基本使用方法

  1. 运行MCP天气服务器: 首先,你需要独立地启动天气MCP服务器脚本。在激活的虚拟环境中,运行:

    python pet_ds/mcp/server/weather.py

    这个命令会在后台启动一个监听Stdio的MCP服务器进程。

  2. 配置并运行Pet Chi桌面萌宠 (作为MCP客户端):

    • 修改 'pet_ds/config.py' 文件中的 'mcp_server_path' 配置,指向你启动的 'weather.py' 脚本的绝对路径相对路径 (如果从项目根目录运行的话,默认为 '"mcp/server/weather.py"')。
    • 配置你的LLM API Key ('api_key') 和 LLM URL ('llm_url')。
    • 在激活的虚拟环境中,运行桌面萌宠应用:
      python pet_ds/main.py
  3. 通过桌面萌宠与MCP服务器互动:

    • 桌面萌宠应用启动后,右键点击萌宠形象,选择“对话”。
    • 在弹出的对话框中输入你的天气相关问题(例如“加利福尼亚有什么天气警报吗?” 或 “纽约市的天气预报如何?”)。
    • 勾选对话框中的“勾选启动mcp”复选框
    • 点击“发送”。
    • 桌面萌宠(作为MCP客户端)会与LLM交互,LLM会判断是否需要调用天气工具,如果需要,客户端会通过Stdio协议向之前启动的MCP天气服务器发送工具调用请求,获取结果,并将结果反馈给LLM生成最终回答。

信息

分类

网页与API