Azure MCP 服务器

Azure MCP Server 是一个实现 MCP 规范的服务器,用于在 AI 代理和 Azure 服务(如 Azure Storage、Cosmos DB 等)之间建立无缝连接。

  • by conniey
  • C#
  • 混合部署
  • 更新于
在 GitHub 查看 conniey/azure-mcp

使用说明

🌟 Azure MCP服务器

Azure MCP服务器实现了 MCP规范 在AI代理和Azure存储、Cosmos DB等关键Azure服务之间创建无缝连接。

请注意,此项目处于公开预览阶段,在我们正式发布之前,实施可能会发生重大变化。

📑 目录

  1. 🎯 概述
  2. 🛠️ 当前支持的工具
  3. 🔌 安装和入门
  4. 🧪 使用Azure MCP服务器
  5. 📝 故障排除问题
  6. 👥 为Azure MCP服务器做出贡献

🎯 概述

✨ 您可以使用Azure MCP服务器做什么?

Azure MCP服务器为您的代理提供Azure上下文。以下是一些很酷的提示,您可以尝试:

🔍 探索您的Azure资源

  • “列出我的Azure存储帐户”
  • “显示我的所有Cosmos DB数据库”
  • “我的Azure AI搜索服务'mysvc'中有哪些索引?”
  • “列出我的资源组”
  • “显示我存储帐户中的表”
  • “列出Cosmos DB数据库中的容器”
  • “获取有关我的存储容器的详细信息”
  • “获取集群'mycluster'中的Kusto数据库”
  • “Kusto数据库'db1'中表'StormEvents'中的10行示例”

📊 查询与分析

  • “查询我的日志分析工作区”
  • “让我们在这个索引中搜索‘我的搜索查询’”

⚙️ 管理配置

  • “列出我的应用配置存储”
  • “在App Config中显示我的键值对”

🔧 高级Azure操作

  • “列出我的Azure CDN终结点”
  • “帮助我使用Node.js构建Azure应用程序”

🔍 运作原理

Azure MCP服务器通过以下方式在AI代理和Azure服务之间创建无缝集成:

  • 🔄 AI代理能够理解的智能JSON通信
  • 🏗️ 翻译为Azure操作的自然语言命令
  • 💡 智能参数建议和自动完成
  • ⚡ 有意义的一致错误处理

🛠️ 当前支持的工具

Azure MCP服务器提供与以下Azure服务交互的工具:

🔎 Azure AI搜索(搜索引擎/矢量数据库)

  • 列出Azure AI搜索服务
  • 列出索引并查看其模式和配置
  • 查询搜索索引

📊 Azure Cosmos数据库(NoSQL数据库)

  • 列出Cosmos数据库帐户
  • 列表和查询数据库
  • 管理容器和物品
  • 对容器执行SQL查询

🐘 PostgreSQL Azure数据库-灵活的服务器

  • 列出和查询数据库。
  • 列出并获取表的模式。
  • 列出、获取服务器的配置和参数。

🧮 Azure 数据资源管理器

  • Kusto集群列表
  • 列出Kusto集群中的数据库
  • 列出Kusto数据库中的表
  • 获取Kusto表的模式
  • Kusto表中的示例行
  • 使用KQL查询Kusto数据库

💾 Azure存储

  • 列出存储帐户
  • 管理blob容器和blob
  • 列出并查询存储表
  • 获取容器属性和元数据

📈 Azure监视器

日志分析

  • 列出日志分析工作区
  • 使用KQL查询日志
  • 列出可用表格

健康模型

  • 获取实体的健康状况

⚙️ Azure应用程序配置

  • 列出应用程序配置存储
  • 管理键值对
  • 处理标记的配置
  • 锁定/解锁配置设置

🔑 Azure密钥库

  • 列出、创建和获取密钥

📦 Azure资源组

  • 列出资源组

🚌 Azure服务总线

  • 检查有关队列、主题和订阅的属性和运行时信息

🔧 Azure CLI扩展

  • 直接执行Azure CLI命令
  • 支持所有Azure CLI功能
  • JSON输出格式
  • 跨平台兼容性

🚀 Azure开发人员CLI(azd)扩展

  • 直接执行Azure Developer CLI命令
  • 支持模板发现、模板初始化、配置和部署
  • 跨平台兼容性

代理和模型可以发现和学习最佳实践和使用指南 azd MCP工具。有关更多信息,请参见 AZD最佳实践.

🛡️ Azure最佳实践

  • 获取安全的生产级Azure SDK最佳实践,以实现有效的代码生成。

有关详细的命令文档和示例,请参阅 Azure MCP命令.

🔌 入门指南

Azure MCP服务器需要Node.js来安装和运行服务器。如果您没有安装它,请按照说明进行操作 这里.

VS代码+GitHub副本

Azure MCP服务器提供Azure SDK和Azure CLI开发工具。它可以单独使用或与 GitHub Copilot for Azure扩展 在VS代码中。如果您对Azure MCP Server中未包含的各种Azure开发场景的广泛开发人员支持感兴趣,例如在Microsoft Learn上搜索文档,我们也建议您使用此扩展。

先决条件

  1. 安装VS Code的稳定版或Insiders版:
  2. 安装 GitHub Copilot 和 GitHub Copilot 聊天助手 扩展
  3. 安装 Node.js 20或更晚
    • 确保 node 和 npm 在你的路上
  4. 在空文件夹中打开VS Code

安装

✨ 一键安装

单击其中一个按钮安装Azure MCP Server for VS Code或VS Code Insider。

