Token导航 LogoToken导航TokenDH.com
Nvd MCP Func logo
安全风控stdio官方级别未说明来源级核验

Nvd MCP Func

MCP Server

azurite

一个远程MCP服务器,将NIST国家漏洞数据库(NVD)的REST API作为AI可调用工具公开,托管在Azure Functions上。

工具数

7

提示词数

0

GitHub Stars

0

资源数

0
Bicep安全分析JavaScriptVS CodeVS Code

安装说明

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

作者 / 组织

KnowledgeRatio

提供方

KnowledgeRatio

最后核验

2026/5/17 20:21

运行时

Node.js

快速接入

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

命令预览

npx azurite --location ~/.azurite --silent

详细介绍

\

NVD MCP服务器-Azure函数(Python)

遥控器 MCP(模型上下文协议) 暴露的服务器 NIST国家漏洞数据库(NVD) API作为AI可调用工具。基于Azure Functions和Python构建,通过以下方式部署 azd.

NVD API密钥是 可选的 -服务器在没有一个的情况下以较低的速率限制工作(5个请求/30s未经身份验证,50个请求/3os经过身份验证)。获取免费钥匙 nvd.nist.gov/developers/request-a-pai-key.

可用的MCP工具

工具说明
search_cves按关键字、严重性、CWE、CPE、日期范围、KEV成员资格等搜索CVE数据库
get_cve检索特定CVE的完整详细信息(CVSS评分、受影响的配置、参考)
get_cve_history获取CVE记录的NVD更改历史记录——显示分数、状态或分析何时更新
search_cves_by_cpe通过CPE 2.3名称查找影响特定产品的所有CVE
get_recent_cves获取过去N天内发布的CVE,可根据严重性或KEV状态进行筛选
search_cpes按名称搜索CPE产品条目——使用此项查找其他工具的确切CPE URI
get_kev通过关键字/日期/勒索软件过滤实时获取CISA已知漏洞目录

Quickstart-GitHub代码空间(零本地安装)

该仓库包含一个预配置的开发容器,其中自动安装了所有工具(Python、azd、az、func、Node、Azurite、MCP Inspector)。

](https://codespaces.new/KnowledgeRatio/nvd-mcp-func)

或者在VS Code中本地打开:

  1. 安装 开发容器扩展
  2. 克隆仓库并在VS Code中打开它
  3. 出现提示时,单击 在容器中重新打开

一切在 在本地运行部署到Azure 这些部分将在容器内工作,而无需在您的机器上安装任何东西。

______________________________________________________________________

先决条件

在macOS上安装必备组件

最简单的方法是通过 家酿:

# Install Homebrew if you don't have it
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

# Install tools
brew install azure-developer-cli
brew install azure-cli
brew tap azure/functions
brew install azure-functions-core-tools@4
brew install node

在Windows上安装必备组件

winget install Microsoft.Azd
winget install Microsoft.AzureCLI
winget install OpenJS.NodeJS.LTS
npm install -g azure-functions-core-tools@4 --unsafe-perm true

在本地运行

1.启动存储模拟器

npx azurite --location ~/.azurite --silent

2.创建虚拟环境并安装依赖项

cd src
python -m venv .venv

# Windows
.venv\Scripts\pip install -r requirements.txt

# macOS / Linux
.venv/bin/pip install -r requirements.txt

3.配置本地设置

# macOS / Linux
cp src/local.settings.json.example src/local.settings.json

# Windows PowerShell
Copy-Item src/local.settings.json.example src/local.settings.json

编辑 src/local.settings.json 并可选择填写您的NVD API密钥:

{
  "IsEncrypted": false,
  "Values": {
    "FUNCTIONS_WORKER_RUNTIME": "python",
    "AzureWebJobsStorage": "UseDevelopmentStorage=true",
    "PYTHON_ISOLATE_WORKER_DEPENDENCIES": "1",
    "NVD_API_KEY": ""
  }
}
注: local.settings.json 是合法的,永远不会被承诺。

4.启动Functions主机

cd src
func start

MCP服务器将在 http://localhost:7071/runtime/webhooks/mcp.

从客户端连接

VS Code-GitHub Copilot代理模式

打开 .vscode/mcp.json。单击 开始 上方 local-mcp-function 服务器入口。然后问Copilot:

Search for critical CVEs related to log4j
Get the full details for CVE-2021-44228

MCP检查员

npx @modelcontextprotocol/inspector

将运输设置为 Streamable HTTP,URL到 http://localhost:7071/runtime/webhooks/mcp,然后单击 连接.

部署到Azure

1.登录Azure

azd auth login

2.创造一个azd环境

azd env new 

3.设置所需的环境变量

# Required: choose a supported region (see infra/main.bicep for the full allowed list)
azd env set AZURE_LOCATION    # e.g. uksouth, swedencentral, eastus

# Required: set to true to deploy with VNet + private endpoints, false for public access
azd env set VNET_ENABLED false

之前只选择一种身份验证模式 azd up:

模式要设置的环境变量行为
基于密钥(默认)MCP webhook使用功能系统密钥认证
Entra(EasyAuth)azd env set ENTRA_AUTH_ENABLED true预提供钩子创建/重用应用程序注册和设置 ENTRA_APP_CLIENT_ID;webhook身份验证委托给EasyAuth
未经身份验证(仅限开发人员)azd env set MCP_UNAUTHENTICATED_ACCESS trueMCP webhook无需身份验证即可公开访问
不要同时设置这两个 ENTRA_AUTH_ENABLED=trueMCP_UNAUTHENTICATED_ACCESS=true如果两者都设置,则预提供挂钩将优先处理未经身份验证的访问。

快速验证:

azd env get-values
多个订阅? 如果您的帐户有多个订阅,请同时运行: ``shell azd env set AZURE_SUBSCRIPTION_ID ``

4.(可选)设置您的NVD API密钥

azd env set NVD_API_KEY 

如果跳过此步骤,服务器将在未经身份验证的情况下针对NVD(较低的NVD速率限制)进行部署和工作。您可以稍后添加密钥。

5.部署

azd up

这提供了一个资源组,其中包含:

  • Azure Functions应用程序(灵活消费计划)
  • Azure密钥保管库(存储NVD API密钥(如果提供))
  • Azure存储帐户
  • 应用洞察+日志分析工作区
  • 用户分配的托管身份
如果 VNET_ENABLED=true,功能应用程序公共网络访问被禁用,MCP端点只能从专用网络访问。

6.连接到远程MCP服务器

您的端点格式:

https://.azurewebsites.net/runtime/webhooks/mcp

基于密钥的模式(默认)

获取系统密钥:

az functionapp keys list \
  --name  \
  --resource-group  \
  --query "systemKeys.mcp_extension" -o tsv

在VS Code中,单击 开始remote-mcp-function.vscode/mcp.json 并提供功能应用名称+系统密钥。

进入模式ENTRA_AUTH_ENABLED=true)

