Skip to main content
Glama
Debanjan29

mcp-sqlserver

by Debanjan29

mcp-sqlserver

Ein leistungsstarker Model Context Protocol (MCP)-Server für Microsoft SQL Server. Verbindet KI-Assistenten (Claude, Gemini, Kiro, OpenAI, Copilot, Cursor) direkt mit Ihren SQL-Server-Datenbanken – mit Sicherheitskontrollen auf Enterprise-Niveau.

39 Tools in 7 Kategorien: Schema-Erkennung, Abfrageausführung, DDL, gespeicherte Prozeduren, Performance-/DBA-Diagnose, Entwickler-Utilities und Serververwaltung.

npm version GitHub release

Changelog: Siehe CHANGELOG.md für die Versionshistorie oder GitHub Releases für detaillierte Versionshinweise.

Neuerungen in v1.3

  • Multi-Server-Unterstützung – Definieren Sie Dev-/Staging-/Prod-Server in einer Konfiguration und wechseln Sie mit dem Parameter server

  • list_servers-Tool – Alle konfigurierten Verbindungen auf einen Blick

  • Sicherheit pro Server – Jeder Server erhält seinen eigenen Sicherheitsmodus, Zeilenlimits und blockierte Datenbanken

  • Abwärtskompatibel – Bestehende Single-Server-Konfigurationen funktionieren ohne Änderungen

Related MCP server: SQL Server MCP

Neuerungen in v1.2

  • 16 neue Tools – DBA-Diagnose, Code-Generierung, ER-Diagramme, Schema-Diff, Daten-Stichproben und mehr

  • SQL-Injection-Schutz – Alle Abfragen verwenden jetzt parametrisierte Eingaben und escaped Bezeichnern

  • ISO-Datumsformat – Datumsangaben werden als 2025-01-27 statt als rohe JavaScript-Date-Strings angezeigt

  • Streamable-HTTP-Transport – Hosten Sie den MCP-Server remote mit --http <port>

  • Health-Check – Verbindungsstatus und Serverreaktionsfähigkeit prüfen

Funktionen

Serververwaltung (1 Tool)

Tool

Beschreibung

list_servers

Alle konfigurierten Serververbindungen mit Host, Datenbank, Authentifizierung und Sicherheitsmodus auflisten

Multi-Server: Jedes Tool akzeptiert einen optionalen server-Parameter, um einen bestimmten benannten Server als Ziel auszuwählen. Lassen Sie ihn weg, um den Standard-Server zu verwenden.

Schema-Erkennung (9 Tools)

Tool

Beschreibung

list_databases

Alle verfügbaren Datenbanken auf der Instanz auflisten

list_schemas

Datenbankschemas auflisten

list_tables

Tabellen mit Zeilenzahlen und Größen auflisten

list_views

Ansichten in einer Datenbank auflisten

describe_table

Detaillierte Spalteninformationen: Typen, Standardwerte, NULL-Zulässigkeit, Identität, berechnete Spalten

get_foreign_keys

Fremdeschlüsselbeziehungen für eine Tabelle

get_indexes

Indexinformationen mit den enthaltenen Spalten

get_constraints

PK-, UNIQUE-, Check- und Default-Constraints

get_triggers

Triggerdefinitionen auf einer Tabelle

Abfrageausführung (3 Tools)

Tool

Beschreibung

execute_query

SELECT-Abfragen mit automatischen Zeilenlimits ausführen

execute_mutation

INSERT/UPDATE/DELETE/MERGE ausführen (erfordert den Modus readwrite)

export_query

Abfrageergebnisse als CSV oder JSON exportieren

DDL-Operationen (1 Tool)

Tool

Beschreibung

execute_ddl

CREATE/ALTER/DROP-Anweisungen ausführen (erfordert den Modus admin)

Gespeicherte Prozeduren (3 Tools)

Tool

Beschreibung

list_procedures

Gespeicherte Prozeduren in einer Datenbank auflisten

describe_procedure

Parameter und den Quellcode einer Prozedur anzeigen

execute_procedure

Mit benannten Parametern ausführen (erfordert den Modus readwrite)

