
Xen Orchestra MCP Server: Query Your Xen Infrastructure from Claude
Lets Claude, Cursor and other assistants query the pools, hosts, VMs, storage and backups in your Xen Orchestra.
This is the MCP server that ships with Xen Orchestra, made by Vates. It runs on your computer and talks to your own Xen Orchestra server (version 6.5 or later) through its REST API. You sign in with a token from your XO user page, or with a username and password.
It starts read-only. Setting XO_MCP_ENABLE_ACTIONS=1 adds tools that can change things, and every such action asks for a confirmation before it runs. The tool list is built from your own server when the MCP server starts, so the exact set depends on your XO version.
Good for
- Sysadmins who run Xen Orchestra and want to ask questions about VMs, hosts and backups in plain language
- Teams that check backup results every morning and want a quick summary of failures
- Admins who want an assistant to run actions like VM snapshots, with a confirmation step
Works in
12 should work
Tap an app to see how to set it up and any known problems.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Client does not support this transport.
Client does not support this transport.
Install Xen Orchestra MCP
Claude Code
- 1
Copy this prompt.
Add the Xen Orchestra MCP server to Claude Code. Run this command: claude mcp add xen-orchestra -e XO_URL=<XO_URL> -e XO_TOKEN=<XO_TOKEN> -- npx -y @xen-orchestra/mcp Ask me for XO_URL, XO_TOKEN and only put the values in that config, nowhere else. Then check that it loaded and tell me if I need to sign in or restart.
- 2
Paste it into Claude Code. It shows the change and asks before running it.
Requires Node.js.
Built from the package data we hold. Not yet tested by us.
Tools
Tests the link to your Xen Orchestra
Calls your server once and reports success or the error, so you can confirm the address and token are right.
Try: “Check the connection to Xen Orchestra”
Read ·
check_connectionPulls a page of the Xen Orchestra docs
Fetches one of nine topic pages from docs.xen-orchestra.com, such as backups, restapi or troubleshooting, and returns it as plain text.
Try: “Show me the Xen Orchestra docs on backups”
Read ·
search_documentationSummarises your pools, hosts and VMs
Reads the pool, host and VM lists and returns three markdown tables: pools by name, hosts by name and power state, and VMs by id and power state.
Try: “Give me an overview of my infrastructure”
Read ·
get_infrastructure_summaryRead-only query on the pools resources
Read-only query tool for the pools resource area of your server's REST API (README group: Compute). It takes an operation name from your server's own API spec, plus optional id, filter, fields and limit. The operations on offer come from that spec, not from this page.
Try: “Query pools and show the first 10 results”
Read ·
pools_queryRead-only query on the hosts resources
Read-only query tool for the hosts resource area of your server's REST API (README group: Compute). It takes an operation name from your server's own API spec, plus optional id, filter, fields and limit. The operations on offer come from that spec, not from this page.
Try: “Query hosts and show the first 10 results”
Read ·
hosts_queryRead-only query on the vms resources
Read-only query tool for the vms resource area of your server's REST API (README group: Compute). It takes an operation name from your server's own API spec, plus optional id, filter, fields and limit. The operations on offer come from that spec, not from this page. The README says it covers VMs, templates, snapshots and controllers.
Try: “Query vms and show the first 10 results”
Read ·
vms_queryRead-only query on the vdis resources
Read-only query tool for the vdis resource area of your server's REST API (README group: Storage). It takes an operation name from your server's own API spec, plus optional id, filter, fields and limit. The operations on offer come from that spec, not from this page. The README says it includes VDI snapshots.
Try: “Query vdis and show the first 10 results”
Read ·
vdis_queryRead-only query on the srs resources
Read-only query tool for the srs resource area of your server's REST API (README group: Storage). It takes an operation name from your server's own API spec, plus optional id, filter, fields and limit. The operations on offer come from that spec, not from this page.
Try: “Query srs and show the first 10 results”
Read ·
srs_queryRead-only query on the vbds resources
Read-only query tool for the vbds resource area of your server's REST API (README group: Storage). It takes an operation name from your server's own API spec, plus optional id, filter, fields and limit. The operations on offer come from that spec, not from this page.
Try: “Query vbds and show the first 10 results”
Read ·
vbds_queryRead-only query on the pbds resources
Read-only query tool for the pbds resource area of your server's REST API (README group: Storage). It takes an operation name from your server's own API spec, plus optional id, filter, fields and limit. The operations on offer come from that spec, not from this page.
Try: “Query pbds and show the first 10 results”
Read ·
pbds_queryRead-only query on the networks resources
Read-only query tool for the networks resource area of your server's REST API (README group: Network). It takes an operation name from your server's own API spec, plus optional id, filter, fields and limit. The operations on offer come from that spec, not from this page.
Try: “Query networks and show the first 10 results”
Read ·
networks_queryRead-only query on the vifs resources
Read-only query tool for the vifs resource area of your server's REST API (README group: Network). It takes an operation name from your server's own API spec, plus optional id, filter, fields and limit. The operations on offer come from that spec, not from this page.
Try: “Query vifs and show the first 10 results”
Read ·
vifs_queryRead-only query on the pifs resources
Read-only query tool for the pifs resource area of your server's REST API (README group: Network). It takes an operation name from your server's own API spec, plus optional id, filter, fields and limit. The operations on offer come from that spec, not from this page.
Try: “Query pifs and show the first 10 results”
Read ·
pifs_queryRead-only query on the backup_jobs resources
Read-only query tool for the backup_jobs resource area of your server's REST API (README group: Backup). It takes an operation name from your server's own API spec, plus optional id, filter, fields and limit. The operations on offer come from that spec, not from this page.
Try: “Query backup_jobs and show the first 10 results”
Read ·
backup_jobs_queryRead-only query on the backup_logs resources
Read-only query tool for the backup_logs resource area of your server's REST API (README group: Backup). It takes an operation name from your server's own API spec, plus optional id, filter, fields and limit. The operations on offer come from that spec, not from this page.
Try: “Query backup_logs and show the first 10 results”
Read ·
backup_logs_queryRead-only query on the restore_logs resources
Read-only query tool for the restore_logs resource area of your server's REST API (README group: Backup). It takes an operation name from your server's own API spec, plus optional id, filter, fields and limit. The operations on offer come from that spec, not from this page.
Try: “Query restore_logs and show the first 10 results”
Read ·
restore_logs_queryRead-only query on the backup_repositories resources
Read-only query tool for the backup_repositories resource area of your server's REST API (README group: Backup). It takes an operation name from your server's own API spec, plus optional id, filter, fields and limit. The operations on offer come from that spec, not from this page.
Try: “Query backup_repositories and show the first 10 results”
Read ·
backup_repositories_queryRead-only query on the backup_archives resources
Read-only query tool for the backup_archives resource area of your server's REST API (README group: Backup). It takes an operation name from your server's own API spec, plus optional id, filter, fields and limit. The operations on offer come from that spec, not from this page.
Try: “Query backup_archives and show the first 10 results”
Read ·
backup_archives_queryRead-only query on the schedules resources
Read-only query tool for the schedules resource area of your server's REST API (README group: Backup). It takes an operation name from your server's own API spec, plus optional id, filter, fields and limit. The operations on offer come from that spec, not from this page.
Try: “Query schedules and show the first 10 results”
Read ·
schedules_queryRead-only query on the users resources
Read-only query tool for the users resource area of your server's REST API (README group: Access). It takes an operation name from your server's own API spec, plus optional id, filter, fields and limit. The operations on offer come from that spec, not from this page.
Try: “Query users and show the first 10 results”
Read ·
users_queryRead-only query on the groups resources
Read-only query tool for the groups resource area of your server's REST API (README group: Access). It takes an operation name from your server's own API spec, plus optional id, filter, fields and limit. The operations on offer come from that spec, not from this page.
Try: “Query groups and show the first 10 results”
Read ·
groups_queryRead-only query on the servers resources
Read-only query tool for the servers resource area of your server's REST API (README group: Access). It takes an operation name from your server's own API spec, plus optional id, filter, fields and limit. The operations on offer come from that spec, not from this page.
Try: “Query servers and show the first 10 results”
Read ·
servers_queryRead-only query on the alarms resources
Read-only query tool for the alarms resource area of your server's REST API (README group: Observability). It takes an operation name from your server's own API spec, plus optional id, filter, fields and limit. The operations on offer come from that spec, not from this page.
Try: “Query alarms and show the first 10 results”
Read ·
alarms_queryRead-only query on the messages resources
Read-only query tool for the messages resource area of your server's REST API (README group: Observability). It takes an operation name from your server's own API spec, plus optional id, filter, fields and limit. The operations on offer come from that spec, not from this page.
Try: “Query messages and show the first 10 results”
Read ·
messages_queryRead-only query on the events resources
Read-only query tool for the events resource area of your server's REST API (README group: Observability). It takes an operation name from your server's own API spec, plus optional id, filter, fields and limit. The operations on offer come from that spec, not from this page.
Try: “Query events and show the first 10 results”
Read ·
events_queryRead-only query on the tasks resources
Read-only query tool for the tasks resource area of your server's REST API (README group: Observability). It takes an operation name from your server's own API spec, plus optional id, filter, fields and limit. The operations on offer come from that spec, not from this page.
Try: “Query tasks and show the first 10 results”
Read ·
tasks_queryRead-only query on the proxies resources
Read-only query tool for the proxies resource area of your server's REST API (README group: System). It takes an operation name from your server's own API spec, plus optional id, filter, fields and limit. The operations on offer come from that spec, not from this page.
Try: “Query proxies and show the first 10 results”
Read ·
proxies_queryRead-only query on the pgpus resources
Read-only query tool for the pgpus resource area of your server's REST API (README group: System). It takes an operation name from your server's own API spec, plus optional id, filter, fields and limit. The operations on offer come from that spec, not from this page.
Try: “Query pgpus and show the first 10 results”
Read ·
pgpus_queryRead-only query on the pcis resources
Read-only query tool for the pcis resource area of your server's REST API (README group: System). It takes an operation name from your server's own API spec, plus optional id, filter, fields and limit. The operations on offer come from that spec, not from this page.
Try: “Query pcis and show the first 10 results”
Read ·
pcis_queryRead-only query on the sms resources
Read-only query tool for the sms resource area of your server's REST API (README group: System). It takes an operation name from your server's own API spec, plus optional id, filter, fields and limit. The operations on offer come from that spec, not from this page.
Try: “Query sms and show the first 10 results”
Read ·
sms_queryRead-only query on the xoa resources
Read-only query tool for the xoa resource area of your server's REST API (README group: System). It takes an operation name from your server's own API spec, plus optional id, filter, fields and limit. The operations on offer come from that spec, not from this page.
Try: “Query xoa and show the first 10 results”
Read ·
xoa_queryRead-only query on the docs resources
Read-only query tool for the docs resource area of your server's REST API (README group: Misc). It takes an operation name from your server's own API spec, plus optional id, filter, fields and limit. The operations on offer come from that spec, not from this page.
Try: “Query docs and show the first 10 results”
Read ·
docs_query
Read from the source code
Permissions
medium risk · 3 things to watch
Medium risk
By default the assistant can only read your infrastructure details. If you switch on actions, it can change or delete VMs, and each action needs a confirmation step.
What it can do
- Read your data
- Create and change things
- Delete things
- Read-only modeHow to turn it on
Watch out for
Opt-in actions can delete VMs and shut down pools
Off by default. With XO_MCP_ENABLE_ACTIONS=1, each area gets a {domain}_action tool for create, update and delete operations, including DELETE calls and pools/emergency_shutdown. Each action returns a preview and a one-shot confirm token that must be sent back within 5 minutes. Drop operations with XO_MCP_DENY_LIST, for example DeleteVm,HardShutdownVm. github.com
It can read user and server details
The query tools cover users, groups, connected servers and the XOA appliance, not only VMs. The token you give it limits what it can see, because Xen Orchestra still applies its own permissions. github.com
Use a token with the access you need
The README says XO_USERNAME needs admin privileges, and the token carries that user's rights. Our advice: create a dedicated XO user for the assistant rather than your own admin login. github.com
Security advisories
No published security advisories for the MCP server as of Nov 1, 2026.
1 other advisory is about the wider xen-orchestra project, not this MCP server. See them on GitHub
Technical details
| Turning on read-only | The default. Write tools only appear when XO_MCP_ENABLE_ACTIONS=1 is set. XO_MCP_DENY_LIST can also drop specific operations by name. |
|---|---|
| Talks to | Your own Xen Orchestra server. docs.xen-orchestra.com (the documentation tool only) |
| Sign-in and keys | A Xen Orchestra token in the XO_TOKEN environment variable, or XO_USERNAME and XO_PASSWORD. The token takes priority when both are set. |
Questions
Is the Xen Orchestra MCP server official?
Yes. It is published by Vates, the company behind Xen Orchestra, inside the Xen Orchestra repository.
Which Xen Orchestra version do I need?
Version 6.5 or later with the REST API turned on. On an older version it stops at startup with an error. An admin can also switch MCP off on the server, and then it exits with "MCP disabled by admin".
Can it run read-only?
Yes, that is the default. It only gets write and delete tools when you set XO_MCP_ENABLE_ACTIONS=1, and you can still block named operations with XO_MCP_DENY_LIST.
Can it shut down or delete my VMs?
Only if you enable actions. Then it can run operations such as VM shutdown or delete, and pool emergency shutdown. Each one returns a preview and needs a one-time confirm token sent back within 5 minutes.
What credentials does it need?
The address of your server (XO_URL) and either a token (XO_TOKEN, recommended) or a username and password. The README says the username should have admin rights. Create a token on the XO user page or with xo-cli create-token.
Does it send my data anywhere?
It runs on your computer and talks to your own Xen Orchestra server. The documentation tool also fetches pages from docs.xen-orchestra.com. Your assistant's provider still sees whatever the tools return.
How many tools does it have?
It depends on your server. Three tools are always there, and the rest are generated from your Xen Orchestra API spec when it starts. The list on this page is partial and shows the query tools the README names.
Can I connect more than one Xen Orchestra?
Yes. Add one entry per server with a different name, such as xo-production and xo-staging. Each entry runs its own process with its own credentials.
Information
updated Nov 2, 2026
- Publisher
- Official
- Package
@xen-orchestra/mcp- Registry
- npm
- Transport
- stdio
- Auth
- token in env
- Version
- 1.4.3
- License
- AGPL-3.0-or-later
- Last commit
- Oct 31, 2026
- Open issues
- 252
Sources
Docs, issue trackers and discussions this page is built from. Issues, quotes and findings above link to their own source.
Show all 7Hide
- @xen-orchestra/mcp README · github.com
- @xen-orchestra/mcp on npm · npmjs.com
- search-docs tool source · github.com
- get-infrastructure-summary.mts · github.com
- tool-generator.mts · github.com
- confirmation token source · github.com
- route filter source · github.com