Skip to main content
Glama
oliverhubtech-source

MCP Database Server

MCP Database Server

Säule: Protokolle, Interoperabilität & APIs
Status: Monat 1 - essenziell

MCP-Server in Python, um Schemas, sichere Abfragen und gespeicherte Prozeduren für LLM-Clients bereitzustellen.

Problem

LLMs müssen auf Unternehmensdatenbanken zugreifen, ohne umfassende Anmeldeinformationen zu erhalten oder die Freiheit zu haben, destruktives SQL auszuführen.

Related MCP server: DB Insights MCP Server

MVP

  • MCP-Server mit FastMCP

  • Auflistung erlaubter Schemas

  • Nur-Lese-Abfragen

  • Allowlist für gespeicherte Prozeduren

  • Auditierung von Aufrufen

Architektur

  • MCP-Server (mcp.server.MCPServer, Tools registriert über @mcp.tool())

  • Schema-Registry (Allowlist für Tabellen/Spalten, db.py)

  • Read-only-Authorizer (sqlite3.Connection.set_authorizer, security.py)

  • Audit-Logger (In-Memory-Spur jedes Tool-Aufrufs, audit.py)

Diagramm

flowchart LR
    A0[MCP client] --> A1[MCP server: list_tables / describe_table / run_readonly_query]
    A1 --> A2[SQLite authorizer: allowlist + read-only]
    A2 --> A3[SQLite: invoices]
    A1 --> A4[Audit log]

Stack

  • Python

  • mcp (offizielles SDK des Model Context Protocol)

  • SQLite (sqlite3 aus der Standardbibliothek, mit set_authorizer für die Zugriffskontrolle)

  • unittest

  • Docker Compose

Ausführen

Echte Implementierung mit dem offiziellen MCP-SDK. Die Zugriffskontrolle verwendet kein Regex über das SQL (leicht zu umgehen) – sie verwendet den set_authorizer von SQLite selbst, der jede gelesene Tabelle/Spalte und jede Art von Anweisung genehmigt oder ablehnt, bevor eine Zeile ausgeführt wird. Um den MCP-Server auszuführen:

python3.12 -m venv .venv && source .venv/bin/activate
pip install -e .
python -m mcp_database_server   # sobe o servidor MCP via stdio
python -m unittest discover -s tests

Tests

  • test_security.py: Authorizer blockiert INSERT/UPDATE/DELETE/DROP/ALTER, ATTACH, Tabellen außerhalb der Allowlist (z. B. sqlite_master) und gestapelte Anweisungen (SELECT 1; DROP TABLE ...).

  • test_server.py: Logik jedes direkt aufgerufenen Tools (ohne Protokoll), einschließlich der Tatsache, dass jeder Aufruf ein Audit-Ereignis erzeugt.

  • test_integration.py: startet python -m mcp_database_server als echten Subprozess und kommuniziert über mcp.client.stdio + ClientSession mit ihm – beweist, dass der Server MCP spricht, nicht nur, dass die Python-Funktionen funktionieren.

Risiken und Entscheidungen

  • SQL-Injection und übermäßige Berechtigungen: gelöst über set_authorizer auf Treiberebene, nicht per Regex.

  • Eine einzelne SQLite-Verbindung ist nicht threadsicher; der MCP-Server verteilt jeden Tool-Aufruf in einem Worker-Thread, daher serialisiert ServerState.lock den Zugriff (echter Fehler, der während der Implementierung gefunden und behoben wurde, abgedeckt durch test_integration.py).

  • MCP-Tools geben ValueError mit einer klaren Nachricht an den LLM-Client zurück, anstatt einen Stack-Trace preiszugeben.

Nächste Schritte

  • SQLite durch PostgreSQL über SQLAlchemy ersetzen, wenn die Daten real sind.

  • Authentifizierung/Allowlist pro Client hinzufügen (derzeit hat jeder verbundene MCP-Client Zugriff auf die Tools).

  • Das Audit-Log außerhalb des Prozesses persistieren (derzeit nur im Speicher).

A
license - permissive license
Not graded
quality - not tested
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

  • F
    license
    Not graded
    quality
    D
    maintenance
    Provides secure, read-only access to Microsoft SQL Server with multi-layer protection, enabling safe query execution, schema discovery, and SQL script analysis through natural language.
    1
  • F
    license
    Not graded
    quality
    C
    maintenance
    Enables AI assistants to query SQL databases safely with read-only access, allowing schema discovery and SELECT queries while blocking writes and DDL operations.
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables LLM clients to query SQL databases via natural language with read-only, AST-validated, and capped queries, ensuring safety guarantees.
    2
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Provides read-only access to databases for MCP-compatible AI tools, allowing schema exploration and SELECT queries without exposing credentials or risking data changes.
    92
    3
    MIT

View all related MCP servers

Related MCP Connectors

  • Query PostgreSQL databases in plain English — LLM-generated, safety-validated SQL.

  • Runtime permission, approval, and audit layer for AI agent tool execution.

  • Read-only access to your VortexIQ store data: audits, KPIs, alerts, Brand DNA, reports, Ask VIQ.

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/oliverhubtech-source/mcp-database-server'

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