Frame Mcp

io.github.lambdasec由 GitHub 帳號 lambdasec 發布v0.2.0更新於 Nov 7, 2026

MCP server for the Frame security scanner: scan, verify, fix, exploit, packs and separation logic.

已驗證STDIO僅桌面開發者工具安全與監控

概覽

AI 產生的概覽

封裝 Frame 安全掃描器,讓助理掃描程式碼漏洞、複核並修復問題,並對獲授權的目標執行漏洞利用驗證。

可以做什麼
  • 掃描檔案或目錄中的資料流漏洞,以 JSON 回傳結果,可選擇啟用 LLM 偵測與分流層
  • 將掃描結果記錄為基準檔案,並重新掃描既有發現以回報其已修復、已移除、仍存在或被抑制
  • 為發現產生經複核的修復補丁,預設回傳統一 diff,也可直接寫入原始檔
  • 驅動 LLM 代理對線上目標嘗試漏洞利用
  • 列出並驗證框架套件,這些套件告訴 Frame 某框架的來源、匯點與淨化函式
  • 檢查分離邏輯蘊含式是否成立,並可回傳反模型
適用情境
適合讓編碼助理稽核程式碼庫中的注入、路徑穿越類漏洞,追蹤已回報問題是否真正修復,或提出經複核的補丁。也適合需要對自己擁有或獲授權的測試目標做代理輔助漏洞利用驗證的團隊。
執行需求
以 stdio 在本機執行,通常透過 uvx 啟動 PyPI 套件 frame-mcp,並需要本機可用的 frame 命令列程式。AI 掃描層、fix 與 exploit 工具需要 OpenAI 相容端點,透過 FRAME_LLM_BASE_URL、FRAME_LLM_MODEL 以及必要時的 FRAME_LLM_API_KEY 設定。一般掃描不需要這些。
安裝前請注意
exploit 工具會向目標送出真實流量,僅可用於自己擁有或明確獲授權測試的系統,未授權測試可能違法。write_baseline 會建立或覆寫基準檔案,fix 在 in_place 時會寫入原始檔。依賴 LLM 的功能會把程式碼與發現傳送到所設定的端點,該端點可能是第三方 API。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Frame Mcp,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

frame-mcp

mcp-name: io.github.lambdasec/frame-mcp

An MCP server that exposes the Frame security scanner to any MCP client, so a coding agent can scan code, verify fixes, and reason about vulnerabilities over stdio.

Frame combines taint analysis with separation logic verification to find data-flow vulnerabilities (SQL injection, command injection, path traversal, and more), and checks each reported path with a solver. This package wraps the frame command line program as MCP tools. It launches frame as a subprocess with an explicit argument list, never a shell, and prefers the frame executable installed next to the running Python interpreter.

Install

Run directly with uvx (no separate install step):

bash
uvx frame-mcp

Claude Code

bash
claude mcp add frame -- uvx frame-mcp

Codex

Add this stanza to ~/.codex/config.toml:

toml
[mcp_servers.frame]command = "uvx"args = ["frame-mcp"]

Cursor

Create .cursor/mcp.json:

json
{  "mcpServers": {    "frame": {      "command": "uvx",      "args": ["frame-mcp"]    }  }}

VS Code

Create .vscode/mcp.json:

json
{  "servers": {    "frame": {      "type": "stdio",      "command": "uvx",      "args": ["frame-mcp"]    }  }}

Windsurf

Add to ~/.codeium/windsurf/mcp_config.json under the mcpServers key:

json
{  "mcpServers": {    "frame": {      "command": "uvx",      "args": ["frame-mcp"]    }  }}

Gemini CLI

Add to ~/.gemini/settings.json under the mcpServers key:

json
{  "mcpServers": {    "frame": {      "command": "uvx",      "args": ["frame-mcp"]    }  }}

Zed

Add to Zed settings.json under context_servers:

json
{  "context_servers": {    "frame": {      "command": {        "path": "uvx",        "args": ["frame-mcp"]      }    }  }}

Tools

ToolPurposeRead only
scanScan a file or directory for vulnerabilities and return findings as JSON; ai adds LLM detection and triage, hunt_authz the agentic authorization hunt.yes
write_baselineScan a path and record the findings as a baseline file.no
verifyRe-scan the files behind earlier findings and report whether each is fixed.yes
fixGenerate and verify fixes for findings. Returns a diff by default.no
exploitDrive an agent to exploit a live, authorized target.no
packs_listList the framework packs a scan would load.yes
packs_checkValidate framework pack files.yes
solveCheck a separation logic entailment P |- Q.yes

