Neste artigo estarei demonstrando como configurar a conexão do claude desktop com um banco de dados Oracle Standard Edition 19c.
Para montar este cenário será utilizado o Oracle SQLcl MCP Server. MCP (Model Context Protocol), é um padrão que permite que assistentes de IA e grandes modelos de linguagem interajam de forma segura e eficiente com recursos externos. Ele fornece uma comunicação estruturada entre agentes (como modelos de IA) e ferramentas externas, incluindo bancos de dados, APIs e outras fontes de dados corporativas.
Ele funciona com qualquer versão compatível do Oracle Database — da 19c à 23ai — e pode ser usado localmente, em cloud como Azure, AWS, Google e OCI.
O Claude vai utilizar o MCP para executar o SQLcl, que por sua vez vai utilizar uma conexão salva para executar as operações no banco dedados.
Requisitos:
- JDK/JRE 17 ou superior
Passo 1 - Instalação do claude desktop
Na sua maquina onde irá realizar a configuração do claude, instale o claude desktop caso ainda não tenha sido instalado. Link para download.
Faça a instalação padrão e logue com sua conta.
Passo 2 - Criação do usuário no banco de dados
Em vez de usar o um usuário SYS ou SYSTEM cheio de privilégios de administração do banco de dados, é recomendado que seja criado um usuário especifico somente com as permissões necessárias.
Por se tratar de uma laboratório, vou criar o usuário chamado DBA_AGENT e conceder algumas permissões a mais para testes e simulações.
CREATE USER DBA_AGENT
IDENTIFIED BY "<senha>"
DEFAULT TABLESPACE USERS
TEMPORARY TABLESPACE TEMP
PROFILE DEFAULT;
GRANT CREATE SESSION TO DBA_AGENT;
GRANT CREATE TABLE TO DBA_AGENT;
GRANT CREATE ANY TABLE TO DBA_AGENT;
GRANT CREATE SEQUENCE TO DBA_AGENT;
GRANT CREATE ANY INDEX TO DBA_AGENT;
GRANT CREATE TABLESPACE TO DBA_AGENT;
GRANT CREATE USER TO DBA_AGENT;
GRANT DROP USER TO DBA_AGENT;
GRANT ALTER USER TO DBA_AGENT;
GRANT INSERT ANY TABLE TO DBA_AGENT;
GRANT SELECT ANY TABLE TO DBA_AGENT;
GRANT SELECT ANY DICTIONARY TO DBA_AGENT;
GRANT UNLIMITED TABLESPACE TO DBA_AGENT;
GRANT GRANT ANY PRIVILEGE TO DBA_AGENT;
GRANT EXECUTE ON SYS.DBMS_SCHEDULER TO DBA_AGENT;
GRANT EXECUTE ON SYS.DBMS_SPACE TO DBA_AGENT;
GRANT EXECUTE ON SYS.DBMS_STATS TO DBA_AGENT;
CREATE USER DBA_AGENT IDENTIFIED BY "<senha>" DEFAULT TABLESPACE USERS TEMPORARY TABLESPACE TEMP PROFILE DEFAULT; GRANT CREATE SESSION TO DBA_AGENT; GRANT CREATE TABLE TO DBA_AGENT; GRANT CREATE ANY TABLE TO DBA_AGENT; GRANT CREATE SEQUENCE TO DBA_AGENT; GRANT CREATE ANY INDEX TO DBA_AGENT; GRANT CREATE TABLESPACE TO DBA_AGENT; GRANT CREATE USER TO DBA_AGENT; GRANT DROP USER TO DBA_AGENT; GRANT ALTER USER TO DBA_AGENT; GRANT INSERT ANY TABLE TO DBA_AGENT; GRANT SELECT ANY TABLE TO DBA_AGENT; GRANT SELECT ANY DICTIONARY TO DBA_AGENT; GRANT UNLIMITED TABLESPACE TO DBA_AGENT; GRANT GRANT ANY PRIVILEGE TO DBA_AGENT; GRANT EXECUTE ON SYS.DBMS_SCHEDULER TO DBA_AGENT; GRANT EXECUTE ON SYS.DBMS_SPACE TO DBA_AGENT; GRANT EXECUTE ON SYS.DBMS_STATS TO DBA_AGENT;
Passo 3 - Download e configuração do SQLcl
O SQLcl é uma interface de linha de comando para Oracle Database. O SQLcl via MCP Server utilizará dos processos list-connections, connect, disconnect, run-sql, run-sqlcl e schema-information, permitindo ao Claude listar conexões, abrir a conexão correta, executar SQL e consultar informações de esquema por linguagem natural. Link para download.Basta fazer o download do arquivo .zip e extrair em um diretório local. Neste exemplo criei C:\oracle\. Após extrair o arquivo, basta setar o path e o mesmo estará pronto para uso.
Para validar execute o comando sql -vsql -v e o retorno deve ser igual o exemplo abaixo:
PS C:\Windows\system32> PS C:\Windows\system32> $env:Path="C:\oracle\sqlcl\bin;$env:Path" PS C:\Windows\system32> sql -vsql -v SQLcl: Release 26.1.0.0 Production Build: 26.1.0.086.1709 PS C:\Windows\system32>
Agora será criada uma conexão ao banco de dados. Para que as conexões estejam acessíveis ao cliente MCP, a conexão e senha precisam estar salvas, utilizando o parâmetro -savepwd.
Exemplo para um Oracle 19c Standard Edition usando host, porta e service name: conn -save nome_da_conexao -savepwd SuaSenha@//IP:PORTA/SERVICO
O comando cm list vai listar as conexões configuradas e o cm teste nome_da_conexao vai realizar uma conexão de teste.
C:\Windows\system32> sql /nolog -s WARNING: A restricted method in java.lang.System has been called WARNING: java.lang.System::load has been called by org.jline.nativ.JLineNativeLoader in an unnamed module (file:/C:/oracle/sqlcl/lib/jline.jar) WARNING: Use --enable-native-access=ALL-UNNAMED to avoid a warning for callers in this module WARNING: Restricted methods will be blocked in a future release unless native access is enabled SQL> conn -save claude_ora19c -savepwd dba_agent/"SenhaForte#2026#"@//IP:1521/orcl19c_pdb1.publicsubnet.vcn01.oraclevcn.com Nome: claude_ora19c String de Conexão: //167.126.28.218:1521/orcl19c_pdb1.publicsubnet.vcn01.oraclevcn.com Usuário: dba_agent Senha: ****** SQL> SQL> cm list . +--- claude_ora19c |___ mcp_manutencao SQL> cm test claude_ora19c Oracle Database 19c Standard Edition 2 Release 19.0.0.0.0 - Production Teste de Conexão Bem-sucedido SQL> select sysdate from dual; SYSDATE ___________ 14/04/26 SQL>
Passo 4 - Configuração do claude desktop para iniciar o oracle MCP
Por fim, será feita a configuração do claude desktop para que possa iniciar o oracle MCP. Para isso, vá em arquivo , configurações. escolha a opção desenvolvedor e editar config.
Você deve editar o arquivo claude_desktop_config.json e inserir o comando do SQLcl com o argumento -mcp. Depois disso, o claude desktop gerencia automaticamente o ciclo de vida do servidor MCP.
{
"mcpServers": {
"sqlcl": {
"command": "C:\\oracle\\sqlcl\\bin\\sql.exe",
"args": [
"-mcp"
]
}
}
Concluídos os ajustes acima, é recomendado reiniciar o claude desktop para então iniciar a utilização. Se tudo estiver correto, o Claude passa a enxergar as ferramentas MCP e pode executar operações como:
- listar conexões salvas;
-
abrir a conexão
orcl19_ai; - rodar consultas SQL;
- consultar informações do schema.
Comentários
Postar um comentário