项目简介

此项目是一个使用 Node.js 和 Express.js 构建的 Model Context Protocol (MCP) 服务器,旨在为大型语言模型 (LLM) 客户端提供标准化的天气信息上下文和功能。它通过集成美国国家气象局 (NWS) API,提供实时天气预警和详细天气预报。该服务器完全兼容 JSON-RPC 2.0 MCP 协议,支持 HTTP 传输,并已预配置为可快速部署到 Azure App Service。

主要功能点

  • 天气信息服务: 提供获取美国各州天气预警和指定地点详细天气预报的功能。
  • MCP 协议兼容: 完全遵循 Model Context Protocol (MCP) 标准,支持 JSON-RPC 2.0 请求和响应。
  • 工具集成: 注册并提供 'get_alerts'(获取天气预警)和 'get_forecast'(获取天气预报)等工具,供 LLM 调用。
  • 资源管理: 托管并可提供自定义资源,如 'mcp://server/sample' 示例资源。
  • 会话和能力声明: 支持 MCP 协议的会话初始化和服务器能力声明。
  • HTTP 传输: 通过 HTTP 协议进行通信,方便集成到 Web 应用中。
  • Azure 部署支持: 提供 Azure Developer CLI (azd) 配置,简化一键部署到 Azure App Service 的过程。
  • 内置测试界面: 包含一个基于 Web 的交互式测试界面,方便用户调试和验证功能。

安装步骤

  1. 安装 Node.js: 确保您的系统已安装 Node.js 22+ (或 Node.js 18+) 和 npm。
  2. 克隆仓库: 从 GitHub 克隆此项目到您的本地机器。
  3. 进入项目目录: 在终端中导航到克隆的项目文件夹。
  4. 安装依赖: 运行 'npm install' 命令安装所有必要的项目依赖。
  5. 启动服务器: 运行 'npm run dev' 命令以开发模式启动服务器。服务器将在 'http://localhost:8000' 运行。

服务器配置 (供MCP客户端连接)

MCP 客户端(如 VS Code Copilot Agent 或其他支持 MCP 的工具)需要以下信息来连接并使用此服务器:

要通过客户端自动启动并连接到本地服务器,可以使用以下 JSON 配置:

{
  "name": "Node.js天气服务器",
  "command": "node",
  "args": ["server.js"],
  "transport": "http",
  "endpoint": "http://localhost:8000/mcp/stream"
}

配置参数说明:

  • 'name': 服务器的友好显示名称。
  • 'command': 启动服务器进程的命令(例如,在命令行中执行 'node server.js' 来启动此服务器)。
  • 'args': 传递给 'command' 的命令行参数。
  • 'transport': 客户端与服务器通信所使用的传输协议类型,此处为 'http'。
  • 'endpoint': MCP 服务器的 JSON-RPC 接口的完整 URL 地址。

基本使用方法

  1. 启动服务器: 按照“安装步骤”启动本地服务器('npm run dev')。
  2. 通过 MCP Inspector 连接:
    • 在新终端中安装并运行 MCP Inspector:'npx @modelcontextprotocol/inspector'
    • 在浏览器中打开 Inspector 提供的 URL。
    • 将传输类型设置为 'HTTP',并将 URL 设置为 'http://localhost:8000',然后点击“Connect”。
    • 您现在可以查看服务器提供的工具和资源,并执行工具调用。
  3. 通过 VS Code Copilot Agent 模式连接:
    • 在 VS Code 命令面板中,选择“Add MCP Server”。
    • 输入服务器的 HTTP 端点 URL:'http://localhost:8000'。
    • 选择“List MCP Servers”并启动它。
    • 在 Copilot 聊天模式下,尝试提问,例如:“加利福尼亚州的天气预警是什么?”或“旧金山的天气预报如何?”,Copilot 会提示调用服务器工具。
  4. 直接访问测试界面: 在浏览器中访问 'http://localhost:8000/test',可以进行交互式测试。

信息

分类

网页与API