mcp-sqlserver
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.
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
serverlist_servers-Tool – Alle konfigurierten Verbindungen auf einen BlickSicherheit 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-27statt als rohe JavaScript-Date-Strings angezeigtStreamable-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 |
| 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 |
| Alle verfügbaren Datenbanken auf der Instanz auflisten |
| Datenbankschemas auflisten |
| Tabellen mit Zeilenzahlen und Größen auflisten |
| Ansichten in einer Datenbank auflisten |
| Detaillierte Spalteninformationen: Typen, Standardwerte, NULL-Zulässigkeit, Identität, berechnete Spalten |
| Fremdeschlüsselbeziehungen für eine Tabelle |
| Indexinformationen mit den enthaltenen Spalten |
| PK-, UNIQUE-, Check- und Default-Constraints |
| Triggerdefinitionen auf einer Tabelle |
Abfrageausführung (3 Tools)
Tool | Beschreibung |
| SELECT-Abfragen mit automatischen Zeilenlimits ausführen |
| INSERT/UPDATE/DELETE/MERGE ausführen (erfordert den Modus |
| Abfrageergebnisse als CSV oder JSON exportieren |
DDL-Operationen (1 Tool)
Tool | Beschreibung |
| CREATE/ALTER/DROP-Anweisungen ausführen (erfordert den Modus |
Gespeicherte Prozeduren (3 Tools)
Tool | Beschreibung |
| Gespeicherte Prozeduren in einer Datenbank auflisten |
| Parameter und den Quellcode einer Prozedur anzeigen |
| Mit benannten Parametern ausführen (erfordert den Modus |
Performance & DBA (16 Tools)
Tool | Beschreibung |
| Geschätzter Ausführungsplan für jede Abfrage |
| Derzeit ausgeführte Abfragen aus |
| Zeilenzahl, insgesamt/verwendeter/nicht verwendeter Speicherplatz und Fragmentierung in % |
| Index-Seeks, Scans, Lookups und Update-Statistiken |
| Vorschläge für fehlende Indizes mit einsatzfertigen CREATE-INDEX-DDL |
| Serverversion, Edition, CPU-Anzahl, Arbeitsspeicher, Laufzeit |
| Datenbankgröße, Dateilayout, Status, Wiederherstellungsmodell, Objektanzahl |
| Wichtigste Server-Wartestatistiken – identifiziert CPU-, I/O- und Sperr-Engpässe |
| Letzte Deadlock-Ereignisse aus der |
| Aktuelle Sperrketten – welche Sitzungen blockieren werden |
| Transaktionen mit langer Ausführdauer, die möglicherweise Sperren halten |
| Detaillierte Speichernutzung pro Tabelle (Daten, Index, Unbenutz) |
| Letzte Sicherungshistorie: Typ, Größe, Dauer, Gerätepfad |
| Ressourcenintensivste Abfragen aus dem Query Store (SQL Server 2016+) – sortierbar nach CPU, Dauer, Lesevorgängen, Schreibvorgängen oder Ausführungen |
| Einen fragmentierten Index neu aufbauen oder reorganisieren (erfordert den Modus |
| 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?)SQL –
CREATE 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 |
| Ja | Nein | Nein | Nur lesen (list/describe) |
| Ja | Ja | Nein | Vollständig (execute) |
| 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–– | Anforderungen |
SQL Server |
|
|
Windows (NTLM) |
|
|
Windows (SSPI) |
| Keine Anmeldedaten erforderlich; erfordert |
Azure AD |
|
|
Windows-Authentifizierung
NTLM – Funktioniert sofort ohne Zusatzpakete:
connection:
host: YOUR_SERVER\SQLEXPRESS
authentication:
type: windows
user: YourUsername
password: YourPassword
domain: YOUR_DOMAIN
trustServerCertificate: trueSSPI / Integrierte Sicherheit – Verwenden der aktuellen Windows-Anmeldesitzung:
npm install msnodesqlv8connection:
host: YOUR_SERVER\SQLEXPRESS
authentication:
type: windows
trustServerCertificate: trueHinweis: Bei Verwendung von
npxkann optionale Abhängigkeiten wiemsnodesqlv8mö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 3000Dies startet:
MCP-Endpunkt:
http://localhost:3000/mcpHealth-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-sqlserverKonfiguration
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
- modelAlle 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 |
| Hostname des SQL-Servers |
| Port des SQL-Servers (Standard: 1433) |
| Standard-Datenbank |
| Benutzername für SQL-Authentifizierung |
| Passwort für SQL-Authentifizierung |
| 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.yamlLizenz
MIT
Maintenance
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
- AlicenseAqualityDmaintenanceEnables 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.975MIT
- AlicenseAqualityCmaintenanceEnables 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.18Apache 2.0
- AlicenseNot gradedqualityDmaintenanceEnables 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.1MIT
- AlicenseNot gradedqualityDmaintenanceEnables 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.5MIT
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.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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