SQL Server

Permite que los asistentes de IA accedan y consulten bases de datos de SQL Server.

Documentación

Servidor MCP de SQL Server

Un servidor de Model Context Protocol (MCP) que proporciona a los asistentes de IA capacidades de acceso a bases de datos SQL Server.

Características

  • Ejecutar consultas SQL con límites de seguridad automáticos
  • Inspección y exploración del esquema de la base de datos
  • Estadísticas de tablas y monitoreo de rendimiento
  • Capacidades de búsqueda avanzada para tablas y columnas
  • Funcionalidad de respaldo de tablas
  • Inserción de datos con manejo de conflictos
  • Análisis de planes de ejecución de consultas
  • Monitoreo de salud de la conexión

Inicio Rápido

1. Configurar el Entorno

# Navigate to project directory
cd C:\Users\benha\Desktop\sql-server-mcp

# Create virtual environment
python -m venv venv
venv\Scripts\activate

# Install dependencies
pip install -r requirements.txt

2. Configurar la Conexión a la Base de Datos

Edite el archivo .env con sus credenciales de SQL Server:

SQL_SERVER_HOST=192.168.1.117
SQL_SERVER_DATABASE=EM_Data
SQL_SERVER_USERNAME=benhg
SQL_SERVER_PASSWORD=your_actual_password
SQL_SERVER_PORT=1433

3. Probar el Servidor

python -m sql_server_mcp.server

Integración con Herramientas de IA

Claude Desktop

Agregue a su archivo de configuración de Claude Desktop:

Ubicación:

  • Windows: %APPDATA%\Claude\claude_desktop_config.json
  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

Configuración:

{
  "mcpServers": {
    "sql-server": {
      "command": "python",
      "args": ["-m", "sql_server_mcp.server"],
      "cwd": "C:\\Users\\benha\\Desktop\\sql-server-mcp",
      "env": {
        "SQL_SERVER_HOST": "192.168.1.117",
        "SQL_SERVER_DATABASE": "EM_Data",
        "SQL_SERVER_USERNAME": "benhg",
        "SQL_SERVER_PASSWORD": "your_password_here",
        "SQL_SERVER_PORT": "1433"
      }
    }
  }
}

VS Code

  1. Instale la extensión "Model Context Protocol"
  2. Agregue a settings.json de VS Code:
{
  "mcp.servers": {
    "sql-server": {
      "command": "python",
      "args": ["-m", "sql_server_mcp.server"],
      "cwd": "C:\\Users\\benha\\Desktop\\sql-server-mcp"
    }
  }
}

Cursor

Agregue a la configuración MCP de Cursor:

{
  "mcp": {
    "servers": {
      "sql-server": {
        "command": "python",
        "args": ["-m", "sql_server_mcp.server"],
        "cwd": "C:\\Users\\benha\\Desktop\\sql-server-mcp"
      }
    }
  }
}

Herramientas Disponibles

  1. execute_query - Ejecutar consultas SQL con límites de seguridad
  2. get_schema - Inspeccionar la estructura de la base de datos
  3. get_table_info - Información detallada de tablas con muestras
  4. explain_query - Planes de ejecución de consultas
  5. check_connection - Estado de conectividad de la base de datos
  6. get_table_stats - Métricas de tamaño y rendimiento de tablas
  7. search_tables - Buscar tablas y columnas por nombre
  8. backup_table - Crear respaldos de tablas
  9. insert_data - Insertar datos con manejo de conflictos

Ejemplos de Uso

Una vez integrado con Claude, puede preguntar:

  • "Muéstrame el esquema de mi tabla SeriesRecord"
  • "Ejecuta: SELECT TOP 10 * FROM SeriesRecord WHERE Source = 'NBP'"
  • "¿Qué tablas tengo en mi base de datos?"
  • "Crea un respaldo de mi tabla SeriesRecord"
  • "Busca cualquier tabla que contenga 'GDP'"
  • "Muéstrame estadísticas de todas mis tablas"

Características de Seguridad

  • Límites automáticos de consultas (TOP 1000 por defecto)
  • Soporte de consultas parametrizadas
  • Configuración basada en el entorno
  • Agrupación de conexiones y verificaciones de salud
  • Manejo integral de errores

Desarrollo

Ejecutar Pruebas

pip install pytest pytest-asyncio
pytest tests/

Estructura del Proyecto

sql-server-mcp/
├── sql_server_mcp/
│   ├── __init__.py
│   └── server.py
├── tests/
│   ├── __init__.py
│   └── test_server.py
├── requirements.txt
├── pyproject.toml
├── .env
└── README.md

Solución de Problemas

Problemas Comunes

  1. Controlador ODBC No Encontrado: Instale Microsoft ODBC Driver 17 para SQL Server
  2. Conexión Fallida: Verifique la dirección del servidor, las credenciales y la conectividad de red
  3. Permiso Denegado: Asegúrese de que el usuario de la base de datos tenga los permisos apropiados

Probar la Conexión

# Test ODBC drivers
import pyodbc
print(pyodbc.drivers())

# Test basic connection
from sqlalchemy import create_engine, text
engine = create_engine('mssql+pyodbc://user@server:port/database?driver=ODBC+Driver+17+for+SQL+Server')
with engine.connect() as conn:
    result = conn.execute(text('SELECT 1'))
    print('Connection successful!')

Licencia

Licencia MIT - consulte el archivo LICENSE para más detalles.