Skip to main content
Glama
Debanjan29

mcp-sqlserver

by Debanjan29

mcp-sqlserver

Un potente servidor Model Context Protocol (MCP) para Microsoft SQL Server. Conecta asistentes de IA (Claude, Gemini, Kiro, OpenAI, Copilot, Cursor) directamente a tus bases de datos SQL Server con controles de seguridad de nivel empresarial.

39 herramientas en 7 categorías: descubrimiento de esquemas, ejecución de consultas, DDL, procedimientos almacenados, diagnóstico de rendimiento/DBA, utilidades de desarrollo y administración del servidor.

npm version GitHub release

Cambios: Consulta CHANGELOG.md para ver el historial de versiones o GitHub Releases para obtener notas detalladas de cada versión.

Novedades en v1.3

  • Soporte multi-servidor — Define servidores de dev/staging/production en una sola configuración y cambia con el parámetro server

  • Herramienta list_servers — Consulta todas las conexiones configuradas de un vistazo

  • Seguridad por servidor — Cada servidor tiene su propio modo de seguridad, límites de filas y bases de datos bloqueadas

  • Compatibilidad retroactiva — Las configuraciones existentes de un solo servidor funcionan sin ningún cambio

Related MCP server: SQL Server MCP

Novedades en v1.2

  • 16 herramientas nuevas — Diagnóstico DBA, generación de código, diagramas ER, diff de esquemas, muestreo de datos y más

  • Protección contra inyección SQL — Todas las consultas usan entradas parametrizadas e identificadores escapados

  • Formato de fecha ISO — Las fechas se muestran como 2025-01-27 en lugar de cadenas Date de JavaScript en bruto

  • Transporte HTTP streamable — Aloja el servidor MCP de forma remota con --http <puerto>

  • Health check — Verifica el estado de la conexión y la capacidad de respuesta del servidor

Características

Administración del servidor (1 herramienta)

Herramienta

Descripción

list_servers

Lista todas las conexiones de servidor configuradas con host, base de datos, autenticación y modo de seguridad

Multi-servidor: Todas las herramientas aceptan un parámetro server opcional para apuntar a un servidor con nombre concreto. Omítelo para usar el servidor predeterminado.

Descubrimiento de esquemas (9 herramientas)

Herramienta

Descripción

list_databases

Lista las bases de datos accesibles en la instancia

list_schemas

Lista los esquemas de una base de datos

list_tables

Lista las tablas con recuento de filas y tamaños

list_views

Lista las vistas de una base de datos

describe_table

Información detallada de columnas: tipos, valores predeterminados, nulabilidad, identidad, calculadas

get_foreign_keys

Relaciones de claves externas de una tabla

get_indexes

Información de índices con columnas incluidas

get_constraints

Restricciones de clave principal (PK), únicas, check y predeterminadas

get_triggers

Definiciones de triggers en una tabla

Ejecución de consultas (3 herramientas)

Herramienta

Descripción

execute_query

Ejecuta consultas SELECT con límites de filas automáticos

execute_mutation

Ejecuta INSERT/UPDATE/DELETE/MERGE (requiere modo readwrite)

export_query

Exporta los resultados de una consulta en formato CSV o JSON

Operaciones DDL (1 herramienta)

Herramienta

Descripción

execute_ddl

Ejecuta sentencias CREATE/ALTER/DROP (requiere modo admin)

Procedimientos almacenados (3 herramientas)

Herramienta

Descripción

list_procedures

Lista los procedimientos almacenados de una base de datos

describe_procedure

Muestra los parámetros y el código fuente de un procedimiento

execute_procedure

Ejecuta con parámetros con nombre (requiere modo readwrite)

Rendimiento y DBA (16 herramientas)

Herramienta

Descripción

get_query_plan

Plan de ejecución estimado para cualquier consulta

get_active_queries

Consultas actualmente en ejecución desde sys.dm_exec_requests

get_table_stats

Recuento de filas, tamaño total/usado/sin usar y % de fragmentación

get_index_usage

Búsquedas de índice, recorridos, lookups y estadísticas de actualización

get_missing_indexes

Sugerencias de índices faltantes con DDL CREATE INDEX listo para usar

get_server_info

Versión del servidor, edición, número de CPU, memoria y tiempo de actividad

get_database_info

Tamaño de la base de datos, distribución de archivos, estado, modelo de recuperación y número de objetos

get_wait_stats

Principales estadísticas de espera del servidor: identifica cuellos de botella de CPU, E/S y bloqueos

get_deadlocks

