项目简介
本项目是一个实现了 Model Context Protocol (MCP) 的天气预报服务器。它提供了一个工具,允许 LLM 客户端通过 MCP 协议查询全球主要城市和地区的天气信息。该服务器使用 'wttr.in' 服务作为天气数据源,并以标准化的 MCP 方式与客户端进行交互。
主要功能点
- 获取实时天气: 提供查询指定城市或地区当前天气状况的功能。
- 多语言地点支持: 支持中文、英文以及其他语言的地点名称查询。
- 易于集成: 可以方便地集成到任何支持 MCP 协议的 LLM 客户端,如 Claude 等。
- 多种传输协议支持: 默认支持 stdio 传输协议,也支持 sse 等其他传输协议。
安装步骤
-
安装 Python 包: 使用 'uv' 或 'pip' 包管理器安装 'weather-forecast-server'。
uv install weather-forecast-server或者
pip install weather-forecast-server -
验证安装 (可选): 安装完成后,可以尝试运行服务器,验证安装是否成功。
uv run weather-forecast-server
服务器配置
要使 MCP 客户端(例如 Claude)连接到此天气预报服务器,您需要提供服务器的配置信息。以下是 JSON 格式的配置信息示例,您可以将其添加到 MCP 客户端的服务器列表中。
{ "server_name": "WeatherForecastServer", "command": "weather-forecast-server", "args": [], "transport": "stdio", "description": "提供全球天气预报和当前天气状况的工具" }
配置参数说明:
- 'server_name': 服务器名称,建议设置为 "WeatherForecastServer",与服务器自身声明的名称一致。
- 'command': 启动服务器的命令。安装 Python 包后,可以直接使用 'weather-forecast-server' 命令启动。
- 'args': 启动命令的参数。 默认情况下,无需额外参数。如果需要指定传输协议,可以添加 '--transport' 参数,例如 '["--transport", "sse"]'。
- 'transport': 指定 MCP 服务器使用的传输协议。 默认为 'stdio'。 如果需要使用 SSE 等其他协议,请修改此项和 'args' 中的参数。
- 'description': 服务器描述,用于在客户端界面上显示服务器的功能介绍。
基本使用方法
-
启动服务器: 在终端中运行以下命令启动天气预报 MCP 服务器。
uv run weather-forecast-server或使用 SSE 传输协议:
uv run weather-forecast-server --transport sse -
配置 MCP 客户端: 将上述提供的服务器配置信息添加到您的 MCP 客户端中。
-
使用天气工具: 在 LLM 应用中,您可以使用 'get_weather' 工具来查询天气。例如,在 Claude 中,您可以指示 Claude 使用 "Weather Tool" 并调用 'get_weather' 工具,参数为城市名称,例如 "北京" 或 "London"。
工具名称: 'get_weather' 工具描述: 'Get current weather for a specified location using wttr.in service.' 参数: 'city: str' (城市名称,例如 "Beijing", "New York", "Tokyo", "武汉")
LLM 客户端会向服务器发送 MCP 请求,服务器会调用 'get_weather' 工具,查询天气信息并返回给客户端。
开发
如果您想进行二次开发,可以参考 README.md 中的开发环境搭建步骤。
信息
分类
网页与API