天气API服务

基于Cloudflare Workers部署的模块化MCP服务器,提供当前天气和5天天气预报API,适用于AI模型或其他客户端。

  • by takzen
  • TypeScript
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 takzen/cloudflare-mcp-server

使用说明

Cloudflare MCP服务器

模块化MCP(模型通信平台)服务器部署在 Cloudflare员工,为AI模型或其他客户端提供当前天气和5天天气预报API等工具。


特性

  • 模块化工具架构 –轻松为不同的API添加新工具。
  • 获取当前天气 –获取任何城市的当前天气。
  • 获取5天预报 –获取任何城市的5天天气预报。
  • 无服务器,全球可访问 –部署在Cloudflare Workers上,无需维护基础设施。
  • JSON接口 –发送POST请求 tool 和 input,接收结构化JSON响应。

项目结构

cloudflare-mcp/
│
├─ src/
│   └─ index.ts           # main MCP Server
│
├─ test/                  # optional tests
├─ package.json
├─ package-lock.json
├─ tsconfig.json
├─ vitest.config.mts
├─ README.md
├─ .gitignore

注: 文件如 .env, .dev.vars,以及 wrangler.toml 包含API密钥应 不 被纳入公共回购。


入门指南

先决条件

安装依赖项

npm install

设置环境变量

创建一个 .dev.vars 或 .env 本地文件:

OPENWEATHER_API_KEY=your_openweathermap_api_key

本地运行

启动本地开发服务器:

wrangler dev

POST请求示例:

curl -X POST http://127.0.0.1:8787 \
  -H "Content-Type: application/json" \
  -d '{"tool":"getWeather","input":{"city":"Warsaw"}}'

部署到Cloudflare

wrangler deploy

您的MCP服务器将通过提供的 workers.dev URL。


用法

获取当前天气

POST请求:

{
  "tool": "getWeather",
  "input": { "city": "Warsaw" }
}

答复:

{
  "city": "Warsaw",
  "temp": 10.47,
  "description": "broken clouds"
}

获取5天预报

POST请求:

{
  "tool": "getForecast",
  "input": { "city": "Warsaw" }
}

答复:

{
  "city": "Warsaw",
  "forecast": [
    {"date":"2025-11-03 12:00:00","temp":10.5,"description":"broken clouds"},
    {"date":"2025-11-04 12:00:00","temp":9.8,"description":"light rain"},
    ...
  ]
}

许可证

MIT许可证