Conectando o claude desktop ao Oracle Database 19c Standard Edition


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;

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.

Passo 5 - Testando via cloud desktop





Referencias:

Comentários