项目简介
NIST CSF 2.0 MCP 服务器是一个功能全面的后端应用,专注于提供 NIST 网络安全框架 2.0 的核心功能,并以 Model Context Protocol (MCP) 标准向大型语言模型 (LLM) 客户端提供服务。它不仅包含强大的安全评估工具、风险分析、差距识别、实施规划和报告生成功能,还支持多用户会话管理和实时更新,是构建智能网络安全助手和自动化评估平台的理想选择。
主要功能点
- 资源管理: 托管和管理 NIST CSF 2.0 的所有元素,包括功能、类别、子类别、实施示例等,提供结构化的数据访问能力。
- 工具集: 提供超过 40 种 MCP 工具,涵盖网络安全评估、成熟度计算、风险评分、差距分析、实施计划制定、审计证据上传、合规性报告生成等,支持 LLM 调用外部功能。
- Prompt 模板: 定义和渲染 Prompt 模板,支持可定制的 LLM 交互模式,实现更灵活的对话和任务执行。
- 会话管理: 支持持久性会话,允许用户在评估过程中暂停、恢复或跟踪进度。
- 多种传输协议: 通过 JSON-RPC 协议与客户端通信,支持 Stdio (标准输入/输出) 和 WebSocket 等传输协议,实现实时交互。
- 安全与性能: 内置多层认证机制、输入验证和速率限制,确保数据安全和高并发下的稳定响应。
安装步骤
该 MCP 服务器通常通过 Docker 部署。
-
克隆仓库:
git clone https://github.com/rocklambros/nist-csf-2-mcp-server.git cd nist-csf-2-mcp-server -
构建和运行 Docker 镜像: 如果您计划将此 MCP 服务器与 LLM 客户端(如 Claude Desktop)集成,可以直接运行已发布的 Docker 镜像。
-
直接运行 MCP 服务器:
docker run -it --rm -p 3001:3001 rocklambros/nist-csf-2-mcp-server:latest node dist/index.js此命令将在前台启动 MCP 服务器。为了与 LLM 客户端集成,通常不需要显式映射端口,因为 LLM 客户端会通过 stdin/stdout 与服务器进程通信。
-
开发模式 (包含 GUI 客户端): 如果您也想体验其专业的评估 GUI 平台,可以使用 'docker-compose' 启动。这会同时启动 MCP 服务器和其配套的 Web GUI。
cd gui-platform docker-compose up然后通过 'http://localhost:3000' 访问评估界面,'http://localhost:3001/health' 检查后端健康状态。
-
服务器配置
MCP 客户端需要配置服务器的启动命令。以下是 'Claude Desktop' 客户端的配置示例(JSON 格式,请勿直接在终端运行,而是将其添加到您的 Claude Desktop 配置中):
{ "mcpServers": { "nist-csf": { "command": "sh", "args": ["-c", "docker run -i --rm ghcr.io/rocklambros/nist-csf-2-mcp-server:latest node dist/index.js 2>/dev/null"], "env": {"MCP_SERVER": "true"}, "description": "NIST CSF 2.0 评估平台 MCP 服务器,用于 AI 集成。", "capabilities": [ "resources/read", "tools/call/start_assessment_workflow", "tools/call/assess_maturity", "tools/call/calculate_risk_score", "tools/call/generate_gap_analysis", "tools/call/create_implementation_plan", "tools/call/generate_executive_report", "tools/call/get_assessment_questions", "tools/call/persistent_comprehensive_assessment", "tools/call/*" ] } } }
配置参数注释:
- 'nist-csf': 您为此 MCP 服务器定义的名称。
- 'command': 启动 MCP 服务器进程的 shell 命令。
- 'args': 传递给 'command' 的参数,此处为实际的 Docker 运行命令,它会启动容器内的 Node.js 应用作为 MCP 服务器。'2>/dev/null' 用于抑制标准错误输出。
- 'env': 环境变量,'MCP_SERVER: "true"' 确保服务器以 MCP 模式启动。
- 'description': MCP 服务器的简要说明。
- 'capabilities': 服务器公开的功能列表,LLM 客户端可以通过这些声明了解服务器可以执行的操作(读取资源、调用工具)。'tools/call/*' 表示可以调用所有工具。
基本使用方法
一旦 MCP 服务器通过上述方式启动并被 LLM 客户端(如 Claude Desktop)配置和连接,LLM 即可开始与服务器交互:
- 创建评估档案 (Profile): LLM 客户端可以通过调用 'create_profile' 工具,为组织创建新的评估档案,提供组织名称、行业、规模等信息。
- 启动评估流程: 调用 'start_assessment_workflow' 或 'persistent_comprehensive_assessment' 工具来启动一个新的或恢复一个现有的 NIST CSF 评估流程。LLM 客户端可以获取评估问题并提交回答。
- 获取评估结果: 调用 'assess_maturity' 或 'calculate_risk_score' 等工具,获取组织的网络安全成熟度、风险评分和功能性差距等详细评估结果。
- 生成报告: 利用 'generate_executive_report'、'generate_compliance_report' 等工具,根据评估数据生成各种类型的专业报告,供决策者参考。
- 实施规划: 调用 'create_implementation_plan' 和 'generate_priority_matrix' 来制定改进计划和优先级。
LLM 客户端会以自然语言与您交互,您可以通过对话引导其调用这些后端 MCP 工具来完成网络安全评估和管理任务。
信息
分类
商业系统