Kontrol

Deine Maschine. Deine Agenten. Dein Genehmigungs-Gate.
Kontrol ist eine selbst gehostete Kontrollebene zur Erweiterung von WebUI- und CLI-Coding-Agenten auf eine spezifische, review-gesteuerte Weise. Es stellt deine lokalen Projektdateien über MCP bereit, sendet begrenzte Arbeit an registrierte ACP-Agenten, leitet Ergebnisse zur menschlichen Überprüfung zurück und setzt Richtlinien für die Tools und Pfade durch, die Agenten berühren dürfen.
Du betreibst es auf deiner Maschine, stellst es über einen Tunnel bereit, den du kontrollierst, und entscheidest, welche Agenten arbeiten dürfen, was sie tun können und wann ihre Arbeit übernommen werden darf.
Was es anders macht
Die meisten MCP-Dateiserver-Brücken enden bei „Lesen/Schreiben/Bearbeiten“. Kontrol fügt drei Ebenen hinzu:
Ralphie-Muntz-Loop — Agenten reichen Arbeit zur menschlichen Überprüfung ein. Die Review-Oberfläche (WebUI oder ein beliebiger MCP-Client) zeigt den Diff. Der Mensch genehmigt, fordert Änderungen an oder lehnt ab. Der Agent arbeitet aus dauerhaftem Feedback-Zustand weiter — selbst wenn der Agentenprozess gestorben und neu gestartet wurde.
Continuation-Outbox — Jede Review-Entscheidung erzeugt ein strukturiertes Fortsetzungspaket mit Urteil, erforderlichen Aktionen und Wiederaufnahme-Anweisungen. Das Paket wechselt von der Review-Oberfläche zum nächsten Agenten-Turn, sodass die Arbeit ohne Kontextverlust fortgesetzt wird.
Policy-Modus — Genehmigungsregeln pro Tool und pro Pfad. Ein gefährlicher Befehl kann eine einmalige Genehmigung erfordern, oder du kannst ihn für eine gesamte Workspace-Sitzung genehmigen. Schreibgeschützte Inspektion bleibt schnell; destruktive Operationen pausieren für menschliches Urteil.
Darunter liegt transaktionaler Workflow-Zustand mit einem append-only Ereignisprotokoll: Einreichungen, Feedback, Genehmigungen, Fortsetzungen, Läufe und Policy-Entscheidungen werden in SQLite gespeichert, und der Ereignisstrom weckt WebUI-Watcher und blockierte Agenten.
Related MCP server: safe-code-mcp
Installation
Kontrol erfordert Node >=22.19 <27.
Der npm-Paketname ist für @b-a-m-n/kontrol reserviert, aber das öffentliche Paket ist noch nicht veröffentlicht. Installiere vorerst von GitHub:
npm install -g git+ssh://git@github.com/B-A-M-N/Kontrol.git
kontrol init
kontrol serveWenn du keine SSH-Schlüssel mit GitHub verwendest, nutze die HTTPS-URL:
npm install -g git+https://github.com/B-A-M-N/Kontrol.gitFür die Quellcode-Entwicklung klone das Repository und verlinke die CLI lokal:
git clone git@github.com:B-A-M-N/Kontrol.git
cd Kontrol
npm install --include=dev
npm run build
npm link
kontrol init
kontrol serveUm den vollständigen lokalen Entwicklungsstack (MCP-Server, konfigurierte ACP-Adapter und Secure-MCP-Tunnel) aus diesem Checkout zu starten, verwende:
kontrol upkontrol up verwendet das .env des Checkouts und führt dieselben Preflight- und
Bereitschaftsprüfungen wie start-all.sh durch.
Das Checkout bietet außerdem ./restart-kontrol.sh, das denselben
transaktionalen Launcher ausführt. Es baut und verifiziert die Ersatzgeneration,
bevor es alte eigene Prozesse stoppt, und führt einen Rollback durch, wenn eine
Bereitschaftsstufe fehlschlägt.
Nur für eingeschränkte CI- oder Sandbox-Umgebungen setze
KONTROL_SKIP_PREFLIGHT_TESTS=true, um die vollständige Testsuite zu überspringen; alle
anderen Preflight- und Bereitschaftsprüfungen bleiben aktiviert.
Während der Einrichtung fragt Kontrol nach:
den lokalen Projektordnern, die Agenten öffnen dürfen
dem lokalen Port, normalerweise
7676deiner öffentlichen HTTPS-Basis-URL von Cloudflare Tunnel, ngrok, Pinggy, Tailscale Funnel oder einem anderen Reverse-Proxy
Verwende den öffentlichen Ursprung ohne /mcp:
https://your-tunnel-host.example.comWenn der Client sich verbindet, öffnet Kontrol eine Owner-Passwort-Genehmigungsseite. Gib das Passwort ein, das kontrol init ausgibt. Es wird auch gespeichert in:
~/.kontrol/auth.jsonHalte dieses Passwort geheim.
Beliebigen MCP-Client verbinden
Der Standard-Endpunkt lokal:
http://127.0.0.1:7676/mcpGET /healthz meldet Prozess-Liveness und die eingebettete Build-Identität.
GET /core-readyz prüft KONTROLs eigene Datenbank, den MCP-Handler,
Workspace/Review/ACP-Initialisierung und die Laufzeit-Build-Identität, während die
Adapter noch starten. GET /readyz ist strikte operative Bereitschaft: Es erfordert
zusätzlich live konfigurierte Worker-Agenten. Der Launcher führt außerdem eine
tatsächliche MCP-Initialisierung, Agenten-Erkennung, Workspace-Öffnung, Datei-Lesen
und Bash-Roundtrip durch, bevor er den Stack als bereit erklärt.
Die meisten Benutzer verbinden sich über einen öffentlichen HTTPS-Tunnel:
https://your-tunnel-host.example.com/mcpKontrol spricht standardmäßiges MCP über Streamable HTTP. Jeder kompatible Client funktioniert: ChatGPT, Claude, Codex, Cursor, Windsurf, benutzerdefinierte Tools.
OpenAI Secure MCP Tunnel
Um Kontrol mit ChatGPT zu verbinden, ohne einen eingehenden Port freizugeben, führe es lokal aus und
leite ChatGPT durch einen OpenAI Secure MCP Tunnel. In diesem Setup verwende KONTROL_AUTH_MODE=tunnel: Kontrol bindet eine Loopback-Adresse und deaktiviert sein eigenes Auth-Gate auf /mcp, sodass ChatGPT sich mit No Authentication verbindet. Die Zugriffskontrolle wird an den Tunnel und den OpenAI-Workspace delegiert, der ihn besitzt. OAuth (der Standard für öffentliche Bereitstellungen) ist hier absichtlich deaktiviert, da sein Autorisierungsserver über den Tunnel nicht erreichbar ist.
KONTROL_AUTH_MODE=tunnel
HOST=127.0.0.1
PORT=7676
kontrol serveRegistriere den Server im Tunnel-Client mit No Authentication, der auf den Loopback-Ursprung zeigt. Der verwaltete Checkout-Launcher (./start-all.sh) hält nach dem Start einen persistenten Supervisor am Leben und repariert fehlgeschlagene Tunnel-/Adapter-Komponenten mit Schwellenwert-Neustarts:
tunnel-client run \
--mcp.server-url "http://127.0.0.1:7676/mcp"Der Launcher verwendet KONTROL_TUNNEL_PROFILE (Standard
sample_mcp_with_dcr). Wenn dieses Profil auf einen stillgelegten oder veralteten Tunnel
zeigt, setze KONTROL_TUNNEL_ID=tunnel_... in .env, nachdem du die aktuelle
Registrierung in OpenAI Tunnels erstellt oder ausgewählt hast, starte dann den Stack neu und verbinde
den ChatGPT-Connector erneut mit derselben Tunnel-ID.
Die Review-WebUI wird als eigenständige MCP-App-Ressource bereitgestellt (ihr CSS und JS sind
in eine einzelne workspace-app.html eingebettet), sodass das ChatGPT-Iframe keine localhost
Abrufe benötigt. Siehe Configuration Reference
für die vollständigen Sicherheitsregeln.
Jede MCP-mcp-session-id ist ein isolierter Transportkontext. Kontrol poolt keine
Sitzungen, nur weil Clients einen logischen Namen teilen, sodass mehrere Konversationen
den Server gleichzeitig verwenden können. Workspace- und Review-Kontinuität wird durch
explizite dauerhafte IDs getragen, nicht durch die Annahme, dass separate Transporte zu
einer Konversation gehören.
Was Agenten tun können
Sobald verbunden, kann ein Agent einen genehmigten Projektordner als Workspace öffnen und:
Dateien lesen, schreiben und bearbeiten
Code durchsuchen und Verzeichnisse inspizieren
Shell-Befehle für Tests, Builds, Git und Paketskripte ausführen
isolierte Git-Worktrees für parallele Sitzungen verwenden
Projektanweisungen aus
AGENTS.mdundCLAUDE.mdbefolgenlokale Agenten-Skills aus deinen Skill-Ordnern entdecken
Tool-Karten und optionale Änderungszusammenfassungen in ChatGPT-Apps-kompatiblen Hosts anzeigen
Arbeit zur menschlichen Überprüfung einreichen und aus Feedback fortfahren
Ralphie-Muntz-Loop
Der Review-Loop ist ereignisgesteuert und provider-agnostisch:
Agent submits work → Kontrol captures diff, emits ReviewRequested
↓
Human reviews diff in WebUI / any MCP client
↓
Human approves, requests changes, or rejects
↓
Kontrol persists feedback event + generates continuation packet
↓
If agent is live: it unblocks and continues
If agent stopped: it reads feedback when it resumesDieser Loop lebt in Kontrols Ereignisprotokoll, nicht in einem bestimmten Host. Du kannst Einreichungen von derselben Oberfläche aus überprüfen, die du zum Chatten verwendest, von einem Terminal oder von einem zukünftigen Tool.
Skill-Namen

