1Panel
Un servidor MCP para 1Panel, un panel moderno de operación y mantenimiento de servidores Linux.
Documentación
Servidor MCP de 1Panel
El Servidor MCP de 1Panel es una implementación del servidor del Protocolo de Contexto de Modelos (MCP) para 1Panel.
Instalación
Requisitos previos
- Go 1.25.0 o superior
- 1Panel existente
Compilar desde el código fuente
-
Clonar el repositorio:
git clone https://github.com/1Panel-dev/mcp-1panel.git cd mcp-1panel -
Compilar el proyecto:
make buildMover
./build/mcp-1panela la ruta de variables de entorno del sistema.
Instalar usando go install
go install github.com/1Panel-dev/mcp-1panel@latest
Uso
Ejemplo de configuración para Cursor y Windsurf:
Modo stdio
{
"mcpServers": {
"mcp-1panel": {
"command": "mcp-1panel",
"env": {
"PANEL_ACCESS_TOKEN": "<your 1Panel access token>",
"PANEL_HOST": "such as http://localhost:8080"
}
}
}
}
HTTP transmisible con TLS independiente
mcp-1panel puede crear y conservar su propia CA local y certificado de servidor HTTPS. No depende de la gestión de certificados de 1Panel.
MCP_AUTH_TOKEN=<strong random MCP token> \
PANEL_HOST=<your 1Panel access address> \
PANEL_ACCESS_TOKEN=<your 1Panel access token> \
mcp-1panel \
-transport streamable-http \
-addr "https://127.0.0.1:8000/mcp" \
-tls-hosts "localhost,127.0.0.1"
En el primer inicio, el servidor escribe la ruta de la CA y la huella digital SHA-256 en stderr. Configure el cliente MCP para confiar en el ca.crt generado; no desactive la verificación de certificados. La CA se reutiliza mientras el certificado del servidor se renueva automáticamente.
Los transportes HTTP requieren un token de autenticación MCP de forma predeterminada. Los clientes deben enviarlo en cada solicitud como Authorization: Bearer <token>; el encabezado privado X-MCP-Token no se acepta. Este es un modo de token precompartido destinado a una implementación de un solo usuario/privada, no al flujo de autorización OAuth de MCP. Coloque el servidor detrás de una puerta de enlace compatible con OAuth cuando se requiera autorización multiusuario basada en estándares.
Use stdio para clientes de escritorio locales cuando sea posible. Los listeners que no sean de bucle local requieren una dirección https://, -allow-remote-http, un token, SAN de certificado explícitas y una lista de permitidos de Origin adecuada.
Niveles de acceso
El servidor tiene como valor predeterminado readonly. Los permisos de las herramientas se aplican cuando se registran, por lo que las herramientas no permitidas no son devueltas por tools/list y no se pueden llamar directamente.
| Nivel | Herramientas |
|---|---|
readonly | Consultas, listados y lecturas de estado |
readwrite | readonly más herramientas existentes de creación de sitios web, certificados y bases de datos |
full | readwrite más herramientas existentes de instalación de aplicaciones |
Establezca el nivel con -access-level o MCP_ACCESS_LEVEL. La configuración de línea de comandos tiene prioridad.
Opciones de línea de comandos
-token: token de acceso de 1Panel; prefieraPANEL_ACCESS_TOKENpara evitar exponer secretos en listas de procesos-host: dirección de acceso de 1Panel; prefieraPANEL_HOSTpara configuración basada en variables de entorno-transport: tipo de transporte (stdio o streamable-http; predeterminado: stdio)-addr: URL base para transportes HTTP (predeterminado:http://127.0.0.1:8000)-mcp-token: token Bearer precompartido para transportes HTTP-allowed-origins: lista de permitidos de Origin separada por comas para transportes HTTP-allow-insecure-http: permitir transportes HTTP no autenticados; solo para desarrollo local-allow-remote-http: permitir que los transportes HTTPS escuchen en direcciones que no sean de bucle local-access-level: nivel de acceso de herramientas (readonly,readwriteofull; predeterminado:readonly)-tls-dir: directorio para la CA local y el certificado del servidor HTTPS-tls-hosts: nombres DNS y direcciones IP separados por comas para el certificado del servidor HTTPS
Variables de entorno
También puede configurar el servidor usando variables de entorno:
PANEL_HOST: dirección de acceso de 1PanelPANEL_ACCESS_TOKEN: token de acceso de 1PanelMCP_AUTH_TOKEN: token Bearer precompartido parastreamable-httpMCP_ACCESS_LEVEL: nivel de acceso de herramientas (readonly,readwriteofull)
Herramientas disponibles
El servidor proporciona varias herramientas para interactuar con 1Panel:
| Herramienta | Categoría | Acceso mínimo | Descripción |
|---|---|---|---|
| get_dashboard_info | Sistema | readonly | Listar estado del panel |
| get_system_info | Sistema | readonly | Obtener información del sistema |
| list_websites | Sitio web | readonly | Listar todos los sitios web |
| create_website | Sitio web | readwrite | Crear un sitio web |
| list_ssls | Certificado | readonly | Listar todos los certificados |
| create_ssl | Certificado | readwrite | Crear un certificado |
| list_installed_apps | Aplicación | readonly | Listar todas las aplicaciones instaladas |
| install_openresty | Aplicación | full | Instalar OpenResty |
| install_mysql | Aplicación | full | Instalar MySQL |
| list_databases | Base de datos | readonly | Listar todas las bases de datos |
| create_database | Base de datos | readwrite | Crear una base de datos |