article
README
🚀 Azure MCP(模型上下文协议)用于Claude Desktop
Azure MCP(模型上下文协议)是一个使Claude Desktop能够与Azure服务交互的实现。通过此集成,Claude可以通过自然语言对话直接查询和管理Azure资源,极大地提升了操作的便捷性。
🚀 快速开始
Azure MCP是一个允许与Azure服务进行交互的协议。借助本指南,您能够了解如何配置和使用Azure MCP来管理资源、订阅和租户。
✨ 主要特性
- Azure资源管理:与Azure Resource Management客户端接口,可对Azure资源进行高效管理。
- 订阅管理:能够列出和管理Azure订阅,方便用户对订阅进行操作。
- 租户管理:支持列出并选择Azure租户,满足不同租户的使用需求。
- 自动认证:利用DefaultAzureCredential实现灵活的认证方法,保障认证的便捷性和安全性。
- 错误处理:针对瞬时故障设有重试机制,增强了系统的稳定性。
- 干净的响应格式化:提供与Claude Desktop兼容的适当格式的响应,提升用户体验。
📦 安装指南
先决条件
- Node.js(v18或更高版本)
- Claude Desktop应用程序
- 带有适当权限的Azure账户
- Azure CLI(可选,用于基于CLI的身份验证)
手动安装
- 克隆仓库:
git clone https://github.com/Streen9/azure-mcp.git
cd azure-mcp
- 安装依赖项:
npm install
- 配置Claude Desktop:
- 打开
claude_desktop_config.json - 添加以下MCP配置:
- 打开
{
"mcpServers": {
"sequential-thinking": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-sequential-thinking"
]
},
"azure": {
"command": "tsx",
"args": [
"C:/Users/[YourUsername]/path/to/azure-mcp/src/launcher.ts"
]
}
}
}
💻 使用示例
基础用法
基本操作
- 若Claude Desktop正在运行,请先关闭它(可检查任务管理器)。
- 启动Claude Desktop。
- 在聊天中,您可以询问与Azure相关的问题,例如:
- 获取所有可用的Azure账户和订阅:
/azure/list_accounts - 列出特定订阅中的资源组:
/azure/subscriptions/{subscription_id}/resource_groups - 显示虚拟机信息:
/azure/vm/{subscription_id}/{resource_group}/{vm_name}
- 获取所有可用的Azure账户和订阅:
示例对话
你:/azure/list_accounts
Claude:正在获取你的 Azure 账户和订阅信息...
完成!以下是可用的订阅列表:
- 订阅 1: ID: sub-12345678, 名称: Production
- 订阅 2: ID: sub-abcdefgh, 名称: Development
你可以使用这些订阅 ID 继续执行其他操作。
高级用法
在聊天中,您还可以使用自然语言询问与Azure相关的问题,例如:
你:你能获取所有可用的Azure账户和订阅吗?
Claude:我可以帮助你列出所有可用的Azure租户和订阅。
[Claude将使用Azure MCP来获取并显示信息]
🔧 技术细节
认证
该服务器支持通过DefaultAzureCredential的多种身份验证方法:
- 环境变量
- 管理身份
- Azure CLI
- Visual Studio Code
- 浏览器交互式
服务器将按顺序尝试这些方法,直到其中一个成功。
项目结构
azure-mcp/
├── src/
│ ├── launcher.ts # 服务器入口点
│ ├── AzureServer.ts # 主MCP服务器实现
│ └── LoggerService.ts # 日志实用工具
├── package.json
└── README.md
关键组件
- AzureMCPServer:主要的MCP服务器类
- HandleCallTool:处理传入工具请求
- ExecuteWithRetry:实现重试逻辑以增强操作弹性
🛠️ 故障排除
常见问题解答
- 身份验证问题:
- 确保通过Azure CLI登录(
az login)。 - 检查服务主体的环境变量。
- 验证您的Azure账户具有必要的权限。
- 确保通过Azure CLI登录(
- 连接问题:
- 确保Claude Desktop配置正确。
- 检查配置文件中的路径是否匹配安装位置。
- 确保没有其他实例在运行。
- 常见错误:
NO_TENANT:使用'选择租户'工具或/azure/select_tenant {tenant_id}命令选择一个租户。NO_CLIENTS:确保初始化和身份验证正确。CODE_EXECUTION_FAILED:检查Azure权限和连接。UNAUTHORIZED:确保您使用的凭据具有足够的权限,检查是否启用了Azure Active Directory应用注册。
- 无法连接到Azure:
- 确保您的Azure账户已正确配置,并且网络连接正常。
- 检查是否启用了正确的API和权限。
🤝 贡献
欢迎贡献!请随意提交Pull Request。
贡献者
- @calclavia - 与smithery.ai的集成
🙏 致谢
感谢以下团队:
- Claude Desktop团队为MCP实现提供支持。
- Azure SDK团队提供了全面的SDK。
- Model Context Protocol使AI服务集成成为可能。
⚠️ 安全注意事项
此实现遵循安全最佳实践:
- 输入验证:确保所有用户提供的数据经过严格验证,防止未授权访问。
- 最小权限:使用受限的凭据进行身份验证和授权。
- 日志记录和监控:实施详细日志记录并持续监控,以便及时检测潜在问题。
📞 联系方式
如需联系,请访问项目主页或在GitHub上提交问题。
注意:此文档为示例,实际内容可能有所不同。请参考官方文档获取准确信息。
微信扫一扫