mcp-database-universal
MCP Database Server
Eine Reasoning-Schnittstelle für Datenbanken für MCP-fähige KI-Agenten – kein dünner SQL-Wrapper.
mcp-database-universal bietet KI-Agenten eine Reihe von 7 Reasoning-Tools, um eine Datenbank sicher zu erkunden und abzufragen, ihr Schema und ihre Datenstruktur zu verstehen, Fragen in natürlicher Sprache zu stellen und Beziehungen zu visualisieren – ohne rohe Verbindungsinterna preiszugeben.
Funktionen
7 Reasoning-Tools für KI-Agenten: Verbindung testen, Tabellen auflisten, eine Tabelle inspizieren, parametrisiertes SQL ausführen, Fragen in einfacher Sprache stellen, Daten profilieren und ein ER-Diagramm rendern.
Multi-Engine: SQLite (integriert) plus optional PostgreSQL, MySQL und MSSQL.
Sicherheit zuerst: standardmäßig schreibgeschützt, parametrisierte Abfragen, Anweisungsvalidierung, Zeilen-/Zeit-/Ausgabelimits.
LLM-freundliche Ausgabe: Typen übersetzt,
NULLs behandelt, Ergebnisse in Markdown-Tabellen mit Kontext formatiert.Schema-Introspection: automatisches Erkennen von Tabellen, Spalten, Indizes, Fremdschlüsseln und Beziehungen.
Natürliche Sprachabfragen: Übersetzen von Klartextfragen in SQL und Rückgabe der Ergebnisse.
Related MCP server: database-explorer-mcp
Unterstützte Engines
Engine | Anforderung | Zusätzliche Installation |
SQLite | integriert | — |
PostgreSQL | psycopg |
|
MySQL | PyMySQL |
|
MSSQL | pyodbc + ODBC-Treiber |
|
alle | — |
|
Installation
pip install mcp-database-universal
# With optional engines:
pip install "mcp-database-universal[postgres]"
pip install "mcp-database-universal[mysql]"
pip install "mcp-database-universal[mssql]"
# or everything:
pip install "mcp-database-universal[all]"Schnellstart
Führen Sie den Server über STDIO aus (der Standardtransport für MCP-Clients):
DATABASE_URL=sqlite:///app.db python -m mcp_database_universalVerbindungs-URLs:
sqlite:///path/to/db.db SQLite (file)
sqlite:///:memory: SQLite (in-memory)
postgresql://user:pass@host:5432/db PostgreSQL
mysql://user:pass@host:3306/db MySQL
mssql://user:pass@host:1433/db MSSQL (uses ODBC Driver 18)Docker
docker build -t mcp-db .
# Mount a SQLite database read-only:
docker run --rm -i \
-v /host/path/app.db:/data/app.db:ro \
-e DATABASE_URL=sqlite:////data/app.db \
mcp-db
# Or in-memory:
docker run --rm -i -e DATABASE_URL=sqlite:///:memory: mcp-dbKonfiguration
Die gesamte Konfiguration erfolgt über Umgebungsvariablen.
Variable | Standard | Beschreibung |
| (erforderlich) | Datenbank-Verbindungs-URL. |
|
| Schreibgeschützten Modus erzwingen (blockiert Schreibvorgänge, selbst wenn |
|
| Schreibanweisungen erlauben, wenn |
|
| Maximale Anzahl von Zeilen pro Abfrage. |
|
| Abfrage-Timeout in Sekunden. |
|
| Obergrenze für die Größe der Ergebnisnutzlast. |
|
| Anzahl der Beispielzeilen in Tabellen-/Spaltenstatistiken. |
|
| Top-N-Werteverteilungseinträge im Profiling. |
| — | API-Schlüssel für den LLM-gestützten |
| — | API-Schlüssel für den LLM-gestützten |
Tools
Tool | Beschreibung |
| Datenbankverbindung testen; Engine, Version, Name, Größe, Tabellenanzahl melden. |
| Übersicht aller Tabellen mit Zeilenzahlen, Spaltenzahlen, Fremdschlüsselbeziehungen. |
| Vollständige Struktur einer Tabelle: Spalten, Typen, Indizes, Fremdschlüssel, Beispieldaten. |
| Eine sichere, parametrisierte SQL-Abfrage ausführen und Markdown-Ergebnisse erhalten. |
| Eine Frage in Klartext stellen; generiertes SQL + Ergebnisse erhalten. |
| Datenprofil: Verteilungen, NULL-Raten, Beziehungen, Größen. |
| Mermaid-ER-Diagramm der Tabellenbeziehungen. |
Beispiel: query mit Parametern
{
"sql": "SELECT * FROM users WHERE id = :id AND active = :active",
"params": "{\"id\": 42, \"active\": true}"
}Parameter verwenden :name-Platzhalter; übergeben Sie die Werte als JSON-String in params.
Beispiel: natural_query
question: "How many users are there?"
-> SELECT COUNT(*) FROM users
question: "Show me all orders"
-> SELECT * FROM orders LIMIT 100Ein funktionierendes Beispiel mit einer kleinen Beispieldatenbank finden Sie in examples/ zusammen mit gebrauchsfertigen Konfigurationsausschnitten für gängige MCP-Clients.
MCP-Client-Konfiguration
Claude Desktop (claude_desktop_config.json)
{
"mcpServers": {
"database": {
"command": "python",
"args": ["-m", "mcp_database_universal"],
"env": {"DATABASE_URL": "sqlite:///C:/data/app.db"}
}
}
}Cursor / andere CLI-basierte Clients
{
"mcpServers": {
"database": {
"command": "uvx",
"args": ["mcp-database-universal"],
"env": {"DATABASE_URL": "sqlite:///C:/data/app.db"}
}
}
}Windows-Hinweis: Der asynchrone Postgres-Treiber erfordert die Windows-Selector-Ereignisschleife. Das Paket setzt diese Richtlinie automatisch auf
win32, daher ist keine zusätzliche Konfiguration erforderlich.
Entwicklung
pip install -e ".[dev]"
pytestIntegrationstests für PostgreSQL/MySQL verwenden Docker Compose und werden automatisch übersprungen, wenn die Server nicht erreichbar sind:
docker compose -f tests/integration/docker-compose.yml up -d
pytestSicherheitsmodell
Der Server ist standardmäßig schreibgeschützt;
INSERT/UPDATE/DELETE/DROP/ALTERund andere Schreibanweisungen werden blockiert.Schreibvorgänge sind nur möglich, wenn der Betreiber explizit
DATABASE_READ_ONLY=falseundDATABASE_WRITE_ENABLED=truesetzt.Abfrageergebnisse sind durch Zeilenanzahl, Timeout und Ausgabegröße begrenzt – außer Kontrolle geratene Abfragen werden verhindert.
Lizenz
MIT
This server cannot be deployed
Maintenance
Related MCP Connectors
- OleanderOAuthdev.oleander
The all-in-one data stack for agents. Upload files, run SQL, evolve tables, and render charts.
Query Postgres, MySQL, SQL Server, Oracle, BigQuery, ClickHouse and Redshift from your AI client.
Safe, read-only Postgres and MySQL access for AI agents. Audit log + column-level controls.
- dataOAuthco.thinair
PostgreSQL, MySQL, and SQL Server in one session. 26 read-only MCP tools for AI agents.
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceConnect AI agents to SQL databases (SQLite, PostgreSQL, MySQL) with a unified interface for querying data, exploring schemas, inserting rows, and exporting results to CSV. Includes safety features like dangerous query blocking and write guards.5 npm40 PyPIMIT
- AlicenseAqualityDmaintenanceEnables AI assistants to connect to and interact with PostgreSQL, MySQL, SQLite, and MongoDB databases through natural language, supporting schema exploration, query execution, data export, and more.13MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI agents to interact with PostgreSQL or MySQL databases using natural language. Supports SQL queries, schema discovery, and pre-built aggregations without writing SQL.139 npmMIT
- AlicenseAqualityDmaintenanceEnables AI agents to securely query databases (PostgreSQL, SQLite, MySQL, DuckDB) with read-only defaults and multi-layer SQL injection prevention.81MIT