ODBC MCP Server

Permite que ferramentas LLM consultem bancos de dados usando conexões ODBC.

Documentação

ODBC MCP Server

Um servidor MCP (Model Context Protocol) que permite que ferramentas de LLM, como o Claude Desktop, consultem bancos de dados via conexões ODBC. Este servidor permite que o Claude e outros clientes MCP acessem, analisem e gerem insights a partir de dados de banco de dados, mantendo segurança e proteções somente leitura.

Recursos

  • Conecte-se a qualquer banco de dados compatível com ODBC
  • Suporte a múltiplas conexões de banco de dados
  • Configuração flexível por meio de arquivos de configuração ou configurações do Claude Desktop
  • Proteções somente leitura para evitar modificação de dados
  • Instalação fácil com o gerenciador de pacotes UV
  • Relatórios de erros detalhados e registro de logs

Pré-requisitos

  • Python 3.10 ou superior
  • Gerenciador de pacotes UV
  • Drivers ODBC para seu(s) banco(s) de dados instalados no sistema
  • Para Sage 100 Advanced: driver ODBC ProvideX

Instalação

git clone https://github.com/tylerstoltz/mcp-odbc.git
cd mcp-odbc
uv venv
.venv\Scripts\activate # On Mac / Linux: source .venv/bin/activate (untested)
uv pip install -e .

Configuração

O servidor pode ser configurado por meio de:

  1. Um arquivo de configuração dedicado
  2. Variáveis de ambiente
  3. Configuração do Claude Desktop

Configuração Geral

Crie um arquivo de configuração (.ini) com os detalhes da conexão do banco de dados:

[SERVER]
default_connection = my_database
max_rows = 1000
timeout = 30

[my_database]
dsn = MyDatabaseDSN
username = your_username
password = your_password
readonly = true

Configuração do SQLite

Para bancos de dados SQLite com ODBC:

[SERVER]
default_connection = sqlite_db
max_rows = 1000
timeout = 30

[sqlite_db]
dsn = SQLite_DSN_Name
readonly = true

Configuração do Sage 100 ProvideX

O ProvideX requer configuração especial para compatibilidade. Use esta configuração mínima para obter melhores resultados:

[SERVER]
default_connection = sage100
max_rows = 1000
timeout = 60

[sage100]
dsn = YOUR_PROVIDEX_DSN
username = your_username
password = your_password
company = YOUR_COMPANY_CODE
readonly = true

Notas importantes para o ProvideX:

  • Use uma configuração mínima - adicionar parâmetros extras pode causar problemas de conexão
  • Sempre defina readonly = true por segurança
  • O parâmetro company é obrigatório para conexões Sage 100
  • Evite alterar atributos de conexão após a conexão ser estabelecida

Integração com Claude Desktop

Para configurar o servidor no Claude Desktop:

  1. Abra ou crie claude_desktop_config.json:

    • Windows: %APPDATA%\Claude\claude_desktop_config.json
    • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  2. Adicione a configuração do servidor MCP:

{
  "mcpServers": {
    "odbc": {
      "command": "uv",
      "args": [
        "--directory",
        "C:\\path\\to\\mcp-odbc",
        "run",
        "odbc-mcp-server",
        "--config", 
        "C:\\path\\to\\mcp-odbc\\config\\your_config.ini"
      ]
    }
  }
}

Uso

Iniciando o servidor manualmente

# Start with default configuration
odbc-mcp-server

# Start with a specific config file
odbc-mcp-server --config path/to/config.ini

Usando com Claude Desktop

  1. Configure o servidor no arquivo de configuração do Claude Desktop, conforme mostrado acima
  2. Reinicie o Claude Desktop
  3. As ferramentas ODBC aparecerão automaticamente na lista de ferramentas MCP

Ferramentas MCP disponíveis

O servidor ODBC MCP fornece estas ferramentas:

  1. list-connections: Lista todas as conexões de banco de dados configuradas
  2. list-available-dsns: Lista todos os DSNs disponíveis no sistema
  3. test-connection: Testa uma conexão de banco de dados e retorna informações
  4. list-tables: Lista todas as tabelas no banco de dados
  5. get-table-schema: Obtém informações de esquema para uma tabela
  6. execute-query: Executa uma consulta SQL e retorna resultados

Exemplos de Consultas

Experimente estes prompts no Claude Desktop após conectar o servidor:

  • "Mostre-me todas as tabelas no banco de dados"
  • "Qual é o esquema da tabela Customer?"
  • "Execute uma consulta para obter os 10 primeiros clientes"
  • "Encontre todos os pedidos feitos nos últimos 30 dias"
  • "Analise os dados de vendas por região e forneça insights"

Solução de Problemas

Problemas de Conexão

Se você encontrar problemas de conexão:

  1. Verifique se os drivers ODBC estão instalados corretamente
  2. Teste seu DSN usando o Administrador de Fonte de Dados ODBC
  3. Verifique os parâmetros de conexão no seu arquivo de configuração
  4. Procure mensagens de erro detalhadas nos logs do Claude Desktop

Problemas Específicos do ProvideX

Para Sage 100/ProvideX:

  1. Use configuração de conexão mínima (DSN, nome de usuário, senha, empresa)
  2. Certifique-se de que o parâmetro Company está correto
  3. Use o modelo de configuração especial do ProvideX
  4. Se você encontrar erros de Driver not capable, verifique se o autocommit está sendo definido no momento da conexão

Tabelas Ausentes

Se as tabelas não estão aparecendo:

  1. Verifique as permissões do usuário para a conta do banco de dados
  2. Verifique se o código da empresa está correto (para Sage 100)
  3. Tente usar nomes de tabela totalmente qualificados (schema.table)

Licença

Licença MIT - Copyright (c) 2024