Unraid MCP Server

by jmagar
Verified

hybrid server

The server is able to function both locally and remotely, depending on the configuration or use case.

Integrations

  • Provides tools for monitoring Docker containers and networks on an Unraid server, including listing containers and accessing detailed information about specific containers.

  • Interfaces with Unraid's GraphQL API to facilitate all server interactions, handling authentication and providing consistent error reporting.

  • Allows querying information about the Plex media server container running on Unraid, mentioned as an example use case for container-specific details.

Servidor MCP de Unraid

Un servidor MCP (Protocolo de contexto de modelo) basado en Python que permite a los asistentes de IA interactuar con un servidor Unraid a través de la API GraphQL oficial de Unraid.

Descargo de responsabilidad

ÚSELO BAJO SU PROPIA RESPONSABILIDAD : Este software proporciona acceso a su servidor Unraid mediante asistentes de IA. Si bien esta implementación está configurada como de solo lectura para mayor seguridad, debe tener cuidado al usarla.

  • Esta es una herramienta no oficial y no está afiliada ni respaldada por Unraid, Inc.
  • Todas las operaciones están limitadas a acciones de solo lectura para evitar modificaciones del sistema.
  • Mantenga siempre copias de seguridad adecuadas de sus datos
  • Revise toda la información y sugerencias proporcionadas por los asistentes de IA antes de tomar medidas.
  • Los desarrolladores no son responsables de ningún problema que pueda surgir del uso de este software.

Incluso con acceso de solo lectura, las herramientas de monitoreo pueden exponer información confidencial del sistema. Al usar este software, usted reconoce y acepta estas limitaciones y riesgos.

Características

  • Información del sistema : obtén información detallada sobre tu servidor Unraid
  • Gestión de matrices : supervisar el estado de las matrices
  • Administración de Docker : lista de contenedores y redes de Docker
  • Administración de máquinas virtuales : lista de máquinas virtuales
  • Información del disco : obtenga información detallada sobre los discos y dispositivos no asignados
  • Gestión de notificaciones : ver y administrar las notificaciones del sistema
  • Administración de recursos compartidos : ver y administrar recursos compartidos de red
  • Gestión de usuarios : Lista de usuarios
  • Gestión de claves API : lista de claves API
  • Historial de paridad : ver el historial de verificación de paridad
  • Recursos compartidos : Explorar recursos compartidos de usuarios en el servidor Unraid
  • Complementos : ver los complementos instalados y su estado
  • Manejo de errores : Manejo integral de errores con información de diagnóstico
  • Registro : registro detallado para la resolución de problemas
  • Recursos con plantillas : acceda a contenedores y máquinas virtuales específicos por nombre

Prerrequisitos

  • Python 3.10 o posterior
  • Un servidor Unraid con la API habilitada
  • Clave API con permisos adecuados

Instalación

Instalación mediante herrería

Para instalar Unraid MCP Server para Claude Desktop automáticamente a través de Smithery :

npx -y @smithery/cli install @jmagar/unraid-mcp --client claude

Instalación manual

  1. Clonar el repositorio:
    git clone https://github.com/jmagar/unraid-mcp.git cd unraid-mcp
  2. Crear y activar un entorno virtual:
    python3 -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate
  3. Instalar dependencias:
    pip install -r requirements.txt
  4. Crea un archivo .env con tus credenciales de API de Unraid:
    cp .env.template .env # Edit .env with your actual API URL and key

Configuración de la API de Unraid

