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 (
sqlite3aus der Standardbibliothek, mitset_authorizerfü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 testsTests
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: startetpython -m mcp_database_serverals echten Subprozess und kommuniziert übermcp.client.stdio+ClientSessionmit 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_authorizerauf 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.lockden Zugriff (echter Fehler, der während der Implementierung gefunden und behoben wurde, abgedeckt durchtest_integration.py).MCP-Tools geben
ValueErrormit 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).
This server cannot be installed
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
- FlicenseNot gradedqualityDmaintenanceProvides 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
- FlicenseNot gradedqualityCmaintenanceEnables AI assistants to query SQL databases safely with read-only access, allowing schema discovery and SELECT queries while blocking writes and DDL operations.
- AlicenseNot gradedqualityBmaintenanceEnables LLM clients to query SQL databases via natural language with read-only, AST-validated, and capped queries, ensuring safety guarantees.2MIT
- AlicenseNot gradedqualityBmaintenanceProvides read-only access to databases for MCP-compatible AI tools, allowing schema exploration and SELECT queries without exposing credentials or risking data changes.923MIT
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.
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/oliverhubtech-source/mcp-database-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server