# Azure MCP 服务器
## 基本信息
- Slug: `mashriram-azure_mcp_server`
- Source: modelscope
- Publisher: @mashriram/azure_mcp_server
- Categories: cloud-storage / databases / security-and-iam
- Hosted: No
- License: MIT License
- Source URL: https://www.modelscope.cn/mcp/servers/@mashriram/azure_mcp_server
## 简介
该服务器实现了模型上下文协议，以实现与Azure Blob存储和Cosmos DB的无缝交互，并启用操作的自动日志记录和审计跟踪。
## 安装提示

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

## MCP Server 详情

# Azure MCP 服务器

[![smithery 徽章](https://smithery.ai/badge/@mashriram/azure_mcp_server)](https://smithery.ai/server/@mashriram/azure_mcp_server)

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

<a href="https://glama.ai/mcp/servers/cczdogb799"><img width="380" height="200" src="https://glama.ai/mcp/servers/cczdogb799/badge" alt="Azure 服务器 MCP 服务器" /></a>

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

### 通过 Smithery 安装

要通过 [Smithery](https://smithery.ai/server/@mashriram/azure_mcp_server) 自动安装适用于 Claude 桌面的 Azure MCP 服务器：

```bash
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`

    ```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 桌面应用程序](https://claude.ai/download)。

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

## 可用工具

### Azure Blob 存储操作

*   **blob\_container\_create:** 创建一个新的 Blob 存储容器。需要 `container_name`。
*   **blob\_container\_list:** 列出配置账户中的所有 Blob 存储容器。
*   **blob\_container\_delete:** 删除一个 Blob 存储容器。需要 `container_name`。
*   **blob\_upload:** 将一个 blob（文件）上传到 Blob 存储容器。需要 `container_name`、`blob_name` 和 `file_content`（Base64 编码）。
*   **blob\_delete:** 从 Blob 存储容器中删除一个 blob。需要 `container_name` 和 `blob_name`。
*   **blob\_list:** 列出 Blob 存储容器内的 blobs。需要 `container_name`。
*   **blob\_read:** 从 Blob 存储中读取一个 blob 的内容。需要 `container_name` 和 `blob_name`。返回内容为文本。

### Azure Cosmos DB (NoSQL API) 操作

#### 容器操作

*   **cosmosdb\_container\_create:** 在数据库内创建一个新的 Cosmos DB 容器。需要 `container_name` 和 `partition_key`。`database_name` 是可选的，默认为 `defaultdb`。`partition_key` 应该是一个定义分区键的 JSON 对象（例如，`{"paths": ["/myPartitionKey"], "kind": "Hash"}`）。
*   **cosmosdb\_container\_describe:** 获取关于 Cosmos DB 容器的详细信息。需要 `container_name`。`database_name` 是可选的，默认为 `defaultdb`。
*   **cosmosdb\_container\_list:** 列出数据库内的所有 Cosmos DB 容器。`database_name` 是可选的，默认为 `defaultdb`。
*   **cosmosdb\_container\_delete:** 删除一个 Cosmos DB 容器。需要 `container_name`。`database_name` 是可选的，默认为 `defaultdb`。

#### 项操作

*   **cosmosdb\_item\_create:** 在 Cosmos DB 容器中创建一个新项。需要 `container_name` 和 `item`（表示项的 JSON 对象）。`database_name` 是可选的，默认为 `defaultdb`。请确保您的 `item` 包含分区键字段和值。
*   **cosmosdb\_item\_read:** 从 Cosmos DB 容器中读取一个项。需要 `container_name`、`item_id` 和 `partition_key`。`database_name` 是可选的，默认为 `defaultdb`。`partition_key` 必须与要读取的项的分区键值匹配。
*   **cosmosdb\_item\_replace:** 替换 Cosmos DB 容器中的现有项。需要 `container_name`、`item_id`、`partition_key` 和 `item`（表示完整更新后的项的 JSON 对象）。`database_name` 是可选的，默认为 `defaultdb`。`partition_key` 必须与要替换的项的分区键值匹配。
*   **cosmosdb\_item\_delete:** 从 Cosmos DB 容器中删除一个项。需要 `container_name`、`item_id` 和 `partition_key`。`database_name` 是可选的，默认为 `defaultdb`。`partition_key` 必须与要删除的项的分区键值匹配。
*   **cosmosdb\_item\_query:** 使用 SQL 查询在 Cosmos DB 容器中查询项。需要 `container_name` 和 `query`。`database_name` 是可选的，默认为 `defaultdb`。可选地接受一个 `parameters` 数组用于参数化查询。

### Azure 应用配置操作

*   **app\_configuration\_kv\_read:** 从 Azure 应用配置中读取键值对。`key` 参数是可选的，允许通过键模式进行过滤（支持通配符，例如 'app1/*'）。`label` 参数是可选的，用于按标签值过滤（'\\0' 表示无标签，'*' 表示任何标签）。
*   **app\_configuration\_kv\_write:** 在 Azure 应用配置中写入或更新键值对。需要 `key` 和 `value` 参数。可选参数包括 `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 文档以获取有关协议的更多信息。