A security-review prompt chains scan (with the AI layer), verify, and an offer to fix.

AI features and environment variables

The scan tool with ai=true, along with fix and exploit, call an LLM through an OpenAI-compatible endpoint. Configure it with these environment variables in the MCP client that launches the server:

VariablePurpose
FRAME_LLM_BASE_URLBase URL of the LLM endpoint, for example a local server or a hosted API.
FRAME_LLM_API_KEYAPI key for the endpoint, when it requires one.
FRAME_LLM_MODELModel name to request.

These are inherited from the server process environment and forwarded to each frame subprocess. Every other setting (streaming, timeouts, agent budgets, the hunt's budgets) is a key of the [llm] / [hunt] tables in the project's .frame.toml, which each frame command reads. The plain scan (taint analysis plus verification) needs none of them.

Exploit authorization

The exploit tool drives an autonomous agent that sends live traffic to a target. Run it only against systems you own or are explicitly authorized to test. Unauthorized testing of systems you do not control may be illegal.

License

Apache-2.0. See LICENSE.

來源:README.md,提交 7cb15e2

工具

8

scan

Scan source for vulnerabilities

Scan a file or directory for security vulnerabilities with Frame. Runs taint analysis plus separation logic verification and returns the findings as JSON. Set ``ai=True`` to add the LLM detection and triage layer (needs the FRAME_LLM_* environment variables). ``changed_ref`` scans only files that differ from a git ref; ``files`` restricts the scan to a list of files; ``baseline`` reports only findings absent from a baseline file; ``packs`` loads extra framework packs. ``hunt_authz=True`` adds the agentic authorization hunt (IDOR, missing authorization, privilege escalation; needs a model): every handler gets a verdict, and the result's ``hunt`` section lists how it ended and what it left unresolved. A hunt runs one agent per group of handlers and can take hours on a large application; it is bounded by its step budgets, not by a timeout. This tool does not modify any files.

輸入參數aipath必填rootfilespacksfail_onbaselinelanguagehunt_authzchanged_refmin_severityno_cross_file

write_baseline

Write a scan baseline file

Scan ``path`` and record the findings as a baseline file. Writes ``baseline_file`` to disk (creating or overwriting it) and uses ``--fail-on none`` so the current state is accepted. Later scans can pass this file as ``baseline`` to report only new findings.

輸入參數path必填baseline_file必填

verify

Verify earlier findings are fixed

Re-scan the files behind earlier findings and report their status. ``findings_json`` is the JSON produced by ``scan`` (a JSON string or the parsed object). Each finding comes back as fixed, file_removed, present, suppressed, uncertain or unverifiable. Pass ``ids`` (finding fingerprints) to check only specific findings. This tool does not modify any files.

輸入參數idsfindings_json必填

fix

Generate verified security fixes

Generate and verify fixes for scan findings. By default this returns a unified diff and does not touch any files. Set ``in_place=True`` to write the patches to the source files. Each patch is verified by re-scanning the patched code. This tool needs the FRAME_LLM_* environment variables (FRAME_LLM_BASE_URL, FRAME_LLM_MODEL, and an API key when the endpoint requires one).

輸入參數path必填in_placefindings_json必填

exploit

Drive an exploitation agent against a target

Drive an LLM agent to exploit a live target. Authorized use only. Run this only against systems you own or are explicitly authorized to test. ``target`` is a URL such as http://app:8080. Optionally prime the agent with ``findings_json`` from ``scan``, a plain-language ``goal``, a ``success_check`` shell command (exit 0 means solved), and ``max_steps``. Needs the FRAME_LLM_* environment variables.

輸入參數goaltarget必填max_stepsfindings_jsonsuccess_check

packs_list

List loadable framework packs

List the framework packs a scan would load. Packs teach Frame a framework's sources, sinks, sanitizers and entry points. Pass ``path`` to include a project directory's .frame/packs.

輸入參數path

packs_check

Validate framework pack files

Validate one or more framework pack .toml files or directories.

輸入參數files必填

solve

Check a separation logic entailment

Check whether a separation logic entailment ``P |- Q`` is valid. Example entailment: ``x |-> 5 |- x |-> 5``. Set ``model=True`` to return a countermodel when the entailment is invalid.

輸入參數modelentailment必填

版本歷史

2
  1. v0.2.0最新Nov 6, 2026
  2. v0.1.0Oct 29, 2026

評分

已滿足適用檢查項的 90%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分
  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具必需15 分
  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分