A

Azure MCP 服务器

@mashriram/azure_mcp_server
0 Stars 355 次浏览 mashriram 更新于 2026-08-23

该服务器实现了模型上下文协议,以实现与Azure Blob存储和Cosmos DB的无缝交互,并启用操作的自动日志记录和审计跟踪。

该服务暂未提供标准配置,请参考 README 手动接入

服务介绍

Azure MCP 服务器

smithery 徽章

这是一个用于与 Azure 服务交互的 模型上下文协议 服务器实现。当前支持 Azure Blob 存储和 Azure Cosmos DB(NoSQL API)。通过此服务器执行的所有操作都会自动记录,并可通过 audit://azure-operations 资源端点访问。

使用 Claude 桌面应用程序本地运行

通过 Smithery 安装

要通过 Smithery 自动安装适用于 Claude 桌面的 Azure MCP 服务器:

npx -y @smithery/cli install @mashriram/azure_mcp_server --client claude

手动安装

  1. 克隆仓库: 将此仓库克隆到您的本地机器。

  2. 配置 Azure 凭据: 配置您的 Azure 凭据。此服务器需要一个具有 Blob 存储、Cosmos DB 和应用配置适当权限的 Azure 账户。我们建议使用 DefaultAzureCredential,它会尝试通过多种方法依次进行身份验证。

    • 环境变量: 设置以下环境变量:
      • AZURE_STORAGE_ACCOUNT_URL:您的 Azure 存储账户的 URL(例如,https://<your_account_name>.blob.core.windows.net)。
      • AZURE_COSMOSDB_ENDPOINT:您的 Azure Cosmos DB 账户的终结点 URL。
      • AZURE_COSMOSDB_KEY:您的 Azure Cosmos DB 账户的主要或次要密钥。重要提示:像对待密码一样保护这个密钥的安全性。
      • AZURE_APP_CONFIGURATION_ENDPOINT:您的 Azure 应用配置实例的 URL。
    • Azure CLI: 或者,您可以使用 Azure CLI 进行身份验证。确保您已使用具有必要权限的账户登录。此服务器使用 DefaultAzureCredential,因此如果未指定环境变量,它将自动使用 Azure CLI 凭据进行身份验证。使用 az login 登录。
  3. 配置 Claude 桌面应用程序: 在您的 claude_desktop_config.json 文件中添加以下配置:

    • macOS: ~/Library/Application\ Support/Claude/claude_desktop_config.json
    • Windows: %APPDATA%/Claude/claude_desktop_config.json
    "mcpServers": {
      "mcp-server-azure": {
        "command": "uv",
        "args": [
          "--directory",
          "/path/to/repo/azure-mcp-server",
          "run",
          "azure-mcp-server"
        ]
      }
    }
    

    /path/to/repo/azure-mcp-server 替换为实际的克隆仓库路径。

  4. 安装并启动 Claude 桌面应用程序: 安装并打开 Claude 桌面应用程序

  5. 测试设置: 让 Claude 使用 Azure 工具执行读取或写入操作(例如,创建 Blob 存储容器或将项目添加到 Cosmos DB)。如果您遇到问题,请参阅此处的 MCP 调试文档这里

可用工具

Azure Blob 存储操作

  • blob_container_create: 创建一个新的 Blob 存储容器。需要 container_name
  • blob_container_list: 列出配置账户中的所有 Blob 存储容器。
  • blob_container_delete: 删除一个 Blob 存储容器。需要 container_name
  • blob_upload: 将一个 blob(文件)上传到 Blob 存储容器。需要 container_nameblob_namefile_content(Base64 编码)。
  • blob_delete: 从 Blob 存储容器中删除一个 blob。需要 container_nameblob_name
  • blob_list: 列出 Blob 存储容器内的 blobs。需要 container_name
  • blob_read: 从 Blob 存储中读取一个 blob 的内容。需要 container_nameblob_name。返回内容为文本。

Azure Cosmos DB (NoSQL API) 操作

容器操作

  • cosmosdb_container_create: 在数据库内创建一个新的 Cosmos DB 容器。需要 container_namepartition_keydatabase_name 是可选的,默认为 defaultdbpartition_key 应该是一个定义分区键的 JSON 对象(例如,{"paths": ["/myPartitionKey"], "kind": "Hash"})。
  • cosmosdb_container_describe: 获取关于 Cosmos DB 容器的详细信息。需要 container_namedatabase_name 是可选的,默认为 defaultdb
  • cosmosdb_container_list: 列出数据库内的所有 Cosmos DB 容器。database_name 是可选的,默认为 defaultdb
  • cosmosdb_container_delete: 删除一个 Cosmos DB 容器。需要 container_namedatabase_name 是可选的,默认为 defaultdb

项操作

  • cosmosdb_item_create: 在 Cosmos DB 容器中创建一个新项。需要 container_nameitem(表示项的 JSON 对象)。database_name 是可选的,默认为 defaultdb。请确保您的 item 包含分区键字段和值。
  • cosmosdb_item_read: 从 Cosmos DB 容器中读取一个项。需要 container_nameitem_idpartition_keydatabase_name 是可选的,默认为 defaultdbpartition_key 必须与要读取的项的分区键值匹配。
  • cosmosdb_item_replace: 替换 Cosmos DB 容器中的现有项。需要 container_nameitem_idpartition_keyitem(表示完整更新后的项的 JSON 对象)。database_name 是可选的,默认为 defaultdbpartition_key 必须与要替换的项的分区键值匹配。
  • cosmosdb_item_delete: 从 Cosmos DB 容器中删除一个项。需要 container_nameitem_idpartition_keydatabase_name 是可选的,默认为 defaultdbpartition_key 必须与要删除的项的分区键值匹配。
  • cosmosdb_item_query: 使用 SQL 查询在 Cosmos DB 容器中查询项。需要 container_namequerydatabase_name 是可选的,默认为 defaultdb。可选地接受一个 parameters 数组用于参数化查询。

Azure 应用配置操作

  • app_configuration_kv_read: 从 Azure 应用配置中读取键值对。key 参数是可选的,允许通过键模式进行过滤(支持通配符,例如 'app1/')。label 参数是可选的,用于按标签值过滤('\0' 表示无标签,'' 表示任何标签)。
  • app_configuration_kv_write: 在 Azure 应用配置中写入或更新键值对。需要 keyvalue 参数。可选参数包括 label 以应用标签到键值对,以及 content_type 以指定内容类型(例如 'application/json')。
  • app_configuration_kv_delete: 从 Azure 应用配置中删除键值对。需要 key 参数。label 参数是可选的,用于指定要删除的键的标签版本。

重要的 Cosmos DB 注意事项:

  • 分区键: Cosmos DB 需要一个分区键以实现高效的数据存储和检索。在创建容器时,必须 定义一个分区键。在读取、替换或删除项目时,必须 提供要访问项目的正确分区键值。分区键是数据内部的一个属性。
  • 大小写敏感性: Cosmos DB 资源名称(数据库、容器、项目 ID)和分区键值是区分大小写的。确保在工具调用中使用正确的大小写。
  • 默认数据库: 如果未提供 database_name,服务器将默认使用名为 SampleDB 的数据库。请确保该数据库存在,或者在工具调用参数中显式提供您所需的数据库名称。

本 README 提供了设置和使用 Azure MCP 服务器与 Claude 桌面应用程序所需的信息。请务必安全地处理您的 Azure 凭据,并查阅 MCP 文档以获取有关协议的更多信息。

相关 MCP 服务