Token导航 LogoToken导航TokenDH.com
Weather MCP Redis logo
地图位置未说明官方级别未说明来源级核验

Weather MCP Redis

MCP Server

一个使用.NET HybridCache和Azure Redis的企业级天气数据生成服务器,支持Entra ID认证。

工具数

1

提示词数

0

GitHub Stars

0

资源数

0
位置天气C#搜索

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

CawaMS

提供方

CawaMS

最后核验

2026/5/17 20:19

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

详细介绍

配备Azure Redis HybridCache的天气MCP服务器

一种模型上下文协议(MCP)服务器,使用提供企业级缓存的天气数据生成。NET HybridCache和具有Entra ID身份验证的Azure Redis。

🌟 特性

  • AI代理集成:具有天气功能的笑话助理
  • 智能缓存:具有内存L1和Azure Redis L2的多层缓存
  • 安全认证:Azure Entra ID身份验证(无连接字符串!)
  • 确定性天气:同一城市/日期总是返回一致的天气数据
  • 踩踏保护:防止重复的缓存生成请求
  • 基于标签的无效化:使用标签进行有组织的缓存管理

🏗️ 建筑

┌─────────────────┐    ┌──────────────────┐    ┌─────────────────┐
│   MCP Client    │───▶│   MCP Server     │───▶│  Azure OpenAI   │
└─────────────────┘    └──────────────────┘    └─────────────────┘
                              │
                              ▼
                       ┌──────────────────┐
                       │  HybridCache     │
                       │  ┌─────────────┐ │
                       │  │ L1: Memory  │ │ (30 min)
                       │  └─────────────┘ │
                       │  ┌─────────────┐ │
                       │  │ L2: Redis   │ │ (6 hours)
                       │  └─────────────┘ │
                       └──────────────────┘
                              │
                              ▼
                    ┌─────────────────────────┐
                    │  Azure Redis Cache      │
                    │  (Entra ID Auth)        │
                    └─────────────────────────┘

🚀 快速开始

先决条件

  • .NET 10.0或更高版本
  • Azure CLI已安装并通过身份验证(az login)
  • 启用Entra ID访问Azure Redis缓存

安装

  1. 克隆存储库:
   git clone https://github.com/CawaMS/weather-mcp-redis.git
   cd weather-mcp-redis
  1. 恢复依赖关系:
   dotnet restore
  1. 配置Azure Redis:

更新Redis主机名 Program.cs:

   var redisHostName = "your-redis-instance.centraluseuap.redis.azure.net:10000";
  1. 构建项目:
   dotnet build
  1. 运行MCP服务器:
   dotnet run

📦 依赖项

包装版本用途
Microsoft.Extensions.Caching.Hybrid9.10.0多层缓存
Microsoft.Extensions.Caching.StackExchangeRedis9.0.10Redis集成
Microsoft.Azure.StackExchangeRedis3.3.0带有Entra ID的Azure Redis
Azure.Identity1.17.0Azure身份验证
Microsoft.Agents.AI.OpenAI1.0.0-预览AI代理框架
ModelContextProtocol0.4.0-审查。3MCP服务器实现

🔧 配置

HybridCache设置

builder.Services.AddHybridCache(options =>
{
    options.MaximumPayloadBytes = 1024 * 1024; // 1MB max payload
    options.MaximumKeyLength = 1024;           // 1KB max key length
    options.DefaultEntryOptions = new HybridCacheEntryOptions
    {
        Expiration = TimeSpan.FromHours(6),           // L2 Redis cache
        LocalCacheExpiration = TimeSpan.FromMinutes(30) // L1 Memory cache
    };
});

Azure Redis配置

服务器自动为Azure Redis配置Entra ID身份验证:

var configurationOptions = ConfigurationOptions.Parse(redisHostName);
await configurationOptions.ConfigureForAzureWithTokenCredentialAsync(new AzureCliCredential());

🌤️ 天气工具使用

MCP功能调用

