Azure AI MCP服务器
关键任务模型上下文协议(MCP)服务器,提供全面的Azure AI服务集成,具有企业级可靠性、可观察性和混沌工程能力。
🚀 特性
核心Azure人工智能服务
- Azure OpenAI:聊天完成、嵌入和文本生成
- 认知服务文本分析:情感分析、实体识别、关键短语提取
- 计算机视觉:图像分析、物体检测、OCR
- 面向API:人脸检测、识别和分析
- Azure存储:用于数据持久性的Blob存储集成
关键任务能力
- 高可用性:具有自动故障转移功能的多区域部署
- 可观测性:全面的日志记录、指标和分布式跟踪
- 安全:Azure AD集成、API密钥管理和静止/传输时的加密
- 速率限制:智能节流和背压处理
- 重试逻辑:断路器模式的指数回退
- 混沌工程:使用Azure chaos Studio进行内置混沌测试
DevOps 和 CI/CD
- 基础设施即代码:适用于所有环境的Terraform模块
- 多环境:集成、E2E和生产管道
- 容器支持:带有健康检查的Docker容器化
- 监控:Azure Monitor,应用程序洞察集成
- 安全扫描:自动漏洞评估
📋 先决条件
- Node.js 18+
- 具有适当权限的Azure订阅
- 已安装并配置Azure CLI
- 地形1.5+
- Docker(可选,用于容器化部署)
🔧 安装
1.克隆和设置
git clone https://github.com/caiotk/nexguideai-azure-ai-mcp-server.git
cd azure-ai-mcp-server
npm install2.环境配置
复制环境模板并配置Azure凭据:
cp .env.example .env所需的环境变量:
# Azure OpenAI
AZURE_OPENAI_ENDPOINT=https://your-openai.openai.azure.com/
AZURE_OPENAI_API_KEY=your-api-key
# Azure Cognitive Services
AZURE_COGNITIVE_SERVICES_ENDPOINT=https://your-region.api.cognitive.microsoft.com/
AZURE_COGNITIVE_SERVICES_KEY=your-key
# Azure Storage
AZURE_STORAGE_CONNECTION_STRING=your-connection-string
# Azure AD (for production)
AZURE_TENANT_ID=your-tenant-id
AZURE_CLIENT_ID=your-client-id
AZURE_CLIENT_SECRET=your-client-secret
# Monitoring
AZURE_APPLICATION_INSIGHTS_CONNECTION_STRING=your-connection-string
LOG_LEVEL=info3.构建和运行
npm run build
npm start🏗️ 建筑
系统概述
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ MCP Client │────│ Azure AI MCP │────│ Azure Services │
│ │ │ Server │ │ │
└─────────────────┘ └─────────────────┘ └─────────────────┘
│
▼
┌─────────────────┐
│ Observability │
│ & Monitoring │
└─────────────────┘组件体系结构
- API层:带请求验证的MCP协议实现
- 服务层:Azure AI服务与重试逻辑的集成
- 基础设施层:云资源的地形模块
- 可观测层:日志记录、指标和分布式跟踪
🔄 CI/CD管道
环境
- 集成(INT):功能测试和集成验证
- 端到端(E2E):使用混沌工程进行全系统测试
- 生产(PROD):蓝绿色部署的实时环境
管道阶段
Build → Test → Security Scan → Deploy INT → E2E Tests → Chaos Tests → Deploy PROD部署策略
- 蓝绿部署:零停机部署
- Canary发布:逐步转移交通以降低风险
- 自动回滚:健康检查失败时自动回滚
🧪 测试策略
测试金字塔
- 单元测试:单个组件测试(Jest)
- 集成测试:服务集成验证
- E2E测试:完整的工作流程测试
- 混沌测试:弹性和故障场景测试
混沌工程
与Azure Chaos Studio集成,用于:
- 服务中断:模拟Azure服务中断
- 网络延迟:响应时间增加
- 资源耗竭:CPU/内存压力测试
- 依赖失败:外部服务故障
📊 监测和可观察性
指标
- 演出:响应时间、吞吐量、错误率
- 商业:API使用、功能采用、成本优化
- 基础设施:资源利用率、可用性
日志记录
- 结构化日志记录:带相关ID的JSON格式
- 日志级别:错误、警告、信息、调试
- 集中式:Azure日志分析集成
告警
- SLA监控:99.9%的可用性目标
- 错误率阈值:>1%错误率警报
- 性能下降:响应时间异常
🔒 安全
身份验证和授权
- Azure AD集成:企业身份管理
- API密钥管理:确保密钥轮换和存储安全
- RBAC:基于角色的访问控制
数据保护
- 静态加密:Azure存储加密
- 传输中的加密:TLS 1.3适用于所有通信
- 数据驻留:可配置的数据位置合规性
安全扫描
- 依赖关系扫描:自动漏洞检测
- 先科:静态应用程序安全测试
- 集装箱扫描:Docker镜像漏洞评估
🚀 部署
地方发展
npm run devDocker部署
npm run docker:build
npm run docker:run地形部署
cd terraform/environments/prod
terraform init
terraform plan
terraform apply📈 演出
基准测试
- 延迟:P95\<500毫秒用于聊天完成
- 吞吐量:每分钟持续1000+个请求
- 可用性:99.9%正常运行时间SLA
优化
- 连接池:高效的Azure服务连接
- 缓存:智能响应缓存策略
- 速率限制:基于服务限制的自适应节流
🤝 贡献
- 分叉存储库
- 创建要素分支(
git checkout -b feature/amazing-feature) - 提交您的更改(
git commit -m 'Add amazing feature') - 推到分支(
git push origin feature/amazing-feature) - 打开拉取请求
开发指南
- 遵循TypeScript严格模式
- 保持90%+的测试覆盖率
- 使用常规提交
- 更新新功能的文档
📄 许可证
此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。
🆘 支持
- 文档: docs/
- 问题:
- 讨论:
🗺️ Roadmap
- \[\]多型号支持(GPT-4、Claude、Gemini)
- \[\]高级缓存策略
- \[\]GraphQL API支持
- \[\]Kubernetes部署清单
- \[\]高级混沌工程场景
- \[\]成本优化建议
______________________________________________________________________
构建于❤️ 来源:NexGuide AI
