使用说明
项目简介
本项目是一个基于 Model Context Protocol (MCP) 的天气服务器示例,旨在演示如何构建一个可以向 LLM 客户端提供天气信息服务的 MCP 服务器。通过该服务器,LLM 可以获取实时的天气数据和未来几天的天气预报。
主要功能点
- 资源 (Resources): 提供当前城市的天气信息资源。客户端可以通过 'weather://城市名/current' 格式的 URI 访问,获取实时的天气数据,例如温度、天气状况、湿度和风速等。
- 工具 (Tools): 提供 'get_forecast' 工具,允许客户端查询指定城市未来几天的天气预报。客户端可以指定城市名称和预报天数(1-5天)。
安装步骤
- 安装 Python 依赖: 确保您已安装 Python 3.7 或更高版本,并安装了 'uv' 包管理器。然后使用 'uv sync' 命令安装项目依赖。
uv sync - 配置 API 密钥: 本项目使用了 OpenWeatherMap 的 API 获取天气数据。您需要在 OpenWeatherMap 官网 注册账号并获取 API 密钥。获取密钥后,将其设置为环境变量 'OPENWEATHER_API_KEY'。例如,在 Linux 或 macOS 系统中,您可以将以下内容添加到您的 shell 配置文件(如 '.bashrc' 或 '.zshrc'):
请将 'YOUR_API_KEY' 替换为您实际的 API 密钥。export OPENWEATHER_API_KEY=YOUR_API_KEY
服务器配置
要将此 MCP 服务器添加到 MCP 客户端(例如 Claude),您需要在客户端的 MCP 服务器配置中添加以下 JSON 配置。假设您的项目代码位于 '/Users/<your-user-name>/Codes/mcp-weather-server-example' 目录。
{ "mcpServers": { "weather-service": { "command": "uv", "args": [ "--directory", "/Users/<your-user-name>/Codes/mcp-weather-server-example", "run", "weather-service" ] } } }
配置参数说明:
- 'server name': 'weather-service' (服务器名称,您可以自定义,用于在客户端中标识该服务器)
- 'command': 'uv' (启动命令,这里使用 'uv' 运行器来运行 Python 代码)
- 'args': 启动参数列表
- '--directory': '/Users/<your-user-name>/Codes/mcp-weather-server-example' (指向项目代码所在的目录,请替换为您的实际路径)
- 'run': 'uv run' 命令的子命令,表示运行指定的 Python 包
- 'weather-service': 要运行的 Python 包名称,对应项目中的 'src/weather_service/init.py' 文件,该文件定义了服务器的入口 'main' 函数。
基本使用方法
- 确保您已完成安装步骤并配置了 API 密钥。
- 将上述服务器配置 JSON 代码添加到您的 MCP 客户端配置文件中 (例如 Claude Desktop 的 'claude_desktop_config.json')。
- 启动 MCP 客户端。客户端应该能够自动连接到 'weather-service' 服务器。
- 在 LLM 中,您可以指示 LLM 使用 'weather-service' 服务器提供的功能。例如:
- 询问 "今天伦敦的天气怎么样?" LLM 可能会尝试读取 'weather://London/current' 资源获取实时天气信息。
- 询问 "查询一下未来三天伦敦的天气预报" LLM 可能会调用 'get_forecast' 工具,并传入城市 "London" 和天数 "3" 作为参数。
信息
分类
网页与API