MSSQL MCP Server

Interactúa con bases de datos de Microsoft SQL Server (MSSQL). Lista tablas, lee datos y ejecuta consultas SQL con acceso controlado.

Documentación

Tests

MSSQL MCP Server

MSSQL MCP Server es un servidor de Model Context Protocol (MCP) que permite una interacción segura y estructurada con bases de datos Microsoft SQL Server (MSSQL). Permite a los asistentes de IA:

  • Listar tablas disponibles
  • Leer el contenido de las tablas
  • Ejecutar consultas SQL con acceso controlado

Construido sobre MCP SDK v2 (especificación 2026-07-28) con soporte para transportes stdio y Streamable HTTP.

Características

  • Acceso seguro a bases de datos MSSQL mediante variables de entorno
  • Protección contra inyección SQL con validación de identificadores
  • Herramientas de solo lectura y escritura con anotaciones MCP apropiadas
  • Soporte de autenticación de Windows mediante Trusted Connection
  • Transporte dual — stdio (predeterminado) y HTTP
  • Soporte de Docker con controladores ODBC preconfigurados
  • Registro integral para monitorear consultas y operaciones

Instalación

pip install mssql-mcp-server

Configuración

Establezca las siguientes variables de entorno para configurar el acceso a la base de datos:

# 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

Herramientas disponibles

HerramientaDescripciónAnotaciones
list_tablesListar todas las tablas de la base de datosSolo lectura, Idempotente
query_sqlEjecutar consultas SELECT de solo lecturaSolo lectura, Idempotente
execute_sqlEjecutar cualquier sentencia SQL (SELECT, INSERT, UPDATE, DELETE, DDL)Destructiva

Uso

Con Claude Desktop

Agregue esta configuración a 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"
      }
    }
  }
}

Con Cursor IDE

Agregue esto a su .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"
      }
    }
  }
}

Con 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"
      }
    }
  }
}

Con 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

Ejecución como servidor independiente

# 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

Desarrollo y pruebas

# 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

Solución de problemas

Error "Programa no encontrado"

Esto generalmente significa que el comando mssql_mcp_server no está en su PATH. Soluciones:

  1. Use uv (recomendado): configure su cliente MCP para usar uv --directory path/to/mssql_mcp_server run mssql_mcp_server
  2. Use la ruta completa: encuentre la ubicación de instalación con pip show mssql-mcp-server y use el directorio de scripts
  3. Use python -m: ejecute como python -m mssql_mcp_server

Problemas con el controlador MSSQL

El controlador predeterminado es SQL Server (integrado en Windows). Para Linux/macOS o funciones más nuevas:

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

Tiempos de espera de conexión

Si usa MSSQL_SERVER de otros proyectos, este servidor admite tanto las variables de entorno MSSQL_HOST como MSSQL_SERVER (con MSSQL_HOST teniendo prioridad).

Consideraciones de seguridad

  • Use un usuario MSSQL dedicado con privilegios mínimos.
  • Nunca use credenciales de root ni cuentas administrativas completas.
  • Restrinja el acceso a la base de datos solo a las operaciones necesarias (por ejemplo, use GRANT SELECT solo si el modelo no debe modificar datos). Las anotaciones readOnlyHint y destructiveHint son para la experiencia del cliente; la seguridad se aplica completamente mediante sus credenciales de base de datos.
  • Habilite el registro y la auditoría para el monitoreo de seguridad.
  • Revise periódicamente los permisos para garantizar el acceso con privilegios mínimos.

Mejores prácticas de seguridad

Para una configuración segura:

  1. Cree un usuario MSSQL dedicado con permisos restringidos.
  2. Evite codificar credenciales—use variables de entorno en su lugar.
  3. Restrinja el acceso solo a las tablas y operaciones necesarias.
  4. Habilite el registro y monitoreo de SQL Server para auditoría.
  5. Revise el acceso a la base de datos regularmente para prevenir accesos no autorizados.

Para instrucciones detalladas, consulte la Guía de configuración de seguridad de MSSQL.

⚠️ IMPORTANTE: Siga siempre el Principio de privilegio mínimo al configurar el acceso a la base de datos.

Licencia

Este proyecto está licenciado bajo la Licencia MIT. Consulte el archivo LICENSE para obtener detalles.

Contribuciones

¡Aceptamos contribuciones! Para contribuir:

  1. Haga un fork del repositorio.
  2. Cree una rama de características: git checkout -b feature/amazing-feature
  3. Confirme sus cambios: git commit -m 'Add amazing feature'
  4. Empuje a la rama: git push origin feature/amazing-feature
  5. Abra una solicitud de extracción (Pull Request).

¿Necesita ayuda?

Para cualquier pregunta o problema, no dude en abrir un Issue de GitHub o comunicarse con los mantenedores.