mcpField
W
Weather API MCP Server

Weather API MCP Server

本地服务
news.ycombinator.com媒体与设计24655 周前更新

关于 Weather API MCP Server

Weather API MCP Server 是一个轻量级 MCP 服务,让 Claude 等 AI 助手获取并解读实时天气数据。它使用 Go 编写,并支持本地与远程两种运行方式。

主要功能

  1. 01按城市名获取当前天气
  2. 02支持本地运行与 SSE 远程连接
  3. 03提供 Docker 镜像构建与运行方式
  4. 04基于 Go 实现,附带模拟服务用于测试

适用场景

  1. 01在 Claude Desktop 中询问某城市的当前天气
  2. 02将天气服务部署为远程 MCP 服务供多个客户端使用

MCP 相关

该项目是 MCP 服务,向 MCP 客户端暴露 current_weather 工具,接收城市名参数并返回当前天气信息。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"weather": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"build"
]
}
}
}
启动命令docker run -i --rm build

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
ocibuild

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

示例输出模板

Weather API MCP 服务

License Go Version Go Report Card Build Tests

报告 Bug | 请求功能

一款轻量级的模型上下文协议(MCP)服务,可让 Claude 等 AI 助手检索并解读实时天气数据。

演示示例

在 Claude Desktop 上安装

要在 Claude Desktop 中使用 MCP 服务,请将其添加到 Claude 配置中:

1. 本地模式
{
  "mcpServers": {
    "weather-mcp-server": {
      "command": "/path/to/weather-mcp-server",
      "env": {
        "WEATHER_API_KEY": "your-api-key"
      }
    }
  }
}

你可以在自己的 WeatherAPI 账户中获取 API 密钥。

2. 远程模式
{
  "mcpServers": {
    "weather-mcp-server": {
      "url": "http://host:port/sse"
    }
  }
}

从源代码构建

你可以使用 go 在 cmd/github-mcp-server 目录中构建二进制文件。

go build -o weather-mcp-server ./cmd/weather-mcp-server

使用 Docker 容器运行 MCP

1. 构建 Docker 镜像:
docker build -t weather-mcp-server .
2. 运行 Docker 容器:
docker run -e WEATHER_API_KEY=your-api-key -d --name weather-mcp-server -p 8000:8000 weather-mcp-server

将 your-api-key 替换为你实际的 WeatherAPI API 密钥。

工具

  • current_weather - 获取某个城市的当前天气

    • city:城市名称(字符串,必填)

项目结构

项目由几个主要目录组成:

├── cmd
│   └── weather-mcp-server
├── internal
│   └── server
│       ├── handlers # MCP handlers
│       ├── services # Business logic layer
│       │   ├── core # Core application logic
│       │   └── mock # Mock services for testing
│       ├── tools # MCP tools
│       └── view # Templates for displaying messages
└── pkg

测试

如果你要添加新功能,请确保为其编写测试。

1. 安装 mockgen 工具:
go install go.uber.org/mock/mockgen@latest

请参阅 go.uber.org/mock 上的安装指南。

2. 使用以下命令生成模拟文件:
make generate-mocks
3. 运行单元测试:
make run-tests

贡献

欢迎提交问题或发送改进建议的拉取请求。提前感谢你的帮助!

请遵循贡献指南。

许可证

此 MCP 服务采用 MIT License 授权。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。