GitHub
Connect AI assistants to GitHub - manage repos, issues, PRs, and workflows through natural language.
Beschreibung vom Entwickler (englisches Original)
System-automation agent MCP server for opencode/claude/pi: guarded shell, dry-run-first, audited.
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": {
"vtai-agent": {
"command": "uvx",
"args": [
"vtai-agent"
]
}
}
}Führe das in deinem Terminal aus
claude mcp add vtai-agent -- uvx vtai-agentIn .cursor/mcp.json in deinem Projekt oder in ~/.cursor/mcp.json einfügen
{
"mcpServers": {
"vtai-agent": {
"command": "uvx",
"args": [
"vtai-agent"
]
}
}
}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": {
"vtai-agent": {
"type": "stdio",
"command": "uvx",
"args": [
"vtai-agent"
]
}
}
}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 velsrocky 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.7.0) kam vor 16 Tagen in die Registry.
Apps, die MCP unterstützen, etwa Claude Desktop, Claude Code, Cursor und VS Code. Außerdem brauchst du Python (uv) auf deinem Computer.
In derselben Kategorie: GitHub, Desktop Commander, Cloudflare MCP
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
Connect AI assistants to GitHub - manage repos, issues, PRs, and workflows through natural language.
MCP server for terminal commands, file operations, and process management
Cloudflare MCP servers
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.
System-automation agent for your machine, exposed as an MCP server for opencode / Claude Code / pi — and drivable directly via the vtai CLI.
| Tool | What it does |
|---|---|
system_info | Read-only machine snapshot (CPU, RAM, disks, load, GPU) plus the config and guardrails in effect |
run_shell | Allowlisted shell commands, sandboxed (see below) |
organize_files | Content-aware directory cleanup inside writable roots |
backup_sync | rsync incremental backup with verification; --delete is opt-in |
transcode_media | VAAPI-accelerated batch video transcode; never touches originals |
disk_audit | Read-only scan for reclaimable disk space |
delegate_coding | Hand tasks to opencode/claude/pi; git snapshot + verify + rollback; require human approval by default |
auto_mode | Autonomous loop: hand a goal to a coding CLI, review the reply, iterate until it matches |
inspect_application | REA-powered static analysis of an app under guardrails: deny-glob check → quarantine copy → minimal-env run → evidence digest in the audit trail → optional judge pass (off until enabled in config) |
guardrails.dry_run_default) — previews never touch disk.paths.writable_roots, resolved paths defeat ../symlink escapes; guardrails.deny_globs protect secrets.trusted_bin_dirs, carry no exec-enabling flags, and every path argument passes the same checks.KILL file in data_dir to abort executing tools.CIRCUIT BREAKER instruction the looping model can't miss.budget_usd_per_run aborts an orchestrated run when accrued token cost exceeds it; spend is recorded per run.data_dir, each invocation (orchestrated, MCP, or CLI) attributed to a run row.| Requirement | Notes | ||
|---|---|---|---|
| OS | Linux, macOS, or Windows | all three run in CI (blocking since 0.6.0) | |
| Python | 3.14+ | pinned by .python-version; uv fetches it for you | |
| uv | >= 0.13.1 | `curl -LsSf https://astral.sh/uv/install.sh \ | sh` |
| Planner LLM | one of: Ollama, any OpenAI-compatible endpoint, or a cloud key | see Choosing a model | |
| *rsync* | optional | required by backup_sync; without it the tool fails closed | |
| *ffmpeg* | optional | required by transcode_media and the voice helpers | |
| *Lemonade Server* | optional | speech in/out for agent-listen / agent-speak |
git clone https://github.com/velsrocky/vtai-agent.git
cd vtai-agent uv sync --dev
uv sync needs uv >= 0.13.1 (the lockfile is revision = 5; the floor is declared as [tool.uv] required-version, so an older uv says so plainly instead of failing on a lockfile parse).
The agent reads one TOML file. Which one is resolved in this order:
$VT_CONFIG — explicit overrideconfig/settings.toml next to the package (i.e. the clone you just made)~/.vtaiagent/settings.toml — the per-user fileA machine with no config file anywhere fails loudly on first use — the built-in defaults leave nothing protected (shell_allowlist empty) so nothing runs, and vtai info says so plainly ("no config file there"). vtai init writes a starter config; vtai init --doctor runs the full preflight right after it.
A fresh clone contains the maintainer's config (their provider, their writable roots), so point the agent at your own file instead of editing the tracked one:
export VT_CONFIG="$HOME/.vtaiagent/settings.toml"
uv run vtai init # writes a starter config there + creates the dirs
Put that export in your shell profile so every later command (and the MCP server) picks it up.
vtai init creates ~/.vtaiagent (audit DB + data dir), ~/Downloads, and ~/Documents/vt-data, and writes a starter config with safe defaults: dry_run_default = true, deny_globs for ~/.ssh, ~/.gnupg, ~/.aws and **/.env, and writable roots limited to ~/Downloads, ~/Documents/vt-data and ~/.vtaiagent/tmp. Use vtai init --doctor to run the preflight immediately after writing. It is safe to re-run.
Check which config you ended up with — vtai info names the file and its origin:
uv run vtai info
Alternative: keep the checkout's config and override with env vars
A .env file (gitignored; copy .env.example) in the working directory overrides any setting, using the VT_ prefix with __ for nesting:
VT_LOCAL__BASE_URL=http://localhost:13305/api/v1
VT_LOCAL__MODEL= VT_ACTIVE_PROVIDER=local
This is how a machine with no Ollama points the agent at a Lemonade server instead. The .env is read from the current working directory, so run the CLI from the checkout, or export the variables in your shell.
The planner/judge model comes from active_provider:
local — any OpenAI-compatible endpoint: Ollama (http://localhost:11434/v1), llama.cpp, vLLM, LM Studio, Lemonade. No API key.anthropic / openai — cloud models; put ANTHROPIC_API_KEY or OPENAI_API_KEY in .env.Set cost_per_1k_input / cost_per_1k_output in the provider block to make budget_usd_per_run meaningful; without them the agent falls back to the model's native price table.
Start with the preflight — it checks uv, your config, the writable roots, what is protected, the optional tools, the model endpoint, the MCP registration and any delegate waiting for review:
uv run vtai doctor
VT-AIAgent doctor — v0.6.2
✓ agent version 0.6.2 ✓ uv 0.13.1 ✓ config file /Users/you/.vtaiagent/settings.toml (user-level) ✓ config valid no issues ✓ writable roots 3 present ✓ protected paths 4 deny globs ✓ shell allowlist 22 binaries ✓ model endpoint http://localhost:11434/v1 ! optional tools not installed: ffmpeg (for transcode_media, voice helpers) ✓ mcp registration opencode (global) ✓ pending approvals none
It exits non-zero if something needs fixing. Then, to try the pieces:
uv run vtai info # config, provider, guardrails
uv run vtai tools # the registered tools uv run vtai run system_info # a read-only call, no LLM involved uv run vtai goal --dry-run "list my Downloads" # full loop with the model
scripts/register-mcp.sh # opencode (global), claude (user), pi (CLI)
opencode's registration lands in ~/.config/opencode/opencode.jsonc and merges with your existing providers. The script registers an absolute uv path on purpose: a bare uv fails with NotFound: ChildProcess.spawn (uv ...) when the client spawns the server from a daemon with a minimal PATH.
uv sync # install
uv run vtai init # create/validate config, dirs, writable roots uv run vtai info # show config uv run vtai tools # list tools uv run vtai run system_info # invoke a tool uv run vtai run run_shell --params '{"command":"ls ~/Downloads","dry_run":true}' scripts/register-mcp.sh # register with opencode / claude
To get the vtai CLI outside the checkout, install it as an editable tool so it tracks your working copy:
uv tool install --editable /path/to/vtai-agent # -> ~/.local/bin/vtai
Install into another project as a dependency with uv add git+https://github.com/velsrocky/vtai-agent@v0.7.0, or pull the image with docker build -t vtai-agent ..
PyPI: uv tool install vtai-agent (or pipx install vtai-agent) — publishes on v* tags via Trusted Publishing with build attestations (see .github/workflows/publish.yml). The comment above is the PyPI-package proof the official MCP registry expects; server.json carries the registry manifest (io.github.velsrocky/vtai-agent, stdio) alongside a metadata-consistency gate in the publish workflow. Only install from these sources; a similar repository name does not establish provenance.
Register with the official MCP registry after a PyPI release:
mcp-publisher auth --oauth2-github
mcp-publisher publish server.json
Safety claims are probes, not prose: vtai certify runs the executable guardrail-compliance suite (deny-glob containment, dotdot/symlink escapes, fail-closed shell, injected-argv resistance, dry-run-first, kill switch, audit exactness, echo-loop breaker, and the delegate's verify-then-trust loop with scripted-fake rollback + approval-gate probes) and emits a digest-stamped certificate; exit 0 gates the release in CI. See docs/certification.md.
vtai serve --transport http --port 8765 --token $VT_HTTP_TOKEN exposes the same guarded tools over MCP StreamableHTTP at /mcp. The bearer token is required when binding anything other than localhost; the server refuses to bind externally without one.
uv sync --dev
uv run pytest tests/ -v uv run ruff check src/ tests/ uv run python scripts/generate_tool_catalog.py --check # tool-catalog doc drift
The config file is resolved as described in Configure: $VT_CONFIG → the checkout's config/settings.toml → ~/.vtaiagent/settings.toml. Env overrides use the VT_ prefix with __ nesting (e.g. VT_GUARDRAILS__DRY_RUN_DEFAULT=false). Config is validated at startup (validate_settings) — a bad deny_globs pattern or a missing writable root fails fast, not mid-run.
Windows: the shell sandbox needs the allowlisted binaries to resolve, and a fresh Windows runner does not put Git for Windows' coreutils on PATH. Install Git for Windows and prepend its usr\bin (this is what CI does):
Add-Content $env:GITHUB_PATH "C:\Program Files\Git\usr\bin" # CI
Everything else (install, config, MCP registration) is the same on all three platforms.
vtai goal runs a bounded ReAct-style agent loop. Each step the model either emits one fenced-JSON tool call (parsed, guarded, executed, result fed back) or a final natural-language answer. Bounds enforced every step: max_steps, kill switch, and budget_usd_per_run. A lonely dry_run: true text blob that fails to parse or misses its tool key is retried with a corrective note instead of ending the run as "success"; the run mode is authoritative — the model cannot override it — and every tool call is persisted as a Step row and audit entry. If a paid provider's spend can't be determined (no cost_per_1k_* config and no native cost), the run fails closed rather than reporting free. The system prompt describes the machine's actual OS.
We use a text protocol rather than native function-calling on purpose: the local Ollama models on this box emit tool calls as raw JSON text even when native tool schemas are provided (verified 2026-10-03 with qwen2.5-coder:7b), so the text p
Nur der Anfang wird gezeigt; den Rest findest du im Repo