Sentinel MCP Data Governance Agent
Agente de Gobernanza de Datos Sentinel MCP
Sentinel es un pequeño agente autónomo de gobernanza de datos que audita una base de datos PostgreSQL a través del Protocolo de Contexto de Modelo (MCP). En lugar de dar al LLM acceso directo a la base de datos, el proyecto expone un puente FastMCP controlado con herramientas diseñadas específicamente para la inspección de esquemas, perfilado de nulos y detección de anomalías.
La demostración inicializa una tabla raw_inventory intencionalmente sucia, solicita a un agente impulsado por OpenAI que la inspeccione a través de herramientas MCP y escribe un informe de auditoría en Markdown en LATEST_AUDIT.md.
Qué demuestra
Un cliente MCP en Python que sigue un flujo de trabajo de estilo ReAct: Razonar -> Actuar -> Observar.
Un servidor FastMCP que actúa como puente de gobernanza entre el agente y PostgreSQL.
Herramientas respaldadas por SQLAlchemy para una inspección de base de datos segura y estructurada.
Comprobaciones de calidad de datos para correos electrónicos faltantes, recuentos de inventario negativos y SKU duplicados.
Una Auditoría de Salud de Datos generada con SQL de remediación.
Arquitectura
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]Herramientas MCP
inspect_schema() devuelve nombres de tablas y definiciones de columnas para auditorías estructurales.
get_data_health_sample() devuelve 100 filas recientes de raw_inventory para una revisión a nivel de fila.
check_null_ratios(table_name="raw_inventory") devuelve recuentos y porcentajes de nulos para cada columna.
find_logical_anomalies() devuelve filas con valores negativos en stock_count y grupos de sku duplicados.
Diseño del proyecto
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 templateConfiguración
Requisitos:
Windows 11, macOS o Linux
Docker Desktop
Python gestionado con
uvUna clave de API de OpenAI con cuota de API disponible
Cree su archivo de entorno local:
Copy-Item .env.example .envEdite .env y reemplace los valores de marcador de posición. No confirme .env en el control de versiones.
Instale las dependencias:
uv syncInicie PostgreSQL:
docker compose up -dInicialice la tabla de inventario sucia:
uv run python seed_data.pyEjecute el servidor MCP directamente:
uv run python server.pyEn otra terminal, ejecute el agente de auditoría autónomo:
uv run python agent.pyEl agente escribe su informe en:
LATEST_AUDIT.mdVerifique los datos inicializados
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;"Resultado esperado después de la inicialización:
30Notas de seguridad
.enves ignorado por Git y nunca debe ser confirmado..env.examplecontiene solo marcadores de posición.El LLM no recibe credenciales de base de datos sin procesar directamente; interactúa con herramientas MCP aprobadas.
El servidor MCP es el límite de política donde las capacidades de la base de datos se exponen explícitamente.
Rote cualquier clave de API que haya aparecido en registros, capturas de pantalla, salida de terminal o chat.
¿Por qué MCP en lugar de SQLAlchemy directo en el agente?
MCP proporciona al LLM una interfaz de herramientas restringida en lugar de un acceso ilimitado a la base de datos. El servidor FastMCP define las acciones permitidas, haciendo que el límite de gobernanza sea explícito y auditable. El mismo agente puede interoperar más tarde con catálogos, motores de políticas, almacenes y sistemas de observabilidad a través de MCP sin tener que reescribir el agente en torno a conexiones directas a la base de datos.
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