使用承载令牌作为作用域 api:///user_impersonation 而不是 x-functions-key.

az account get-access-token \
  --scope "api:///user_impersonation" \
  --query accessToken -o tsv

配置您的MCP客户端以发送:

Authorization: Bearer

未验证模式(MCP_UNAUTHENTICATED_ACCESS=true)

不需要身份验证标头。仅用于孤立的开发场景。

部署后更新NVD API密钥

az keyvault secret set \
  --vault-name  \
  --name NVD-API-KEY \
  --value 

功能应用程序在下次调用时自动解析密钥库引用(最多缓存约24小时;重新启动应用程序以立即生效)。

此命令需要RBAC权限才能写入密钥库机密(例如, Key Vault Secrets Officer).当前模板默认为最小权限,不会自动将此角色分配给部署用户。

秘密管理

上下文密钥的存储方式
本地src/local.settings.json (忽略)
AzureAzure密钥库密钥;Function App在运行时使用用户分配的托管身份通过密钥库引用读取它——原始密钥永远不会出现在应用程序配置中
部署azd env set NVD_API_KEY 写信给 .azure/*/env.json (根忽略了 .gitignore,但在您的计算机上仍为明文)

有用的命令

# Redeploy code without reprovisioning infrastructure
azd deploy

# View live function logs
az webapp log tail --name  --resource-group 

# Tear down all Azure resources
azd down

源代码

文件目的
src/function_app.pyMCP工具定义(search_cves, get_cve, get_cve_history, search_cves_by_cpe, get_recent_cves, search_cpes, get_kev)
src/nvd-service.pyNVD REST API客户端和CISA KEV目录提取器
基础设施/主要设施Azure基础架构(功能、密钥库、存储、监控)
infra/app/keyvault.bicep密钥库资源和RBAC角色分配

NVD API参考

目录标签

目录标签

Bicep安全分析JavaScriptVS Code本地部署漏洞管理AI工具云服务

支持客户端

VS Code

接入字段

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

stdio

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

token

运行时(runtime,运行环境)

Node.js

来源包(packageName,安装包名)

azurite

工具数量(toolCount,工具数)

7

资源数量(resourceCount,资源数)

0

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

0

权限和风险

stdiotoken部署方式未说明

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

安装前确认

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

来源信息

继续浏览同类 MCP