mcp -uyuni
Enabling LLMs to interact with Uyuni
claude mcp add --transport stdio uyuni-project-mcp-server-uyuni docker run -i --rm ghcr.io/uyuni-project/uyuni-mcp-server:latest \ --env UYUNI_PASS="<Uyuni password>" \ --env UYUNI_USER="<Uyuni username>" \ --env UYUNI_SERVER="<Uyuni server address, e.g., 192.168.1.124:8443>" \ --env UYUNI_MCP_HOST="<host for HTTP transport, if used>" \ --env UYUNI_MCP_PORT="<port for HTTP transport, if used>" \ --env UYUNI_AUTH_SERVER="<OAuth2 authorization server URL>" \ --env UYUNI_SSH_PRIV_KEY="<SSH private key in single-line escaped format>" \ --env UYUNI_MCP_LOG_LEVEL="<DEBUG|INFO|WARNING|ERROR|CRITICAL>" \ --env UYUNI_MCP_TRANSPORT="<stdio|http>" \ --env UYUNI_MCP_SSL_VERIFY="<true|false>" \ --env UYUNI_MCP_LOG_FILE_PATH="<path to log file>" \ --env UYUNI_MCP_WRITE_TOOLS_ENABLED="<true|false>"
How to use
The Uyuni MCP Server provides a bridge between large language models and your Uyuni infrastructure. It exposes a set of tools that let an AI assistant query system inventory, view details, check for updates, and schedule actions like patches or reboots. Typical usage involves connecting an MCP-compatible client (such as Gemini CLI or Claude Desktop) to the server via the chosen transport (stdio for local use or HTTP for remote access). Once connected, you can ask the agent to list systems, fetch system details, verify pending updates, and schedule maintenance tasks without manual Uyuni UI navigation. The tool list includes capabilities to inspect infrastructure, manage updates (including CVEs), and execute actions like scheduling patches and reboots. The server is designed to run either in a container (recommended for remote access) or locally via stdio for development or testing.
To use it, configure your Uyuni connection details in the provided environment variables, start the container or local process, and point your MCP client at the server endpoint. The client can then issue commands that map to tools such as list_systems, get_system_details, get_system_updates, schedule_pending_updates_to_system, add_system, remove_system, and more. Be mindful of write-enabled modes and transport security, as enabling write tools over HTTP can expose destructive operations to anyone with network access.
How to install
Prerequisites:
- Docker installed on the host (for container method) or a local runtime for the chosen transport (stdio-based or HTTP server).
- Access credentials for Uyuni (API endpoint, user, password).
- Optional: OAuth 2.0 server configuration if you enable OAuth-based authentication.
Option 1: Run via Docker (recommended for remote access)
- Ensure Docker is running and you have access to the Uyuni MCP server image.
- Create a configuration file or environment variables as needed. The README example uses an environment- and container-based approach.
- Start the container using the provided command (adjust image name if needed):
# Example: run the Uyuni MCP Server container
docker run -i --rm \
ghcr.io/uyuni-project/uyuni-mcp-server:latest
- Set up environment variables as needed for Uyuni connection (UYUNI_SERVER, UYUNI_USER, UYUNI_PASS, etc.).
Option 2: Run via local stdio or HTTP transport (non-container)
- Ensure you have Node/Python/etc. depending on the server build (as per project packaging).
- Install dependencies and run the server using the recommended command from the MCP docs.
- Configure transport to stdio or http and supply Uyuni credentials via environment variables or a config file.
Prerequisites summary:
- Docker or local runtime compatible with the server packaging
- Uyuni server details (URL, credentials, TLS settings)
- Optional: OAuth 2.0 server details if you enable OAuth authentication
Note: If you enable HTTP transport, ensure authentication is correctly configured to avoid unauthenticated access.
Additional notes
Security notes:
- Enabling write tools (e.g., schedule updates, add/remove systems) over HTTP can expose destructive actions to anyone with network access. Restrict HTTP access to trusted networks or prefer stdio/container deployments in secure environments.
- When using OAuth 2.0, ensure the Uyuni instance supports the /manager/api/oauthLogin endpoint; otherwise, authentication may fail.
- The SSH private key used for bootstrapping new systems must be provided as a single-line string with newline characters escaped (\n). Use the provided formatting guidance in the README to generate this value.
- Validate TLS settings (UYUNI_MCP_SSL_VERIFY) to avoid man-in-the-middle risks in production deployments.
Related MCP Servers
mcp-vegalite
MCP server from isaacwasserman/mcp-vegalite-server
github-chat
A Model Context Protocol (MCP) for analyzing and querying GitHub repositories using the GitHub Chat API.
nautex
MCP server for guiding Coding Agents via end-to-end requirements to implementation plan pipeline
pagerduty
PagerDuty's official local MCP (Model Context Protocol) server which provides tools to interact with your PagerDuty account directly from your MCP-enabled client.
futu-stock
mcp server for futuniuniu stock
mcp -boilerplate
Boilerplate using one of the 'better' ways to build MCP Servers. Written using FastMCP