Skip to main content

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):

uvx frame-mcp

Claude Code

claude mcp add frame -- uvx frame-mcp

Codex

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

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

Cursor

Create .cursor/mcp.json:

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

VS Code

Create .vscode/mcp.json:

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

Windsurf

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

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

Gemini CLI

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

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

Zed

Add to Zed settings.json under context_servers:

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

Tools

Tool Purpose Read only
scan Scan a file or directory for vulnerabilities and return findings as JSON. yes
write_baseline Scan a path and record the findings as a baseline file. no
verify Re-scan the files behind earlier findings and report whether each is fixed. yes
fix Generate and verify fixes for findings. Returns a diff by default. no
exploit Drive an agent to exploit a live, authorized target. no
packs_list List the framework packs a scan would load. yes
packs_check Validate framework pack files. yes
solve Check 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:

Variable Purpose
FRAME_LLM_BASE_URL Base URL of the LLM endpoint, for example a local server or a hosted API.
FRAME_LLM_API_KEY API key for the endpoint, when it requires one.
FRAME_LLM_MODEL Model name to request.
FRAME_LLM_REPO_ROOT Repository root for relative path resolution.

These are inherited from the server process environment and forwarded to each frame subprocess. 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.

Metadata

Release files for frame-mcp 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for frame-mcp 0.1.0
File Size Uploaded Provenance
frame_mcp-0.1.0.tar.gz 12.3 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for frame-mcp 0.1.0
File Interpreter ABI Platform
frame_mcp-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 24.2 kB

Release files / frame_mcp-0.1.0.tar.gz

Download URL frame_mcp-0.1.0.tar.gz
Size 12.3 kB
Tags Source
SHA-256 checksum
How to use checksums
ab9217eed7dd12e7f3350b18fca28c2e09404408c3a32e758cc95db8dcca3cd7
BLAKE2b-256 checksum
How to use checksums
dcb2a87449268a6bde280aa851f0d0ee87edcb06ae1b3fdb5cdcaa087f1d0af4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.12

Release files / frame_mcp-0.1.0-py3-none-any.whl

Download URL frame_mcp-0.1.0-py3-none-any.whl
Size 12.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
b0cb9a454acfb3aff39d35d2d113cc85258f3ec5bf6a865715652bab2717baec
BLAKE2b-256 checksum
How to use checksums
1f896d73ef75cb2a26054cb1ab11cbd42eca95087d073c9324e6984634d35a12
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.12

Security for frame-mcp 0.1.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page