mcpField
M
Mcp Server Weather Example

Mcp Server Weather Example

本地服务
github.com/aman-panjwani媒体与设计078 周前更新

关于 Mcp Server Weather Example

Mcp Server Weather Example 是面向使用 Azure Container Apps 团队的天气 MCP 服务部署示例与指南。它通过支持 SSE 且受 API 密钥保护的 FastAPI 应用提供美国国家气象局的预警和预报。

主要功能

  1. 01获取 NWS 预警和天气预报
  2. 02通过 FastAPI 应用提供工具
  3. 03支持服务器发送事件(SSE)
  4. 04使用 API 密钥保护请求
  5. 05部署到 Azure Container Apps

适用场景

  1. 01部署远程天气 MCP 服务
  2. 02查询当前天气预警
  3. 03通过 MCP 客户端获取预报
  4. 04从 Visual Studio Code 连接服务

MCP 相关

它向 MCP 客户端提供 `get_alerts()` 和 `get_forecast()` 工具。示例采用 SSE 和 API 密钥认证,并提供 Azure Container Apps 部署说明。

配置

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

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库

工具

还没有获取到工具列表

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

详细介绍

部署并连接远程 MCP 天气服务

本项目可让你部署一个基于云的 Model Context Protocol(MCP) 服务,通过美国国家气象局 API 提供实时天气数据。本项目使用 FastAPI 构建,支持通过服务器发送事件(SSE)进行实时通信,并采用安全的 API 密钥身份验证。

此存储库提供一个可直接部署的 Weather MCP 服务。你将了解完整的设置流程:从克隆代码、配置身份验证、部署到 Azure Container Apps,到最后通过 MCP 扩展在 Visual Studio Code 中进行连接。


克隆存储库
git clone https://github.com/your-username/mcp-weather-server.git
cd mcp-weather-server

了解项目结构

部署前,请先熟悉核心组件:

  • weather.py – 使用美国国家气象局 API 定义两个工具:get_alerts() 和 get_forecast()。
  • main.py – 将这些工具封装在一个 FastAPI 应用中,并通过 /sse 暴露,支持 SSE。
  • api_key_auth.py – 为传入请求实现基于 x-api-key 请求头的安全机制。
  • Dockerfile – 使用 Python 3.13 和 uv Web 服务器构建并打包应用。

配置 API 密钥身份验证

通过环境变量安全地设置 API 密钥:

export API_KEYS=<YOUR_API_KEY>

你也可以提供多个以逗号分隔的密钥。无需将密钥硬编码到源代码中。


构建并部署到 Azure Container Apps

使用 Azure CLI 一步完成构建和部署:

az containerapp up \
  -g <RESOURCE_GROUP> \
  -n weather-mcp \
  --environment <CONTAINERAPPS_ENV_NAME> \
  -l westus \
  --env-vars API_KEYS=<YOUR_API_KEY> \
  --source .

此命令将:

  • 使用附带的 Dockerfile 构建镜像。
  • 将其部署到 Azure Container Apps。
  • 通过 --env-vars 注入 API 密钥。

部署完成后,Azure CLI 将返回一个公开 URL,这是 MCP 客户端将使用的端点。

ContainerAppDeployResponse


从 Visual Studio Code 连接

服务启动后,可在 VS Code 中连接:

  1. 在项目中创建 .vscode/mcp.json 文件:
{
  "inputs": [
    {
      "type": "promptString",
      "id": "weather-api-key",
      "description": "Weather API Key",
      "password": true
    }
  ],
  "servers": {
    "weather-sse": {
      "type": "sse",
      "url": "https://weather-mcp.orangebush.westus.azurecontainerapps.io/sse",
      "headers": {
        "x-api-key": "${input:weather-api-key}"
      }
    }
  }
}
  1. 在 VS Code 中打开 MCP 扩展侧边栏。
  2. 点击服务条目旁边的 Start。
  3. 按提示输入 API 密钥。

现在已连接成功,可以处理实时天气查询了。


使用 GitHub Copilot Chat(Agent 模式)试用
  1. 在 Agent mode 下启动 GitHub Copilot Chat。
  2. 提出类似这样的问题:

"佐治亚州的天气预报怎么样?"

Agent 会在后台调用你的 get_forecast 工具,并根据 NWS 数据返回实时天气预报。

RunAgent


一切就绪!

你的 MCP 服务现在已经:

  • 托管在云端
  • 受 API 密钥保护
  • 已与 VS Code 和 GitHub Copilot 集成

现在,你可以构建自定义 Agent,从任何地方与实时天气数据交互。

评论

支持 Markdown

第一次接触 MCP?

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

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