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下获得许可。
