sqlserver-mcp
Click on "Install 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 installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/moigomes/sqlserver-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server