Para utilizar este servidor MCP, debe configurar la API de Unraid en su servidor Unraid:

  1. Habilite el modo de desarrollador y el entorno sandbox de GraphQL mediante la CLI:
    unraid-api developer
    Siga las instrucciones para habilitar la zona protegida.
  2. Cree una clave API con los permisos necesarios:
    unraid-api apikey --create
    Siga las instrucciones para configurar el nombre, la descripción, los roles y los permisos.
  3. Configure su archivo .env con:
    • UNRAID_API_URL : La URL de GraphQL (por ejemplo, http://your-unraid-server-ip/graphql )
    • UNRAID_API_KEY : La clave API que usted creó
  4. Pruebe la API utilizando el entorno sandbox GraphQL en http://your-unraid-server-ip/graphql

Nota : La API de Unraid utiliza el encabezado x-api-key para la autenticación, no tokens de portador.

Solución de problemas

  • Si recibe errores CORS, asegúrese de que su cliente incluya el encabezado Origin correcto que coincida con la URL del servidor.
  • Asegúrese de que su clave API tenga los roles y permisos necesarios para las consultas que intenta ejecutar.
  • Verifique que el entorno sandbox de GraphQL esté habilitado y accesible.

Uso

Ejecución del servidor MCP

Ejecute el servidor en modo stdio para la integración con asistentes de IA:

# Run in stdio mode (for direct integration with AI assistants) python run_server.py

El modo stdio es útil para:

  • Integración directa con asistentes de IA que admiten el protocolo MCP
  • Pruebas con el SDK de Python antrópico
  • Integración con Claude en Cursor

Al ejecutarse en modo stdio, el servidor lee desde la entrada estándar y escribe en la salida estándar, siguiendo el formato del protocolo MCP. Esto permite la comunicación directa con los asistentes de IA sin necesidad de transporte HTTP.

Arquitectura del servidor

El servidor está construido utilizando el marco FastMCP y consta de:

  1. Cliente API de Unraid ( unraid_client.py ):
    • Maneja la comunicación GraphQL con el servidor Unraid
    • Gestiona la autenticación y el manejo de errores.
    • Proporciona informes de errores consistentes
  2. Servidor MCP ( server.py ):
    • Define recursos y herramientas según la especificación MCP
    • Expone la funcionalidad de Unraid a los asistentes de IA
    • Maneja la validación de solicitudes y el diagnóstico de errores.

Recursos disponibles

URI del recursoDescripción
unraid://system/infoInformación del sistema (CPU, memoria, tiempo de actividad)
unraid://system/pluginsComplementos instalados
unraid://docker/containersLista de todos los contenedores Docker
unraid://docker/{container_name}Detalles de un contenedor específico
unraid://array/statusEstado actual de la matriz
unraid://vms/listLista de todas las máquinas virtuales
unraid://vms/{vm_name}Detalles de una máquina virtual específica
unraid://storage/sharesEl usuario comparte información

Herramientas disponibles

Gestión del sistema

Nombre de la herramientaDescripción
get_system_infoObtenga información detallada del sistema
get_network_infoObtener información de la interfaz de red

Gestión de matrices

Nombre de la herramientaDescripción
get_array_statusObtener el estado de la matriz de forma legible para humanos
get_parity_historyObtener el historial de comprobación de paridad

Administración de Docker

Nombre de la herramientaDescripción
get_docker_containersObtenga información sobre los contenedores Docker
get_docker_networksObtenga información sobre las redes Docker
list_containersEnumere los contenedores Docker de forma legible para humanos

Administración de máquinas virtuales

Nombre de la herramientaDescripción
get_vmsObtenga información sobre las máquinas virtuales
get_vm_detailsObtenga información detallada sobre una máquina virtual específica
list_vmsEnumere las máquinas virtuales de forma legible para humanos

Gestión de notificaciones

Nombre de la herramientaDescripción
get_notificationsRecibe notificaciones del servidor Unraid
create_notificationCrear una nueva notificación
archive_notificationArchivar una notificación

Gestión de acciones

Nombre de la herramientaDescripción
get_sharesObtener información sobre recursos compartidos de red
get_share_detailsObtenga información detallada sobre una acción específica

Administración de discos

Nombre de la herramientaDescripción
get_disksObtenga información sobre todos los discos
get_disk_detailsObtener información sobre un disco específico
get_unassigned_devicesObtener información sobre dispositivos no asignados

Gestión de usuarios

Nombre de la herramientaDescripción
get_usersObtener información sobre todos los usuarios

Gestión de claves API

Nombre de la herramientaDescripción
get_api_keysObtenga información sobre todas las claves API

Integración con Claude

Para utilizar el servidor MCP con Claude API u otros asistentes de IA que admitan el modo stdio:

  1. Cree un archivo de configuración (por ejemplo, unraid_mcp_config.json ):
    { "mcpServers": { "unraid": { "command": "/path/to/python", "args": ["/path/to/unraid-mcp/run_server.py"], "env": { "UNRAID_API_URL": "http://your-unraid-server:port/graphql", "UNRAID_API_KEY": "your-api-key", "LOG_LEVEL": "INFO", "CLAUDE_MCP_SERVER": "true" }, "disabled": false, "autoApprove": [] } } }

Nota : Para los usuarios de Windows, asegúrese de utilizar barras invertidas dobles en las rutas (por ejemplo, C:\\Users\\username\\unraid-mcp\\run_server.py )

Consultas de ejemplo

  • "¿Cuál es el uso actual de la CPU en mi servidor Unraid?"
  • "Enumerar todos mis contenedores Docker"
  • "Cuéntame sobre mi contenedor Plex" (usa el recurso container_details)
  • "Iniciar el contenedor Plex"
  • "¿Cuál es el estado de mi matriz?"
  • "¿Cuánto espacio libre tengo en mi servidor Unraid?"
  • "Muéstrame detalles sobre mi máquina virtual Windows" (usa el recurso vm_details)
  • ¿Qué complementos tengo instalados?

Solución de problemas

Consulte el archivo de registro ( unraid_mcp.log ) para obtener información detallada del error.

Problemas comunes:

  • URL de API o clave incorrecta en el archivo .env
  • Problemas de conectividad de red con el servidor Unraid
  • Permisos insuficientes para la clave API
  • El modo de desarrollador no está habilitado en el servidor Unraid
  • La clave API no tiene los roles necesarios

Contribuyendo

¡Agradecemos sus contribuciones! No dude en enviar una solicitud de incorporación de cambios.

Licencia

Este proyecto está licenciado bajo la licencia MIT: consulte el archivo de LICENCIA para obtener más detalles.

Referencias

-
security - not tested
F
license - not found
-
quality - not tested

Un servidor basado en Python que permite a los asistentes de IA interactuar con un servidor Unraid a través de la API GraphQL oficial de Unraid, proporcionando acceso de solo lectura a la información del sistema, contenedores Docker, máquinas virtuales, almacenamiento y más.

  1. Disclaimer
    1. Features
      1. Prerequisites
        1. Installation
          1. Installing via Smithery
          2. Manual Installation
        2. Unraid API Setup
          1. Troubleshooting
        3. Usage
          1. Running the MCP Server
        4. Server Architecture
          1. Available Resources
            1. Available Tools
              1. System Management
              2. Array Management
              3. Docker Management
              4. VM Management
              5. Notification Management
              6. Share Management
              7. Disk Management
              8. User Management
              9. API Key Management
            2. Integration with Claude
              1. Example Queries
                1. Troubleshooting
                  1. Contributing
                    1. License
                      1. References
                        ID: rcj3486wsr