Token导航 LogoToken导航TokenDH.com
Keyvault MCP Server Python logo
运维云端stdio官方级别未说明来源级核验

Keyvault MCP Server Python

MCP Server

一个Python MCP服务器,将Azure Key Vault数据平面操作暴露给AI代理,使用托管身份进行身份验证和最小权限RBAC进行安全秘密访问。

工具数

3

提示词数

0

GitHub Stars

0

资源数

0
Bicep密钥管理Python数据安全AI代理

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

msmbaldwin

提供方

msmbaldwin

最后核验

2026/5/17 20:20

运行时

Python

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

python -m venv .venv

详细介绍

Azure密钥库MCP服务器(Python)

一个Python MCP服务器,向AI代理公开Azure Key Vault数据平面操作。使用托管身份进行身份验证,使用最低权限RBAC进行安全秘密访问。部署到Azure容器应用程序,并从GitHub Copilot聊天代理模式连接。

概述

此示例演示了如何构建客户拥有的 模型上下文协议(MCP) 向AI代理公开Azure Key Vault数据平面操作的服务器。

三种集成模式:

  • 代理→ 密钥保管库:通过MCP工具阅读秘密
  • 密钥保管库→ Agent:从密钥库事件触发代理工作流(事件网格)
  • 遥测→ Agent:查询调试和监控的审核日志

主要特点:

  • 仅数据平面:只暴露秘密读取操作,没有管理平面访问权限
  • 管理身份:用途 DefaultAzureCredential 用于安全身份验证
  • 最小特权:仅需要 Key Vault Secrets User 角色
  • 容器应用程序托管:部署到Azure容器应用程序 azd up
\[!重要\] 此MCP服务器使用密钥库 数据平面 只有。它没有也不应该访问管理平面操作,如创建保管库、配置网络或分配RBAC角色。

MCP工具

工具说明密钥库API
getSecret检索机密值GET /secrets/{name}
listSecrets列出秘密名称(不是值)GET /secrets
queryKeyVaultLogs查询用于调试的审核日志Azure监视器日志API
备注:The queryKeyVaultLogs 该工具需要额外的配置。看 启用遥测查询 在......下面

先决条件

入门指南

选择适合您需求的路径:

路径最适合你需要什么
部署到Azure生产使用、团队共享Azure订阅, azd CLI
在本地运行快速测试、开发Python 3.10+、Azure CLI
代码空间为此仓库做出贡献GitHub帐户

______________________________________________________________________

选项1:部署到Azure(推荐)

将MCP服务器部署到Azure容器应用程序以供生产使用。这为您提供了一个具有托管身份验证的托管端点。

Azure部署的先决条件

步骤

1.克隆和部署

git clone https://github.com/msmbaldwin/keyvault-mcp-server-python.git
cd keyvault-mcp-server-python
azd auth login
azd up

系统将提示您:

  • 环境名称:一个简短的名字,比如 kv-mcp-dev
  • Azure订阅:选择您的订阅
  • Azure位置:选择一个地区
  • 密钥库名称:现有密钥库的名称

2.配置VS代码

部署后,将MCP服务器添加到您的VS代码设置中:

  1. 打开VS代码设置(Ctrl+,)
  2. 搜索“mcp”
  3. 编辑 settings.json 并添加:
{
    "mcp": {
        "servers": {
            "keyvault-mcp-server": {
                "type": "http",
                "url": "https:///mcp"
            }
        }
    }
}

替换 ` URL来自 azd up` 输出。

3.在GitHub Copilot聊天中使用

  1. 打开GitHub Copilot聊天(Ctrl+Alt+I)
  2. 选择 代理模式 从下拉列表中
  3. 点击 工具 验证 getSecretlistSecrets 可供使用
  4. 尝试以下提示:“列出密钥库中的秘密”

______________________________________________________________________

选项2:本地运行

在本地计算机上运行MCP服务器以进行快速测试或开发。

地方发展的先决条件

步骤

1.克隆并安装依赖项

git clone https://github.com/msmbaldwin/keyvault-mcp-server-python.git
cd keyvault-mcp-server-python
python -m venv .venv
source .venv/bin/activate  # On Windows: .venv\Scripts\activate
pip install -r requirements.txt

2.验证并运行

# Login to Azure (required for DefaultAzureCredential)
az login

# Set your Key Vault URL
export KEYVAULT_URL="https://.vault.azure.net/"

# Start the server
python src/server.py

服务器将于启动 http://localhost:3000.

3.配置VS代码

添加到您的VS代码 settings.json:

