SQL Server

Permite que assistentes de IA acessem e consultem bancos de dados SQL Server.

Documentação

Servidor MCP do SQL Server

Um servidor Model Context Protocol (MCP) que fornece aos assistentes de IA capacidades de acesso a bancos de dados SQL Server.

Recursos

  • Executar consultas SQL com limites de segurança automáticos
  • Inspeção e exploração de esquemas de banco de dados
  • Estatísticas de tabelas e monitoramento de desempenho
  • Capacidades avançadas de busca para tabelas e colunas
  • Funcionalidade de backup de tabelas
  • Inserção de dados com tratamento de conflitos
  • Análise de planos de execução de consultas
  • Monitoramento da saúde da conexão

Início Rápido

1. Configurar o Ambiente

# Navigate to project directory
cd C:\Users\benha\Desktop\sql-server-mcp

# Create virtual environment
python -m venv venv
venv\Scripts\activate

# Install dependencies
pip install -r requirements.txt

2. Configurar a Conexão com o Banco de Dados

Edite o arquivo .env com suas credenciais do SQL Server:

SQL_SERVER_HOST=192.168.1.117
SQL_SERVER_DATABASE=EM_Data
SQL_SERVER_USERNAME=benhg
SQL_SERVER_PASSWORD=your_actual_password
SQL_SERVER_PORT=1433

3. Testar o Servidor

python -m sql_server_mcp.server

Integração com Ferramentas de IA

Claude Desktop

Adicione ao seu arquivo de configuração do Claude Desktop:

Localização:

  • Windows: %APPDATA%\Claude\claude_desktop_config.json
  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

Configuração:

{
  "mcpServers": {
    "sql-server": {
      "command": "python",
      "args": ["-m", "sql_server_mcp.server"],
      "cwd": "C:\\Users\\benha\\Desktop\\sql-server-mcp",
      "env": {
        "SQL_SERVER_HOST": "192.168.1.117",
        "SQL_SERVER_DATABASE": "EM_Data",
        "SQL_SERVER_USERNAME": "benhg",
        "SQL_SERVER_PASSWORD": "your_password_here",
        "SQL_SERVER_PORT": "1433"
      }
    }
  }
}

VS Code

  1. Instale a extensão "Model Context Protocol"
  2. Adicione ao settings.json do VS Code:
{
  "mcp.servers": {
    "sql-server": {
      "command": "python",
      "args": ["-m", "sql_server_mcp.server"],
      "cwd": "C:\\Users\\benha\\Desktop\\sql-server-mcp"
    }
  }
}

Cursor

Adicione à configuração MCP do Cursor:

{
  "mcp": {
    "servers": {
      "sql-server": {
        "command": "python",
        "args": ["-m", "sql_server_mcp.server"],
        "cwd": "C:\\Users\\benha\\Desktop\\sql-server-mcp"
      }
    }
  }
}

Ferramentas Disponíveis

  1. execute_query - Executar consultas SQL com limites de segurança
  2. get_schema - Inspecionar a estrutura do banco de dados
  3. get_table_info - Informações detalhadas da tabela com amostras
  4. explain_query - Planos de execução de consultas
  5. check_connection - Status de conectividade do banco de dados
  6. get_table_stats - Tamanho da tabela e métricas de desempenho
  7. search_tables - Encontrar tabelas e colunas por nome
  8. backup_table - Criar backups de tabelas
  9. insert_data - Inserir dados com tratamento de conflitos

Exemplos de Uso

Uma vez integrado ao Claude, você pode perguntar:

  • "Mostre-me o esquema da minha tabela SeriesRecord"
  • "Execute: SELECT TOP 10 * FROM SeriesRecord WHERE Source = 'NBP'"
  • "Quais tabelas eu tenho no meu banco de dados?"
  • "Crie um backup da minha tabela SeriesRecord"
  • "Procure por tabelas que contenham 'GDP'"
  • "Mostre-me estatísticas de todas as minhas tabelas"

Recursos de Segurança

  • Limites automáticos de consulta (TOP 1000 por padrão)
  • Suporte a consultas parametrizadas
  • Configuração baseada em ambiente
  • Pool de conexões e verificações de saúde
  • Tratamento abrangente de erros

Desenvolvimento

Executando Testes

pip install pytest pytest-asyncio
pytest tests/

Estrutura do Projeto

sql-server-mcp/
├── sql_server_mcp/
│   ├── __init__.py
│   └── server.py
├── tests/
│   ├── __init__.py
│   └── test_server.py
├── requirements.txt
├── pyproject.toml
├── .env
└── README.md

Solução de Problemas

Problemas Comuns

  1. Driver ODBC Não Encontrado: Instale o Microsoft ODBC Driver 17 para SQL Server
  2. Falha na Conexão: Verifique o endereço do servidor, as credenciais e a conectividade de rede
  3. Permissão Negada: Garanta que o usuário do banco de dados tenha as permissões apropriadas

Testando a Conexão

# Test ODBC drivers
import pyodbc
print(pyodbc.drivers())

# Test basic connection
from sqlalchemy import create_engine, text
engine = create_engine('mssql+pyodbc://user@server:port/database?driver=ODBC+Driver+17+for+SQL+Server')
with engine.connect() as conn:
    result = conn.execute(text('SELECT 1'))
    print('Connection successful!')

Licença

Licença MIT - consulte o arquivo LICENSE para obter detalhes.