Eventos de interbloqueo recientes de la sesión de Eventos Extendidos system_health

get_blocking_chains

Cadenas de bloqueo actuales: qué sesiones están bloqueando a otras

get_long_transactions

Transacciones abiertas de larga duración que pueden estar manteniendo bloqueos

get_space_usage

Uso detallado del espacio en disco por tabla (datos, índices, sin usar)

get_backup_history

Historial de copias de seguridad reciente: tipo, tamaño, duración, ruta del dispositivo

get_query_store_stats

Consultas de mayor consumo de recursos desde Query Store (SQL Server 2016+): ordenables por PU, duración, lecturas, escrituras o ejecuciones

rebuild_index

Reconstruye o reorganiza un índice fragmentado (requiere modo admin)

health_check

Comprobación de estado de la conexión con latencia, versión y sesiones activas

Utilidades de desarrollo (6 herramientas)

compare_schemas — Diff de esquemas

Compara dos bases de datos lado a lado. Muestra tablas, columnas y diferencias de tipo: perfecto para comparar dev vs producción.

compare_schemas(source_database: "DevDB", target_database: "ProdDB")

La salida incluye: tablas solo en el origen/destino, columnas solo en el origen/destino y diferencias de tipo/nulabilidad en las columnas.

generate_code — Generación de código

Genera código tipado a partir del esquema de cualquier tabla:

  • TypeScript — interfaces con tipos adecuados (number, string, Date, Buffer | null)

  • C# — clases con tipos de valor que admiten nulos (int?, DateTime?, decimal?)

  • SQL — scripts CREATE TABLE con definiciones de columna completas

generate_code(table: "Products", language: "typescript")
→ export interface Products {
    productId: number;
    productName: string;
    unitPrice: number | null;
    ...
  }

generate_insert_scripts — Exportación de datos como INSERT

Genera sentencias INSERT a partir de los datos existentes de una tabla, útil para guiones de migración, datos semilla o para hacer copias de tablas de referencia pequeñas.

generate_insert_scripts(table: "Categories", top: 10)
→ INSERT INTO [dbo].[Categories] ([CategoryName], [Description]) VALUES (N'Beverages', N'Soft drinks...');

generate_er_diagram — Diagrama ER

Genera un diagrama ER en Mermaid a partir de las relaciones de claves externas. Pega la salida en cualquier renderizador compatible con Mermaid (GitHub, Notion, VS Code, etc.).

generate_er_diagram(database: "Northwind")
→ erDiagram
    Products }o--|| Categories : "CategoryID"
    Products }o--|| Suppliers : "SupplierID"
    Orders }o--|| Customers : "CustomerID"
    ...

generate_test_data — Generación de datos de prueba

Genera sentencias INSERT realistas con datos ficticios basados en los nombres y tipos de las columnas. Mejor heurística para patrones comunes (email, teléfono, nombre, ciudad, precio, etc.).

generate_test_data(table: "Customers", count: 5)
→ INSERT INTO [dbo].[Customers] (...) VALUES (N'Alice', N'user1@example.com', N'New York', ...);

sample_table — Muestreo aleatorio

Obtén una muestra aleatoria de filas de cualquier tabla con NEWID() — útil para que los asistentes de IA entiendan los patrones de datos sin recorrer las tablas enteras.

sample_table(table: "Orders", count: 5)

Seguridad

Tres modos de seguridad

Modo

SELECT

INSERT/UPDATE/DELETE

DDL

Procedimientos almacenados

readonly

No

No

Solo lectura (listar/describir)

readwrite

No

Completo (ejecutar)

admin

Completo (ejecutar)

Protección contra inyección SQL

Todos los valores proporcionados por el usuario se pasan como entradas de consulta parametrizadas (@param). Los identificadores de objetos (base de datos, esquema, tabla) se escapan con la notación de corchetes de SQL Server ([name] con ]]]).

Funciones de seguridad adicionales

  • Listas de permitir/bloquar para bases de datos y esquemas

  • Límites automáticos de filas (si se configura maxRowCount)

  • Detección de palabras clave bloqueadas (xp_cmdshell, SHUTDOWN, DROP DATABASE, etc.)

  • Enmascaramiento de datos a nivel de columna para proteger PII

  • Validación del tipo de consulta según el modo de seguridad

Enmascaramiento de datos

Enmascara columnas sensibles en los resultados de las consultas:

security:
  maskColumns:
    - pattern: "*.password"
      mask: "***"
    - pattern: "*.ssn"
      mask: "XXX-XX-XXXX"
    - pattern: "dbo.users.email"
      mask: "***@***.***"

