Pular para o conteúdo

Controlar o Restorm por MCP

O Restorm expõe um servidor MCP (Model Context Protocol). Um agente de IA — Claude Code, Cursor ou qualquer cliente MCP — pode, por isso, ler o seu projeto, criar e executar pedidos e controlar a interface.

É isto que permite pedir “importe este Swagger, crie um cenário que teste o percurso de encomenda e execute-o” e obter um resultado verificável, numa aplicação que mantém debaixo de olho.

O servidor está ativado por predefinição. Duas formas de governo:

  • a definição Definições ▸ MCP ▸ Ativar o servidor MCP;
  • uma regra absoluta: numa máquina sem ecrã, o servidor MCP nunca arranca, qualquer que seja a definição. Assim, um servidor de CI não acaba a expor um ponto de entrada.

O indicador MCP da barra de estado pisca a cada chamada recebida. O seu popover permite suspender ou retomar o servidor durante a sessão e abrir os registos MCP.

O indicador MCP da barra de estado e o seu popover: a porta de escuta do servidor, o nome da sessão ligada, e as ações “Parar o servidor MCP” e “Ver os registos”

No arranque, o Restorm escolhe uma porta livre, gera um token de acesso próprio do processo e escreve um ficheiro de descoberta no diretório temporário do sistema. O servidor JSON-RPC escuta em 127.0.0.1:<port>/mcpapenas no loopback local: qualquer chamada do exterior recebe um 403.

Um pequeno proxy faz a ponte entre o stdin do seu cliente MCP e o servidor HTTP do Restorm:

{
"mcpServers": {
"restorm": {
"command": "node",
"args": ["scripts/mcp-launcher.mjs"]
}
}
}

Descobre a instância em execução, injeta o token e nunca inicia o Restorm silenciosamente: uma instância cujo servidor MCP tenha desligado permanece desligada, com uma mensagem de erro clara.

Leia a porta e o token no ficheiro de descoberta e envie depois os seus pedidos JSON-RPC com um cabeçalho Authorization: Bearer <token>.

Vários Restorm podem correr em paralelo. Cada chamada aceita uma chave reservada __session para designar a instância visada. As ferramentas list-instances, create_instance e terminate_instance completam o quadro.

Leitura · navegação · projeto · escrita · ambientes e segredos · importação · execução · cenários · instâncias · automação da interface (captura de ecrã, consulta ao DOM, introdução de texto, atalhos, temas, disposição).

São também expostos quatro recursos: restorm://project, restorm://tree, restorm://active-tab e restorm://request/{id}.

Inventário completo: Ferramentas MCP.

O servidor MCP em si nunca é restringido. Cada ferramenta verifica a sua própria capacidade no momento da chamada.

  • Edição Community — todo o controlo dos pedidos: executar, cancelar, ler as respostas e o histórico, ler streams, enviar mensagens, importar a partir de um URL, abrir e fechar separadores, gerir os projetos, escrever na árvore, gerir os ambientes e as variáveis, as configs rápidas, os favoritos e as seis ferramentas da firewall.
  • Edição Pro — o domínio dos cenários (incluindo em leitura), as capturas, toda a automação da interface, os temas, o mini-navegador, a disposição do workbench, as instâncias múltiplas e as ferramentas git.

Uma ferramenta restringida continua listada — o seu título leva o sufixo (Restorm Pro) — e devolve um erro explícito e legível por máquina, em vez de desaparecer.

  • Loopback local e token: o servidor escuta apenas em 127.0.0.1, e o token é comparado em tempo constante.
  • Segredos: um agente recebe o valor resolvido de um segredo, tal como o resto da aplicação — pilota o Restorm em seu nome, sobre os seus próprios segredos. O que o tipo Segredo garante mantém-se verdadeiro: o valor não sai no projeto, nem numa exportação, nem para um serviço terceiro não autorizado.
  • Efeitos de rede reais: run_request chama realmente o alvo. É o fluxo de aprovação do seu cliente MCP que desempenha o papel de salvaguarda — mantenha-o ativo.
  • A firewall aplica-se: uma chamada desencadeada por um agente para uma origem desconhecida provoca o mesmo pedido de autorização que a sua.
  • Registo: cada chamada aparece nos registos MCP, com o seu pedido e a sua resposta.