Contexto
Chamando apps_create pelo MCP com o nome do servidor (exatamente como aparece em servers_list):
{
"name": "Cotação de Passagens",
"repo": "gestao-bem/cotacao-passagens",
"host": "cotacao.gestaobem.com",
"server": "gestaobem-cx33",
"runtime": "node",
"port": 4080
}
Resposta:
Invalid request (server_id: is invalid)
Trocando para o id ("server": "5") a criação funciona.
Por que atrapalha
servers_list devolve id e name lado a lado — passar o nome é o caminho natural quando você está lendo a lista.
- A mensagem de erro não diz que precisa ser numérico, nem lista os valores válidos, então parece que o payload inteiro está errado.
Causa provável
lib/cleat/mcp/tools.ex:331 repassa o valor cru:
"server_id" => args["server"],
e a API (cleat-web/lib/cleat_deploy_web/controllers/api/app_controller.ex:29-45) devolve o changeset como veio (server_id: is invalid).
Sugestão
- Resolver
server por id, nome ou slug no MCP (ex.: gestaobem-cx33 ou 5) — e, se der, aceitar o mesmo em apps_update/drop.
- Quando não resolver, devolver erro acionável, ex.:
server_id inválido: use o id de servers_list (ex.: 5) — servidores: 5 (gestaobem-cx33), 6 (chatwoot-e2e)
- (Nice to have) deixar explícito na descrição do tool que
server aceita id ou nome.
Repro
whoami → tenant ok
servers_list → [{"id": 5, "name": "gestaobem-cx33"}, ...]
apps_create(..., "server": "gestaobem-cx33") → 422 server_id: is invalid
apps_create(..., "server": "5") → 201
Contexto
Chamando
apps_createpelo MCP com o nome do servidor (exatamente como aparece emservers_list):{ "name": "Cotação de Passagens", "repo": "gestao-bem/cotacao-passagens", "host": "cotacao.gestaobem.com", "server": "gestaobem-cx33", "runtime": "node", "port": 4080 }Resposta:
Trocando para o id (
"server": "5") a criação funciona.Por que atrapalha
servers_listdevolveidenamelado a lado — passar o nome é o caminho natural quando você está lendo a lista.Causa provável
lib/cleat/mcp/tools.ex:331repassa o valor cru:e a API (
cleat-web/lib/cleat_deploy_web/controllers/api/app_controller.ex:29-45) devolve o changeset como veio (server_id: is invalid).Sugestão
serverpor id, nome ou slug no MCP (ex.:gestaobem-cx33ou5) — e, se der, aceitar o mesmo emapps_update/drop.server_id inválido: use o id de servers_list (ex.: 5) — servidores: 5 (gestaobem-cx33), 6 (chatwoot-e2e)serveraceita id ou nome.Repro