NIST数据协议服务器

一个为AI助手提供结构化访问NIST网络安全目录的小型模型上下文协议(MCP)服务器,包括出版物、SP 800-53 Rev 5控制、CSF 2.0等数据。

  • by ball2jh
  • Python
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 ball2jh/nist-mcp

使用说明

nist mcp

一个小型模型上下文协议(MCP)服务器,为AI助手提供对NIST网络安全目录的结构化访问:出版物、SP 800-53 Rev 5控件、CSF 2.0、CMVP模块、NCP清单、术语表术语、NICE工作角色和实时NVD CVE/CPE数据。本地NIST数据由SQLite索引提供,该索引在首次使用时通过直接从NIST下载结构化数据自动构建。

安装

直接从GitHub安装:

pipx install git+https://github.com/ball2jh/nist-mcp.git
# or
pip install git+https://github.com/ball2jh/nist-mcp.git

对于当地发展:

git clone https://github.com/ball2jh/nist-mcp.git
cd nist-mcp
pip install -e ".[dev,scraper]"

配置

环境变量

变量 默认值 描述
NIST_MCP_DATA_DIR ~/.nist-mcp 本地数据库和缓存文档的目录
NIST_MCP_NVD_API_KEY (无) 用于更高速率限制的可选NVD API密钥(推荐)
NIST_MCP_UPDATE_INTERVAL 604800 后台数据库重建之间的秒数(默认值:7天)

config.toml

创建 ~/.nist-mcp/config.toml (或 $NIST_MCP_DATA_DIR/config.toml)对于持久设置:

nvd_api_key = "your-api-key-here"
update_interval = 43200   # 12 hours

环境变量优先于配置文件。

MCP客户端配置

添加到MCP客户端的服务器列表中(例如Claude Desktop claude_desktop_config.json):

{
  "mcpServers": {
    "nist": {
      "command": "nist-mcp",
      "env": {
        "NIST_MCP_NVD_API_KEY": "your-api-key-here"
      }
    }
  }
}

在第一次运行时,服务器通过从NIST下载结构化数据来构建本地数据库(约2秒)。数据库在过时时会自动缓存和重建(默认值:每7天一次)。

MCP安全注意事项

此服务器旨在作为本地stdio MCP服务器运行。它不公开HTTP侦听器,因此访问仅限于启动它的MCP客户端进程。日志是通过Python日志记录写入的,默认情况下会写入stderr,不会损坏stdio JSON-RPC流量。

工具模式约束了常用选项集和结果大小。文档下载仅限于来自已知NIST发布主机的HTTPS URL,重定向被重新验证,文件名在写入本地缓存之前被净化,页面提取限制在每个请求50页。下载、缓存或重建本地数据的工具被注释为非破坏性的,但不是纯只读的,这样客户端就可以呈现适当的确认UI。

可用工具

工具 说明
search_nist 在出版物、控制、CSF、术语表、CMVP、检查表和NICE中搜索本地NIST目录数据
get_nist_record 按源和ID获取单个本地NIST记录
read_publication 下载/缓存并读取Markdown格式的出版物内容;默认情况下返回PDF目录
search_nvd 搜索实时NVD CVE或CPE数据
get_cve 获取一个CVE,其中包含CVSS、弱点、引用、KEV状态和可选更改历史记录
database_status 显示数据库构建日期、大小、新鲜度和文件路径
update_database 通过从NIST来源下载新数据重建本地NIST索引

可用资源

URI 描述
nist://about 服务器版本、数据库新鲜度和快速入门工具指南

快速示例

查找NIST关于零信任的指导

search_nist("zero trust architecture")

查阅SP 800-207出版物

search_nist("zero trust", source="publications")
get_nist_record(source="publications", record_id="SP.800-207")

审查MODERATE系统的访问控制要求

search_nist("account management", source="controls", detail="standard")
get_nist_record(source="controls", record_id="AC-2")

分析Log4Shell

get_cve("CVE-2021-44228")

检查您的加密库是否经过FIPS验证

search_nist("OpenSSL", source="cmvp")

查找CSF对事件响应的指导

search_nist("incident response", source="csf")

许可证

MIT许可证。请注意 pymupdf4llm,用于PDF到Markdown的转换,在AGPL-3.0下获得许可。