MSSQL MCP Server

Interaja com bancos de dados Microsoft SQL Server (MSSQL). Liste tabelas, leia dados e execute consultas SQL com acesso controlado.

Documentação

Tests

MSSQL MCP Server

O MSSQL MCP Server é um servidor Model Context Protocol (MCP) que permite interação segura e estruturada com bancos de dados Microsoft SQL Server (MSSQL). Ele permite que assistentes de IA possam:

  • Listar tabelas disponíveis
  • Ler o conteúdo das tabelas
  • Executar consultas SQL com acesso controlado

Construído sobre o MCP SDK v2 (especificação de 28/07/2026) com suporte para transportes stdio e Streamable HTTP.

Recursos

  • Acesso Seguro ao Banco de Dados MSSQL por meio de variáveis de ambiente
  • Proteção contra Injeção de SQL com validação de identificadores
  • Ferramentas Somente Leitura e de Escrita com anotações MCP apropriadas
  • Suporte à Autenticação do Windows via Conexão Confiável
  • Transporte Duplo — stdio (padrão) e HTTP
  • Suporte a Docker com drivers ODBC pré-configurados
  • Registro Abrangente para monitoramento de consultas e operações

Instalação

pip install mssql-mcp-server

Configuração

Defina as seguintes variáveis de ambiente para configurar o acesso ao banco de dados:

# Required
MSSQL_DATABASE=your_database

# Authentication (choose one):
# Option 1: SQL Server Authentication
MSSQL_USER=your_username
MSSQL_PASSWORD=your_password

# Option 2: Windows / Kerberos Authentication
Trusted_Connection=yes

# Optional
MSSQL_HOST=localhost           # or use MSSQL_SERVER
MSSQL_DRIVER=SQL Server        # default driver
TrustServerCertificate=no      # default: no (set to yes for self-signed certs)
MCP_TRANSPORT=stdio            # or "streamable-http" for Streamable HTTP

Ferramentas Disponíveis

FerramentaDescriçãoAnotações
list_tablesListar todas as tabelas do banco de dadosSomente leitura, Idempotente
query_sqlExecutar consultas SELECT somente leituraSomente leitura, Idempotente
execute_sqlExecutar qualquer instrução SQL (SELECT, INSERT, UPDATE, DELETE, DDL)Destrutiva

Uso

Com o Claude Desktop

Adicione esta configuração ao claude_desktop_config.json:

{
  "mcpServers": {
    "mssql": {
      "command": "uv",
      "args": [
        "--directory",
        "path/to/mssql_mcp_server",
        "run",
        "mssql_mcp_server"
      ],
      "env": {
        "MSSQL_HOST": "localhost",
        "MSSQL_USER": "your_username",
        "MSSQL_PASSWORD": "your_password",
        "MSSQL_DATABASE": "your_database"
      }
    }
  }
}

Com o Cursor IDE

Adicione isto ao seu .cursor/mcp.json:

{
  "mcpServers": {
    "mssql": {
      "command": "uv",
      "args": [
        "--directory",
        "path/to/mssql_mcp_server",
        "run",
        "mssql_mcp_server"
      ],
      "env": {
        "MSSQL_HOST": "localhost",
        "MSSQL_USER": "your_username",
        "MSSQL_PASSWORD": "your_password",
        "MSSQL_DATABASE": "your_database"
      }
    }
  }
}

Com pip install (global)

{
  "mcpServers": {
    "mssql": {
      "command": "mssql_mcp_server",
      "env": {
        "MSSQL_HOST": "localhost",
        "MSSQL_USER": "your_username",
        "MSSQL_PASSWORD": "your_password",
        "MSSQL_DATABASE": "your_database"
      }
    }
  }
}

Com Docker

docker build -t mssql-mcp-server .
docker run -e MSSQL_HOST=host.docker.internal \
           -e MSSQL_USER=your_username \
           -e MSSQL_PASSWORD=your_password \
           -e MSSQL_DATABASE=your_database \
           mssql-mcp-server

Executando como Servidor Autônomo

# Install dependencies
pip install -r requirements.txt

# Run the server (stdio)
python -m mssql_mcp_server

# Run with HTTP transport
MCP_TRANSPORT=streamable-http python -m mssql_mcp_server

Desenvolvimento e Testes

# Clone the repository
git clone https://github.com/JexinSam/mssql_mcp_server.git
cd mssql_mcp_server

# Set up a virtual environment
python -m venv venv
source venv/bin/activate  # On Windows: venv\Scripts\activate

# Install development dependencies
pip install -r requirements-dev.txt
pip install -e .

# Run tests
pytest -v

# Test with MCP Inspector
uv run mcp dev src/mssql_mcp_server/server.py

Solução de Problemas

Erro "Programa Não Encontrado"

Isso geralmente significa que o comando mssql_mcp_server não está no seu PATH. Soluções:

  1. Use uv (recomendado): Configure seu cliente MCP para usar uv --directory path/to/mssql_mcp_server run mssql_mcp_server
  2. Use o caminho completo: Encontre o local de instalação com pip show mssql-mcp-server e use o diretório de scripts
  3. Use python -m: Execute como python -m mssql_mcp_server

Problemas com o Driver MSSQL

O driver padrão é SQL Server (integrado ao Windows). Para Linux/macOS ou recursos mais recentes:

  1. Instale o Microsoft ODBC Driver 18
  2. Defina MSSQL_DRIVER="ODBC Driver 18 for SQL Server"

Tempos de Conexão Excedidos

Se estiver usando MSSQL_SERVER de outros projetos, este servidor suporta ambas as variáveis de ambiente MSSQL_HOST e MSSQL_SERVER (com MSSQL_HOST tendo prioridade).

Considerações de Segurança

  • Use um usuário MSSQL dedicado com privilégios mínimos.
  • Nunca use credenciais de root ou contas administrativas completas.
  • Restrinja o acesso ao banco de dados apenas às operações necessárias (por exemplo, use GRANT SELECT somente se o modelo não deve modificar dados). As anotações readOnlyHint e destructiveHint são para a experiência do usuário no cliente; a segurança é aplicada inteiramente pelas suas credenciais do banco de dados.
  • Ative registro e auditoria para monitoramento de segurança.
  • Revise as permissões regularmente para garantir acesso com privilégios mínimos.

Práticas Recomendadas de Segurança

Para uma configuração segura:

  1. Crie um usuário MSSQL dedicado com permissões restritas.
  2. Evite credenciais codificadas — use variáveis de ambiente.
  3. Restrinja o acesso apenas às tabelas e operações necessárias.
  4. Ative o registro e monitoramento do SQL Server para auditoria.
  5. Revise o acesso ao banco de dados regularmente para prevenir acesso não autorizado.

Para instruções detalhadas, consulte o Guia de Configuração de Segurança MSSQL.

⚠️ IMPORTANTE: Sempre siga o Princípio do Menor Privilégio ao configurar o acesso ao banco de dados.

Licença

Este projeto é licenciado sob a Licença MIT. Consulte o arquivo LICENSE para detalhes.

Contribuições

Aceitamos contribuições! Para contribuir:

  1. Faça um fork do repositório.
  2. Crie um branch de recurso: git checkout -b feature/amazing-feature
  3. Faça commit das suas alterações: git commit -m 'Add amazing feature'
  4. Envie para o branch: git push origin feature/amazing-feature
  5. Abra um Pull Request.

Precisa de Ajuda?

Para qualquer dúvida ou problema, sinta-se à vontade para abrir uma Issue no GitHub ou entrar em contato com os mantenedores.