Servidor Model Context Protocol para consultar Microsoft SQL Server via pyodbc. Exploração de banco de dados, execução de consultas seguras e análise de estrutura — tudo integrado ao seu ambiente de IA.
{
"mcpServers": {
"sqlserver-mcp": {
"command": "python",
"args": ["server.py"],
"env": {
"SQLSERVER_SERVER": "localhost",
"SQLSERVER_DATABASE": "mydb"
}
}
}
}
Liste schemas, tabelas, views, procedures e funções. Navegue pela estrutura completa do seu banco de dados.
Descrição de colunas, índices, chaves primárias, foreign keys e relacionamentos completos entre tabelas.
Apenas SELECT permitido. Bloqueio de DDL, DML e comandos perigosos. Transações read-only com rollback automático.
Gerenciamento eficiente de conexões com pool configurável. Monitore estatísticas e performance em tempo real.
Funciona em macOS, Linux e Windows. Suporte a Docker para deploy rápido e consistente.
Variáveis de ambiente simples. Suporte a .env para configuração local. Pronto para uso em minutos.
brew update
brew tap microsoft/mssql-release https://github.com/Microsoft/homebrew-mssql-release
brew install --no-sandbox msodbcsql18 mssql-tools18
brew install unixodbc
git clone https://github.com/moigomes/sqlserver-mcp.git
cd sqlserver-mcp
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
cp .env.example .env
# Edite o arquivo .env com suas credenciais
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.list
sudo apt-get update
sudo ACCEPT_EULA=Y apt-get install -y msodbcsql18 mssql-tools18
sudo apt-get install -y unixodbc-dev
git clone https://github.com/moigomes/sqlserver-mcp.git
cd sqlserver-mcp
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
cp .env.example .env
Baixe e instale o driver ODBC 18 da Microsoft:
Download ODBC Driver 18 for SQL Servergit clone https://github.com/moigomes/sqlserver-mcp.git
cd sqlserver-mcp
python -m venv .venv
.venv\Scripts\activate
pip install -r requirements.txt
copy .env.example .env
git clone https://github.com/moigomes/sqlserver-mcp.git
cd sqlserver-mcp
cp .env.example .env
# Edite o arquivo .env com suas credenciais
docker-compose up -d
Adicione ao seu arquivo de configuração MCP e comece a explorar seu banco de dados diretamente do editor com IA.
{
"mcpServers": {
"sqlserver-mcp": {
"command": "/path/to/.venv/bin/python",
"args": ["/path/to/server.py"],
"cwd": "/path/to/sqlserver-mcp",
"env": {
"PYTHONPATH": ".",
"PYTHONUNBUFFERED": "1"
}
}
}
}
test_connection()
Valida conexão e retorna versão do SQL Server
pool_stats()
Retorna estatísticas do pool de conexões
list_schemas()
Lista schemas disponíveis
list_tables(schema?)
Lista tabelas do banco
list_views(schema?)
Lista views do banco
list_procedures(schema?)
Lista stored procedures
list_functions(schema?)
Lista funções do usuário
describe_table(table_name, schema?)
Descreve colunas de uma tabela
get_indexes(table_name, schema?)
Retorna índices da tabela
get_primary_key(table_name, schema?)
Retorna chave primária
get_foreign_keys(table_name, schema?)
Retorna chaves estrangeiras
get_table_relationships(table_name, schema?)
Retorna todos os relacionamentos
get_table_row_count(table_name, schema?)
Contagem aproximada de linhas
run_query(sql, max_rows?)
Executa consulta SELECT/CTE (padrão: 1000 linhas)
Veja como o MCP SQL Server pode acelerar seu trabalho com IA
Quais tabelas existem no banco de dados relacionadas a clientes?
Encontrei 3 tabelas relacionadas a clientes:
dbo.Customers - 15.234 registrosdbo.CustomerAddresses - 18.456 registrosdbo.CustomerOrders - 142.890 registros
A tabela principal Customers possui 12 colunas incluindo CustomerID (PK), Name, Email e CreatedAt.
list_tables()
describe_table()
get_table_row_count()
Como a tabela Orders se relaciona com outras tabelas?
A tabela Orders possui os seguintes relacionamentos:
get_table_relationships()
get_foreign_keys()
Qual foi o faturamento total por mês nos últimos 6 meses?
Aqui está o faturamento mensal:
| Jul/2024 | R$ 245.890,00 |
| Ago/2024 | R$ 312.456,00 |
| Set/2024 | R$ 287.120,00 |
| Out/2024 | R$ 356.780,00 |
| Nov/2024 | R$ 423.900,00 |
| Dez/2024 | R$ 512.340,00 |
Crescimento de 108% no período! 📈
run_query()
Gere a documentação completa da tabela Products
📋 Documentação: dbo.Products
describe_table()
get_indexes()
get_primary_key()
A query de relatório está lenta. Quais índices a tabela Sales possui?
A tabela Sales possui 3 índices:
⚠️ Sugestão: Falta um índice composto em (SaleDate, CustomerID) para otimizar o relatório.
get_indexes()
describe_table()
Preciso migrar os dados. Liste todas as stored procedures do schema vendas
Encontrei 5 stored procedures no schema vendas:
Também identifiquei 2 functions e 3 views neste schema.
list_procedures()
list_functions()
list_views()
| Variável | Obrigatório | Padrão | Descrição |
|---|---|---|---|
SQLSERVER_SERVER |
Sim | - | Endereço do servidor |
SQLSERVER_DATABASE |
Não | - | Nome do banco de dados |
SQLSERVER_USERNAME |
Condicional* | - | Usuário para autenticação |
SQLSERVER_PASSWORD |
Condicional* | - | Senha para autenticação |
SQLSERVER_PORT |
Não | 1433 | Porta do servidor |
SQLSERVER_DRIVER |
Não | ODBC Driver 18 | Driver ODBC |
SQLSERVER_ENCRYPT |
Não | yes | Criptografar conexão |
SQLSERVER_TRUST_SERVER_CERTIFICATE |
Não | no | Confiar em cert. autoassinado |
SQLSERVER_TRUSTED_CONNECTION |
Não | no | Usar autenticação Windows |
SQLSERVER_LOG_LEVEL |
Não | INFO | Nível de log |
SQLSERVER_POOL_SIZE |
Não | 5 | Tamanho do pool de conexões |
SQLSERVER_POOL_IDLE_TIME |
Não | 300 | Tempo de ociosidade (segundos) |
* SQLSERVER_USERNAME e SQLSERVER_PASSWORD são obrigatórios se SQLSERVER_TRUSTED_CONNECTION não estiver como yes.
SELECTWITH (CTEs)INSERT, UPDATE, DELETEDROP, CREATE, ALTER, TRUNCATEEXEC, EXECUTE, xp_*, sp_configureOPENROWSET, OPENDATASOURCE, BULKMúltiplos statements são bloqueados automaticamente
Todas as queries executam com ROLLBACK automático
Internamente usa queries parametrizadas
Máximo de 1000 linhas por consulta (configurável)
E101
Falha na conexão
E102
Timeout
E201
Configuração ausente
E301
Erro de validação
E303
Query bloqueada
E401
Erro na query
E402
Tabela não encontrada
E404
Permissão negada
macOS, Windows
Multi-plataforma
Suporte MCP em preview
macOS, Linux
IDE focada em IA
Extensão VS Code