安装完Azure MCP服务器后,请确保选择GitHub Copilot代理模式并刷新工具列表。要了解有关代理模式的更多信息,请访问 VS代码文档.

🔧 手动安装

对于分步安装,请按照以下说明进行操作:

  1. 添加 .vscode/mcp.json:
{
  "servers": {
    "Azure MCP Server": {
      "command": "npx",
      "args": [
        "-y",
        "@azure/mcp@latest",
        "server",
        "start"
      ]
    }
  }
}

Docker安装

对于分步安装,请按照以下说明进行操作:

  1. 克隆存储库
  2. 从存储库根目录构建Docker镜像: docker build -t azure/azuremcp .
  3. 创建一个 .env 包含环境变量的文件 比赛之一 EnvironmentCredential 集。例如,a .env 使用服务主体的文件可能如下:
AZURE_TENANT_ID={YOUR_AZURE_TENANT_ID}
AZURE_CLIENT_ID={YOUR_AZURE_CLIENT_ID}
AZURE_CLIENT_SECRET={YOUR_AZURE_CLIENT_SECRET}
  1. 添加 .vscode/mcp.json 或更新现有的MCP配置。替换 /full/path/to/.env 有一条通往你的路 .env 文件。
{
  "servers": {
    "Azure MCP Server": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "azure/azuremcp",
        "--env-file",
        "/full/path/to/.env"
      ]
    }
  }
}

客户可以选择使用 --env 或 --volume 以传递身份验证值。

🧪 测试Azure MCP服务器

  1. 在VS Code中打开GitHub Copilot 切换到代理模式
  2. 您应该在工具列表中看到Azure MCP服务器
  3. 尝试告诉代理使用Azure MCP服务器的提示,例如“列出我的Azure存储容器”
  4. 代理应该能够使用Azure MCP Server工具来完成您的查询

🤖 自定义MCP客户端

您可以轻松配置MCP客户端以使用Azure MCP服务器。让您的客户端运行以下命令,并通过标准IO或SSE访问它。

使用标准IO

配置MCP客户端以执行: npx -y @azure/mcp@latest server start。有关使用VS Code的说明,请按照中的说明进行操作 一键安装 或 手动安装.

使用SSE

  1. 打开终端窗口并执行: npx -y @azure/mcp@latest server start --transport sse
  2. 服务器启动并托管在:http://localhost:5008.要使用其他端口,请附加 --port {YOUR-PORT-NUMBER}.
  3. 打开MCP客户端并添加SSE配置值。这可能因MCP客户端而异。在VS Code中,它看起来像:
    {
       "servers": {
         "Azure MCP Server": {
           "type": "sse",
           "url": "http://localhost:5008/sse"
         }
       }
     }
    

更多端到端MCP客户端/代理指南即将发布!

📝 故障排除

看 故障排除指南 有关常见问题和日志记录的帮助。

🔑 认证

Azure MCP Server与您的主机操作系统的身份验证机制无缝集成,使入门变得超级容易!我们通过以下方式使用Azure身份 DefaultAzureCredential,它按顺序尝试这些凭据:

  1. 环境变量 (EnvironmentCredential)-非常适合CI/CD管道
  2. 共享令牌缓存 (SharedTokenCacheCredential)-使用其他工具中的缓存令牌
  3. Visual Studio (VisualStudioCredential)-使用您的Visual Studio凭据
  4. Azure命令行界面 (AzureCliCredential)-使用您现有的Azure CLI登录
  5. Azure PowerShell (AzurePowerShellCredential)-使用您的Az PowerShell登录
  6. Azure开发者命令行界面 (AzureDeveloperCliCredential)-使用您的azd登录
  7. 交互式浏览器 (InteractiveBrowserCredential)-如果需要,可以恢复基于浏览器的登录

如果您已经通过这些方法中的任何一种登录,Azure MCP服务器将自动使用这些凭据。通过RBAC(基于角色的访问控制)确保您在Azure中具有正确的授权权限(例如对存储帐户的读取权限)。要了解有关Azure RBAC授权系统的更多信息,请访问此 链接.

如果您在身份验证方面遇到任何问题,请访问我们的 故障排除指南.

生产证书

默认情况下,Azure MCP服务器不包括生产凭据,如托管身份和工作负载身份。要启用这些凭据,请设置环境变量:

AZURE_MCP_INCLUDE_PRODUCTION_CREDENTIALS=true

在要使用托管身份的Azure服务上运行时,这很有用。

🛡️ 安全说明

您的凭据始终通过官方安全处理 Azure身份SDK - 我们从不直接存储或管理代币.

MCP作为一种现象是非常新颖和前沿的。与所有新技术标准一样,考虑进行安全审查,以确保与MCP服务器集成的任何系统都符合您的系统应遵守的所有法规和标准。这不仅包括Azure MCP服务器,还包括您选择实施到模型提供商的任何MCP客户端/代理。

👥 贡献

我们欢迎对Azure MCP服务器的贡献!无论您是在修复错误、添加新功能还是改进文档,我们都欢迎您的贡献。

请阅读我们的 贡献指南 关于以下方面的指导方针:

  • 🛠️ 设置您的开发环境
  • ✨ 添加新命令
  • 📝 代码风格和测试要求
  • 🔄 发出pull请求

🤝 行为准则

该项目采用了 微软开源行为准则. 有关更多信息,请参阅 行为准则常见问题 或联系 opencode@microsoft.com 如有任何其他问题或意见。