Plesk
Gerencie seu servidor de hospedagem Plesk usando assistentes de IA.
Documentação
Servidor MCP Plesk
Este servidor MCP para Plesk permite que administradores gerenciem seus servidores Plesk usando vários agentes e aplicativos de IA. Ele é construído sobre a API REST do Plesk e a API REST do WP Toolkit, e fornece capacidades essenciais de administração, bem como a capacidade de gerenciar o servidor por meio de comandos de shell e enviar arquivos para o servidor.
O servidor MCP é executado localmente na sua máquina, para que informações importantes não saiam do seu ambiente.
Requisitos do Plesk
Espera-se que o servidor MCP suporte qualquer versão do Plesk suficientemente recente (não há limitações estritas) e qualquer sistema operacional (Linux ou Windows) que o Plesk suporte. No entanto, ele foi testado apenas no Plesk Obsidian 18.0.76, então prefira usar uma versão suportada do Plesk.
Obviamente, o acesso à API não deve estar desabilitado no servidor.
Requisitos do Servidor MCP
Você precisará do gerenciador de pacotes Python uv para executar o servidor. Consulte a documentação oficial para instruções de instalação.
Uso
Configure o servidor no seu mcp.json do VS Code ou equivalente (em outros agentes ou aplicativos) usando uma configuração como:
{
"servers": {
"plesk": {
"command": "uvx",
"args": [
"plesk-mcp@latest"
],
"env": {
// Base URL of your Plesk server. May include port.
// If you don't have a valid TLS certificate or want to use HTTP,
// add the --insecure flag to the args above.
// However, this is not recommended as you credentials may be leaked as a result.
"PLESK_HOST": "https://plesk.example.net:8443",
// API key (recommended).
// Create via `plesk bin secret_key --create -description 'Plesk MCP'` on the server.
"PLESK_API_KEY": "00000000-0000-0000-0000-000000000000",
// Alternatively, you can use username and password.
"PLESK_USERNAME": "admin",
"PLESK_PASSWORD": "passwd"
}
}
}
}
Você pode querer usar um arquivo de ambiente (por exemplo, via parâmetro "envFile") se o seu agente ou aplicativo suportar. Isso evitará colocar credenciais diretamente no arquivo de configuração.
Consulte uvx plesk-mcp@latest --help para detalhes sobre as opções disponíveis e variáveis de ambiente.
Uso Recomendado
Para melhor comportamento, é recomendado usar este servidor MCP em combinação com um servidor MCP de documentação. Selecione plesk-local-docs-mcp ou plesk-remote-docs-mcp. Isso permitirá que o agente obtenha informações mais precisas sobre o uso do Plesk quando necessário.
Você também pode anexar vários servidores Plesk de uma só vez, se necessário (por exemplo, para gerenciar vários servidores).
Aqui está um exemplo de configuração:
{
"servers": {
"plesk-docs": {
"command": "uvx",
"args": [
"plesk-local-docs-mcp@latest"
],
"env": {
"OPENAI_API_KEY": "sk-..."
}
},
"plesk1": {
"command": "uvx",
"args": [
"plesk-mcp@latest"
],
"env": {
"PLESK_HOST": "https://plesk1.example.net:8443",
"PLESK_API_KEY": "00000000-0000-0000-0000-000000000000"
}
},
"plesk2": {
"command": "uvx",
"args": [
"plesk-mcp@latest"
],
"env": {
"PLESK_HOST": "https://plesk2.example.net",
"PLESK_USERNAME": "admin",
"PLESK_PASSWORD": "passwd"
}
}
}
}
Desenvolvimento
Comando de execução do servidor MCP:
uv run plesk-mcp --log-level debug --insecure
Antes do commit:
uv run ruff format
uv run ruff check --fix
uv run mypy .
uv run pytest
Publicar:
uv build --clear
uv publish
mcp-publisher login github
mcp-publisher publish
Testes
Usando a Imagem Docker do Plesk
Se você não tem uma instância do Plesk, mas deseja testar este servidor MCP, você pode usar a imagem Docker do Plesk em vez disso:
docker run -d --rm --tmpfs /tmp --tmpfs /run --tmpfs /run/lock -v /sys/fs/cgroup:/sys/fs/cgroup --cgroupns host -p 80:80 -p 443:443 -p 8880:8880 -p 8443:8443 --name plesk plesk/plesk
A inicialização da imagem Docker não é instantânea, então aguarde cerca de um minuto antes de tentar conectar.
E então configure o servidor MCP como:
{
"servers": {
"plesk": {
"command": "uvx",
"args": [
"plesk-mcp@latest",
"--insecure"
],
"env": {
"PLESK_HOST": "https://localhost:8443",
"PLESK_PASSWORD": "changeme1Q**"
}
}
}
}
Sem Servidor Plesk (Modo Demonstração)
Alternativamente, execute em modo demonstração a partir das fontes (com respostas simuladas):
{
"servers": {
"plesk": {
"command": "uv",
"args": [
"run",
"plesk-mcp"
],
"env": {
"PLESK_HOST": "https://linux.demo.example.net",
"PLESK_API_KEY": "-"
}
}
}
}
Testes automatizados
Os testes de unidade são executados com uv run pytest (na raiz do projeto e em cada subprojeto). Os testes de fumaça que exercitam serviços reais são ignorados por padrão e selecionados via -m smoke:
# Plesk MCP smoke tests (against a reachable Plesk instance, e.g. from the Docker image described above)
PLESK_HOST=https://localhost:8443 PLESK_PASSWORD='changeme1Q**' PLESK_INSECURE=1 \
uv run pytest -m smoke