项目简介
本项目是一个基于 Model Context Protocol (MCP) 的服务器实现,用于包装立陶宛气象服务 (meteo.lt) 的公共 API。它将气象查询功能封装为可由支持MCP协议的LLM客户端调用的“工具”,使得LLM能够获取立陶宛特定地点的气象信息。
主要功能点
- 查询地点信息: 提供工具查询立陶宛气象服务支持的地点列表或特定地点的详细信息,返回地点的代码、名称、坐标等。
- 查询预报类型: 提供工具查询特定地点可用的天气预报类型(例如长期预报),帮助确定可以获取哪些维度的天气数据。
- 获取天气预报: 提供工具获取特定地点和预报类型的详细天气预报数据,包括温度、风速、降水量、天气状况代码等。
- Stdio传输: 服务器通过标准输入/输出(Stdio)与客户端进行通信。
安装步骤
本项目需要 Node.js 环境。请确保您的系统已安装 Node.js (推荐 LTS 版本)。
- 克隆仓库:
git clone https://github.com/povilas-dev/meteo-mcp.git cd meteo-mcp - 安装依赖:
或者使用 yarn 或 pnpm:npm installyarn install # 或 pnpm install - 构建项目: 项目使用 TypeScript 编写,需要编译。
此命令会将 TypeScript 代码编译到 'dist' 目录。npm run build
服务器配置(用于MCP客户端)
MCP客户端需要知道如何启动并连接到此服务器。由于此服务器使用 Stdio 传输,客户端通常需要配置启动服务器进程的命令。
MCP客户端需要配置的服务器信息大致如下(具体格式取决于您的客户端实现,但通常包含服务器名称、启动命令及其参数):
- 服务器名称 (name): 'meteo'
- 启动命令 (command): 'node' (执行 Node.js 环境)
- 启动参数 (args): '["dist/index.js"]' (指向编译后的服务器主入口文件)
这意味着当MCP客户端需要与此服务器通信时,它会执行命令 'node dist/index.js' 来启动一个服务器进程,并通过该进程的标准输入输出进行通信。
基本使用方法
此MCP服务器设计为由支持MCP协议的LLM客户端调用。作为用户,您无需直接与服务器的命令行交互。
一旦服务器通过上述配置在您的系统上可由MCP客户端启动和连接,您的LLM客户端(例如支持工具调用的聊天界面)即可通过内部机制调用以下工具来获取气象信息:
- 'getMeteoPlaces': 用于查找地点。
- 'getMeteoForecasts': 用于查询地点可用的预报类型。
- 'getMeteoWeatherForecast': 用于获取详细天气预报。
LLM客户端会根据用户提问,自动选择并调用合适的工具,并将获取到的气象数据用于生成回复。
例如,如果您在连接了此MCP服务器的LLM客户端中提问“维尔纽斯(Vilnius)现在天气如何?”,LLM可能会首先调用 'getMeteoPlaces' 查找“Vilnius”的地点代码,然后调用 'getMeteoWeatherForecast' 获取该地点当前的天气预报,最后将信息组织成自然语言回复您。
信息
分类
网页与API