ShadowRun
ShadowRun
Локально-ориентированный stdio-прокси для MCP-серверов. Он располагается между AI-агентом (Claude Code, Cursor и т.д.) и реальным MCP-сервером, перехватывает деструктивные вызовы инструментов (запись, удаление, SQL-мутации и т.д.) до их выполнения и удерживает их в памяти, пока вы не зафиксируете или отклоните их через локальную панель управления.
В отличие от наивного перехватчика, имитирующего успех, ShadowRun не отвечает агенту, пока перехваченный вызов не будет разрешен. Имитация ответа (например, для INSERT ... RETURNING id) позволяет агенту действовать на основе данных, которых еще не существует, и расходится с реальностью в его представлении о состоянии — поэтому перехваченные вызовы просто ждут (с таймаутом).
Область применения (v0.1)
Это намеренно узкая область: CLI для одного разработчика для локальных MCP-серверов (Postgres, файловая система и т.д.), используемых с Claude Code / Cursor. Это не шлюз для обеспечения соблюдения политик команды, не имеет аутентификации и не сохраняет состояние между перезапусками — см. Ограничения ниже, прежде чем полагаться на него для чего-либо, кроме вашей собственной машины.
Related MCP server: Agentrim MCP
Установка и запуск
npm install
npm run buildНаправьте конфигурацию вашего агента на прокси вместо реального сервера:
{
"mcpServers": {
"postgres": {
"command": "node",
"args": [
"/path/to/shadowrun-mcp/dist/index.js",
"npx", "-y", "@modelcontextprotocol/server-postgres",
"postgresql://localhost:5432/devdb"
]
}
}
}Откройте http://127.0.0.1:4040, чтобы увидеть ожидающие мутации, и зафиксируйте или отклоните каждую. Вызовы только для чтения (get*, list*, search*, ...) проходят немедленно и никогда не появляются на панели управления.
Как работает классификация
См. src/interceptor.ts — DEFAULT_CONFIG. Вызов инструмента перехватывается, если его имя соответствует шаблону изменяющего глагола (write, delete, create, ...) и не соответствует сначала шаблону безопасного чтения, или если любой строковый аргумент содержит ключевое слово SQL-мутации (insert into, drop table, ...). Это эвристика, а не гарантия — см. Ограничения.
Ограничения
Эвристический классификатор. Регулярные выражения по именам инструментов и тексту аргументов могут пропустить хитро названные изменяющие инструменты и могут чрезмерно перехватывать странно названные инструменты чтения. Относитесь к этому как к лежачему полицейскому, а не как к границе безопасности.
Нет аутентификации на панели управления. Она привязывается только к
127.0.0.1, но любой локальный процесс (или вредоносная страница, выполняющая DNS-ребандинг, теоретически), который может достичь этого порта, может зафиксировать/отклонить. Не запускайте это на общей или ненадежной машине.Только в памяти. Перезапуск прокси удаляет все ожидающие мутации — исходный вызов агента просто истечет по таймауту.
Один разработчик, локальное использование. Нет общего журнала аудита или общегруппового обеспечения политик. Если вам это нужно, обратитесь к хостинговому MCP-шлюзу.
Лицензия
AGPL-3.0
This server cannot be deployed
Maintenance
Related MCP Connectors
Security & DLP proxy for MCP: tool-poisoning scans, PII redaction on tool args/results. Beta.
MCP server for progressive tool usage at any scale (see https://klavis.ai)
Nifty's MCP server — exposes tasks, projects, messages, and files as tools for AI agents.
Security scanner for MCP servers. Detect vulnerabilities, prompt injection, and tool poisoning.
Related MCP Servers
- AlicenseNot gradedqualityAmaintenanceZero-dependency local proxy that wraps any MCP server to redact secrets, strip hidden-Unicode prompt injection, and block writes to protected paths like ~/.ssh and .env.4MIT
- AlicenseNot gradedqualityBmaintenanceA least-privilege enforcement proxy for MCP servers. It sits between MCP clients and upstream servers, enforcing tool policies, hiding denied tools, requiring human approval for risky actions, and providing a structured audit trail.MIT
- AlicenseNot gradedqualityDmaintenanceA zero-infrastructure, local proxy that wraps any stdio MCP server to add audit logging, policy enforcement with regex guards, and per-session/per-day budgets.MIT
- AlicenseNot gradedqualityAmaintenanceAn MCP proxy that records every tool call, restores prior state on undo, and blocks irreversible actions until a human approves them.1,238 npm2MIT