Formato del patrón: [schema.]table.column (usa * como comodín)

Autenticación

Método

Config type

Requisitos

SQL Server

sql

user + password

Windows (NTLM)

windows

user + password + domain opcional

Windows (SSPI)

windows

No se necesitan credenciales; requiere msnodesqlv8

Azure AD

azure-ad

clientId + clientSecret + tenantId

Autenticación de Windows

NTLM — Funciona de forma inmediata, sin paquetes adicionales:

connection:
  host: YOUR_SERVER\SQLEXPRESS
  authentication:
    type: windows
    user: YourUsername
    password: YourPassword
    domain: YOUR_DOMAIN
  trustServerCertificate: true

SSPI / Seguridad integrada — Usa la sesión de inicio de sesión actual de Windows:

npm install msnodesqlv8
connection:
  host: YOUR_SERVER\SQLEXPRESS
  authentication:
    type: windows
  trustServerCertificate: true

Nota: Al usar npx, las dependencias opcionales como msnodesqlv8 pueden no instalarse automáticamente. Para SSPI, considera instalar de forma global (npm install -g @tugberkgunver/mcp-sqlserver msnodesqlv8) o usa el modo NTLM.

Transporte

stdio (predeterminado)

Transporte estándar de entrada/salida, utilado por clientes MCP como Claude Desktop, VS Code, Cursor, etc.

Streamable HTTP

Para alojamiento remoto o integraciones web:

mcp-sqlserver --config mssql-mcp.yaml --http 3000

Esto inicia:

  • Endpoint MCP: http://localhost:3000/mcp

  • Comprobación de estado: http://localhost:3000/health{"status":"ok","mode":"readonly"}

Incluye soporte CORS para clientes basados en navegador.

Inicio rápido

Instalación

npm install -g @tugberkgunver/mcp-sqlserver

Configuración

Crea un mssql-mcp.yaml en tu directorio de trabajo:

connection:
  host: localhost
  port: 1433
  database: MyDatabase
  authentication:
    type: sql
    user: sa
    password: YourPassword123
  trustServerCertificate: true

security:
  mode: readonly
  maxRowCount: 1000
  blockedDatabases:
    - master
    - msdb
    - tempdb
    - model

Ve config.example.yaml para conocer todas las opciones.

Configuración multi-servidor

Define varios servidores con nombre para administrar dev/la/desarrollo de dev/staging/prod desde una sola configuración:

defaultServer: dev

connections:
  dev:
    host: dev-server.example.com
    database: MyDatabase
    authentication:
      type: sql
      user: sa
      password: DevPass123
    trustServerCertificate: true
    security:
      mode: admin
      maxRowCount: 5000

  prod:
    host: prod-server.example.com
    database: MyDatabase
    authentication:
      type: sql
      user: readonly_user
      password: ProdReadOnly
    security:
      mode: readonly
      blockedDatabases: [master, msdb, tempdb, model]

# Global security defaults (applied to all servers unless overridden)
security:
  maxRowCount: 1000
  blockedKeywords: [xp_cmdshell, SHUTDOWN, DROP DATABASE]

Después usa el parámetro server en cualquier llamada de herramienta:

list_tables(server: "prod", database: "MyDatabase")
health_check(server: "dev")
compare_schemas(source_database: "DevDB", target_database: "StagingDB", server: "dev")

Configuración del cliente MCP

{
  "mcpServers": {
    "mssql": {
      "command": "npx",
      "args": ["-y", "@tugberkgunver/mcp-sqlserver"],
      "env": {
        "MSSQL_HOST": "localhost",
        "MSSQL_DATABASE": "MyDatabase",
        "MSSQL_USER": "sa",
        "MSSQL_PASSWORD": "YourPassword123"
      }
    }
  }
}

Con un archivo de configuración:

{
  "mcpServers": {
    "mssql": {
      "command": "npx",
      "args": ["-y", "@tugberkgunver/mcp-sqlserver", "--config", "/path/to/mssql-mcp.yaml"]
    }
  }
}

Añade a .vscode/mcp.json:

{
  "servers": {
    "mssql": {
      "command": "npx",
      "args": ["-y", "@tugberkgunver/mcp-sqlserver"],
      "env": {
        "MSSQL_HOST": "localhost",
        "MSSQL_DATABASE": "MyDatabase",
        "MSSQL_USER": "sa",
        "MSSQL_PASSWORD": "YourPassword123"
      }
    }
  }
}

