Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Description from the maker (original English)
MCP server for the Frame security scanner: scan, verify, fix, exploit, packs and separation logic.
These three are never merged into one score: opinions, measurements and popularity are different things.
We have not written a plain-language summary for this one yet. Below are the facts we read from the registry.
Pick the AI app you use, then copy the settings.
FRAME_LLM_BASE_URL, FRAME_LLM_API_KEY, FRAME_LLM_MODELValues marked secret are keys to your account. Never share them or paste them into a chat.
You need
Which app do you use?
Pick your app above. We remember it, so next time the button says “Install in …”.
Open Claude Desktop → Settings → Developer → Edit Config, and paste this into claude_desktop_config.json
{
"mcpServers": {
"frame": {
"command": "uvx",
"args": [
"frame-mcp"
],
"env": {
"FRAME_LLM_BASE_URL": "your-value",
"FRAME_LLM_API_KEY": "your-value",
"FRAME_LLM_MODEL": "your-value"
}
}
}
}Run this in your terminal
claude mcp add frame --env FRAME_LLM_BASE_URL=your-value --env FRAME_LLM_API_KEY=your-value --env FRAME_LLM_MODEL=your-value -- uvx frame-mcpFill in the empty values before running it.
Paste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json
{
"mcpServers": {
"frame": {
"command": "uvx",
"args": [
"frame-mcp"
],
"env": {
"FRAME_LLM_BASE_URL": "your-value",
"FRAME_LLM_API_KEY": "your-value",
"FRAME_LLM_MODEL": "your-value"
}
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
Paste into .vscode/mcp.json in your project
{
"servers": {
"frame": {
"type": "stdio",
"command": "uvx",
"args": [
"frame-mcp"
],
"env": {
"FRAME_LLM_BASE_URL": "your-value",
"FRAME_LLM_API_KEY": "your-value",
"FRAME_LLM_MODEL": "your-value"
}
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
This one runs on your computer, and ChatGPT can only connect to servers on the internet. Pick another app.
Your choice stays on this device in a cookie; no account needed.
FRAME_LLM_BASE_URL envFRAME_LLM_MODEL envThese settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.
Runs on your computer; the tool list appears in your AI app after you install it.
We check information anyone can see; we have not read the code. Checks that do not apply are left out of the count. · Checked Nov 7, 2026
The registry name was verified with the GitHub account lambdasec, which owns the repo
We have not read this repo from GitHub yet
We have not read this repo from GitHub yet
This one runs on your computer; there is no internet endpoint
Runs on your computer and uses local settings instead
Runs on your computer; we can only read tool lists from internet endpoints
Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.
It passed 1 of 1 applicable basic checks. We have not read the code. Before adding a key or token, see what access the server asks for and use a key with only the permissions you need.
You need to fill in: FRAME_LLM_API_KEY
It runs on your computer. Your AI app starts it when needed, and data does not pass through the maker’s servers (unless it calls an online service itself).
The GitHub repo last changed –, and the latest version (0.2.0) reached the registry yesterday.
Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. You also need Python (uv) on your computer.
In the same category: Spec Driven Development, Remote Desktop Commander, Georgia MCP
Servers in the same category from other makers, sorted by stars.
Reading a card:★ GitHub starsiThree pillars: reviews · checks · usageiUpdated = latest version published to the registryi
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
An MCP server for Georgian public data, read from the organizations that publish it.
Copied from the maker’s repo as written. PopNx MCP has not reviewed or endorsed it. HTML, images and scripts are removed. Links lead off this site.
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.
Run directly with uvx (no separate install step):
uvx frame-mcp
claude mcp add frame -- uvx frame-mcp
Add this stanza to ~/.codex/config.toml:
[mcp_servers.frame]
command = "uvx" args = ["frame-mcp"]
Create .cursor/mcp.json:
{
"mcpServers": { "frame": { "command": "uvx", "args": ["frame-mcp"] } } }
Create .vscode/mcp.json:
{
"servers": { "frame": { "type": "stdio", "command": "uvx", "args": ["frame-mcp"] } } }
Add to ~/.codeium/windsurf/mcp_config.json under the mcpServers key:
{
"mcpServers": { "frame": { "command": "uvx", "args": ["frame-mcp"] } } }
Add to ~/.gemini/settings.json under the mcpServers key:
{
"mcpServers": { "frame": { "command": "uvx", "args": ["frame-mcp"] } } }
Add to Zed settings.json under context_servers:
{
"context_servers": { "frame": { "command": { "path": "uvx", "args": ["frame-mcp"] } } } }
| Tool | Purpose | Read only | |
|---|---|---|---|
scan | Scan 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_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.
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. |
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.
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.
Apache-2.0. See LICENSE.