{
  "name": "GenerateWeatherAsync",
  "arguments": {
    "city": "Seattle",
    "date": "2024-03-15"
  }
}

响应示例

{
  "City": "Seattle",
  "Date": "2024-03-15",
  "Condition": "Rainy",
  "Temperature": "12°C",
  "Humidity": "78%",
  "WindSpeed": "18 km/h",
  "Pressure": "995 hPa",
  "CachedAt": "2025-11-09 23:45:32 UTC",
  "CacheInfo": "Cached in Azure Redis with Entra ID auth for 6 hours"
}

🔐 安全功能

Entra ID身份验证

  • 无连接字符串:使用Azure CLI凭据
  • 基于令牌的身份验证:安全、旋转的令牌
  • RBAC支持:细粒度访问控制

缓存安全

  • 加密传输:所有Redis通信加密
  • 孤立实例:每个环境专用Redis实例
  • 访问策略:基于Entra ID的访问控制

📊 缓存策略

缓存密钥

weather:{city}:{date}

示例:

  • weather:Seattle:2024-03-15
  • weather:New York:2024-12-25

缓存的标签

  • weather:所有天气数据
  • city:{cityname}:城市特定数据

缓存失效

// Invalidate all weather data
await cache.RemoveByTagAsync("weather");

// Invalidate specific city
await cache.RemoveByTagAsync("city:Seattle");

🏃‍♂️ 性能特征

场景缓存命中率性能
热门数据 (L1命中)内存缓存~1ms
温暖的数据 (L2命中)Redis缓存~10-50ms
冷数据 (缓存未命中)生成+缓存~100-200ms

益处

  • 99%以上的缓存命中率 对于重复的请求
  • 踩踏保护 防止缓存风暴
  • 多区域支持 通过Redis地理复制
  • 自动故障转移 Redis的高可用性

🔍 监测和可观察性

缓存指标(可通过Azure Monitor获得)

  • 缓存命中率/未命中率
  • 请求延迟
  • 内存使用
  • Redis连接健康状况

日志记录

应用程序通过标准记录缓存操作和性能指标。NET日志框架。

🚀 部署

Azure容器应用

# container-app.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: weather-mcp-server
spec:
  template:
    spec:
      containers:
      - name: weather-mcp
        image: weather-mcp:latest
        env:
        - name: AZURE_CLIENT_ID
          value: "your-managed-identity-id"

码头工人

FROM mcr.microsoft.com/dotnet/aspnet:10.0
WORKDIR /app
COPY . .
ENTRYPOINT ["dotnet", "dotnet-agent-mcp.dll"]

🔧 发展

地方发展设置

  1. 安装Azure命令行界面:
   # Windows
   winget install Microsoft.AzureCLI

   # macOS  
   brew install azure-cli
  1. 登录到Azure:
   az login
  1. 设置Redis权限:
   # Add your user to Redis data owner role
   az role assignment create \
     --assignee your-email@domain.com \
     --role "Redis Cache Contributor" \
     --scope /subscriptions/{subscription-id}/resourceGroups/{rg}/providers/Microsoft.Cache/Redis/{redis-name}

测试缓存功能

// Test cache hit
var result1 = await GenerateWeatherAsync("Seattle", "2024-03-15");
var result2 = await GenerateWeatherAsync("Seattle", "2024-03-15");
// result1 == result2 (cached)

// Test cache miss  
var result3 = await GenerateWeatherAsync("Portland", "2024-03-15");
// Different city = cache miss = new data generation

📚 其他资源

🤝 贡献

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

📄 许可证

此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。

🆘 支持

有关支持和问题:

______________________________________________________________________

内置于❤️ 使用。NET 10、Azure Redis和HybridCache

目录标签

目录标签

位置天气C#搜索天气数据本地部署企业级缓存AzureRedisEntraID认证多级缓存

接入字段

传输方式(transport,传输协议)

未说明

鉴权方式(authType,认证方式)

session

工具数量(toolCount,工具数)

1

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

未说明session部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

仍需确认:installCommand

来源信息

继续浏览同类 MCP