Performance & DBA (16 Tools)

Tool

Beschreibung

get_query_plan

Geschätzter Ausführungsplan für jede Abfrage

get_active_queries

Derzeit ausgeführte Abfragen aus sys.dm_exec_requests

get_table_stats

Zeilenzahl, insgesamt/verwendeter/nicht verwendeter Speicherplatz und Fragmentierung in %

get_index_usage

Index-Seeks, Scans, Lookups und Update-Statistiken

get_missing_indexes

Vorschläge für fehlende Indizes mit einsatzfertigen CREATE-INDEX-DDL

get_server_info

Serverversion, Edition, CPU-Anzahl, Arbeitsspeicher, Laufzeit

get_database_info

Datenbankgröße, Dateilayout, Status, Wiederherstellungsmodell, Objektanzahl

get_wait_stats

Wichtigste Server-Wartestatistiken – identifiziert CPU-, I/O- und Sperr-Engpässe

get_deadlocks

Letzte Deadlock-Ereignisse aus der system_health-Extended-Events-Sitzung

get_blocking_chains

Aktuelle Sperrketten – welche Sitzungen blockieren werden

get_long_transactions

Transaktionen mit langer Ausführdauer, die möglicherweise Sperren halten

get_space_usage

Detaillierte Speichernutzung pro Tabelle (Daten, Index, Unbenutz)

get_backup_history

Letzte Sicherungshistorie: Typ, Größe, Dauer, Gerätepfad

get_query_store_stats

Ressourcenintensivste Abfragen aus dem Query Store (SQL Server 2016+) – sortierbar nach CPU, Dauer, Lesevorgängen, Schreibvorgängen oder Ausführungen

rebuild_index

Einen fragmentierten Index neu aufbauen oder reorganisieren (erfordert den Modus admin)

health_check

Verbindungs-Health-Check mit Latenz, Version, aktiven Sitzungen

Entwickler-Utilities (6 Tools)

compare_schemas – SchemaDiff

Vergleicht zwei Datenbanken Seiten an Seite. Zeigt Tabellen, Spalten und Spaltentypunterschiede – ideal für den Vergleich von Dev und Prod.

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

Die Ausgabe enthält: Tabellen, die nur in Quelle bzw. Ziel vorkommen, sowie Spalten, die nur in Quelle bzw. Ziel vorkommen, sowie Spaltentyp- und NULL-Zulässigkeitsunterschiede.

generate_code – Codegenerierung

Generiert typisierten Code aus dem Schema einer beliebigen Tabelle:

  • TypeScript – mittelschnittstellen mit passenden Typen (number, string, Date, Buffer | null)

  • C# – Klassen mit nullable value types (int?, DateTime?, decimal?)

  • SQLCREATE TABLE-Skripte mit vollständigen Spaltendefinitionen

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

generate_insert_scripts – Datenexport als INSERT

Generiert INSERT-Anweisungen aus vorhandenen Tabellendaten – nützlich für Migrationsskripte, Seed-Daten oder für das Sichern kleiner Referenztabellen.

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

generate_er_diagram – ER-Diagramm

Generiert ein Mermaid-ER-Diagramm aus den Fremdschlüsselbeziehungen. Fügen Sie die Ausgabe in jeden Mermaid-kompatiblen Renderer ein (GitHub, Notion, VS Code usw.).

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

generate_test_data – Generierung von Testdaten

Generiert realistische INSERT-Anweisungen mit plausiblen Daten auf Basis von Spaltennamen und Typen. Intelligente Heuristiken für übliche Muster (E-Mail, Telefon, Name, Stadt, Preis usw.).

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

sample_table – Zufallsstichprobe

Entnimmt eine Zufallsstichprobe aus jeder Tabelle mit NEWID() – hilfreich für KI-Assistenten, um Datenmuster zu verstehen, ohne ganze Tabellen zu durchsuchen.

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

Sicherheit

Drei Sicherheitsmodi

Modus

SELECT

INSERT/UPDATE/DELETE

DDL

Gespeicherte Prozeduren

readonly

Ja

Nein

Nein

Nur lesen (list/describe)

readwrite

