Skip to content

feat: MCP server, progress json and GitHub Action - #6

Merged
masterjanic merged 1 commit into
mainfrom
mcp-server-and-more
Oct 9, 2026
Merged

masterjanic merged 1 commit into
mainfrom
mcp-server-and-more

Conversation

@masterjanic

Copy link
Copy Markdown
Member

Before: Proxbase could only be driven from the shell, progress was plain text on stderr, and using it in CI meant hand-written install and KVM steps.

After: AI agents can manage clusters through proxbase mcp, tools can follow progress as JSON lines, and GitHub workflows can create a cluster with uses: virtbase/proxbase@v0.

Changes

  • MCP server (proxbase mcp, official Go SDK): local stdio server with 16 tools (create, status, wait, start/stop/destroy, node exec, env, snapshots, faults, config validation) and the config schema as a resource. Creates run as detached jobs, survive client timeouts and report MCP progress notifications. cluster_destroy requires confirm, and the root password is only returned on request.
  • --progress json on all commands: one JSON line per step on stderr; errors include a hint and the log path.
  • GitHub Action (action.yml): enables KVM, installs QEMU, downloads and verifies the release binary, caches the ISO and golden image, and outputs the endpoint, token, CA cert, SSH key and env file. The release workflow moves the v0 tag.
  • Nightly E2E workflow (e2e.yml) on a GitHub-hosted runner using the local action.
  • Security: cluster names are now validated before they are used in file paths (destroy ../.. could previously reach outside the state directory; this also affected the CLI).
  • server.json for the MCP registry; docs: new mcp.md and ci.md, updated CLI reference, architecture and README.

Testing

  • go test -race ./..., golangci-lint, govulncheck, actionlint and goreleaser check pass.
  • Real MCP end-to-end run on KVM: create (58 s with golden image), status, exec, snapshots, stop/start, destroy.
  • The action's shell steps were run locally; the KVM/apt steps and caching are first exercised by the E2E workflow on GitHub.

@masterjanic
masterjanic merged commit a269351 into main Oct 9, 2026
14 checks passed
@masterjanic
masterjanic deleted the mcp-server-and-more branch October 9, 2026 16:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant