使用说明
项目简介
Threatcl 是一个用于使用 HashiCorp Configuration Language (HCL) 文档化威胁模型的命令行工具。它提供了一系列功能,包括列出、查看、验证威胁模型文件,生成看板和数据流图 (DFD),以及从 Terraform 配置文件中提取信息资产。
该仓库包含了 Threatcl 工具的 MCP 服务器实现。通过运行 'threatcl mcp' 命令,可以将 Threatcl 的核心功能作为 MCP 工具和资源暴露给兼容 MCP 的大型语言模型 (LLM) 客户端(如 Claude Desktop, Cursor 等),从而实现 LLM 对威胁模型的感知、交互和操作。
主要功能点
- MCP 集成: 作为一个 MCP 服务器运行,允许 LLM 客户端通过标准协议与其交互。
- 资源暴露: 提供对静态资源(如 Threatcl 规范定义)的访问。
- 工具调用: 将 Threatcl 的 CLI 功能封装为 MCP 工具,供 LLM 客户端调用,包括:
- 列出指定目录下的威胁模型文件及其摘要信息。
- 查看威胁模型的原始 HCL 内容或渲染后的 Markdown 内容(支持文件或直接提供 HCL 字符串)。
- 验证威胁模型文件的 HCL/JSON 语法和规范遵循性(支持文件或直接提供 HCL 字符串)。
- 生成并返回威胁模型中定义的数据流图 (DFD) PNG 图片(支持 HCL 字符串)。
- 将威胁模型 HCL 内容或生成的 DFD PNG 图片写入指定文件。
- 查看 Threatcl HCL 规范的原始内容。
安装步骤
Threatcl MCP 服务器是 Threatcl 工具的一部分,可以通过以下方式获取:
- 下载预编译的二进制文件: 从项目的 GitHub Releases 页面下载适用于您操作系统的最新版本二进制文件,并将其添加到您的系统 PATH 中。
- 使用 Homebrew (macOS/Linux): 如果您使用 Homebrew,可以通过添加 tap 并安装来获取:
brew install threatcl/repo/threatcl - 使用 Docker: 您也可以使用官方提供的 Docker 镜像运行 Threatcl:
docker run --rm -it ghcr.io/threatcl/threatcl:latest
服务器配置
MCP 客户端通常需要配置 MCP 服务器的启动命令和相关参数来建立连接。对于 Threatcl MCP 服务器,启动命令是 'threatcl mcp'。您可以通过 '-dir' 参数指定一个工作目录,以便 MCP 服务器能够列出、验证和操作该目录下的威胁模型文件。
典型的 MCP 客户端配置对象会包含以下信息:
- 'name': MCP 服务器的友好名称,例如 "Threatcl MCP Server"。
- 'command': 启动 MCP 服务器的可执行程序路径或命令,例如 '"threatcl"'。
- 'args': 传递给 MCP 服务器命令的参数列表,例如 '["mcp", "-dir=/path/to/your/threatmodels"]'。 '-dir' 参数是可选的,如果未指定,则仅暴露不依赖文件系统的工具。
基本使用方法
- 安装 Threatcl: 按照上述安装步骤获取 Threatcl 工具。
- 启动 MCP 服务器: 在支持 MCP 的 LLM 客户端中,配置并启动 Threatcl MCP 服务器。客户端将执行 'threatcl mcp' 命令。如果需要访问本地文件,请在客户端配置中添加 '-dir' 参数并指定包含威胁模型文件的目录路径。
- 在 LLM 客户端中使用: 一旦 MCP 服务器成功连接,您的 LLM 客户端将能够发现 Threatcl 提供的 MCP 工具和资源。您可以在与 LLM 交互时,通过客户端的界面或命令调用这些工具,例如:
- 请求 LLM "列出我目录中的威胁模型文件"。
- 请求 LLM "验证这个威胁模型文件的内容"。
- 提供一段 HCL 威胁模型文本,请求 LLM "帮我查看这段威胁模型的 Markdown 预览"。
- 请求 LLM "生成这个威胁模型的 DFD 图片"。
具体如何调用这些工具取决于您的 MCP 客户端的实现和交互方式。Threatcl MCP 服务器在后台执行相应的威胁建模操作,并将结果通过 MCP 协议返回给客户端和 LLM。
信息
分类
开发者工具