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
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
| Herramienta | Descripción | Anotaciones |
|---|---|---|
list_tables | Listar todas las tablas de la base de datos | Solo lectura, Idempotente |
query_sql | Ejecutar consultas SELECT de solo lectura | Solo lectura, Idempotente |
execute_sql | Ejecutar 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:
- Use
uv(recomendado): configure su cliente MCP para usaruv --directory path/to/mssql_mcp_server run mssql_mcp_server - Use la ruta completa: encuentre la ubicación de instalación con
pip show mssql-mcp-servery use el directorio de scripts - Use
python -m: ejecute comopython -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:
- Instale Microsoft ODBC Driver 18
- 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 SELECTsolo si el modelo no debe modificar datos). Las anotacionesreadOnlyHintydestructiveHintson 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:
- Cree un usuario MSSQL dedicado con permisos restringidos.
- Evite codificar credenciales—use variables de entorno en su lugar.
- Restrinja el acceso solo a las tablas y operaciones necesarias.
- Habilite el registro y monitoreo de SQL Server para auditoría.
- 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:
- Haga un fork del repositorio.
- Cree una rama de características:
git checkout -b feature/amazing-feature - Confirme sus cambios:
git commit -m 'Add amazing feature' - Empuje a la rama:
git push origin feature/amazing-feature - 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.