天气数据服务

一个基于MCP协议的天气数据服务,提供预定义城市的模拟天气信息,适用于MCP兼容客户端如LLM代理的后端服务。

  • by EnigmaticHarvest
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 enigmaticharvest/dummy-mcp-weather-server

使用说明

我的MCP天气服务器

此项目是一个使用以下组件构建的MCP(模型上下文协议)服务器的示例 @modelcontextprotocol/sdk 对于TypeScript。它演示了如何展示一个简单的工具,为几个预定义的城市提供虚拟天气信息。

此服务器旨在用作符合MCP的客户端的后端,例如可以利用此服务器公开的工具的LLM驱动的代理。

特性

  • 符合MCP标准: 实现模型上下文协议。
  • 可流式HTTP传输: 使用推荐的 StreamableHTTPServerTransport 为了沟通。
  • 工具暴露: 暴露a get_city_weather 工具。
    • 输入: city (字符串,例如“巴黎”、“伦敦”、“东京”)和可选 unit (枚举:“公制”或“英制”,默认为“公制”)。
    • 输出: 返回虚拟天气信息,包括温度、描述和湿度。
    • 结构化输出: 提供 structuredContent 匹配已定义的 outputSchema 以便客户端进行可靠的解析。
  • 基本会话管理: 演示简单的内存会话处理 StreamableHTTPServerTransport.

先决条件

  • Node.js(建议使用v18或更高版本,根据MCP SDK)
  • npm(或yarn/pnpm)

设置

  1. 克隆存储库(或创建项目文件):

    # If you have it in a git repo:
    # git clone <your-repo-url>
    # cd my-mcp-weather-server
    
    # Otherwise, ensure you have the project directory with src/server.ts, package.json, tsconfig.json
    
  2. 安装依赖项:

    npm install
    

运行服务器

为了发展

此命令使用 ts-node 直接运行TypeScript源代码 nodemon 在文件更改时自动重新启动服务器。

npm run build
npm start