Xen Orchestra MCP Server
by Videothek
README.md
ο»Ώ# Xen Orchestra MCP Server π°οΈ

A Model Context Protocol (MCP) server written in πPython to manage π°οΈXen Orchestra (XOA) via its REST API.
The project is currently under heavy development. Run the Server on your own risk.
## π Purpose
This MCP server provides tools to manage and retrieve information from Xen Orchestra using the REST API.
## π© Features
- **get_docs** - Get the swagger docs from the Xen Orchestra API.
- **list_vms** - List VMs with their `fields` based on `filters` and `limit`.
- **create_vm** (under construction ποΈ) - Create a VM by providing a JSON payload.
- **delete_vm** (under construction ποΈ) - Delete a VM given its UUID or href.
- **modify_vm** (under construction ποΈ) - Modify VM properties `name_label` and/or `name_description`.
- **list_backup_jobs** - List backup jobs with their `fields` based on `filters` and `limit`.
- **get_backup_job_details** - List backup job details based on the `backup job id`.
- **list_backup_logs** - List backup logs with their `fields` based on `filters` and `limit`.
- **get_backup_log_details** - List backup logs details based on the `backup log id`.
- **list_backup_repositories** - List backup repositories with their `fields` based on `filters` and `limit`.
- **get_backup_repository_details** - List backup repository details based on the `backup repository id`.
## β½οΈ Prerequisites
- π Docker Desktop with MCP Toolkit enabled (the `docker mcp` CLI).
- π°οΈ Xen Orchestra instance reachable from the host running the container.
- π Xen Orchestra authentication token (create it in the XOA UI under your user, check out the [offical documentation](https://docs.xcp-ng.org/management/manage-at-scale/xo-api/) if you need help).
Checkout the [installation instructions](Installation.md) for detailed information on how to setup the Docker MCP Server and your MCP client.
## πΊοΈ Environment variables
- `XOA_URL` : Base URL of your Xen Orchestra instance (e.g. https://xoa.example.lan) **no trailing slash**.
- `XOA_TOKEN` : The authentication token created in Xen Orchestra UI.
- `CERT_VERIFY` (optional, defaults to True): Whether the SSL certificate of your Xen Orchestra webserver should be checked or not. You can also provide a path to your certificate in the containers filesystem: `/path/to/your/cert.pem` **Add the cert as Volume for this to work**
## π Example Prompts
1. `List all running vms`
2. `List all stopped VMs with their name and tags`
3. `Tell me what backup jobs i have configured`
4. `List all of my metadata backups`
5. `Provide all details for my full backups`
6. `List the 5 last failed backups`
7. `List the logs for the 10 last full backups`
8. `List log details for the last failed backup` --> `List more detailed logs for this backup`
9. `List all backup repositories` --> `List details for the <your-repository-name> backup repository`
## πΌ Architecture
Client β Docker MCP Gateway β Xen Orchestra MCP Server (this project) β Xen Orchestra REST API
Secrets: `XOA_TOKEN` should be provided through Docker Desktop secrets or an `.env` file.
## π¬ Development / Local testing
Set environment variables locally for testing:
```bash
export XOA_URL="https://xoa.example.lan"
export XOA_TOKEN="your-token-here"
python main.py
```This server cannot be deployed
Maintenance
ActivityInactive
ResponsivenessNo issues