Azure MCP Server

by mashriram
Verified

hybrid server

The server is able to function both locally and remotely, depending on the configuration or use case.

Integrations

  • Provides tools for interacting with Azure services, specifically Azure Blob Storage and Azure Cosmos DB (NoSQL API). Enables operations like creating/listing/deleting containers, uploading/reading/deleting blobs, and creating/reading/querying/deleting items in Cosmos DB.

Azure MCP 服务器

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

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

通过 Smithery 安装

要通过Smithery自动为 Claude Desktop 安装 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 Desktop:**将以下配置添加到您的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 Desktop:**安装并打开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 存储容器内的 Blob。需要提供container_name
  • **blob_read:**从 Blob 存储中读取 Blob 的内容。需要提供container_nameblob_name参数。返回文本形式的内容。

Azure Cosmos DB (NoSQL API) 操作

容器操作

  • **cosmosdb_container_create:**在数据库中创建新的 Cosmos DB 容器。需要提供container_namepartition_key 。database_name 为可选database_name ,默认为defaultdb``partition_key应为定义分区键的 JSON 对象(例如, {"paths": ["/myPartitionKey"], "kind": "Hash"} )。
  • **cosmosdb_container_describe:**检索有关 Cosmos DB 容器的详细信息。需要container_namedatabase_name是可选的,默认为defaultdb
  • **cosmosdb_container_list:**列出数据库中的所有 Cosmos DB 容器。 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 为可选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是可选的,默认为defaultdb 。partition_key必须与要替换的项的partition_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对。key 参数是可选的,允许按键模式过滤(支持通配符,例如“app1/ ”)。label 参数是可选的,用于按label值过滤('\0' 表示无标签,' ' 表示有标签)。
  • **app_configuration_kv_write:**在 Azure 应用程序配置中写入或更新键值对。需要keyvalue参数。可选参数包括label用于为键值对应用标签)和content_type (用于指定内容类型,例如“application/json”)。
  • **app_configuration_kv_delete:**从 Azure 应用程序配置中删除键值对。需要key参数。label label是可选的,用于指定要删除的键的哪个标签版本。

Cosmos DB 重要说明:

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

本自述文件提供了设置和使用 Azure MCP 服务器以及 Claude 桌面应用程序所需的信息。请务必妥善保管您的 Azure 凭据,并参阅 MCP 文档以获取有关该协议的更多信息。

You must be authenticated.

A
security – no known vulnerabilities
A
license - permissive license
A
quality - confirmed to work

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

  1. Running Locally with the Claude Desktop App
    1. Installing via Smithery
    2. Manual Installation
  2. Available Tools
    1. Azure Blob Storage Operations
    2. Azure Cosmos DB (NoSQL API) Operations
    3. Azure App Configuration Operations
ID: cczdogb799