关于 Azure MCP Server
Azure MCP Server 为 Azure Blob Storage、Cosmos DB 和 App Configuration 提供操作接口,并记录操作供审计资源读取。它面向需要通过 MCP 客户端管理 Azure 数据与配置的用户。
主要功能
- 01管理 Blob Storage 容器与文件
- 02创建和查询 Cosmos DB 容器及条目
- 03读写及删除 App Configuration 键值
- 04通过审计资源查看操作记录
适用场景
- 01上传或读取 Blob Storage 文件
- 02查询或更新 Cosmos DB 条目
- 03读取和修改 App Configuration 键值
- 04检查 Azure 操作审计记录
MCP 相关
它向 MCP 客户端公开 Blob Storage、Cosmos DB 和 App Configuration 操作工具,并通过 `audit://azure-operations` 资源提供操作记录。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
Azure MCP Server
一个用于与 Azure 服务交互的 Model Context Protocol 服务实现。目前支持 Azure Blob Storage 和 Azure Cosmos DB(NoSQL API)。通过此服务执行的所有操作都会自动记录,并可通过 audit://azure-operations 资源端点访问。
在 Claude 桌面应用中本地运行
通过 Smithery 安装
要通过 Smithery 自动为 Claude 桌面应用安装 Azure MCP Server:
npx -y @smithery/cli install @mashriram/azure_mcp_server --client claude
手动安装
-
克隆仓库: 将此仓库克隆到本地计算机。
-
配置 Azure 凭据: 配置 Azure 凭据。此服务需要拥有 Blob Storage、Cosmos DB 和 App Configuration 相应权限的 Azure 帐户。我们建议使用
DefaultAzureCredential,它会依次尝试通过各种方法进行身份验证。- 环境变量: 设置以下环境变量:
AZURE_STORAGE_ACCOUNT_URL:Azure Storage 帐户的 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 App Configuration 实例的 URL。
- Azure CLI: 也可以使用 Azure CLI 进行身份验证。请确保已使用拥有所需权限的帐户登录。此服务使用
DefaultAzureCredential,因此如果未指定环境变量,它会自动使用 Azure CLI 凭据进行身份验证。使用az login登录。
- 环境变量: 设置以下环境变量:
-
配置 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替换为克隆仓库的实际路径。 - macOS:
-
安装并启动 Claude Desktop: 安装并打开 Claude 桌面应用。
-
测试配置: 让 Claude 使用 Azure 工具执行读取或写入操作(例如,创建 Blob Storage 容器或向 Cosmos DB 添加项目)。如果遇到问题,请参阅 MCP 调试文档此处。
可用工具
Azure Blob Storage 操作
- blob_container_create: 创建新的 Blob Storage 容器。需要提供
container_name。 - blob_container_list: 列出已配置账户中的所有 Blob Storage 容器。
- blob_container_delete: 删除 Blob Storage 容器。需要提供
container_name。 - blob_upload: 将 Blob(文件)上传到 Blob Storage 容器。需要提供
container_name、blob_name和file_content(经过 Base64 编码)。 - blob_delete: 从 Blob Storage 容器中删除 Blob。需要提供
container_name和blob_name。 - blob_list: 列出 Blob Storage 容器中的 Blob。需要提供
container_name。 - blob_read: 读取 Blob Storage 中 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 App Configuration 读取键值。
key参数为可选参数,可用于按键模式筛选(支持通配符,例如'app1/*')。label参数为可选参数,可用于按标签值筛选(无标签时使用'\\0',任意标签时使用'*')。 - app_configuration_kv_write: 在 Azure App Configuration 中写入或更新键值。需要提供
key和value参数。可选参数包括用于为键值应用标签的label,以及用于指定内容类型(例如'application/json')的content_type。 - app_configuration_kv_delete: 从 Azure App Configuration 删除键值。需要提供
key参数。label参数为可选参数,用于指定要删除该键的哪个带标签版本。
Cosmos DB 重要说明:
- 分区键: Cosmos DB 要求使用分区键,以便高效地存储和检索数据。创建容器时,必须 定义分区键。读取、替换或删除项目时,必须 提供所访问项目对应的正确分区键值。分区键是数据内部的一个属性。
- 区分大小写: Cosmos DB 资源名称(数据库、容器、项目 ID)和分区键值区分大小写。请确保在工具调用中使用正确的大小写。
- 默认数据库: 如果未提供
database_name,服务将默认使用名为SampleDB的数据库。请确保此数据库存在,或在工具调用参数中明确提供所需数据库的名称。
本 README 提供了使用 Claude 桌面应用设置和使用 Azure MCP Server 所需的信息。请务必安全地处理 Azure 凭据,并查阅 MCP 文档以了解有关该协议的更多信息。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。