天气服务服务器

一个基于Go语言实现的天气服务服务器,提供特定位置的天气预报和警报功能,并可与Model Context Protocol (MCP)框架集成。

  • by anitabee
  • Go
  • 本地部署
  • 更新于
在 GitHub 查看 anitabee/hello-mcp

使用说明

你好,MCP天气服务器

实施 构建MCP服务器教程 在Go。

它涵盖了使用 API气象局它旨在与模型上下文协议(MCP)框架集成,纯粹用于我的学习目的。

特性

  • 获取天气预报:获取给定纬度和经度的详细天气预报。
  • 获取天气警报:检索给定状态的活动天气警报。
  • MCP集成:实现可以在MCP框架中注册和使用的工具。

先决条件

  • 转到1.25.1或更高版本
  • MCP Go SDK(github.com/modelcontextprotocol/go-sdk)

安装

  1. 克隆存储库:

    git clone https://github.com/anitabee/hello-mcp.git
    cd hello-mcp/server/weather
    
  2. 安装依赖项:

    go mod tidy
    
  3. 构建服务器:

    go build -o weather-server
    

    这将创建一个名为的可执行文件 weather-server 在当前目录中。

用法

运行服务器

./weather-server

这登记了 get_forecast 和 get_alerts 工具并启动服务器。
在大多数情况下,您将与Claude等客户端集成,后者为您处理服务器的启动(请参见 配置)

示例工具:获取天气预报

这 get_forecast 该工具获取给定纬度和经度的天气预报。

示例输入:

{
  "latitude": "40.7128",
  "longitude": "-74.0060"
}

示例工具:获取天气警报

这 get_alerts 该工具检索给定状态的活动天气警报。

示例输入:

{
  "state": "NY"
}

输出示例:

{
  "alerts": [
    {
      "title": "Severe Thunderstorm Warning",
      "description": "A severe thunderstorm has been detected in your area."
    },
    {
      "title": "Flood Watch",
      "description": "Heavy rainfall is expected, leading to potential flooding."
    }
  ]
}

配置

MCP服务器配置在 claude_desktop_config.json例如:

{
  "mcpServers": {
    "weather": {
      "command": "/Users/<user-workspace>/hello-mcp/server/weather/weather-server"
    }
  }
}