Das Projekt enthält einige bewusst einprägsame Agent Skills. Die Namen sind nicht die Produktoberfläche; sie sind Protokoll-Handles für den Loop:
ralphie-muntz-loopist der Worker-seitige Vertrag. Der CLI-Agent führt begrenzte Arbeit aus, reicht einen Diff ein, wartet auf Feedback und setzt nur aus dauerhaftem Review-Zustand fort.nelson-wiggum-loopist der Reviewer-seitige Vertrag. Der WebUI- oder MCP-Reviewer startet Arbeit, inspiziert die Einreichung und ist die einzige Seite, die sagen darf, dass die Arbeit abgeschlossen ist.kontrol-supervised-missionist der Missionskontroll-Vertrag. Er fügt Ziel, Kriterien, Befunde, Beweise, Arbeitsaufträge und Genehmigungs-Blocker über den Transport-Loop hinzu.
Die scherzhaften Namen machen das Rendezvous leicht zu merken. Das Autoritätsmodell ist ernst: Worker genehmigen sich nicht selbst, Review ist an die exakte Einreichung und Workspace-Snapshot gebunden, und der Abschluss wird durch den Reviewer oder das Missions-Prädikat gesteuert.
Policy-Modus
Steuere, welche Operationen menschliche Genehmigung erfordern:
# Require approval for bash, allow file edits freely
KONTROL_POLICY_TOOL_BASH=ask KONTROL_POLICY_TOOL_WRITE=allow
# Deny access to sensitive paths (structured JSON — the per-rule env format
# `KONTROL_POLICY_PATH_<glob>` is no longer supported; it is not valid
# shell assignment syntax)
KONTROL_POLICY_PATH_RULES='[{"pattern":"/etc/ssh/**","mode":"deny"}]'
# Default: ask for anything not explicitly allowed
KONTROL_POLICY_MODE=askModi:
Modus | Verhalten |
allow | Tool oder Pfad ist immer erlaubt |
deny | Tool oder Pfad ist immer blockiert |
ask | Blockiert den Aufruf, bis ein Mensch genehmigt oder ablehnt |
Wenn ein Aufruf Genehmigung erfordert, blockiert der Tool-Aufruf des Agenten (Long-Poll), bis ein Mensch entscheidet. „Für Arbeitssitzung genehmigen“ speichert die Entscheidung für den Rest der Arbeitssitzung, sodass wiederholte Operationen nicht erneut nachfragen; „Für Workspace genehmigen“ speichert, bis der Workspace geschlossen wird; „Einmal genehmigen“ speichert nicht.
Mentales Modell
Kontrol ist eine dauerhafte Review-Mailbox und Policy-Autorität, nicht nur ein Dateiserver.
Du entscheidest, welche Wurzeln erlaubt sind. Du entscheidest, welche Tools Genehmigung erfordern. Der Agent erledigt seine Arbeit, reicht zur Überprüfung ein und fährt aus strukturiertem Feedback fort. Dauerhafter Workflow-Zustand und das append-only Ereignisprotokoll sind die Autorität, aus der jede Oberfläche liest: CLI, WebUI, MCP-Tools und ACP-Adapter.
Für eine normale Sitzung:
Starte deinen Tunnel.
Führe
kontrol serveaus.Verbinde deinen MCP-Agenten mit der öffentlichen
/mcp-URL.Genehmige die Verbindung mit dem Owner-Passwort.
Bitte den Agenten, ein Projekt innerhalb einer deiner erlaubten Wurzeln zu öffnen.
Überprüfe Einreichungen, sobald sie eingehen.
Dokumentation
Plattformunterstützung
Plattform | Status | Notizen |
Linux | Unterstützt | Erfordert Node, npm, Git und Bash. |
macOS | Unterstützt | Erfordert Node, npm, Git und Bash. |
Windows mit Git Bash, WSL, MSYS2 oder Cygwin Bash | Unterstützt | Git Bash ist das einfachste native Windows-Setup. |
Nur Windows PowerShell oder | Noch nicht unterstützt | Installiere Git Bash oder verwende WSL. |
kontrol doctorNamensnennung
Kontrol entstand aus einer Idee, die ich schon eine Weile mit mir herumtrug, dann aber beiseitelegte, weil die lokale MCP/Workspace-Ebene der schwierige Teil war, den man richtig hinbekommen musste. Als ich sah, dass Waishnav DevSpace gebaut hatte, nutzte ich diese MCP-Implementierung als Basis und erweiterte sie in die Richtung, die ich erreichen wollte.
Das ursprüngliche DevSpace-Projekt wird unter der MIT-Lizenz vertrieben. Kontrol behält diese Namensnennung bei und fügt ACP-Worker-Dispatch, dauerhafte Review-Loops, überwachte Missionen, Policy-Genehmigungen und Adapter-Integrationen hinzu. Ich kann sehen, wie dieser Stil einer lokalen, review-gesteuerten Agenten-Kontrollebene über mein eigenes Setup hinaus nützlich sein könnte, daher hat der Fork jetzt einen eigenen Namen und eine eigene Produktrichtung.
Lokale Entwicklung
npm install --include=dev
npm run dev
npm run typecheck
npm test
npm run build
npm run startTool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
No tool schema history has been recorded yet.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
MCP server for building and testing AI agents with multi-model experimentation and insights.
MCP server for AI agents to plan, verify, and deploy Cloudflare-native apps.
An MCP server that gives your AI access to the source code and docs of all public github repos
MCP server for secureFlows: token-free URL builders and integration-linting tools for AI agents.
Related MCP Servers
- AlicenseNot gradedqualityAmaintenanceAn MCP server that provides AI coding agents with AST-accurate, context-budget-aware codebase querying, safety gates, and team policy integration via structured tools and a local plugin layer.5624MIT
- FlicenseNot gradedqualityCmaintenanceA local MCP server that provides controlled repository access with policy-based file filtering, secret redaction, and audit logging for AI coding agents.-
- AlicenseNot gradedqualityDmaintenanceA self-hosted MCP server that indexes your codebase and provides AI assistants with deep context including file tree, full-text search, git history, dependencies, and stack detection, all without sending your code to third parties.151MIT
- AlicenseNot gradedqualityDmaintenanceA self-hosted MCP server enabling multiple AI coding agents to share state, preserve context across sessions, and coordinate with each other.40Apache 2.0
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/B-A-M-N/Kontrol'
If you have feedback or need assistance with the MCP directory API, please join our Discord server