Azure MCP 服务器
该服务器实现了模型上下文协议,以实现与Azure Blob存储和Cosmos DB的无缝交互,并启用操作的自动日志记录和审计跟踪。
服务介绍
Azure MCP 服务器
这是一个用于与 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
手动安装
-
克隆仓库: 将此仓库克隆到您的本地机器。
-
配置 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登录。
- 环境变量: 设置以下环境变量:
-
配置 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替换为实际的克隆仓库路径。 - macOS:
-
安装并启动 Claude 桌面应用程序: 安装并打开 Claude 桌面应用程序。
-
测试设置: 让 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_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 文档以获取有关协议的更多信息。