sqlpad-mcp
SQLPad MCP Server
Ein MCP-Server für SQLPad. Richten Sie einen KI-Agenten mit der Basis-URL und einem Service-Token auf eine SQLPad-Instanz aus, und der Agent kann Verbindungen entdecken, Schemata untersuchen, SQL ausführen und gespeicherte Abfragen verwalten.
Anforderungen
Node.js 20 oder höher.
Eine erreichbare SQLPad-Instanz.
Der SQLPad-Server muss
SQLPAD_SERVICE_TOKEN_SECRETkonfiguriert haben. Ohne diese Konfiguration gibt jede Bearer-authentifizierte Anfrage401 Unauthorizedzurück.Ein Service-Token, der in der SQLPad-Admin-GUI generiert wurde.
Related MCP server: SQLite Database MCP Server
Schnellstart
Kein Installationsschritt erforderlich – führen Sie es direkt über npm aus:
SQLPAD_SERVICE_TOKEN=... npx sqlpad-mcp --base-url https://sqlpad.example.comOder installieren Sie es global:
npm install -g sqlpad-mcpDer Server spricht MCP über stdio und wird daher normalerweise von einem MCP-Client gestartet und nicht von Hand. Die direkte Ausführung ist dennoch nützlich, um Anmeldeinformationen zu überprüfen: Bei Erfolg protokolliert er die erkannte SQLPad-Version auf stderr.
Konfiguration
Env-Variable | CLI-Flag | Standard | Bedeutung |
|
| (erforderlich) | Basis-URL der SQLPad-Instanz; ein Subpfad-Mount wird unterstützt. |
|
| (erforderlich) | Service-Token, gesendet als |
|
|
| Registriert die Schreibwerkzeuge für gespeicherte Abfragen. |
|
|
| Registriert die Nur-Admin-Werkzeuge. |
|
|
| Obergrenze für Zeilen, die pro Anweisung zurückgegeben werden. |
|
|
| Wie lange ein Batch abgefragt wird, bevor eine fortsetzbare |
Ein CLI-Flag hat Vorrang vor der entsprechenden Umgebungsvariable. Das Batch-Abfrageintervall (250 ms) ist intern und nicht konfigurierbar.
Claude Code Konfiguration
Fügen Sie den Server zu Ihrer Claude Code mcp.json hinzu:
{
"mcpServers": {
"sqlpad": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"sqlpad-mcp",
"--base-url",
"https://sqlpad.example.com"
],
"env": {
"SQLPAD_SERVICE_TOKEN": "..."
}
}
}
}Die Bereitstellung des Tokens über env hält es aus der Prozessargumentliste heraus, die über ps für alle lesbar ist.
Um die gesperrten Werkzeuggruppen zu aktivieren, fügen Sie "SQLPAD_ALLOW_WRITES": "true" oder "SQLPAD_ALLOW_ADMIN": "true" zum selben env-Block hinzu.
Werkzeuge
Zwölf Werkzeuge sind immer registriert. Sechs weitere sind hinter den beiden SQLPAD_ALLOW_*-Flags gesperrt und standardmäßig deaktiviert.
Ausführung
Werkzeug | Beschreibung |
| Führt beliebiges SQL aus, einschließlich DDL und DML, indem ein asynchroner SQLPad-Batch erstellt, bis zum Abschluss abgefragt und Zeilen inline zurückgegeben werden. Nicht sandboxed. Zeilen sind durch |
| Ruft einen Batch und seine aktuellen Anweisungsstatus ab. Rufen Sie dies auf, nachdem |
| Blättert durch ein großes abgeschlossenes Anweisungsergebnis, anstatt die Abfrage erneut auszuführen. Gibt eine begrenzte Seite zurück, die mithilfe der Spaltennamen der Anweisung in Objekte umgewandelt wird. |
| Fordert den Abbruch eines asynchronen Batches an. SQLPad lehnt den Abbruch ab, wenn die Verbindung keine asynchrone Ausführung unterstützt. |
Entdeckung
Werkzeug | Beschreibung |
| Listet die Verbindungen auf, die für das Service-Token verfügbar sind. Funktioniert mit einem Nicht-Admin-Token, anders als |
| Ruft ein begrenztes Datenbankschema für eine Verbindung ab. Ungefilterte Vollschema-Ausgabe kann enorm sein – bevorzugen Sie |
| Listet SQLPad-Datenbanktreiber auf, begrenzt durch das angeforderte Limit. |
Gespeicherte Abfragen
Werkzeug | Beschreibung |
| Listet gespeicherte Abfragen mit optionalen Filtern für Verbindung, Text, Tag, Eigentümer, Ersteller und Sortierung auf. |
| Ruft eine gespeicherte Abfrage anhand ihrer ID ab. |
| Listet verschiedene Tags gespeicherter Abfragen mit begrenzter lokaler Paginierung auf. |
| Listet den Abfrageverlauf des aufrufenden Benutzers auf, neueste zuerst, mit begrenzter lokaler Paginierung. |
| Formatiert SQL-Text mit SQLPad. Ältere SQLPad-Server bieten diesen Endpunkt möglicherweise nicht an. |
Schreibvorgänge für gespeicherte Abfragen – erfordert SQLPAD_ALLOW_WRITES=true
Werkzeug | Beschreibung |
| Erstellt eine gespeicherte Abfrage. |
| Ersetzt die bearbeitbaren Felder einer vorhandenen gespeicherten Abfrage. |
| Löscht eine gespeicherte Abfrage dauerhaft. |
Admin – erfordert SQLPAD_ALLOW_ADMIN=true
Diese rufen SQLPad-Endpunkte auf, die selbst ein Admin-Service-Token erfordern.
Werkzeug | Beschreibung |
| Ruft eine Verbindung anhand ihrer ID ab. |
| Testet eine Verbindungskonfiguration, ohne sie zu speichern. |
| Listet SQLPad-Benutzer mit expliziten Ausgabegrenzen auf. |
So funktioniert die SQL-Ausführung
SQLPad führt SQL über asynchrone Batches aus. Das Erstellen eines Batches gibt sofort zurück; jede Anweisung wechselt von queued zu started und dann zu finished oder error. Ergebnisse werden für jede Anweisung separat abgerufen und sind erst verfügbar, wenn die Anweisung abgeschlossen ist.
Das run_sql-Werkzeug übernimmt das gesamte Protokoll – erstellen, abfragen, abrufen und Zeilen zurückgeben – sodass ein Agent nur einen Aufruf tätigt. Wenn die Abfrage das konfigurierte Timeout erreicht, gibt das Werkzeug eine batchId zurück, mit der der Agent fortfahren kann, anstatt zu hängen.
Verbindungen haben möglicherweise keine Standarddatenbank. Qualifizieren Sie Tabellennamen als schema.table und verwenden Sie get_connection_schema, um verfügbare Schemata zu entdecken.
Sicherheit
run_sqlführt beliebiges SQL aus, einschließlich DDL und DML, und ist nicht sandboxed.SQLPAD_ALLOW_WRITESbeschränkt nur die Mutation der eigenen gespeicherten Abfrageobjekte von SQLPad; es schränkt den SQL-Inhalt nicht ein. Verwenden Sie schreibgeschützte Datenbankanmeldeinformationen für die SQLPad-Verbindung selbst. Das ist die einzige echte Durchsetzung.Die
/api/service-tokens-Endpunkte von SQLPad sind bewusst nicht exponiert. Ein Werkzeug, das Anmeldeinformationen erstellt, ist ein Privilegieneskalations-Primitiv.Admin-Werkzeuge sind standardmäßig deaktiviert.
Das Service-Token wird aus allen Fehlern und Protokollen entfernt. Die gesamte Protokollierung erfolgt über stderr, da stdout der JSON-RPC-Kanal ist.
Batches sind auf den eigenen Benutzer des Tokens beschränkt, sodass der Server nur seinen eigenen Abfrageverlauf sieht.
Mitwirken
Klonen Sie das Repository und installieren Sie die Abhängigkeiten:
git clone https://github.com/VAIBHAV7500/sqlpad-mcp.git
cd sqlpad-mcp
npm install
npm run buildErstellen Sie einen Branch für Ihre Änderung. Bevor Sie einen Pull-Request öffnen, führen Sie Folgendes aus:
npm run typecheck && npm run lint && npm testCI führt dieselben drei Befehle auf Node 20 und 22 aus.
Lizenz
This server cannot be deployed
Maintenance
Related MCP Connectors
Model Context Protocol server for the Apideck Unified API. Connect any MCP-compatible agent framework to 100+ accounting systems, HRIS platforms, file storage providers, and more through one integration. More information https://www.apideck.com/mcp-server
Safe, read-only Postgres and MySQL access for AI agents. Audit log + column-level controls.
- OleanderOAuthdev.oleander
The all-in-one data stack for agents. Upload files, run SQL, evolve tables, and render charts.
Connect AI agents to ProductNow's context engine to search, create, review, and act.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceEnables AI agents to query databases via natural language using the Model Context Protocol, with automatic schema discovery, SQL query execution, and read-only safety checks.-
- FlicenseNot gradedqualityDmaintenanceEnables AI agents to connect to and query an SQLite database through the Model Context Protocol, allowing natural language interaction with database tables and data.-
- AlicenseAqualityDmaintenanceEnables AI agents to search and read Metabase dashboards and cards, explore database schema, and run read-only query previews through the Model Context Protocol.1715 npm2MIT
- FlicenseAqualityDmaintenanceEnables AI assistants to query, analyze, and manage SQL Server databases through natural language via the Model Context Protocol.61-