I have not heard of one. It is an interesting idea.
You can get everything from Incus as JSON using the CLI tools. That might be enough to connect an LLM or to build a simple MCP interface. If you decide to build a MCP service then Go should work pretty well. Incus is written in Go.
Thanks for the comment, I will definitely check that. I’m not really familiar with Go but I guess that worst a try.\
I didn’t yet really realized that I just could use directly the cli tool directly with a LLM. But you right, that’s so simple as that. I will try with Claude code. Great tips
It’s freaking thinking we can nowdays do such things using LLM …
▎ Thanks Jarrod — agreed, Go is the natural fit here since it can use Incus’s own github.com/lxc/incus/client SDK directly instead of shelling out to the CLI and parsing JSON.
▎
▎ I’m going to start on a minimal MCP server for Incus. Planned first-pass tool surface (read-heavy, safe-by-default):
▎
▎ - list_instances, instance_info, instance_state
▎ - start_instance / stop_instance / restart_instance (explicit, no bulk/destructive ops in v1)
▎ - list_projects, list_networks, list_storage_pools
▎ - exec_in_instance (opt-in, since this is the one genuinely sensitive capability)
▎
▎ Deliberately leaving out instance creation/deletion and cluster-admin operations for a first pass — those need more thought around confirmation/safety before exposing them to an LLM-driven client. Will follow up here once there’s something runnable to look at.
I experimentally vibe coded one, and it was ‘VERY’ secure for lab products, but a bit hard to use. It did do things, but I REALLY don’t trust ‘self hosted’ models on my incus infra! The fronteir models mostly don’t mess it up, but I would be VERY hesitant to use one on prod!