Añade a ~/.cursor/mcp.json:

{
  "mcpServers": {
    "mssql": {
      "command": "npx",
      "args": ["-y", "@tugberkgunver/mcp-sqlserver"],
      "env": {
        "MSSQL_HOST": "localhost",
        "MSSQL_DATABASE": "MyDatabase",
        "MSSQL_USER": "sa",
        "MSSQL_PASSWORD": "YourPassword123"
      }
    }
  }
}

Añade a .kiro/settings/mcp.json:

{
  "mcpServers": {
    "mssql": {
      "command": "npx",
      "args": ["-y", "@tugberkgunver/mcp-sqlserver"],
      "env": {
        "MSSQL_HOST": "localhost",
        "MSSQL_DATABASE": "MyDatabase",
        "MSSQL_USER": "sa",
        "MSSQL_PASSWORD": "YourPassword123"
      }
    }
  }
}

Añade a ~/.gemini/settings.json:

{
  "mcpServers": {
    "mssql": {
      "command": "npx",
      "args": ["-y", "@tugberkgunver/mcp-sqlserver"],
      "env": {
        "MSSQL_HOST": "localhost",
        "MSSQL_DATABASE": "MyDatabase",
        "MSSQL_USER": "sa",
        "MSSQL_PASSWORD": "YourPassword123"
      }
    }
  }
}
{
  "mcpServers": {
    "mssql": {
      "command": "npx",
      "args": ["-y", "@tugberkgunver/mcp-sqlserver"],
      "env": {
        "MSSQL_HOST": "localhost",
        "MSSQL_DATABASE": "MyDatabase",
        "MSSQL_USER": "sa",
        "MSSQL_PASSWORD": "YourPassword123"
      }
    }
  }
}

Añade a ~/.windsurf/mcp.json:

{
  "mcpServers": {
    "mssql": {
      "command": "npx",
      "args": ["-y", "@tugberkgunver/mcp-sqlserver"],
      "env": {
        "MSSQL_HOST": "localhost",
        "MSSQL_DATABASE": "MyDatabase",
        "MSSQL_USER": "sa",
        "MSSQL_PASSWORD": "YourPassword123"
      }
    }
  }
}

En Windows, usa cmd como envoltorio de comandos:

{
  "mcpServers": {
    "mssql": {
      "command": "cmd",
      "args": ["/c", "npx", "-y", "@tugberkgunver/mcp-sqlserver", "--config", "path/to/config.yaml"]
    }
  }
}

Variables de entorno

Variable

Descripción

MSSQL_HOST

Nombre del host de SQL Server

MSSQL_PORT

Puerto de SQL Server (predeterminado: 1433)

MSSQL_DATABASE

Base de datos predeterminada

MSSQL_USER

Nombre de usuario de autenticación SQL

MSSQL_PASSWORD

Contraseña de autenticación SQL

MSSQL_MCP_CONFIG

Ruta al archivo de configuración YAML

Las variables de entorno anulan los valores del archivo de configuración.

Desarrollo

git clone https://github.com/gunvertugberk/mcp-sqlserver.git
cd mcp-sqlserver
npm install
npm run build
npm start -- --config ./mssql-mcp.yaml

Licencia

MIT

Install Server
A
license - permissive license
B
quality
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • A
    license
    A
    quality
    D
    maintenance
    Enables AI agents to securely connect to and query Microsoft SQL Server databases with read-only access, schema discovery, and relationship mapping. Features advanced security protections, health monitoring, and bulk operations for production environments.
    9
    75
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    Enables AI assistants to interact with Microsoft SQL Server databases through query execution, schema discovery, CRUD operations, stored procedures, and data export with built-in safety controls.
    18
    Apache 2.0
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables AI assistants to securely interact with Microsoft SQL Server databases to query data, inspect schemas, and retrieve metadata with read-only operations by default and optional write capabilities.
    1
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables AI assistants to interact with Microsoft SQL Server databases through a standardized interface. Supports executing SQL queries, browsing database schemas, and viewing table data with flexible authentication options for both local and Azure SQL databases.
    5
    MIT

View all related MCP servers

Related MCP Connectors

  • Explore, query, and inspect SQLite databases with ease. List tables, preview results, and view det…

  • Connect your AI assistants to Keboola and expose your data, transformations, SQL queries, ...

  • Connect AI assistants to GitHub - manage repos, issues, PRs, and workflows through natural language.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Debanjan29/readonly-mssql-mcp-db'

If you have feedback or need assistance with the MCP directory API, please join our Discord server