GibilGibil

AI Agent via MCP

Give any AI agent typed tools on a remote server — read, write, run, search

Any MCP-compatible agent connects to a gibil server through the MCP protocol. The MCP server exposes lifecycle tools, VM tools, and background job tools — giving your agent full control over remote servers. Gibil uses standard MCP — any compatible client works.

Setup

Run gibil init — it configures the MCP server automatically. For Claude Code, it writes to ~/.claude/.mcp.json. For other agents, add the MCP config manually:

{
  "mcpServers": {
    "gibil": {
      "command": "gibil",
      "args": ["mcp"]
    }
  }
}

Restart your agent to activate. It now has these tools:

ToolWhat it does
create_serverForge a new server (with repo, TTL, env vars)
destroy_serverBurn a server by name
list_serversList all active servers with IPs and TTL
extend_serverExtend a server's auto-destroy timer
vm_bashRun any shell command (supports background: true)
vm_readRead files with line numbers and offset/limit
vm_writeCreate or modify files
vm_lsList directories, filter by glob pattern
vm_grepSearch file contents with regex
vm_job_statusPoll a background job for completion
vm_job_listList all background jobs

What your agent can do

Your agent manages the full lifecycle — forge, work, burn — without leaving MCP:

  • Forge a servercreate_server({ name: "task-1", repo: "...", ttl: 30 })
  • Explore the repovm_ls, vm_grep, vm_read to understand the codebase
  • Write codevm_write to create or modify source files
  • Run anythingvm_bash to install packages, run tests, build, deploy, git push
  • Run long tasks in backgroundvm_bash({ command: "pnpm build && pnpm test", background: true }) returns a job ID
  • Poll for resultsvm_job_status({ job_id: "j-abc123" }) returns exit code + output when done
  • Iterate — read test output, fix code, run again — the code-test loop with typed tools
  • Burn when donedestroy_server({ name: "task-1" })

Why MCP over CLI mode

Both work. MCP is better when the agent needs to read and write files frequently:

  • Typed toolsvm_write({ path: "src/app.ts", content: "..." }) instead of shell escaping
  • Structured results — every tool returns parsed output with exit codes
  • No quoting hell — the MCP server handles SSH internally

In unbound mode (gibil mcp), the MCP server handles the full lifecycle — create, work, destroy. In bound mode (gibil mcp <name>), only VM tools are available.

Next steps

On this page