使用说明
项目简介
本项目 'weather' 是一个简单的MCP服务器示例,它利用美国国家气象局 (NWS) 的API,对外提供天气警报和天气预报查询功能。该服务器实现了MCP协议,可以与任何兼容MCP协议的客户端进行交互,为LLM应用提供天气相关的上下文信息和工具调用能力。
主要功能点
- 获取天气警报 (get_alerts): 根据美国州份代码,查询该地区当前生效的天气警报信息。
- 获取天气预报 (get_forecast): 根据经纬度坐标,查询未来几天的详细天气预报信息。
安装步骤
- 确保已安装 uv 和 Python 环境: 如果尚未安装 uv,请先安装 uv 包管理器。同时确保你的环境中已安装 Python。
- 创建并进入项目目录: 按照 'README.md' 中的指示,创建项目目录 'mcp-server' 并进入该目录。
uv init mcp-server cd mcp-server - 创建并激活虚拟环境: 创建 Python 虚拟环境并激活它,以隔离项目依赖。
uv venv source .venv/bin/activate # Linux/macOS # .venv\Scripts\activate # Windows - 安装依赖: 使用 uv 安装项目所需的依赖包 'mcp[cli]' 和 'httpx'。
uv add "mcp[cli]" httpx
服务器配置
MCP 客户端需要以下配置信息来连接到 'weather' MCP 服务器。请将以下 JSON 配置添加到你的 MCP 客户端配置中。
{ "server_name": "weather", // 服务器名称,与 FastMCP 初始化时定义的名称一致 "command": "uv", // 启动服务器的命令,这里使用 uv 运行 main.py "args": ["run", "main.py"] // 启动命令的参数,指定运行 main.py 文件 }
配置参数说明:
- 'server_name': 定义了服务器的名称,这里设置为 "weather",这必须与 'main.py' 中 'FastMCP("weather")' 初始化时使用的名称相同。
- 'command': 指定用于启动服务器的可执行命令。这里使用 'uv' 包管理器来运行 Python 脚本。
- 'args': 一个字符串数组,包含了传递给 'command' 的参数。'["run", "main.py"]' 指示 'uv' 运行 'main.py' 文件。
基本使用方法
-
启动服务器: 在项目根目录下,运行以下命令启动 'weather' MCP 服务器。
uv run main.py或者使用 inspector 工具调试启动:
npx @modelcontextprotocol/inspector uv run main.py服务器启动后,将通过标准输入输出 (stdio) 与 MCP 客户端进行通信。
-
客户端调用工具: 使用 MCP 客户端连接到该服务器后,你可以调用以下工具:
- get_alerts: 获取天气警报。需要提供 'state' 参数,即美国州份的两字母代码 (例如 "CA", "NY")。
- get_forecast: 获取天气预报。需要提供 'latitude' (纬度) 和 'longitude' (经度) 参数,以指定地理位置。
客户端需要构造符合 MCP 协议的 JSON-RPC 请求,来调用这些工具并获取天气信息。具体的请求格式和参数定义请参考 MCP 协议文档以及工具的 docstring 注释。
示例 (概念性,非实际 JSON-RPC 请求):
假设你使用 MCP 客户端,想要查询加州 (CA) 的天气警报,你需要在客户端中选择或配置调用 'weather' 服务器的 'get_alerts' 工具,并提供参数 '{"state": "CA"}'。服务器将返回包含天气警报信息的 JSON-RPC 响应。
同样,要查询特定经纬度 (例如 34.0522, -118.2437,洛杉矶) 的天气预报,你需要调用 'get_forecast' 工具,并提供参数 '{"latitude": 34.0522, "longitude": -118.2437}'。服务器将返回包含天气预报信息的 JSON-RPC 响应。
信息
分类
网页与API