JDBC-MCP

Permite que assistentes de IA interajam com diversos bancos de dados por meio de conexões JDBC.

Documentação

JDBC-MCP - Acesso a Banco de Dados para Assistentes de IA

Docker Hub GitHub License

Este é um fork do Quarkus MCP JDBC Server com recursos adicionados:

  • Implantação com Docker - Execute facilmente o MCP SSE ou o MCP STDIO como uma aplicação containerizada
  • Segurança aprimorada - Consultas de escrita (INSERT, UPDATE, DELETE) estão desabilitadas por padrão e precisam ser explicitamente habilitadas

O servidor Model Context Protocol (MCP) permite que assistentes de IA interajam com bancos de dados por meio de conexões JDBC, possibilitando que LLMs inspecionem, consultem, criem e modifiquem o conteúdo do banco de dados.

Novos Recursos

Implantação com Docker

Agora você pode executar o servidor JDBC-MCP em um contêiner Docker.

MCP SSE

Uso simples

docker run -d --name jdbc-mcp \
  -p 8080:8080 \
  -e enable.write.sql=false \
  -e jdbc.user=db_user \
  -e jdbc.password=db_password \
  -e jdbc.url=jdbc:postgresql://host:port/database \
  guang1/jdbc-mcp:latest

Usando um Arquivo de Ambiente

Crie um arquivo .env:

enable.write.sql=false
jdbc.user=db_user
jdbc.password=db_password
jdbc.url=jdbc:postgresql://host:port/database

Em seguida, execute:

docker run -d --name jdbc-mcp \
  -p 8080:8080 \
  --env-file .env \
  guang1/jdbc-mcp:latest

Docker Compose para SSE

Exemplo Básico

services:
  jdbc-mcp:
    container_name: jdbc-mcp
    ports:
      - 8080:8080
    environment:
      - enable.write.sql=false
      - jdbc.user=db_user
      - jdbc.password=db_password
      - jdbc.url=jdbc:postgresql://host:port/database
    restart: always
    image: guang1/jdbc-mcp:latest

Com Arquivo de Ambiente

services:
  jdbc-mcp:
    container_name: jdbc-mcp
    ports:
      - 8080:8080
    env_file:
      - .env
    restart: always
    image: guang1/jdbc-mcp:latest

MCP SSE URL

http://localhost:8080/mcp/sse

MCP STDIO

Must pass quarkus.mcp.server.stdio.enabled=true, quarkus.log.console.enable=false and quarkus.log.console.stderr=false environment variables with -i interactive option.

Simple usage

docker run --rm \
  -e enable.write.sql=false \
  -e jdbc.user=db_user \
  -e jdbc.password=db_password \
  -e jdbc.url=jdbc:postgresql://host:port/database \
  -e quarkus.mcp.server.stdio.enabled=true \
  -e quarkus.log.console.enable=false \
  -e quarkus.log.console.stderr=false \  
  guang1/jdbc-mcp:latest

Using an Environment File

docker run --rm 
  --env-file .env \
   -e quarkus.mcp.server.stdio.enabled=true \
   -e quarkus.log.console.enable=false \
   -e quarkus.log.console.stderr=false \  
  guang1/jdbc-mcp:latest

Claude Desktop Configuration (STDIO)

To use the Docker version with Claude Desktop, add this to your claude_desktop_config.json or server_config.json file:

Simple usage

{
  "mcpServers": {
    "jdbc": {
      "command": "docker",
      "args": [
        "run",
        "--rm",
        "-e",
        "enable.write.sql=false",
        "-e",
        "jdbc.user=db_user",
        "-e",
        "jdbc.password=db_password",
        "-e",
        "jdbc.url=jdbc:postgresql://host:port/database",
        "-e",
        "quarkus.mcp.server.stdio.enabled=true",
        "-e",
        "quarkus.log.console.enable=false",
        "-e",
        "quarkus.log.console.stderr=false",
        "-i",
        "guang1/jdbc-mcp:latest"
      ]
    }
  }
}

Using an Environment File

{
  "mcpServers": {
    "jdbc": {
      "command": "docker",
      "args": [
        "run",
        "--rm",
        "--env-file",
        ".env",
        "-e",
        "quarkus.mcp.server.stdio.enabled=true",
        "-e",
        "quarkus.log.console.enable=false",
        "-e",
        "quarkus.log.console.stderr=false",
        "-i",
        "guang1/jdbc-mcp:latest"
      ]
    }
  }
}

Configuração

Variáveis de Ambiente

VariávelDescriçãoPadrão
jdbc.urlURL de conexão JDBC (obrigatória)-
jdbc.userNome de usuário do banco de dados-
jdbc.passwordSenha do banco de dados-
enable.write.sqlHabilita operações SQL que modificam dadosfalse

Tipos de Banco de Dados Suportados

Este servidor MCP suporta vários tipos de banco de dados por meio de JDBC. Para informações detalhadas sobre as variantes JDBC suportadas, consulte a documentação do quarkus-mcp-servers/jdbc.

Considerações de Segurança

⚠️ Aviso: Quando enable.write.sql estiver definido como true, o servidor MCP pode executar instruções SQL que modificam dados. Use com cautela em ambientes de produção.

Considere estas práticas recomendadas:

  • Use usuários de banco de dados somente leitura quando possível
  • Implemente controles de acesso em nível de rede
  • Execute em um ambiente de rede isolado

Usando com LLMs

Este servidor MCP fornece uma API padronizada que Modelos de Linguagem de Grande Porte podem usar para interagir com seu banco de dados. Para conectar seu LLM:

  1. Configure o LLM para usar o endpoint do servidor MCP
  2. Defina os recursos que deseja permitir (somente leitura vs. leitura e escrita)
  3. Garanta que o esquema do seu banco de dados esteja acessível ao servidor MCP

Segurança de Consultas de Escrita

Por padrão, operações de escrita (INSERT, UPDATE, DELETE) estão desabilitadas por segurança. Para habilitá-las:

  • Ao usar Docker: adicione -e enable.write.sql=true conforme mostrado acima

Documentação Original

Para todos os outros recursos, incluindo bancos de dados suportados, uso geral, bancos de dados de exemplo, componentes MCP e solução de problemas, consulte a documentação do repositório original:

Documentação do Quarkus MCP JDBC Server

Licença

Este projeto é licenciado sob a Apache License 2.0.

Agradecimentos