使用说明
这是一个基于 Model Context Protocol (MCP) 构建的应用后端服务,专注于提供韩国特定地点的天气预报信息。它通过标准的MCP接口,允许支持MCP的LLM客户端(如AI助手、IDE等)调用韩国气象厅的API获取天气数据。
主要功能点
- 坐标查询: 根据韩国行政区域名称(市/道、区/郡、洞/邑/面),查询该地点在韩国气象厅API中使用的气象网格坐标(nx, ny)。
- 天气预报获取: 利用查询到的网格坐标,调用韩国气象厅的短期预报API,获取该地点的详细天气预报数据。
- 数据全面: 天气数据包括温度、降水、天空状况、湿度、风向、风速等信息。
- 结构化输出: 提供易于LLM理解和处理的结构化文本格式的天气预报结果。
- MCP能力: 注册了用于天气查询的工具(Tool)、提供使用指南的资源(Resource)以及指导LLM交互的提示模板(Prompt)。
安装步骤
- 克隆仓库:
git clone https://github.com/jikime/py-mcp-ko-weather.git cd py-mcp-ko-weather - 安装 uv (Python包管理器): 如果您还没有安装 'uv'。
curl -LsSf https://astral.sh/uv/install.sh | sh - 创建虚拟环境并安装依赖:
uv venv -p 3.12 # 使用 Python 3.12+ source .venv/bin/activate uv pip install -r requirements.txt - 配置API密钥: 复制 '.env.example' 创建 '.env' 文件,并填入您的韩国气象厅API密钥。您需要在韩国公共数据门户 (https://www.data.go.kr/) 申请“기상청_단기예보”服务的API密钥。
cp env.example .env # 编辑 .env 文件,填入您的密钥: # KO_WEATHER_API_KEY=your_api_key_here - 迁移坐标数据: 运行脚本将Excel格式的行政区划与网格坐标数据导入SQLite数据库。
uv run src/migrate.py- 注意: 数据库文件 'data/weather_grid.db' 是服务正常运行所必需的。
服务器配置
MCP服务器通常作为后台进程由MCP客户端启动和管理。要让您的MCP客户端(如支持MCP的AI应用或IDE)连接到此天气服务,需要在客户端的配置中添加此服务器的信息。
配置信息通常包括:
- 服务器名称: 在客户端中显示的服务名称,例如 "Korea Weather Service"。
- command: 用于启动此MCP服务器进程的可执行文件或脚本的路径。
- args: 传递给 'command' 的启动参数。
重要提示: 'command' 和 'args' 需要根据您实际的安装环境进行调整。
示例配置(概念说明,请参考您的客户端文档进行实际配置):
- 本地运行(使用uv虚拟环境):
- 'command': '/path/to/your/py-mcp-ko-weather/.venv/bin/uv' ('uv' 可执行文件的完整路径)
- 'args': '["run", "src/server.py"]' (运行 'src/server.py' 脚本的参数)
- 本地运行(直接使用Python):
- 'command': '/path/to/your/python3' (Python解释器的完整路径,确保是安装了依赖的Python环境)
- 'args': '["src/server.py"]' (运行 'src/server.py' 脚本的参数)
- 使用Docker:
- 'command': 'docker'
- 'args': '["run", "-i", "--rm", "py-mcp-ko-weather"]' (运行Docker容器的参数,确保您已经构建了名为 'py-mcp-ko-weather' 的镜像)
请将上述示例中的路径替换为您的实际路径。具体的配置格式和位置取决于您使用的MCP客户端。
基本使用方法
配置并启动服务器后,在支持MCP的LLM客户端中:
- LLM可以通过“天气查询”提示模板 ('weather-query') 了解如何进行天气查询对话。
- 当您询问某个韩国地点的天气时(例如:“釜山广域市海云台区佑洞的天气预报?”),LLM会:
- 首先调用 'get_grid_location' 工具,根据您提供的地点名称查询对应的网格坐标。
- 然后,调用 'get_forecast' 工具,使用地点名称和查询到的网格坐标获取详细的天气预报数据。
- 最后,将获取到的结构化天气信息呈现给您。
- 您也可以通过读取 'weather://instructions' 资源获取更详细的服务使用指南和工具说明。
信息
分类
网页与API