Skip to main content
Glama

ShadowRun

Ein lokaler, stdio-basierter Proxy für MCP-Server, der lokal priorisiert. Er sitzt zwischen einem KI-Agenten (Claude Code, Cursor, etc.) und einem echten MCP-Server, fängt destruktive Tool-Aufrufe (Schreibvorgänge, Löschungen, SQL-Mutationen, ...) ab, bevor sie ausgeführt werden, und hält sie im Speicher, bis Sie sie von einem lokalen Dashboard aus committen oder verwerfen.

Im Gegensatz zu einem naiven „Fake-Erfolg“-Interceptor antwortet ShadowRun nicht an den Agenten, bis ein abgefangener Aufruf aufgelöst ist. Das Vortäuschen einer Antwort (z. B. für ein INSERT ... RETURNING id) lässt den Agenten auf Daten reagieren, die noch nicht existieren, und entfernt seinen Glaubenszustand von der Realität — daher warten abgefangene Aufrufe einfach (mit einem Timeout).

Umfang (v0.1)

Dies ist bewusst eng gefasst: ein CLI für einzelne Entwickler für lokale MCP-Server (Postgres, Dateisystem, etc.) zur Verwendung mit Claude Code / Cursor. Es ist kein Team-Richtliniendurchsetzungs-Gateway, hat keine Authentifizierung und keine Persistenz über Neustarts hinweg — siehe Einschränkungen unten, bevor Sie sich für etwas anderes als Ihren eigenen Rechner darauf verlassen.

Related MCP server: Agentrim MCP

Installation und Ausführung

npm install
npm run build

Konfigurieren Sie Ihren Agenten so, dass er auf den Proxy anstatt auf den echten Server zeigt:

{
  "mcpServers": {
    "postgres": {
      "command": "node",
      "args": [
        "/path/to/shadowrun-mcp/dist/index.js",
        "npx", "-y", "@modelcontextprotocol/server-postgres",
        "postgresql://localhost:5432/devdb"
      ]
    }
  }
}

Öffnen Sie http://127.0.0.1:4040, um ausstehende Mutationen zu sehen, und Commit oder Discard jede einzelne. Schreibgeschützte Aufrufe (get*, list*, search*, ...) werden sofort durchgelassen und erscheinen nie im Dashboard.

Wie die Klassifizierung funktioniert

Siehe src/interceptor.ts — DEFAULT_CONFIG. Ein Tool-Aufruf wird abgefangen, wenn sein Name einem mutierenden Verb-Muster (write, delete, create, ...) entspricht und nicht zuerst einem sicheren Lesemuster, oder wenn ein Zeichenfolgenargument ein SQL-Mutationsschlüsselwort (insert into, drop table, ...) enthält. Dies ist eine Heuristik, keine Garantie — siehe Einschränkungen.

Einschränkungen

  • Heuristischer Klassifizierer. Regex auf Toolnamen und Argumenttext wird clever benannte mutierende Tools übersehen und könnte seltsam benannte Lese-Tools zu viel abfangen. Behandeln Sie dies als Geschwindigkeitsbegrenzung, nicht als Sicherheitsgrenze.

  • Keine Authentifizierung im Dashboard. Es bindet nur an 127.0.0.1, aber jeder lokale Prozess (oder eine bösartige Seite, die DNS-Rebinding durchführt, theoretisch), der diesen Port erreichen kann, kann Commit/Discard ausführen. Führen Sie dies nicht auf einem gemeinsam genutzten oder nicht vertrauenswürdigen Rechner aus.

  • Nur im Speicher. Ein Neustart des Proxys verwirft alle ausstehenden Mutationen — der ursprüngliche Aufruf des Agenten wird einfach timeouten.

  • Einzelner Entwickler, lokale Nutzung. Es gibt kein gemeinsames Audit-Log oder eine teamweite Richtliniendurchsetzung. Wenn Sie das benötigen, schauen Sie sich stattdessen ein gehostetes MCP-Gateway an.

Lizenz

AGPL-3.0

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    A
    maintenance
    Zero-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.
    4
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    A 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
  • A
    license
    Not graded
    quality
    D
    maintenance
    A 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