项目简介
这是一个基于Python和Qt框架构建的桌面萌宠应用程序,具备AI对话能力。该仓库的亮点之一是其集成了Model Context Protocol (MCP) 的客户端功能,并且提供了一个可作为MCP服务器运行的天气工具示例。这意味着你可以运行包含在该仓库中的天气服务脚本,并让支持MCP协议的AI客户端(比如这个桌面萌宠应用本身或其他MCP客户端)调用其中的天气查询功能。
主要功能点 (MCP服务器示例)
- 天气信息查询工具: 包含两个可通过MCP调用的工具:
- 'get_alerts': 根据美国州的缩写代码查询当前天气警报。
- 'get_forecast': 根据经纬度查询指定地点的天气预报。
- MCP协议支持: 基于FastMCP框架实现,符合MCP协议规范,可通过Stdio传输协议与客户端通信。
安装步骤
本项目使用 'uv' 进行包管理,请先确保已安装 'uv'。
- 安装 uv:
pip install uv - 克隆仓库:
git clone https://github.com/shuimqy/pet-ds.git cd pet-ds - 创建并激活虚拟环境:
uv venv- Windows: '.venv\Scripts\activate'
- Unix/MacOS: 'source .venv/bin/activate'
- 安装依赖:
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' 仓库的路径。
基本使用方法
-
运行MCP天气服务器: 首先,你需要独立地启动天气MCP服务器脚本。在激活的虚拟环境中,运行:
python pet_ds/mcp/server/weather.py这个命令会在后台启动一个监听Stdio的MCP服务器进程。
-
配置并运行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
-
通过桌面萌宠与MCP服务器互动:
- 桌面萌宠应用启动后,右键点击萌宠形象,选择“对话”。
- 在弹出的对话框中输入你的天气相关问题(例如“加利福尼亚有什么天气警报吗?” 或 “纽约市的天气预报如何?”)。
- 勾选对话框中的“勾选启动mcp”复选框。
- 点击“发送”。
- 桌面萌宠(作为MCP客户端)会与LLM交互,LLM会判断是否需要调用天气工具,如果需要,客户端会通过Stdio协议向之前启动的MCP天气服务器发送工具调用请求,获取结果,并将结果反馈给LLM生成最终回答。
信息
分类
网页与API