项目简介
本项目是一个 Model Context Protocol (MCP) 服务器的示例实现,旨在演示如何构建一个能够与AI模型集成的天气服务。它提供了一个简单的天气查询工具,并通过标准的MCP协议与客户端进行通信。
主要功能点
- 天气信息查询: 提供 'get_current_weather' 工具,允许LLM客户端查询指定地点的当前天气和未来几天的天气预报。
- MCP 协议支持: 完全实现了 MCP 服务器的核心功能,可以处理来自 MCP 客户端的请求,并按照 MCP 协议规范返回响应。
- STDIO 传输: 使用标准输入输出 (STDIO) 作为服务器和客户端之间的通信通道,简化了部署和集成过程。
- 工具注册与调用: 演示了如何注册工具('get_current_weather')并处理客户端的工具调用请求,是理解 MCP 工具机制的良好示例。
安装步骤
-
安装项目: 推荐使用 UV 包管理器进行安装,根据项目 'README.md' 指示,在项目根目录下执行以下命令:
uv pip install -e .这将安装项目及其依赖。如果您的环境中没有 UV,可以使用 pip 代替,但可能需要额外处理依赖问题。
-
(可选)安装依赖: 如果上述安装命令未能自动安装依赖,或者您选择使用 pip,请确保安装 'requirements.txt' 文件中列出的依赖包。通常,使用 '-e .' 参数安装时会自动处理依赖。
服务器配置
为了让 MCP 客户端能够连接到这个天气服务服务器,您需要在客户端中配置服务器信息。以下是一个 JSON 格式的配置示例,您需要将其添加到您的 MCP 客户端配置中。
{ "serverName": "天气服务 (STDIO)", "command": "mcp_weather_service_stdio", "args": [], "transport": "stdio" }
配置参数说明:
- 'serverName': 服务器的名称,您可以自定义,用于在 MCP 客户端界面上识别和管理该服务器。例如 "天气服务 (STDIO)"。
- 'command': 启动 MCP 服务器的可执行命令。在本例中,安装后会生成 'mcp_weather_service_stdio' 命令,可以直接使用。
- 'args': 启动命令的参数列表。本示例中,服务器启动不需要额外的命令行参数,因此设置为空数组 '[]'。
- 'transport': 指定服务器使用的传输协议。这里设置为 'stdio',表示客户端将通过标准输入输出与服务器通信。
请注意: 'command' 的值 'mcp_weather_service_stdio' 是在安装项目后,由 'setup.py' 中的 'entry_points' 配置自动生成的。请确保您的环境已正确安装项目,并且该命令可以被执行。
基本使用方法
-
启动服务器: 在安装完成并配置好 MCP 客户端后,您需要先启动天气服务服务器。打开终端,确保您可以在命令行中执行 'mcp_weather_service_stdio' 命令。然后,直接运行该命令即可启动服务器:
mcp_weather_service_stdio服务器启动后,它将监听来自标准输入的 MCP 请求,并通过标准输出发送响应。
-
在 MCP 客户端中使用: 在您的 MCP 客户端(例如,兼容 MCP 协议的 LLM 应用或 MCP Inspector)中,确保已添加并启用了之前配置的天气服务服务器。当您向 LLM 提出与天气相关的问题时,例如 “今天北京天气怎么样?”,如果客户端检测到可以调用 'get_current_weather' 工具来回答这个问题,它将自动调用该工具,并将地点信息(例如 "北京")作为参数发送给天气服务服务器。
-
查看天气信息: 天气服务服务器接收到客户端的工具调用请求后,会查询天气数据,并将结果按照 MCP 协议格式返回给客户端。客户端接收到响应后,会将天气信息呈现给用户。例如,LLM 可能会以自然语言回复:“北京今天晴朗,温度25摄氏度...”,或者以结构化数据的形式展示天气预报。
通过以上步骤,您就可以成功搭建并使用这个基于 MCP 的天气服务服务器示例,体验 MCP 协议在连接 LLM 和外部工具方面的强大功能。
信息
分类
网页与API