sqlserver-mcp
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@sqlserver-mcplist all tables in the database"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
🗄️ Servidor MCP: SQL Server (Não Oficial)
Desenvolvido em Python por Moises Gomes
🌐 Site oficial: moigomes.github.io/sqlserver-mcp-site
Servidor MCP (Model Context Protocol) em Python para consultar Microsoft SQL Server via pyodbc, expondo ferramentas para exploração de banco de dados, execução de consultas seguras e análise de estrutura.
📋 Índice
Related MCP server: Microsoft SQL Server MCP Server
📦 Pré-requisitos
Python 3.10+
Driver ODBC do SQL Server instalado
Acesso a um servidor SQL Server
🚀 Instalação
macOS
Instale o Homebrew (se ainda não tiver):
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"Instale o driver ODBC e ferramentas:
brew update brew tap microsoft/mssql-release https://github.com/Microsoft/homebrew-mssql-release brew install --no-sandbox msodbcsql18 mssql-tools18 brew install unixodbc⚠️ Aceite a licença da Microsoft quando solicitado.
Clone o repositório e configure:
git clone <url-do-repositorio> cd sqlserver-mcp # Crie o ambiente virtual python3 -m venv .venv source .venv/bin/activate # Instale as dependências pip install -r requirements.txt # Configure as variáveis de ambiente cp .env.example .env # Edite o arquivo .env com suas credenciais
Linux (Ubuntu/Debian)
Adicione o repositório da Microsoft:
curl https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add - curl https://packages.microsoft.com/config/ubuntu/$(lsb_release -rs)/prod.list | sudo tee /etc/apt/sources.list.d/mssql-release.listInstale o driver ODBC:
sudo apt-get update sudo ACCEPT_EULA=Y apt-get install -y msodbcsql18 sudo ACCEPT_EULA=Y apt-get install -y mssql-tools18 sudo apt-get install -y unixodbc-devAdicione as ferramentas ao PATH (opcional):
echo 'export PATH="$PATH:/opt/mssql-tools18/bin"' >> ~/.bashrc source ~/.bashrcClone o repositório e configure:
git clone <url-do-repositorio> cd sqlserver-mcp # Crie o ambiente virtual python3 -m venv .venv source .venv/bin/activate # Instale as dependências pip install -r requirements.txt # Configure as variáveis de ambiente cp .env.example .env nano .env # ou use seu editor preferido
Windows
Baixe e instale o driver ODBC:
Acesse: https://learn.microsoft.com/pt-br/sql/connect/odbc/download-odbc-driver-for-sql-server
Baixe o "ODBC Driver 18 for SQL Server"
Execute o instalador e siga as instruções
Instale o Python (se ainda não tiver):
Baixe em: https://www.python.org/downloads/
Durante a instalação, marque "Add Python to PATH"
Clone o repositório e configure:
git clone <url-do-repositorio> cd sqlserver-mcp # Crie o ambiente virtual python -m venv .venv .venv\Scripts\activate # Instale as dependências pip install -r requirements.txt # Configure as variáveis de ambiente copy .env.example .env notepad .env
🐳 Docker
A forma mais fácil de rodar o servidor sem instalar dependências localmente.
Build da imagem:
docker build -t sqlserver-mcp .Crie o arquivo
.envcom suas credenciais:cp .env.example .env # Edite o .env com suas configuraçõesExecute o container:
# Modo interativo (para testes) docker run -it --env-file .env sqlserver-mcp # Ou com docker-compose docker-compose up -dComandos úteis:
# Ver logs docker-compose logs -f # Parar docker-compose down # Rebuild após alterações docker-compose up -d --build
⚙️ Configuração
Arquivo .env
Crie um arquivo .env na raiz do projeto com as seguintes variáveis:
# Conexão obrigatória
SQLSERVER_SERVER=seu_servidor
SQLSERVER_DATABASE=seu_banco
SQLSERVER_USERNAME=seu_usuario
SQLSERVER_PASSWORD=sua_senha
# Opcionais
SQLSERVER_PORT=1433
SQLSERVER_DRIVER=ODBC Driver 18 for SQL Server
SQLSERVER_ENCRYPT=yes
SQLSERVER_TRUST_SERVER_CERTIFICATE=no
SQLSERVER_TRUSTED_CONNECTION=no
# Logging (DEBUG, INFO, WARNING, ERROR)
SQLSERVER_LOG_LEVEL=INFO
# Connection Pool
SQLSERVER_POOL_SIZE=5
SQLSERVER_POOL_IDLE_TIME=300Autenticação Windows (Trusted Connection)
Para usar autenticação integrada do Windows:
SQLSERVER_SERVER=seu_servidor
SQLSERVER_DATABASE=seu_banco
SQLSERVER_TRUSTED_CONNECTION=yes▶️ Execução
Modo Standalone (para testes)
# macOS/Linux
source .venv/bin/activate
python server.py
# Windows
.venv\Scripts\activate
python server.pyO servidor ficará aguardando conexões via STDIO. Use Ctrl+C para encerrar.
Teste de Conexão
Execute o cliente de teste para validar a configuração:
python client_smoke.py🔌 Integração com Cursor
Abra as configurações do Cursor (Cmd+Shift+J ou Ctrl+Shift+J) e adicione em mcpServers:
macOS/Linux
{
"mcpServers": {
"sqlserver-mcp": {
"command": "/caminho/para/sqlserver-mcp/.venv/bin/python",
"args": ["/caminho/para/sqlserver-mcp/server.py"],
"cwd": "/caminho/para/sqlserver-mcp",
"env": {
"PYTHONPATH": ".",
"PYTHONUNBUFFERED": "1"
}
}
}
}Windows
{
"mcpServers": {
"sqlserver-mcp": {
"command": "C:\\caminho\\para\\sqlserver-mcp\\.venv\\Scripts\\python.exe",
"args": ["C:\\caminho\\para\\sqlserver-mcp\\server.py"],
"cwd": "C:\\caminho\\para\\sqlserver-mcp",
"env": {
"PYTHONPATH": ".",
"PYTHONUNBUFFERED": "1"
}
}
}
}💡 Dica: As variáveis de ambiente podem ser definidas no arquivo
.env(carregadas automaticamente) ou diretamente na configuração do Cursor.
🛠️ Ferramentas Disponíveis
Conexão e Diagnóstico
Ferramenta | Descrição | Parâmetros |
| Valida conexão e retorna versão do SQL Server | - |
| Retorna estatísticas do pool de conexões | - |
Exploração de Schema
Ferramenta | Descrição | Parâmetros |
| Lista schemas disponíveis | - |
| Lista tabelas do banco |
|
| Lista views do banco |
|
| Lista stored procedures |
|
| Lista funções do usuário |
|
Análise de Tabelas
Ferramenta | Descrição | Parâmetros |
| Descreve colunas de uma tabela |
|
| Retorna índices da tabela |
|
| Retorna chave primária |
|
| Retorna chaves estrangeiras |
|
| Retorna todos os relacionamentos |
|
| Contagem aproximada de linhas |
|
Execução de Consultas
Ferramenta | Descrição | Parâmetros |
| Executa consulta SELECT/CTE |
|
🔐 Variáveis de Ambiente
Variável | Obrigatório | Padrão | Descrição |
| ✅ Sim | - | Endereço do servidor |
| Não | - | Nome do banco de dados |
| Condicional* | - | Usuário para autenticação |
| Condicional* | - | Senha para autenticação |
| Não | 1433 | Porta do servidor |
| Não | ODBC Driver 18 for SQL Server | Driver ODBC |
| Não | yes | Criptografar conexão |
| Não | no | Confiar em certificado autoassinado |
| Não | no | Usar autenticação Windows |
| Não | INFO | Nível de log (DEBUG/INFO/WARNING/ERROR) |
| Não | 5 | Tamanho máximo do pool de conexões |
| Não | 300 | Tempo máximo de ociosidade (segundos) |
*
SQLSERVER_USERNAMEeSQLSERVER_PASSWORDsão obrigatórios seSQLSERVER_TRUSTED_CONNECTIONnão estiver comoyes.
🔒 Segurança
O servidor implementa múltiplas camadas de segurança:
1. Validação de Queries
✅ Apenas
SELECTeWITH(CTEs) são permitidos❌ Bloqueia:
INSERT,UPDATE,DELETE,DROP,CREATE,ALTER,TRUNCATE❌ Bloqueia:
EXEC,EXECUTE,xp_*,sp_configure❌ Bloqueia:
OPENROWSET,OPENDATASOURCE,BULK
2. Proteção contra SQL Injection
❌ Múltiplos statements são bloqueados (ex:
SELECT 1; DROP TABLE x)✅ Queries parametrizadas são usadas internamente
3. Transação Read-Only
Todas as queries são executadas em transação com
ROLLBACKautomáticoMesmo que algo passe pelas validações, nada será persistido
Códigos de Erro
Código | Categoria | Descrição |
E101 | Conexão | Falha na conexão |
E102 | Conexão | Timeout |
E201 | Configuração | Configuração ausente |
E301 | Validação | Erro de validação de entrada |
E303 | Segurança | Query bloqueada por segurança |
E401 | Execução | Erro na query |
E402 | Execução | Tabela não encontrada |
E404 | Execução | Permissão negada |
💡 Dicas
Driver ODBC
macOS: Use
SQLSERVER_DRIVER=ODBC Driver 18 for SQL ServerLinux: Use
SQLSERVER_DRIVER=ODBC Driver 18 for SQL ServerWindows: Use
SQLSERVER_DRIVER=ODBC Driver 18 for SQL Server
Certificado Autoassinado
Para ambientes de desenvolvimento com certificado autoassinado:
SQLSERVER_TRUST_SERVER_CERTIFICATE=yes⚠️ Não use em produção!
Porta Não Padrão
SQLSERVER_PORT=1434Debug
Para logs detalhados:
SQLSERVER_LOG_LEVEL=DEBUGPool de Conexões
Para ajustar o pool conforme sua carga:
SQLSERVER_POOL_SIZE=10
SQLSERVER_POOL_IDLE_TIME=600🔌 Outros Clientes Compatíveis
Este servidor MCP pode ser usado em qualquer cliente compatível com o Model Context Protocol. A configuração é similar à do Cursor.
IDEs e Editores
Claude Desktop (macOS, Windows) - App oficial da Anthropic
VS Code + GitHub Copilot - Suporte MCP em preview
Zed (macOS, Linux) - Editor moderno
Windsurf - IDE focada em IA
Continue - Extensão open-source para VS Code
Mobile e Desktop
5ire - Assistente IA desktop
AIaW - Cliente de chat multiplataforma
Jenova AI - Mobile + Desktop
Systemprompt MCP (iOS) - Controle por voz
Cloud e Enterprise
Amazon Q Developer - CLI da AWS
Microsoft Sentinel - Segurança com MCP
📖 Lista completa de clientes: https://glama.ai/mcp/clients
📖 Especificação MCP: https://modelcontextprotocol.io
📄 Licença
Este projeto é não oficial e desenvolvido de forma independente.
🤝 Contribuições
Contribuições são bem-vindas! Abra uma issue ou pull request.
This server cannot be deployed
Maintenance
Related MCP Connectors
Query your org's data in natural language — read-only MCP access to SQL, NoSQL, files & warehouses.
Generate, fix, explain and run read-only SQL on PostgreSQL, MySQL and SQL Server
Ask data questions in natural language. Get SQL, insights, and charts from your databases.
Safe, read-only Postgres and MySQL access for AI agents. Audit log + column-level controls.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceProvides read-only access to Microsoft SQL Server databases using Windows Authentication, enabling AI assistants to safely explore schemas and query data with built-in security controls.MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to connect and query Microsoft SQL Server databases using natural language, executing read-only SQL queries for safe data inspection and analysis.MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to securely interact with Microsoft SQL Server databases to query data, inspect schemas, and retrieve metadata with read-only operations by default and optional write capabilities.1MIT
- AlicenseNot gradedqualityDmaintenanceEnables interaction with Microsoft SQL Server databases through T-SQL query execution, table exploration, and schema inspection. Supports configurable write protection and row limiting for safe database operations.591 npmMIT