Ja

Ja

Nein

Vollständig (execute)

admin

Ja

Ja

Ja

Vollständig (execute)

Schutz gegen SQL-Injection

Alle benutzer bereitgestellten Werte werden als parametrisierte Query-Eingaben (@param) übergeben. Objektbezeichner (Datenbank-, Schema- und Tabellennamen) werden mit der SQL-Server-Klammernotation escaped ([name] mit ]]]).

Weitere Sicherheitsfunktionen

  • Datenbank- und Schema- Zulassungs- und Blocklisten

  • Automatische Zeilenlimits (konfigurierbar über maxRowCount)

  • Erkennung gesperrter Schlüsselwörter (xp_cmdshell, SHUTDOWN, DROP DATABASE usw.)

  • Datenmaskierung – auf Spaltenebene zum Schutz personenbezogener Daten

  • Query-Typ-, Validierung über den jeweiligeen – Sicherheitsmodus

Datenmaskierung

Maskieren Sie sensible Spalten in Query-Ergebnissen:

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

Musterformat: [schema.]table.column (* als Platzhalter)

Authentifizierung

Methode

Konfiguration––type

Anforderungen

SQL Server

sql

user + password

Windows (NTLM)

windows

user + password + optional domain

Windows (SSPI)

windows

Keine Anmeldedaten erforderlich; erfordert msnodesqlv8

Azure AD

azure-ad

clientId + clientSecret + tenantId

Windows-Authentifizierung

NTLM – Funktioniert sofort ohne Zusatzpakete:

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

SSPI / Integrierte Sicherheit – Verwenden der aktuellen Windows-Anmeldesitzung:

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

Hinweis: Bei Verwendung von npx kann optionale Abhängigkeiten wie msnodesqlv8 möglicherweise nicht automatisch installiert werden. Für SSPI erwägen Sie eine globale Installation (npm install -g @tugberkgunver/mcp-sqlserver msnodesqlv8) oder verwenden Sie stattdessen den NTLM-Modus.

Transport

stdio (Standard)

Standard-Eingabe-/Ausgabe-Transport – verwendet von MCP-Clients wie Claude Desktop, VS Code, Cursor usw.

Streamable HTTP

Für Remote-Hosting oder Web-Integration:

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

Dies startet:

  • MCP-Endpunkt: http://localhost:3000/mcp

  • Health-Check: http://localhost:3000/health{"status":"ok","mode":"readonly"}

Enthält CORS-Unterstützung für browserbasierte Clients.

Schnellstart

Installation

npm install -g @tugberkgunver/mcp-sqlserver

Konfiguration

Erstellen Sie die Datei mssql-mcp.yaml in Ihrem Arbeitsverzeichnis:

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

Alle Optionen finden Sie in config.example.yaml.

Multi-Server-Konfiguration

Definieren Sie mehrere benannte Server, um Dev/Staging/Prod aus einer einzigen Konfiguration zu verwalten:

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]

Verwenden Sie dann den Parameter server in einem beliebigen Tool-Aufruf:

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

MCP-Client-Konfiguration

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

Mit einer Konfigurationsdatei:

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

Hinzufügen zu .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"
      }
    }
  }
}

Hinzufügen zu ~/.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"
      }
    }
  }
}

Hinzufügen zu .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"
      }
    }
  }
}

Hinzufügen zu ~/.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"
      }
    }
  }
}

Hinzufügen zu ~/.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"
      }
    }
  }
}

Verwenden Sie unter Windows cmd als Befehlswrapper:

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

Umgebungsvariablen

Variable

Beschreibung

MSSQL_HOST

Hostname des SQL-Servers

MSSQL_PORT

Port des SQL-Servers (Standard: 1433)

MSSQL_DATABASE

Standard-Datenbank

MSSQL_USER

Benutzername für SQL-Authentifizierung

MSSQL_PASSWORD

Passwort für SQL-Authentifizierung

MSSQL_MCP_CONFIG

Pfad zur YAML-Konfigurationsdatei

Umgebungsvariablen überschreiben die Werte der Konfigurationsdatei.

Entwicklung

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

Lizenz

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