
Kairon
io.github.zyvoraiPublished by GitHub account zyvoraiv0.10.2Updated Oct 24, 2026
Inspect Kairon VMs, network policy and VM-edge flows from an agent. Read-only by default.
Overview
MCP server for Kairon, letting an AI assistant inspect Kubernetes-scheduled virtual machines, network policy and VM-edge flows, read-only by default.
- What you can do
- List and inspect Kairon Machines and their state
- Read network policies and live VM-edge data: flows, attributed drops and packet captures
- Fork a running Machine
- Run claim, diagnose and ask tools, optionally scoped to one tenant
- With write mode enabled, power, snapshot, capture, sealed-claim and policy-apply tools appear
- When to use it
- Useful when you run Kairon VMs on Kubernetes and want an assistant to look at fleet state, network policy and VM-edge traffic, or to diagnose why a Machine or migration is stuck, without giving it write access.
- Requirements
- Runs as a local container over stdio. Needs KAIRON_KUBE_URL and a bearer token in KAIRON_KUBE_TOKEN, plus a reachable Kubernetes cluster. Optional: KAIRON_KUBE_CA or KAIRON_KUBE_INSECURE for TLS, KAIRON_UI_URL and KAIRON_UI_TOKEN for the machine_network tool, and KAIRON_LLM_URL, KAIRON_LLM_MODEL and KAIRON_LLM_API_KEY for the ask tool and diagnose summaries.
Installation
In SourceWeft
- Open Kairon in the dashboard and add it to a workspace.
- Enable the server for the chats that should use its tools.
Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.
Other MCP clients
Follow the launch instructions in the repository.
README
Kairon
[CI] [MCP] [Release] [Go Report Card] [OpenSSF Scorecard] [OpenSSF Best Practices] [License: Apache-2.0] [Go]
[Book a demo] [30-day PoC] [Quickstart]
[Kairon: real VMs on Kubernetes, no pods pretending]
VMs that don't pretend to be Pods.
Real virtual machines, scheduled by Kubernetes, run straight on KVM. No virt-launcher pod per VM, no libvirt in the hot path, no operator zoo. A Machine is desired state, kairon-controller places it, and kairon-node runs it on FluxVM with QEMU, Cloud Hypervisor, Firecracker or FluxVM's own hypervisor.
Zero pods per VM · Four hypervisors, one CRD · eBPF on every VM edge · No silent split-brain · AI agents built in (MCP)
[The Kairon dashboard: overview, machines, migrations, snapshots, nodes, network policies and the all-namespaces view]Dashboard tour captured against the local sample-data stack (how), not a production cluster.
What's new
Experimental operations: Kairon Rehearsal tests upgrades on isolated CSI copies. Advanced operations adds health-gated configuration change plans, application recovery verification, traffic/RTT placement recommendations, and incident reproduction with fix verification. Includes runnable scenarios and failure-path tests. VM/CSI and host-isolation hardware qualification is still pending.
New since v0.6.0 (latest tag: v0.10.2; the rows down to incident bundles are new in v0.10.0):
Why Kairon
[Capabilities at a glance: Run, Move, Protect, Automate]
The numbers
Same k3s node, same Ubuntu 24.04 image, same 1 vCPU / 512 MiB guest and cloud-init seed, one script driving both, ready meaning the guest's sshd answers. The VM costs the same either way; what you stop paying for is everything KubeVirt puts around it. Method, raw JSON and caveats (including the 10-VM run): docs/benchmarks.
Kairon vs KubeVirt
[Kairon vs KubeVirt: the same kubectl and KVM, half the stack in between]
Every layer you remove is one less thing to patch, one less log to read and one less process to crash at 2 a.m.
The previous layer-stack illustration: docs/assets/kairon-vs-kubevirt.jpg.
What you get
Machines, not Pods
Machine and MachineSet with instance types, NUMA and CPU pinning, Windows guests, PVC and CSI boot, multi-volume virtiofs, CPU/memory hotplug, pause and halt, cloud-init and port forwards. Desired state lives in Kubernetes; the node reconciles it every few seconds. What ships →
Migration that refuses to guess
Cold migration, node evacuation, and secure live migration over mutual TLS with an encrypted data plane. Cordon a node and the controller can evacuate it for you, throttled by MachineDisruptionBudget. When a commit is ambiguous the Machine goes to NeedsRecovery and waits for an operator instead of risking two running copies. Relocating → · NeedsRecovery runbook →
An eBPF edge on every VM
Each VM tap gets FluxVM's eBPF dataplane: anti-spoofing, DNS and TLS-SNI allowlists, rate limits, and drops attributed to a reason (spoof_ip, dns_deny, sni_deny, rate_limit, …). Write policy as MachineNetworkPolicy / NetworkSecurityGroup; see it live in the CLI and the dashboard Network panel; capture packets from one VM in one command. VM edge → · Network fabric →
AI agents, safely
kaironctl mcp serve speaks the Model Context Protocol over stdio. Hermes Agent, Claude, Cursor or any MCP client can list Machines, read policies and pull flows, drops and captures. Power, snapshot, capture, sealed-claim and policy-apply tools only appear with --allow-write, and every write is recorded in a hash-chained audit log first. kaironctl agent ask turns a plain-English request into a validated proposal using any OpenAI-compatible model, and kaironctl agent diagnose ranks why a Machine or migration is stuck; neither applies anything, and no model runs in the reconcile loop. Covered end to end in CI with the official MCP SDK. AI agents → · Agent plane →
Snapshots and recovery
MachineSnapshot, MachineSnapshotRestore and MachineSnapshotSchedule on CSI VolumeSnapshots, with guest-agent filesystem freeze for application-consistent snapshots. VM memory snapshots through FluxVM, and CRD backup/restore scripts for disaster recovery. Snapshots →
Fleet guards and operations
MachineQuota, MachineDisruptionBudget, MigrationPolicy and an opt-in admission webhook. kairon-ui dashboard with SSO, per-operator accounts and an in-browser VNC console. Prometheus metrics and alerts, controller HA leases, opt-in OpenTelemetry spans. Observability → · Security →
The dashboard
[Selecting three Machines and stopping them together] [Switching namespace and filtering the Machines table]
More pages: gallery. Screenshots and clips are generated from the sample-data stack in docs/ux, so they show the real dashboard build, not a lab cluster.
How it fits together
[Animated: clients talk to the Kubernetes API, kairon-controller places Machines, kairon-node reconciles them into FluxVM] [Animated Machine lifecycle: Pending, Running, Paused, Halted, Stopped, Failed] [Animated live migration between two nodes over a mutually authenticated TLS link (Preview)] [Animated bars: idle control plane memory and time to SSH, Kairon against KubeVirt v1.9.0]New in v0.10.0, animated: agent sessions, idle sandboxes, cross-cluster DR, maintenance and DRS, elastic memory, incremental backups, Mac Fabric
[Animated: an agent's commands pass through the AgentSession into the sandbox VM; git push waits for an admin, egress to an allowed host passes and an unknown host is refused] [Animated: a sandbox Machine goes idle, pauses itself and wakes on the next connection] [Animated: site A replicates to site B, site A is lost, db then web start on site B and DNS follows] [Animated: a node enters maintenance, Machines migrate or hibernate, DRS rebalances a node under pressure] [Animated: balloons inflate under host memory pressure down to each Machine's minimum, then deflate] [Animated: a full backup, two incrementals of changed blocks, and a synthetic full in S3] [Animated: Machines scheduled onto Macs by Apple capability, joined by a MacNetwork over Thunderbolt]Full write-up: ARCHITECTURE.md · docs/architecture.md · architecture illustration: docs/assets/readme-architecture.jpg
Quickstart
On a Kubernetes cluster whose VM hosts run FluxVM:
The production profile pins image tags to Chart.AppVersion and turns on the webhook, namespace isolation, network default-deny and migration data-plane TLS. Images: ghcr.io/zyvorai/kairon-{controller,node,ui}, signed with checksums and SBOM.
From your laptop to a bare-metal host, built on the host so your laptop needs no Go or Node, with a smoke test at the end:
Without --remote-build the binaries are cross-compiled locally and shipped as static files. Either way the dashboard and the console relay are HTTPS. All flags and the deploy flow →
Then, on any install: kaironctl doctor checks the control plane and kaironctl selftest boots a CirrOS VM to prove it end to end.
From source, kind, or raw manifests
Raw manifests: kubectl apply -f deploy/crd.yaml -f deploy/rbac.yaml -f deploy/controller.yaml -f deploy/node.yaml, plus deploy/ui.yaml for the dashboard and deploy/rbac-cbt-backup.yaml only if you enable incremental S3 backups.
Requirements
- A Kubernetes cluster whose VM hosts are Linux with
/dev/kvm. - FluxVM on each VM host (default
127.0.0.1:7788). - For the eBPF edge: a kernel with BTF and cgroup v2, and
dataplaneMode: ebpf.
Operate
Maturity
v0.10.2 is the latest release (a patch on v0.10.1 that fixes the release pipeline; v0.10.1 added the MCP server image and the MCP Registry listing). Two-host live migration ran on a real lab on 2026-10-14 (cold, source failure, controller failover, all three adaptive cases and post-copy source failure pass in both directions on matched QEMU 10.2.1; plain pre-copy under a heavy write load did not converge, and the NeedsRecovery drill passed 5 of 6 runs with one unexplained failure that left a migration in Adopting). There is no live + eBPF run and no nightly CI yet, so it stays Preview. Adaptive live migration stays Experimental until its matrix cases pass on the nightly lab workflow. Honest gaps live in docs/STATUS.md; what comes next is in ROADMAP.md.
Docs
Develop
Start with CONTRIBUTING.md; the dependency rules are in docs/DEPENDENCIES.md.
Part of the Zyvor stack
Support
Free under Apache-2.0. If it helps you, you can donate any amount you like: https://rzp.io/rzp/utwdYh3. A donation is voluntary and supports development and maintenance. It is not a purchase: it buys no support, SLA, features, priority or license, and it is not tax-deductible (Zyvor AI Labs Private Limited is a company, not a charity). Zyvor Enterprise (supported releases, SLAs, a named contact and enterprise features) is separate: [email protected].
License
Kairon is free and open source under the Apache License 2.0 (see NOTICE): use, modify and run it in production at no charge. That does not change.
Zyvor Enterprise adds what production teams ask for: supported releases, deployment and upgrade guidance, priority incident triage, a named technical contact and 24x7 critical intake. Plans and terms: docs/SUBSCRIPTION-MODEL.md · Pricing · [email protected].
Bugs and feature requests → GitHub Issues. Report vulnerabilities privately to [email protected] or via GitHub private vulnerability reporting; see SECURITY.md. Contributions: CONTRIBUTING.md.
Ready to retire virt-launcher?
[Book a demo] [30-day PoC] [Pricing] [Contact sales] [Star on GitHub]
Native macOS
Kairon builds and runs natively on Apple silicon and can schedule Machines onto a Mac through FluxVM's vz backend. See docs/macos.md for what is verified and the limits.
[Mac mini for home, Mac Studio for a team, MacBook Pro for development]
Every Mac becomes a Kubernetes Node: a Mac mini at home, a Mac Studio for a team, a MacBook Pro that comes and goes. Kairon places Machines by allocatable unified memory, FluxVM runs them, and Velora serves private OpenAI-compatible LLM endpoints on the same hardware. A few Mac Studios become a quiet, low-power, on-premise inference cluster.
[A private LLM cluster made of Macs]
Verified on an Apple M4, macOS 27.2: a Mac registered as a Ready Node, a vz Machine scheduled, booted, SSH, deleted. Not yet verified: multi-Mac clusters, Thunderbolt RDMA. Cluster guide with a multi-Mac example (examples/macos-fleet.yaml), sizing and roadmap, after GK Servis's Mac Studio case study: docs/macos-cluster.md.
Source: README.md at commit d9788ec
Tools
0Version history
2- v0.10.2LatestOct 18, 2026
- v0.10.1Oct 16, 2026
Score
50% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
- Reached in the last 30 days25 pts
Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.
- Auth declared10 pts
Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.
- Tools listed15 pts
Answer tools/list without a credential, or ship a package that starts in a sandbox without one.
- DescriptionRequired15 pts
- Logo10 pts
- Documentation15 pts
- License10 pts