Sentinel MCP Data Governance Agent
Sentinel MCP Data Governance Agent
Sentinel ist ein kleiner autonomer Data-Governance-Agent, der eine PostgreSQL-Datenbank über das Model Context Protocol (MCP) prüft. Anstatt dem LLM direkten Datenbankzugriff zu gewähren, stellt das Projekt eine kontrollierte FastMCP-Brücke mit zweckgebundenen Tools für Schema-Inspektion, Null-Profilierung und Anomalieerkennung bereit.
Die Demo befüllt eine absichtlich fehlerhafte raw_inventory-Tabelle, weist einen OpenAI-basierten Agenten an, diese über MCP-Tools zu untersuchen, und schreibt einen Markdown-Audit-Bericht in LATEST_AUDIT.md.
Was es demonstriert
Einen Python-MCP-Client, der einem ReAct-artigen Workflow folgt: Reason (Überlegen) -> Act (Handeln) -> Observe (Beobachten).
Einen FastMCP-Server, der als Governance-Brücke zwischen dem Agenten und PostgreSQL fungiert.
SQLAlchemy-basierte Tools für eine sichere, strukturierte Datenbankinspektion.
Datenqualitätsprüfungen auf fehlende E-Mails, negative Lagerbestände und doppelte SKUs.
Einen generierten Datenintegritäts-Audit mit SQL-Korrekturvorschlägen.
Architektur
flowchart LR
U[User question] --> A[Python Agent<br/>MCP Client]
A -->|tools/list and tools/call| M[FastMCP Server<br/>Sentinel-Bridge]
M -->|SQLAlchemy queries| DB[(PostgreSQL 16<br/>raw_inventory)]
DB -->|schema and quality metrics| M
M -->|structured MCP tool results| A
A -->|OpenAI analysis or local fallback| R[LATEST_AUDIT.md]MCP-Tools
inspect_schema() gibt Tabellennamen und Spaltendefinitionen für strukturelle Audits zurück.
get_data_health_sample() gibt 100 aktuelle Zeilen aus raw_inventory für eine zeilenweise Überprüfung zurück.
check_null_ratios(table_name="raw_inventory") gibt Null-Anzahlen und Prozentsätze für jede Spalte zurück.
find_logical_anomalies() gibt Zeilen mit negativen stock_count-Werten und duplizierten sku-Gruppen zurück.
Projektstruktur
agent.py # MCP client and ReAct audit workflow
server.py # FastMCP server exposing database audit tools
seed_data.py # Faker-based dirty data generator
docker-compose.yml # PostgreSQL 16 local database
architecture.md # Mermaid architecture diagram
.env.example # Safe environment variable templateEinrichtung
Anforderungen:
Windows 11, macOS oder Linux
Docker Desktop
Python verwaltet mit
uvEin OpenAI-API-Schlüssel mit verfügbarem API-Kontingent
Erstellen Sie Ihre lokale Umgebungsdatei:
Copy-Item .env.example .envBearbeiten Sie .env und ersetzen Sie die Platzhalterwerte. Committen Sie .env nicht.
Installieren Sie die Abhängigkeiten:
uv syncStarten Sie PostgreSQL:
docker compose up -dBefüllen Sie die fehlerhafte Inventartabelle:
uv run python seed_data.pyStarten Sie den MCP-Server direkt:
uv run python server.pyFühren Sie in einem anderen Terminal den autonomen Audit-Agenten aus:
uv run python agent.pyDer Agent schreibt seinen Bericht nach:
LATEST_AUDIT.mdÜberprüfen der befüllten Daten
docker exec -it sentinel_postgres psql -U sentinel_user -d sentinel_db -c "SELECT COUNT(*) AS negative_stock_rows FROM raw_inventory WHERE stock_count < 0;"Erwartetes Ergebnis nach dem Befüllen:
30Sicherheitshinweise
.envwird von Git ignoriert und darf niemals committet werden..env.exampleenthält nur Platzhalter.Das LLM erhält keine direkten Datenbankzugangsdaten; es interagiert mit genehmigten MCP-Tools.
Der MCP-Server ist die Richtliniengrenze, an der Datenbankfunktionen explizit freigegeben werden.
Rotieren Sie jeden API-Schlüssel, der in Protokollen, Screenshots, Terminalausgaben oder Chats aufgetaucht ist.
Warum MCP anstelle von direktem SQLAlchemy im Agenten?
MCP bietet dem LLM eine eingeschränkte Tool-Schnittstelle anstelle eines uneingeschränkten Datenbankzugriffs. Der FastMCP-Server definiert die erlaubten Aktionen, wodurch die Governance-Grenze explizit und prüfbar wird. Derselbe Agent kann später über MCP mit Katalogen, Richtlinien-Engines, Data Warehouses und Observability-Systemen interagieren, ohne den Agenten für direkte Datenbankverbindungen umschreiben zu müssen.
This server cannot be installed
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
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/NIHARDUGADE/sentinel-mcp-data-governance-agent'
If you have feedback or need assistance with the MCP directory API, please join our Discord server