Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Beschreibung vom Entwickler (englisches Original)
Run commands on your remote test machines over SSH without the agent ever seeing a secret.
Diese drei werden nie zu einer Punktzahl zusammengefasst: Meinungen, Messungen und Beliebtheit sind verschiedene Dinge.
Für diesen Server haben wir noch keine Zusammenfassung in einfacher Sprache geschrieben. Unten stehen die Fakten, die wir aus der Registry gelesen haben.
Wähle die KI-App, die du nutzt, und kopiere die Einstellungen.
Du brauchst
Welche App nutzt du?
Wähle oben deine App. Wir merken sie uns, damit der Button beim nächsten Mal „In … installieren“ anzeigt.
Öffne Claude Desktop → Settings → Developer → Edit Config und füge dies in claude_desktop_config.json ein
{
"mcpServers": {
"conning": {
"command": "uvx",
"args": [
"conning",
"mcp"
]
}
}
}Führe das in deinem Terminal aus
claude mcp add conning -- uvx conning mcpIn .cursor/mcp.json in deinem Projekt oder in ~/.cursor/mcp.json einfügen
{
"mcpServers": {
"conning": {
"command": "uvx",
"args": [
"conning",
"mcp"
]
}
}
}Dein Browser fragt, ob er die App öffnen darf, dann zeigt die App die Einstellungen und bittet dich um Bestätigung. Schlüsselwerte bleiben leer, damit du sie selbst einträgst.
In .vscode/mcp.json in deinem Projekt einfügen
{
"servers": {
"conning": {
"type": "stdio",
"command": "uvx",
"args": [
"conning",
"mcp"
]
}
}
}Dein Browser fragt, ob er die App öffnen darf, dann zeigt die App die Einstellungen und bittet dich um Bestätigung. Schlüsselwerte bleiben leer, damit du sie selbst einträgst.
Dieser Server läuft auf deinem Computer, und ChatGPT kann sich nur mit Servern im Internet verbinden. Wähle eine andere App.
Deine Auswahl bleibt in einem Cookie auf diesem Gerät; kein Konto nötig.
Diese Einstellungen werden aus dem Registry-Eintrag des Entwicklers erzeugt. Wenn in der README etwas anderes steht, folge der README.
Läuft auf deinem Computer; die Tool-Liste erscheint nach der Installation in deiner KI-App.
Wir prüfen Informationen, die jeder sehen kann; den Code haben wir nicht gelesen. Checks, die nicht zutreffen, werden nicht mitgezählt. · Geprüft am 7. Nov. 2026
Der Registry-Name wurde mit dem GitHub-Konto EranYonai bestätigt, dem das Repo gehört
Dieses Repo haben wir noch nicht von GitHub gelesen
Dieses Repo haben wir noch nicht von GitHub gelesen
Dieser Server läuft auf deinem Computer; es gibt keinen Endpunkt im Internet
Läuft auf deinem Computer und nutzt stattdessen lokale Einstellungen
Läuft auf deinem Computer; Tool-Listen können wir nur von Endpunkten im Internet lesen
Verglichen mit allen aktiven Servern dieser Kategorie in der Registry. Sterne zählen nur, wenn dem Herausgeber das Repo gehört.
Er hat 1 von 1 zutreffenden Basischecks bestanden. Den Code haben wir nicht gelesen. Bevor du einen Schlüssel oder Token hinzufügst, sieh nach, welche Zugriffe der Server verlangt, und nutze einen Schlüssel, der nur die Berechtigungen hat, die du brauchst.
Die Registry nennt keinen erforderlichen Schlüssel, manche Server bitten dich aber bei der ersten Nutzung, dich anzumelden.
Er läuft auf deinem Computer. Deine KI-App startet ihn bei Bedarf, und die Daten laufen nicht über die Server des Entwicklers (außer der Server ruft selbst einen Onlinedienst auf).
Das GitHub-Repo wurde zuletzt – geändert, und die neueste Version (0.6.5) kam vor 10 Tagen in die Registry.
Apps, die MCP unterstützen, etwa Claude Desktop, Claude Code, Cursor und VS Code. Außerdem brauchst du Python (uv), Docker auf deinem Computer.
In derselben Kategorie: Spec Driven Development, Remote Desktop Commander, Draugr
Server derselben Kategorie von anderen Entwicklern, sortiert nach Sternen.
So liest du eine Karte:★ GitHub-SterneiDrei Säulen: Bewertungen · Checks · NutzungiAktualisiert = neueste Version in der Registry veröffentlichti
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.
Security scanning for AI agents: SAST, SCA, secrets, IaC, DAST, ranked by real risk.
Unverändert aus dem Repo des Entwicklers übernommen. PopNx MCP hat den Inhalt weder geprüft noch empfiehlt es ihn. HTML, Bilder und Skripte wurden entfernt. Links führen von dieser Website weg.
A light, local SSH controller for humans and agents. Conning is one small CLI and MCP server on your own machine. It runs commands, long jobs and file copies on your test machines over plain OpenSSH. You drive it from a terminal; your agent (Claude Code, Codex, Cursor...) gets the same four commands as MCP tools, with identical output. Conning holds the keys, so the agent never sees a password, and you approve anything risky.
conn targets add lab --host 10.0.0.5 --user tester # asks for the rest, pins the host key
conn run lab uname -a # exit code first, then the output conn run -t lab apt upgrade # you, at a terminal: live, like ssh -t conn ssh lab # you: a shell there, same login and jump hosts conn targets mode lab auto # optional: let the agent run anything there
Status: early (0.6). Linux, macOS and Windows targets work, with long jobs, transfers, jump
hosts and approvals. See docs/design.md for every decision so far.
op://, ssh-agent): the target file holds references, and no tool ever returns a secret.~/.ssh/config: a generated config per target, pinned host keys, forwarding off, jump hosts. Windows targets need OpenSSH and PowerShell 7.ask or auto. In ask, read-only commands and your allow rules run, and anything else waits for you; "always allow" remembers two words, so systemctl status never lets through systemctl stop. Only you grant trust: in the agent client's prompt, in conn watch or at your terminal.uv tool install conning # or: pipx install conning
conn mcp install claude # or codex, cursor, opencode, pi: adds the server, its skill, and denies raw ssh/scp
For Tab completion that reads the target (its files, commands and shell history), run conn completion install once; it adds one line to your bash, zsh or fish rc file, and conn doctor reminds you if it's missing. Set history = false on a target to keep its shell history out (D53).
The MCP server needs no install at all:
claude mcp add conning -- uvx conning mcp
docker run -i --rm --network host \
-v ~/.config/conning:/conning \ -v "$SSH_AUTH_SOCK":/ssh-agent -e SSH_AUTH_SOCK=/ssh-agent \ ghcr.io/eranyonai/conning:latest
The image carries Python, the OpenSSH client and Conning, and nothing else. Targets, pinned host keys and job output live on the /conning volume, and conn runs as that folder's owner, so files it writes there stay yours on the host. On Docker Desktop for Mac, forward the agent with -v /run/host-services/ssh-auth.sock:/ssh-agent instead. Two things stay on your machine (D46):
conn targets add, conn approve, conn allow and turning on auto need your terminal. Install the CLI on the host and point it at the same folder: CONNING_HOME=~/.config/conning conn approve a:1. Approving in the agent client works from the container as usual.env: or op:// references, or forward your ssh-agent as above and use a key. docker run --rm ... conning doctor checks the rest.Targets on a lab LAN or VPN need --network host (Linux) or a route the container can use.
| Tool | What it does | |
|---|---|---|
targets(filter?, check?) | One line per target: name, OS, shell, host, user, tags, mode. Never a secret. | |
| `run(target, cmd \ | argv, wait=30, max_bytes=8192, ...)` | Runs on one target, a list or tag: . Exit code first. Still running after wait seconds: returns a job id (wait=0 is async). |
read(id, wait?, range?, grep?, signal?) | Long-polls a job for new lines, pages a saved output, or reads a remote file. | |
transfer(source, dest) | Copies files between local: and : , checked by sha256. |
Agents without MCP can use the same commands through the conn CLI; the output is identical.
This block is generated by conn help --markdown, so you don't need to call --help. A test keeps it in sync with the code.
# Agent commands (same output as the MCP tools)
conn targets [--check] [filter] List targets: name, OS, shell, host, user, tags, mode. Never secrets.
conn run [--wait WAIT] [--timeout TIMEOUT] [--cwd CWD] [--shell] [-t] [--max-bytes MAX_BYTES] [--grep GREP] target [argv ...] Run a command on one target, a list, or tag: . Exit code first.
conn read [--wait WAIT] [--range RANGE] [--grep GREP] [--signal {INT,TERM,KILL}] [--max-bytes MAX_BYTES] id Page a job (new lines only), a saved output, an approval, or a remote file.
conn transfer source dest Copy files: local: to : , or back. sha256 checked.
conn ssh target Human only: an interactive shell on a target, with its login, key, port and jump hosts.
conn targets add [--host HOST] [--user USER] [--like TARGET] [--port PORT] [--jump TARGET] [--auth {ssh-agent,key,password}] [--secret SECRET] [--key KEY] [--os {linux,windows,darwin}] [--mode {ask,auto}] [--tag TAG] name Add a target. Without a terminal it is saved as pending until a human approves it.
conn targets import [--match MATCH] Import hosts from ~/.ssh/config as pending targets (unsafe options dropped).
conn targets test name Probe a target: reachability, OS, shell, pinned host key.
conn targets mode target [{ask,auto}] Show or set ask or auto; auto runs anything without asking and needs a human.
conn targets rename old new Human only: rename a target; its host keys, password and pending work follow.
conn targets rm name Remove a target and its pinned host key.
conn approve [--always] what Human only: make a target live, or allow a pending command a: .
conn allow target [words ...] Human only: let a command run without asking (no words: list the rules).
conn deny target words [words ...] Remove an allow rule, so the command asks again (no terminal needed).
conn watch [--history HISTORY] [--no-prompt] Live control room: every command on every target, job output, approval prompts.
conn doctor Check this machine's setup: config and state dirs, ssh, keychain, targets.
conn mcp [--approve-in-client | --no-approve-in-client] ... Run the MCP server on stdio, or install it into an agent client.
conn completion {bash,zsh,fish,install} Tab completion that reads the target; conn completion install turns it on in your shell.
conn help [--markdown] Show this help; --markdown prints the block cached in README.md.
<!-- conn-help:end -->
A target is one login on one machine. To use the same machine as another user, add it again: conn targets add lab-tester --like lab --user tester copies the host, port, OS and tags and asks for the new user's password. conn targets shows which user each target uses.
A target behind a bastion names it as its jump host: add the bastion as a target first, then conn targets add lab --host 10.0.0.5 --user tester --jump gw. Every hop gets its own login and its own pinned host key, and conn targets import keeps a ProxyJump to another host it imports. The bastion is a target the agent can see too; in ask mode it can only run read-only commands there without you.
A target you add with conn targets add from an agent session is saved as pending. It does nothing until the human runs conn approve , which shows the host, the pinned host-key fingerprint and where the secret comes from.
A command outside a target's allowlist returns status=pending_approval id=a: , and a desktop notification tells the human. They answer in one of three places (allow once, always allow its first two words, or deny), and the agent picks up the result with read a: :
conn mcp --no-approve-in-client.conn run yourself at a terminal, it just asks you there and prints the result.read a: long-polls only while a conn watch is open. With nobody watching, it returns at once with nobody is watching: ask the user to run conn approve a: , so the agent asks you instead of waiting out its timeout for an answer no one was asked for.
Read-only commands such as uname, hostname, df, ps, ls, ip addr, systemctl status and journalctl run without asking on every target; each is checked so its changing forms (hostname x, ip addr add) still ask, and safe = false in a target's entry turns the list off. conn allow make test lets another command run without asking from then on; conn deny takes it back. Every command, answer and rule change lands in a hash-chained audit log, and conn doctor checks your setup when something doesn't work.
| Mode | What the agent can do | Default for |
|---|---|---|
ask | The built-in read-only list and allowlisted commands run; anything else waits for your approval. | every new target |
auto | Any command runs without asking, until you set the mode back to ask. conn doctor warns about it. | never by default |
sh -c, python -c, sudo...) and shell syntax (;, |, $(...)) always ask.conn mcp install also denies the agent raw ssh/scp and conn ssh, so it can't go around Conning (pi has no permission rules, so there it only adds the server).uv sync
uv run pytest --cov=conning # CI requires 95% coverage on Linux uv run ruff check && uv run ruff format --check
The end-to-end tests drive the real conn and MCP server against a throwaway local sshd (Linux, root to start it; CI's e2e job does this on every push):
eval "$(sudo sh tests/e2e/start-sshd.sh /tmp/conning-sshd | sed 's/^/export /')"
uv run --with keyrings.alt pytest -m e2e # keyrings.alt: a file keychain for typed passwords
After changing the CLI, refresh the README block with uv run conn help --markdown.
Nur der Anfang wird gezeigt; den Rest findest du im Repo