关于 frame-mcp
frame-mcp 将 Frame 安全扫描器连接到编码 Agent 和其他 MCP 客户端。它通过 stdio 提供代码扫描、验证漏洞修复、生成修复方案和漏洞分析工具。
主要功能
- 01扫描文件和目录中的漏洞
- 02重新检查发现项以验证修复
- 03生成修复方案并返回差异
- 04执行分离逻辑蕴含检查
- 05列出并验证扫描器规则包
适用场景
- 01在安全审查中扫描代码库
- 02检查已报告的漏洞是否修复
- 03生成并审阅代码修复方案
MCP 相关
该服务通过 stdio 将 `frame` 命令行程序封装为 MCP 工具,涵盖扫描、验证、修复、规则包操作和分离逻辑求解。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
uvx frame-mcpFRAME_LLM_BASE_URLBase URL of an OpenAI-compatible LLM endpoint for the AI detection, triage, fix and exploit features.FRAME_LLM_API_KEY密钥API key for the LLM endpoint, when the endpoint requires one.FRAME_LLM_MODELModel name to request from the LLM endpoint.FRAME_LLM_REPO_ROOTRepository root the LLM layer resolves relative paths against.本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。
工具
8收录的工具列表 · 更新于 2 天前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| ai | boolean | 否 | |
| path | string | 是 | |
| root | any | 否 | |
| files | any | 否 | |
| packs | any | 否 | |
| fail_on | string | 否 | |
| baseline | any | 否 | |
| language | any | 否 | |
| changed_ref | any | 否 | |
| min_severity | any | 否 | |
| no_cross_file | boolean | 否 |
详细介绍
frame-mcp
mcp-name: io.github.lambdasec/frame-mcp
一个 MCP 服务,可将 Frame 安全扫描器提供给任何 MCP 客户端使用,让编码 Agent 通过 stdio 扫描代码、验证修复并分析漏洞。
Frame 将污点分析与分离逻辑验证相结合,用于查找数据流漏洞(SQL 注入、命令注入、路径遍历等),并使用求解器检查每条报告路径。此软件包将 frame 命令行程序封装为 MCP 工具。它通过明确的参数列表启动 frame 子进程,不使用 shell,并优先使用安装在当前 Python 解释器旁的 frame 可执行文件。
安装
使用 uvx 直接运行(无需单独安装):
uvx frame-mcp
Claude Code
claude mcp add frame -- uvx frame-mcp
Codex
将以下代码段添加到 ~/.codex/config.toml:
[mcp_servers.frame]
command = "uvx"
args = ["frame-mcp"]
Cursor
创建 .cursor/mcp.json:
{
"mcpServers": {
"frame": {
"command": "uvx",
"args": ["frame-mcp"]
}
}
}
VS Code
创建 .vscode/mcp.json:
{
"servers": {
"frame": {
"type": "stdio",
"command": "uvx",
"args": ["frame-mcp"]
}
}
}
Windsurf
在 ~/.codeium/windsurf/mcp_config.json 的 mcpServers 键下添加:
{
"mcpServers": {
"frame": {
"command": "uvx",
"args": ["frame-mcp"]
}
}
}
Gemini CLI
在 ~/.gemini/settings.json 的 mcpServers 键下添加:
{
"mcpServers": {
"frame": {
"command": "uvx",
"args": ["frame-mcp"]
}
}
}
Zed
在 Zed 的 settings.json 中 context_servers 下添加:
{
"context_servers": {
"frame": {
"command": {
"path": "uvx",
"args": ["frame-mcp"]
}
}
}
}
工具
| 工具 | 用途 | 只读 |
|---|---|---|
scan | 扫描文件或目录中的漏洞,并以 JSON 格式返回发现结果。 | 是 |
write_baseline | 扫描路径并将发现结果记录到基准文件中。 | 否 |
verify | 重新扫描先前发现结果涉及的文件,并报告每项问题是否已修复。 | 是 |
fix | 为发现的问题生成并验证修复方案。默认返回差异。 | 否 |
exploit | 驱动 Agent 利用一个正在运行且已获授权的目标。 | 否 |
packs_list | 列出扫描将加载的框架包。 | 是 |
packs_check | 验证框架包文件。 | 是 |
solve | 检查分离逻辑蕴含式 P |- Q。 | 是 |
security-review 提示词会依次调用 scan(启用 AI 层)、verify,并提供使用 fix 的选项。
AI 功能和环境变量
scan 工具启用 ai=true 时,以及 fix 和 exploit 工具,都会通过兼容 OpenAI 的端点调用大模型。在启动该服务的 MCP 客户端中配置以下环境变量:
| 变量 | 用途 |
|---|---|
FRAME_LLM_BASE_URL | 大模型端点的基础 URL,例如本地服务或托管 API。 |
FRAME_LLM_API_KEY | 端点的 API 密钥(如有要求)。 |
FRAME_LLM_MODEL | 要求使用的模型名称。 |
FRAME_LLM_REPO_ROOT | 用于解析相对路径的仓库根目录。 |
这些环境变量会从服务进程的环境中继承,并转发给每个 frame 子进程。普通的 scan(污点分析加验证)无需设置这些变量。
利用授权
exploit 工具会驱动自主 Agent 向目标发送实时流量。仅对你拥有或明确获准测试的系统运行。未经授权测试你不控制的系统可能违法。
许可证
Apache-2.0。参见 LICENSE。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。