使用说明
适用于Claude Desktop的Azure MCP(模型上下文协议)
模型上下文协议(MCP)实现,使Claude Desktop能够与Azure服务交互。此集成允许Claude通过自然语言对话直接查询和管理Azure资源。
特性
- Azure资源管理:与Azure资源管理客户端的接口
- 订阅管理:列出和管理Azure订阅
- 租户管理:列出并选择Azure租户
- 自动身份验证:利用DefaultAzureCredential实现灵活的身份验证方法
- 错误处理:强大的错误处理,可重试瞬态故障
- 干净响应格式:格式正确的响应与Claude Desktop兼容
先决条件
- Node.js(v18或更高版本)
- Claude桌面应用程序
- 具有适当权限的Azure帐户
- Azure CLI(可选,用于基于CLI的身份验证)
安装
手动安装
- 克隆存储库:
git clone https://github.com/Streen9/azure-mcp.git
cd azure-mcp
- 安装依赖项:
npm install
- 配置Claude桌面:
- 打开
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"
]
}
}
}
认证
服务器通过DefaultAzureCredentials支持多种身份验证方法:
- 环境变量
- 管理身份
- Azure命令行界面
- Visual Studio Code
- 交互式浏览器
服务器将自动按顺序尝试这些方法,直到成功为止。
用法
- 如果Claude Desktop正在运行,请关闭它(选中任务管理器)
- 启动克劳德桌面
- 在聊天中,您现在可以提出与Azure相关的问题,例如:
- “您能获取所有可用的Azure帐户和订阅吗?”
- “列出我的订阅中的所有资源组”
- “显示特定资源组中的所有虚拟机”
对话示例
You: Can you get all the available Azure accounts and subscriptions?
Claude: I'll help you list all available Azure tenants and subscriptions.
[Claude will then use the Azure MCP to fetch and display the information]
发展
项目结构
azure-mcp/
├── src/
│ ├── launcher.ts # Server entry point
│ ├── AzureServer.ts # Main MCP server implementation
│ └── LoggerService.ts # Logging utility
├── package.json
└── README.md
关键组件
- AzureMCP服务器:实现MCP协议的主服务器类
- HandleCallTool:处理收到的工具请求
- 执行WithRetry:为弹性操作实现重试逻辑
故障排除
-
身份验证问题:
- 确保您已通过Azure CLI登录(
az login) - 如果使用服务主体,请检查环境变量
- 验证您的Azure帐户是否具有必要的权限
- 确保您已通过Azure CLI登录(
-
连接问题:
- 验证克劳德桌面配置
- 检查配置文件中的路径是否与您的安装相匹配
- 确保没有其他实例正在运行
-
常见错误:
NO_TENANT:使用“选择租户”工具选择租户NO_CLIENTS:确保正确的初始化和身份验证CODE_EXECUTION_FAILED:检查Azure权限和连接
贡献
欢迎投稿!请随时提交拉取请求。
贡献者
- @钙质 -与smithery.ai集成
致谢
- Claude Desktop团队负责MCP的实施
- Azure SDK团队提供全面的SDK
- 用于实现AI服务集成的模型上下文协议
安全说明
此实施遵循Azure安全最佳实践:
- 没有硬编码凭据
- 安全凭证链实施
- 正确的错误处理和消毒
对于安全问题或漏洞,请创建问题。