{
    "mcp": {
        "servers": {
            "keyvault-mcp-server": {
                "type": "http",
                "url": "http://localhost:3000/mcp"
            }
        }
    }
}

4.在GitHub Copilot聊天中使用

  1. 打开GitHub Copilot聊天(Ctrl+Alt+I)
  2. 选择 代理模式 从下拉列表中
  3. 点击 工具 验证工具是否可用

______________________________________________________________________

选项3:GitHub代码空间

](https://codespaces.new/msmbaldwin/keyvault-mcp-server-python)

代码空间提供了一个预配置的开发环境。最适合贡献者或那些想在没有本地设置的情况下探索代码的人。

备注:代码空间仍然需要Azure身份验证和配置。它便于开发,但不是“零配置”体验。

步骤

  1. 单击上面的徽章在代码空间中打开
  2. 容器启动后,向Azure进行身份验证:
   az login --use-device-code
  1. 查找您的密钥库名称:
   az keyvault list --query '[].name' -o tsv
  1. 启动服务器:
   export KEYVAULT_URL="https://.vault.azure.net/"
   python src/server.py
  1. MCP设置是预先配置的。重新加载VS代码(Ctrl+Shift+P → “重新加载窗口”),然后在副驾驶聊天中使用代理模式。

______________________________________________________________________

安全

此示例遵循安全最佳实践:

实践实施
仅数据平面未暴露管理平面操作
最小特权用途 Key Vault Secrets User 仅限角色
管理身份配置中未存储任何秘密
单保险库范围角色分配仅限于一个保管库

所需角色

角色范围目的
Key Vault Secrets User密钥库读取秘密
Log Analytics Reader日志分析工作区查询审计日志(可选)

应避免的角色

将这些角色授予MCP服务器标识:

  • Key Vault Contributor (控制平面访问)
  • Key Vault Administrator (完全数据平面访问)
  • OwnerContributor 在任何范围

故障排除

错误原因解决方法
403 Forbidden缺少RBAC角色分配 Key Vault Secrets User 到托管身份
401 Unauthorized身份未解析验证托管身份是否已附加到容器应用程序
404 Not Found错误的保管库URL检查 KEYVAULT_URL 格式

清理

azd down --purge --force

扩展图案

启用遥测查询

要启用 queryKeyVaultLogs 代理调试工具:

  1. 启用密钥库诊断日志记录 转到日志分析工作区
  2. 设置环境变量:
   export LOG_ANALYTICS_WORKSPACE_ID=""
  1. 分配日志分析读取器角色 到管理身份:
   az role assignment create \
       --role "Log Analytics Reader" \
       --assignee-object-id 
 \
       --assignee-principal-type ServicePrincipal \
       --scope /subscriptions//resourceGroups//providers/Microsoft.OperationalInsights/workspaces/

示例查询:

场景查询
访问失败`AzureDiagnostics \where ResourceProvider == "MICROSOFT.KEYVAULT" and ResultSignature == "Forbidden"`
最近访问`AzureDiagnostics \where OperationName == "SecretGet" \summarize count() by CallerIPAddress`
异常模式`AzureDiagnostics \where ResourceProvider == "MICROSOFT.KEYVAULT" \summarize count() by bin(TimeGenerated, 1h)`

从密钥库事件触发代理

密钥库与 Azure事件网格 在机密、密钥或证书更改时发出事件。使用这些事件触发代理工作流:

事件代理工作流
SecretNearExpiry特工启动秘密轮换
CertificateNearExpiry代理触发证书续订
SecretNewVersionCreated代理验证和更新依赖的应用程序

要实现,请创建事件网格订阅:

az eventgrid event-subscription create \
    --name keyvault-agent-trigger \
    --source-resource-id /subscriptions//resourceGroups//providers/Microsoft.KeyVault/vaults/ \
    --endpoint-type webhook \
    --endpoint https:///api/keyvault-events \
    --included-event-types Microsoft.KeyVault.SecretNearExpiry Microsoft.KeyVault.CertificateNearExpiry
备注:事件网格触发器需要一个单独的webhook端点(如Azure函数),而不是MCP服务器本身。然后,代理可以调用MCP服务器来检索其他上下文。

相关文档

贡献

该项目欢迎各方提供意见和建议。看 贡献.md 了解详情。

许可证

此项目根据MIT许可证获得许可-请参阅 许可证 了解详情。

目录标签

目录标签

Bicep密钥管理Python数据安全AI代理本地部署Azure

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

session

运行时(runtime,运行环境)

Python

工具数量(toolCount,工具数)

3

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdiosession部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP