GitHub
Connect AI assistants to GitHub - manage repos, issues, PRs, and workflows through natural language.
Descripción del creador (original en inglés)
System-automation agent MCP server for opencode/claude/pi: guarded shell, dry-run-first, audited.
Estos tres nunca se combinan en una sola puntuación: las opiniones, las mediciones y la popularidad son cosas distintas.
Todavía no escribimos un resumen sencillo para este. Abajo están los datos que leímos del registro.
Elige la app de IA que usas y copia la configuración.
Necesitas
¿Qué app usas?
Elige tu app arriba. La recordamos, así que la próxima vez el botón dirá “Instalar en …”.
Abre Claude Desktop → Settings → Developer → Edit Config y pega esto en claude_desktop_config.json
{
"mcpServers": {
"vtai-agent": {
"command": "uvx",
"args": [
"vtai-agent"
]
}
}
}Ejecuta esto en tu terminal
claude mcp add vtai-agent -- uvx vtai-agentPégalo en .cursor/mcp.json de tu proyecto, o en ~/.cursor/mcp.json
{
"mcpServers": {
"vtai-agent": {
"command": "uvx",
"args": [
"vtai-agent"
]
}
}
}Tu navegador te pide permiso para abrir la app; luego la app muestra la configuración y te pide confirmar. Los valores de las claves quedan vacíos para que los completes tú.
Pégalo en .vscode/mcp.json de tu proyecto
{
"servers": {
"vtai-agent": {
"type": "stdio",
"command": "uvx",
"args": [
"vtai-agent"
]
}
}
}Tu navegador te pide permiso para abrir la app; luego la app muestra la configuración y te pide confirmar. Los valores de las claves quedan vacíos para que los completes tú.
Este se ejecuta en tu computadora, y ChatGPT solo puede conectarse a servidores en internet. Elige otra app.
Tu elección se guarda en una cookie en este dispositivo; no necesitas cuenta.
Esta configuración se genera a partir de la ficha del creador en el registro. Si el README dice otra cosa, sigue el README.
Se ejecuta en tu computadora; la lista de herramientas aparece en tu app de IA después de instalarlo.
Revisamos información que cualquiera puede ver; no hemos leído el código. Las revisiones que no aplican no se cuentan. · Revisado el 8 nov 2026
El nombre en el registro se verificó con la cuenta de GitHub velsrocky, dueña del repo
Todavía no hemos leído este repo en GitHub
Todavía no hemos leído este repo en GitHub
Este se ejecuta en tu computadora; no hay endpoint en internet
Se ejecuta en tu computadora y usa ajustes locales en su lugar
Se ejecuta en tu computadora; solo podemos leer listas de herramientas de endpoints en internet
Comparado con todos los servidores activos de esta categoría en el registro. Las estrellas solo cuentan cuando quien lo publica es dueño del repo.
Superó 1 de 1 revisiones básicas aplicables. No hemos leído el código. Antes de agregar una clave o un token, revisa qué acceso pide el servidor y usa una clave que tenga solo los permisos que necesitas.
El registro no indica ninguna clave obligatoria, aunque algunos servidores te piden iniciar sesión la primera vez que los usas.
Se ejecuta en tu computadora. Tu app de IA lo inicia cuando hace falta, y los datos no pasan por los servidores del creador (a menos que el propio servidor llame a un servicio en línea).
El repo de GitHub cambió por última vez –, y la última versión (0.7.0) llegó al registro hace 16 días.
Las apps compatibles con MCP, como Claude Desktop, Claude Code, Cursor y VS Code. También necesitas Python (uv) en tu computadora.
En la misma categoría: GitHub, Desktop Commander, Cloudflare MCP
Servidores de la misma categoría hechos por otros creadores, ordenados por estrellas.
Cómo leer una tarjeta:★ Estrellas de GitHubiTres pilares: reseñas · revisiones · usoiActualizado = fecha en que se publicó la última versión en el registroi
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
Copiado tal cual del repo del creador. PopNx MCP no lo ha revisado ni lo respalda. Se quitaron HTML, imágenes y scripts. Los enlaces llevan fuera de este sitio.
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
Solo se muestra el principio; lee el resto en el repo