xo-mcp-server

Videothek/xo-mcp-server

3.1

If you are the rightful owner of xo-mcp-server and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.

The Xen Orchestra MCP Server is a Python-based Model Context Protocol server designed to manage Xen Orchestra via its REST API.

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

  • 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.

⛽️ 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 if you need help).

Checkout the 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

🗼 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:

export XOA_URL="https://xoa.example.lan"
export XOA_TOKEN="your-token-here"
python main.py