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 :
Instalación manual
- Clonar el repositorio:Copy
- Crear y activar un entorno virtual:Copy
- Instalar dependencias:Copy
- Crea un archivo
.env
con tus credenciales de API de Unraid:Copy
Configuración de la API de Unraid
Para utilizar este servidor MCP, debe configurar la API de Unraid en su servidor Unraid:
- Habilite el modo de desarrollador y el entorno sandbox de GraphQL mediante la CLI:Siga las instrucciones para habilitar la zona protegida.Copy
- Cree una clave API con los permisos necesarios:Siga las instrucciones para configurar el nombre, la descripción, los roles y los permisos.Copy
- 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ó
- 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:
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:
- 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
- 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 recurso | Descripción |
---|---|
unraid://system/info | Información del sistema (CPU, memoria, tiempo de actividad) |
unraid://system/plugins | Complementos instalados |
unraid://docker/containers | Lista de todos los contenedores Docker |
unraid://docker/{container_name} | Detalles de un contenedor específico |
unraid://array/status | Estado actual de la matriz |
unraid://vms/list | Lista de todas las máquinas virtuales |
unraid://vms/{vm_name} | Detalles de una máquina virtual específica |
unraid://storage/shares | El usuario comparte información |
Herramientas disponibles
Gestión del sistema
Nombre de la herramienta | Descripción |
---|---|
get_system_info | Obtenga información detallada del sistema |
get_network_info | Obtener información de la interfaz de red |
Gestión de matrices
Nombre de la herramienta | Descripción |
---|---|
get_array_status | Obtener el estado de la matriz de forma legible para humanos |
get_parity_history | Obtener el historial de comprobación de paridad |
Administración de Docker
Nombre de la herramienta | Descripción |
---|---|
get_docker_containers | Obtenga información sobre los contenedores Docker |
get_docker_networks | Obtenga información sobre las redes Docker |
list_containers | Enumere los contenedores Docker de forma legible para humanos |
Administración de máquinas virtuales
Nombre de la herramienta | Descripción |
---|---|
get_vms | Obtenga información sobre las máquinas virtuales |
get_vm_details | Obtenga información detallada sobre una máquina virtual específica |
list_vms | Enumere las máquinas virtuales de forma legible para humanos |
Gestión de notificaciones
Nombre de la herramienta | Descripción |
---|---|
get_notifications | Recibe notificaciones del servidor Unraid |
create_notification | Crear una nueva notificación |
archive_notification | Archivar una notificación |
Gestión de acciones
Nombre de la herramienta | Descripción |
---|---|
get_shares | Obtener información sobre recursos compartidos de red |
get_share_details | Obtenga información detallada sobre una acción específica |
Administración de discos
Nombre de la herramienta | Descripción |
---|---|
get_disks | Obtenga información sobre todos los discos |
get_disk_details | Obtener información sobre un disco específico |
get_unassigned_devices | Obtener información sobre dispositivos no asignados |
Gestión de usuarios
Nombre de la herramienta | Descripción |
---|---|
get_users | Obtener información sobre todos los usuarios |
Gestión de claves API
Nombre de la herramienta | Descripción |
---|---|
get_api_keys | Obtenga 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:
- Cree un archivo de configuración (por ejemplo,
unraid_mcp_config.json
):Copy
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
This server cannot be installed
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.
- Disclaimer
- Features
- Prerequisites
- Installation
- Unraid API Setup
- Usage
- Server Architecture
- Available Resources
- Available Tools
- Integration with Claude
- Example Queries
- Troubleshooting
- Contributing
- License
- References