天气信息服务器

一个提供天气信息和时间服务的Model Context Protocol (MCP)服务器,适用于AI助手和应用程序。

  • by Domt301
  • JavaScript
  • 本地部署
  • 更新于
在 GitHub 查看 domt301/claude_mcp_weather_server

使用说明

气象MCP服务器

一种模型上下文协议(MCP)服务器,为人工智能助手和应用程序提供天气信息和时间工具。

概述

此MCP服务器使用两个主要工具实现了简单的天气服务:

  • 天气信息:获取任何城市的当前天气数据
  • 时间服务:检索当前时间戳

该服务器使用TypeScript和官方MCP SDK构建,演示了如何创建可供Claude Desktop和其他MCP兼容客户端使用的自定义工具。

特性

  • 🌤️ 天气数据:获取全球任何城市的天气信息
  • ⏰ 时间服务:获取ISO格式的当前时间戳
  • 🔒 输入验证:使用Zod模式进行稳健的参数验证
  • 🚀 TypeScript:完全类型安全和现代JavaScript功能
  • 📡 stdio运输:通过标准输入/输出进行通信,实现无缝集成

安装

先决条件

  • Node.js 18+
  • npm或yarn包管理器

设置

  1. 克隆存储库

    git clone <repository-url>
    cd my-mcp-server
    
  2. 安装依赖项

    npm install
    
  3. 构建项目

    npm run build
    

用法

发展

在开发模式下运行服务器:

npm run dev

生产

启动内置服务器:

npm start

与Claude Desktop集成

将此服务器添加到您的Claude Desktop配置中:

{
  "mcpServers": {
    "weather-server": {
      "command": "node",
      "args": ["/path/to/my-mcp-server/build/index.js"]
    }
  }
}

可用工具

get_weather

检索指定城市的天气信息。

参数:

  • city (string,必填):获取天气的城市
  • units (字符串,可选):温度单位-“公制”或“英制”(默认为“公制”)

示例响应:

Weather in London:
Temperature: 18°C
Conditions: Partly cloudy
Humidity: 65%

get_time

以ISO 8601格式返回当前时间戳。

参数: 无

示例响应:

Current time: 2025-01-08T14:30:25.123Z

项目结构

my-mcp-server/
├── index.ts          # Main server implementation
├── package.json      # Project dependencies and scripts
├── tsconfig.json     # TypeScript configuration
├── build/           # Compiled JavaScript output
└── README.md        # This file

技术细节

依赖项

  • @模型上下文协议/sdk:用于服务器实现的官方MCP SDK
  • 轴:用于外部API调用的HTTP客户端
  • 动物圈:运行时类型验证和解析

建筑

服务器遵循MCP规范:

  1. 工具注册:工具通过注册 ListToolsRequestSchema 处理器
  2. 工具执行:工具调用通过以下方式处理 CallToolRequestSchema 处理器
  3. 错误处理:正确的MCP错误代码和验证
  4. 运输:使用stdio传输进行通信

天气数据

目前返回模拟天气数据用于演示目的。要与真实天气API集成,请执行以下操作:

  1. 注册天气服务(例如,OpenWeatherMap)
  2. 替换中的模拟数据生成 get_weather 案件
  3. 添加正确的API密钥处理和HTTP请求

脚本

  • npm run build -将TypeScript编译为JavaScript
  • npm run dev -构建并运行开发模式
  • npm start -运行已编译的服务器

贡献

  1. 分叉存储库
  2. 创建要素分支(git checkout -b feature/amazing-feature)
  3. 进行更改
  4. 构建和测试(npm run build)
  5. 提交您的更改(git commit -m 'Add amazing feature')
  6. 推到分支(git push origin feature/amazing-feature)
  7. 打开拉取请求

许可证

该项目是开源的,可在 MIT许可证.

了解更多


内置于❤️ 使用TypeScript和模型上下文协议