1Panel

Um servidor MCP para 1Panel, um painel moderno de operação e manutenção de servidores Linux.

Documentação

Servidor MCP 1Panel

O Servidor MCP 1Panel é uma implementação do servidor Model Context Protocol (MCP) para o 1Panel.

Instalação

Pré-requisitos

  • Go 1.25.0 ou superior
  • 1Panel existente

Compilar a partir do código-fonte

  1. Clone o repositório:

    git clone https://github.com/1Panel-dev/mcp-1panel.git
    cd mcp-1panel
    
  2. Compile o projeto:

    make build
    

    Mova ./build/mcp-1panel para o caminho de ambiente do sistema.

Instalar usando go install

go install github.com/1Panel-dev/mcp-1panel@latest

Uso

Exemplo de configuração do Cursor e 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 Streamable com TLS autônomo

mcp-1panel pode criar e persistir sua própria CA local e certificado de servidor HTTPS. Não depende do gerenciamento de certificados do 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"

Na primeira inicialização, o servidor grava o caminho da CA e a impressão digital SHA-256 em stderr. Configure o cliente MCP para confiar no ca.crt gerado; não desative a verificação de certificado. A CA é reutilizada enquanto o certificado do servidor é renovado automaticamente.

Os transportes HTTP exigem um token de autenticação MCP por padrão. Os clientes devem enviá-lo em cada requisição como Authorization: Bearer <token>; o cabeçalho privado X-MCP-Token não é aceito. Este é um modo de token pré-compartilhado destinado a uma implantação de usuário único/privada, não o fluxo de autorização OAuth do MCP. Coloque o servidor atrás de um gateway com suporte a OAuth quando for necessária autorização multiusuário baseada em padrões.

Use stdio para clientes desktop locais quando possível. Ouvintes não-loopback exigem um endereço https://, -allow-remote-http, um token, SANs de certificado explícitas e uma lista de permissões Origin apropriada.

Níveis de acesso

O servidor usa como padrão readonly. As permissões de ferramentas são aplicadas quando as ferramentas são registradas, portanto, ferramentas não permitidas não são retornadas por tools/list e não podem ser chamadas diretamente.

NívelFerramentas
readonlyConsultas, listas e leituras de status
readwritereadonly mais ferramentas existentes de criação de sites, certificados e bancos de dados
fullreadwrite mais ferramentas existentes de instalação de aplicativos

Defina o nível com -access-level ou MCP_ACCESS_LEVEL. A configuração de linha de comando tem precedência.

Opções de Linha de Comando

  • -token: token de acesso do 1Panel; prefira PANEL_ACCESS_TOKEN para evitar expor segredos em listas de processos
  • -host: endereço de acesso do 1Panel; prefira PANEL_HOST para configuração baseada em ambiente
  • -transport: tipo de transporte (stdio ou streamable-http; padrão: stdio)
  • -addr: URL base para transportes HTTP (padrão: http://127.0.0.1:8000)
  • -mcp-token: token Bearer pré-compartilhado para transportes HTTP
  • -allowed-origins: lista de permissões Origin separada por vírgulas para transportes HTTP
  • -allow-insecure-http: permitir transportes HTTP não autenticados; use apenas para desenvolvimento local
  • -allow-remote-http: permitir que transportes HTTPS escutem em endereços não-loopback
  • -access-level: nível de acesso de ferramentas (readonly, readwrite ou full; padrão: readonly)
  • -tls-dir: diretório para a CA local e o certificado de servidor HTTPS
  • -tls-hosts: nomes DNS e endereços IP separados por vírgulas para o certificado de servidor HTTPS

Variáveis de Ambiente

Você também pode configurar o servidor usando variáveis de ambiente:

  • PANEL_HOST: endereço de acesso do 1Panel
  • PANEL_ACCESS_TOKEN: token de acesso do 1Panel
  • MCP_AUTH_TOKEN: token Bearer pré-compartilhado para streamable-http
  • MCP_ACCESS_LEVEL: nível de acesso de ferramentas (readonly, readwrite ou full)

Ferramentas Disponíveis

O servidor fornece várias ferramentas para interagir com o 1Panel:

FerramentaCategoriaAcesso mínimoDescrição
get_dashboard_infoSistemareadonlyListar status do painel
get_system_infoSistemareadonlyObter informações do sistema
list_websitesSitereadonlyListar todos os sites
create_websiteSitereadwriteCriar um site
list_sslsCertificadoreadonlyListar todos os certificados
create_sslCertificadoreadwriteCriar um certificado
list_installed_appsAplicativoreadonlyListar todos os aplicativos instalados
install_openrestyAplicativofullInstalar OpenResty
install_mysqlAplicativofullInstalar MySQL
list_databasesBanco de dadosreadonlyListar todos os bancos de dados
create_databaseBanco de dadosreadwriteCriar um banco de dados