MCP Azure部署服务
用于Azure云部署的生产就绪模型上下文协议(MCP)服务器,具有全面的资源管理功能。
______________________________________________________________________
🚀 快速开始
5分钟内起床跑步!
1.克隆存储库
git clone https://github.com/vushtan/MCP-Azure-Deployment-Service.git
cd MCP-Azure-Deployment-Service2.安装依赖项
npm install3.配置凭据
# Interactive setup (recommended)
npm run setup-env
# OR copy template manually
cp .env.example .env
# Then edit .env with your Azure credentials4.验证设置
# Validate configuration
npm run validate-config
# Test Azure connectivity
npm run test-credentials5.运行首次部署
# Try a sample deployment
npm run sample-deploy
# OR start the MCP server
npm start🎉 你准备好了! 服务器将通过stdin/stdout监听JSON-RPC请求。
______________________________________________________________________
🛠️ 自动设置
为了更快的安装,请使用我们的自动安装脚本:
Windows(PowerShell):
.\setup.ps1macOS/Linux(Bash):
chmod +x setup.sh
./setup.sh这些脚本将:
- ✅ 检查系统要求(Node.js 18+,npm)
- ✅ 自动安装依赖项
- ✅ 设置环境模板
- ✅ 运行健康检查
- ✅ 指导您完成凭据配置
______________________________________________________________________
📋 先决条件
| 要求 | 版本 | 注释 |
|---|---|---|
| Node.js | 18.0+ | 点击此处下载 |
| npm | 9.0+ | 附带Node.js |
| Azure帐户 | 活动 | 具有参与者权限 |
Azure要求
您需要一个具有以下权限的Azure服务主体:
- 订阅:贡献者角色
- 资源组:创建/管理权限
- 计算:VM和应用服务部署
- 存储:帐户创建(用于前端部署)
需要帮助创建服务主体吗? 遵循此指南
______________________________________________________________________
⚙️ 配置
所需的环境变量
# Azure Authentication
AZURE_SUBSCRIPTION_ID=12345678-1234-1234-1234-123456789abc
AZURE_TENANT_ID=87654321-4321-4321-4321-abcdef123456
AZURE_CLIENT_ID=abcdef12-3456-7890-abcd-ef1234567890
AZURE_CLIENT_SECRET=your-client-secret-here
# Optional Settings
AZURE_DEFAULT_REGION=eastus # Default: eastus
AZURE_RESOURCE_GROUP_PREFIX=mcp-rg # Default: mcp-rg
LOG_LEVEL=info # Default: info快速配置命令
# Interactive credential setup
npm run setup-env
# Validate your configuration
npm run validate-config
# Test Azure connectivity
npm run test-credentials
# Health check (comprehensive system test)
npm run health-check______________________________________________________________________
🚀 特性
核心Azure操作
azure.getExistingServers-列出并管理现有的计算资源azure.deployMinimalInstance-部署轻量级虚拟机和应用服务azure.deployBackend-带数据库的完整后端部署azure.deployFrontend-使用CDN进行静态网站部署
生产就绪架构
- ✅ TypeScript 严格的类型检查
- ✅ 综合测试 (覆盖率91%以上)
- ✅ 错误处理 具有重试逻辑和速率限制
- ✅ 安全 强化凭证管理
- ✅ 日志记录 使用Winston进行结构化日志记录
- ✅ 验证 使用Joi模式进行输入验证
MCP协议合规性
- ✅ JSON-RPC 2.0 全面实施
- ✅ 工具发现 自动注册和模式验证
- ✅ 错误处理 标准MCP错误代码和消息
- ✅ 流媒体 stdin/stdout通信协议
🛠️ 配置
环境变量
| 变量 | 必填 | 默认 | 描述 |
|---|---|---|---|
AZURE_SUBSCRIPTION_ID | ✅ | - | Azure订阅UUID |
AZURE_TENANT_ID | ✅ | - | Azure租户UUID |
AZURE_CLIENT_ID | ✅ | - | 服务主体客户端UUID |
AZURE_CLIENT_SECRET | ✅ | - | 服务主要秘密 |
AZURE_DEFAULT_REGION | ❌ | eastus | 默认Azure区域 |
AZURE_RESOURCE_GROUP_PREFIX | ❌ | mcp-rg | 资源组命名前缀 |
AZURE_ENVIRONMENT | ❌ | development | 环境标识符 |
LOG_LEVEL | ❌ | info | 日志记录级别(错误、警告、信息、调试) |
多配置文件配置
该服务支持不同环境的多个Azure配置文件:
// Add a new profile
configManager.addProfile('staging', {
subscriptionId: 'staging-subscription-id',
tenantId: 'staging-tenant-id',
clientId: 'staging-client-id',
clientSecret: 'staging-client-secret',
defaultRegion: 'westus2',
resourceGroupPrefix: 'staging-rg'
});
// Switch active profile
configManager.setActiveProfile('staging');🔧 Azure运营
MCP服务器提供了四种可通过JSON-RPC访问的强大部署工具:
1.📋 获取现有服务器
工具: azure.getExistingServers
列出并筛选现有的Azure计算资源。
{
"name": "azure.getExistingServers",
"arguments": {
"resourceGroup": "my-rg", // Optional: Filter by resource group
"serverType": "vm", // Optional: "vm", "webapp", "container"
"region": "eastus" // Optional: Filter by region
}
}退货:包含状态、成本和配置详细信息的综合资源列表。
______________________________________________________________________
2.🚀 部署最小实例
工具: azure.deployMinimalInstance
非常适合开发、测试或轻量级工作负载。
{
"name": "azure.deployMinimalInstance",
"arguments": {
"name": "dev-server-01", // Required: Unique instance name
"resourceGroup": "dev-rg", // Required: Target resource group
"region": "eastus", // Optional: Deployment region
"vmSize": "Standard_B1s", // Optional: VM size
"osType": "Ubuntu" // Optional: "Ubuntu", "Windows"
}
}包含:VM、网络、监控和SSH/RDP访问设置。
______________________________________________________________________
3.🏗️ 部署后端
工具: azure.deployBackend
具有数据库和自动扩展功能的全栈后端部署。
{
"name": "azure.deployBackend",
"arguments": {
"name": "api-backend", // Required: Service name
"resourceGroup": "production-rg", // Required: Target resource group
"region": "eastus", // Optional: Deployment region
"serviceType": "webapp", // Required: "webapp", "container", "vm"
"databaseType": "postgresql", // Optional: "postgresql", "mysql", "cosmosdb"
"scalingConfig": {
"minInstances": 2,
"maxInstances": 10,
"targetCpuPercent": 70
}
}
}包含:负载平衡器、应用服务/容器、托管数据库、ExpressRoute和监控。
______________________________________________________________________
4.🌐 部署前端
工具: azure.deployFrontend
具有全球CDN和SSL的静态网站和SPA。
{
"name": "azure.deployFrontend",
"arguments": {
"name": "corporate-website", // Required: Application name
"resourceGroup": "web-rg", // Required: Target resource group
"region": "eastus", // Optional: Deployment region
"frontendType": "spa", // Required: "spa", "static", "blazor"
"cdnEnabled": true, // Optional: Enable Azure CDN
"customDomain": "www.example.com" // Optional: Custom domain
}
}包含:静态Web应用程序、Azure CDN、SSL证书和自定义域配置。
🔒 安全特性
凭据管理
- 安全的环境变量处理
- 日志或错误消息中没有凭据
- 自动凭证轮换支持
- 多剖面隔离
网络安全
- 部署的虚拟网络隔离
- 具有最低权限的网络安全组
- 数据库的专用端点支持
- 所有通信的TLS加密
访问控制
- 基于角色的访问控制(RBAC)集成
- 服务主体身份验证
- 资源级别权限
- 所有操作的审核日志记录
🧪 测试
该项目包括全面的测试套件:
# Run all tests
npm test
# Run with coverage
npm run test:coverage
# Run specific test suite
npm test -- --testNamePattern="ConfigurationManager"
# Watch mode for development
npm run test:watch测试覆盖率
- 配置管理:100%
- MCP服务器协议:100%
- 错误处理:95%
- Azure操作:集成测试可用
🔧 发展
项目结构
MCP-Azure-Deployment-Service/
├── src/
│ ├── config/ # Configuration management
│ ├── services/ # Azure SDK wrappers
│ ├── tools/ # Azure operation implementations
│ ├── server/ # MCP JSON-RPC server
│ ├── types/ # TypeScript type definitions
│ ├── utils/ # Logging and utilities
│ └── index.ts # Main entry point
├── tests/ # Test suites
├── docs/ # Additional documentation
└── examples/ # Usage examples构建过程
# Development build with watch
npm run dev
# Production build
npm run build
# Type checking only
npm run type-check
# Linting and formatting
npm run lint
npm run format代码质量工具
- TypeScript:与ES2022目标进行严格的类型检查
- ESLint:使用TypeScript规则进行代码linting
- 更漂亮:具有一致风格的代码格式
- 哈士奇:用于提交前验证的Git挂钩
- 开玩笑:具有覆盖率报告的测试框架
📚 API 参考
有关API的详细文档,请参阅:
🔧 故障排除
常见问题
身份验证错误
Error: Authentication failed - invalid credentials解决方案:验证您的Azure服务主体凭据和权限。
未找到资源组
Error: Resource group 'my-rg' not found解决方案:确保资源组存在或在配置中启用自动创建。
权限不足
Error: Insufficient permissions for operation解决方案:验证您的服务主体在目标订阅上具有参与者角色。
调试模式
启用详细日志以进行故障排除:
LOG_LEVEL=debug npm start🤝 贡献
我们欢迎捐款!请查看我们的 贡献指南 了解详情。
开发环境设置
- 分叉存储库
- 创建要素分支
- 安装依赖项:
npm install - 运行测试:
npm test - 提交拉取请求
📄 许可证
此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。
🆘 支持
- 文档: docs/
- 问题:
- 讨论:
______________________________________________________________________
由以下材料制成❤️ MCP Azure团队
