Featured

Deploy OpenClaw in 60 seconds — 20% off logoDeploy OpenClaw in 60 seconds — 20% off

Launch OpenClaw on Hostinger in about 60 seconds and keep your agent live 24/7. Our referral link gives you 20% off, no coupon code needed.

Launch on Hostinger
Run your Hermes agent on Hostinger, fully managed logoRun your Hermes agent on Hostinger, fully managed

Launch Hermes on Hostinger in one click, fully managed, no VPS knowledge needed. Use code ZACAARON10 for 10% off.

Launch on Hostinger
Crawl and scrape any site into clean data, 10% off logoCrawl and scrape any site into clean data, 10% off

Firecrawl crawls and scrapes any site into clean markdown for your agent. Get 1,000 free credits, and new users get 10% off their first purchase.

Try Firecrawl free
Your own AI agent, running 24/7 with QwikClaw logoYour own AI agent, running 24/7 with QwikClaw

QwikClaw sets up and runs an always-on OpenClaw agent for you. One click, no config files, no server setup.

Deploy now
One API to scrape, enrich, and extract the internet. logoOne API to scrape, enrich, and extract the internet.

Context.dev gives your agents a single API to scrape, enrich, and extract live web data — no proxies, no parsers, no maintenance.

Start building free
SetupClaw: done-for-you OpenClaw for founders & exec teams logoSetupClaw: done-for-you OpenClaw for founders & exec teams

White-glove OpenClaw for founders and exec teams (4–50+ employees): we install, harden, integrate your tools, and maintain it — secured from day one.

Get it set up for you
SEO data APIs for your agent, $1 free credit logoSEO data APIs for your agent, $1 free credit

DataForSEO gives your agent live access to SERP results, keyword data, backlinks, and on-page SEO data through one API. New accounts get a $1 credit, good for up to 20,000 keyword or backlink lookups.

Try DataForSEO free
Reach 47,000+ AI builders

A flat monthly placement in front of developers actively installing AI tools. No lock-in, cancel anytime.

Advertise here

Works with

Claude CodeClaude DesktopCursorVS CodeClineCodex CLIOpenClaw+ any MCP client

Install to Claude Code

This server doesn't publish a one-line install command. Follow the setup in the source repository.

Summary

Enables secure interaction with Microsoft SQL Server databases, allowing schema exploration, metadata retrieval, and read-only query execution through natural language.

README.md

🗄️ 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

---

📦 Pré-requisitos

  • Python 3.10+
  • Driver ODBC do SQL Server instalado
  • Acesso a um servidor SQL Server

---

🚀 Instalação

macOS

  1. Instale o Homebrew (se ainda não tiver):
   /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
  1. 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.

  1. 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)

  1. 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.list
  1. Instale 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-dev
  1. Adicione as ferramentas ao PATH (opcional):
   echo 'export PATH="$PATH:/opt/mssql-tools18/bin"' >> ~/.bashrc
   source ~/.bashrc
  1. 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
   nano .env  # ou use seu editor preferido

---

Windows

  1. 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
  1. Instale o Python (se ainda não tiver):
  • Baixe em: https://www.python.org/downloads/
  • Durante a instalação, marque "Add Python to PATH"
  1. 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.

  1. Build da imagem:
   docker build -t sqlserver-mcp .
  1. Crie o arquivo .env com suas credenciais:
   cp .env.example .env
   # Edite o .env com suas configurações
  1. Execute o container:
   # Modo interativo (para testes)
   docker run -it --env-file .env sqlserver-mcp
   
   # Ou com docker-compose
   docker-compose up -d
  1. Comandos ú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=300

Autenticaçã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.py

O 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 | |------------|-----------|------------| | test_connection() | Valida conexão e retorna versão do SQL Server | - | | pool_stats() | Retorna estatísticas do pool de conexões | - |

Exploração de Schema

| Ferramenta | Descrição | Parâmetros | |------------|-----------|------------| | list_schemas() | Lista schemas disponíveis | - | | list_tables(schema?) | Lista tabelas do banco | schema (opcional) | | list_views(schema?) | Lista views do banco | schema (opcional) | | list_procedures(schema?) | Lista stored procedures | schema (opcional) | | list_functions(schema?) | Lista funções do usuário | schema (opcional) |

Análise de Tabelas

| Ferramenta | Descrição | Parâmetros | |------------|-----------|------------| | describe_table(table_name, schema?) | Descreve colunas de uma tabela | table_name, schema | | get_indexes(table_name, schema?) | Retorna índices da tabela | table_name, schema | | get_primary_key(table_name, schema?) | Retorna chave primária | table_name, schema | | get_foreign_keys(table_name, schema?) | Retorna chaves estrangeiras | table_name, schema | | get_table_relationships(table_name, schema?) | Retorna todos os relacionamentos | table_name, schema | | get_table_row_count(table_name, schema?) | Contagem aproximada de linhas | table_name, schema |

Execução de Consultas

| Ferramenta | Descrição | Parâmetros | |------------|-----------|------------| | run_query(sql, max_rows?) | Executa consulta SELECT/CTE | sql, max_rows (padrão: 1000) |

---

🔐 Variáveis de Ambiente

| 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 for SQL Server | Driver ODBC | | SQLSERVER_ENCRYPT | Não | yes | Criptografar conexão | | SQLSERVER_TRUST_SERVER_CERTIFICATE | Não | no | Confiar em certificado autoassinado | | SQLSERVER_TRUSTED_CONNECTION | Não | no | Usar autenticação Windows | | SQLSERVER_LOG_LEVEL | Não | INFO | Nível de log (DEBUG/INFO/WARNING/ERROR) | | SQLSERVER_POOL_SIZE | Não | 5 | Tamanho máximo do pool de conexões | | SQLSERVER_POOL_IDLE_TIME | Não | 300 | Tempo máximo de ociosidade (segundos) |

\* SQLSERVER_USERNAME e SQLSERVER_PASSWORD são obrigatórios se SQLSERVER_TRUSTED_CONNECTION não estiver como yes.

---

🔒 Segurança

O servidor implementa múltiplas camadas de segurança:

1. Validação de Queries

  • ✅ Apenas SELECT e WITH (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 ROLLBACK automático
  • Mesmo 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 Server
  • Linux: Use SQLSERVER_DRIVER=ODBC Driver 18 for SQL Server
  • Windows: Use SQLSERVER_DRIVER=ODBC Driver 18 for SQL Server

Certificado Autoassinado

Para ambientes de desenvolvimento com certificado autoassinado: ``env SQLSERVER_TRUST_SERVER_CERTIFICATE=yes `` > ⚠️ Não use em produção!

Porta Não Padrão

SQLSERVER_PORT=1434

Debug

Para logs detalhados: ``env SQLSERVER_LOG_LEVEL=DEBUG ``

Pool de Conexões

Para ajustar o pool conforme sua carga: ``env 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.

See related servers & alternatives →

Related MCP servers

Browse all →

Related guides

Hand-picked reading to help you choose and use Databases servers.