MCP com Docker
Num servidor Linux, no CI ou onde não houver perfis salvos, rode o servidor MCP pela imagem. A conexão vem de flags e
variáveis de ambiente; a senha, de CODEDB_LENS_PASSWORD ou, no PostgreSQL, de uma string de conexão numa variável de
ambiente. Ela nunca é digitada: o stdin é o canal do protocolo.
docker run -i --rm --network host -e CODEDB_LENS_PASSWORD \
ghcr.io/codedb-io/codedb-lens mcp --engine pg --server db01 --user lens --database app
O -i é obrigatório: o cliente conversa com o servidor pelo stdin e pelo stdout. O --network host deixa o container
alcançar um banco na rede do host; nos outros casos, use uma rede Docker.
Claude Code
claude mcp add --scope user -e CODEDB_LENS_PASSWORD=<senha> codedb-lens -- \
docker run -i --rm --network host -e CODEDB_LENS_PASSWORD ghcr.io/codedb-io/codedb-lens \
mcp --engine mssql --server sql01 --user lens --trust-server-cert
Claude Desktop, VS Code, Cursor
{
"mcpServers": {
"codedb-lens": {
"command": "docker",
"args": ["run", "-i", "--rm", "--network", "host", "-e", "PG_DSN",
"ghcr.io/codedb-io/codedb-lens", "mcp", "--engine", "pg", "--dsn-env", "PG_DSN"],
"env": { "PG_DSN": "postgres://lens:<senha>@db01:5432/app" }
}
}
}
O VS Code usa a chave servers em vez de mcpServers, e cada entrada também leva "type": "stdio".
Observações
- A conexão por flags é um perfil só, chamado
default. Ochecksalva o relatório dentro do container, que o--rmdescarta; a IA recebe os resultados diretamente. - As gravações são lidas de arquivos, então o
list_recordingsnão encontra nenhuma num container novo; rode ocodedb-lens recordcom uma pasta montada se quiser que a IA leia uma. - A imagem nunca se atualiza sozinha: baixe uma tag nova.