edu-db-readonly-mcp
Edu DB Readonly MCP — Pasarela de solo lectura para bases de datos académicas
Un MCP de pasarela de consulta de solo lectura seguro, orientado a bases de datos de negocio académico. Con el SDK oficial de FastMCP se expone la "base de datos académica (estudiantes / cursos / calificaciones / matrículas)" como un conjunto de herramientas MCP, permitiendo que los agentes LLM consulten datos de negocio de forma segura, pero prohibiendo toda operación de escritura desde la capa de protocolo hasta la capa de base de datos.
A diferencia de los envoltorios de ChatGPT, los servidores MCP genéricos o los demos de RAG puro, este proyecto se centra en la cadena de ingeniería de "abrir la base de negocio al agente de forma segura para lectura", un caso práctico sólido de seguridad de datos + implementación de MCP.
Ventajas principales (para contar en entrevistas)
Dimensión de seguridad | Forma de implementación |
Protección de escritura | Validación estática léxica de SQL: solo se permite |
Respaldo de solo lectura | SQLite se abre con |
Prevención de volcado de datos | Si no se incluye |
Prevención de inyección | La capa de pasarela usa siempre enlace de parámetros; las herramientas de negocio usan funciones de lista blanca de consultas fijas, inmunes de forma natural a la inyección por concatenación |
Protección por tiempo de espera | Las consultas lentas que superan el umbral (3 s por defecto) se terminan automáticamente, evitando que un agente inteligente se quede bloqueado |
Autenticación | Opcional |
Auditoría | Cada consulta se registra en |
Related MCP server: sql-safety-executor
Lista de herramientas (MCP)
Herramienta | Descripción |
| Lista todas las tablas de negocio y su número de filas |
| Devuelve los campos / tipos / claves primarias de la tabla especificada |
| Pasarela SQL de solo lectura en bruto (validación de seguridad + LIMIT + tiempo de espera) |
| Perfil del estudiante (información básica + nota media + detalle de calificaciones de matrícula) |
| Número de alumnos del curso / nota media / máxima y mínima / tasa de aprobados |
| Informe resumido de calificaciones de matrícula, filtrable por año / trimestre académico |
query demuestra la capacidad de "pasarela SQL en bruto"; el resto son funciones de encapsulación de seguridad sectorial orientadas a la gestión académica
(consultas parametrizadas fijas, más seguras y más ajustadas al negocio que el SQL en bruto).
Inicio rápido
# 1. 安装依赖
pip install -r requirements.txt
# 2. 初始化教务演示库
python scripts/init_db.py
# 3. 运行命令行演示(连 stdio MCP,展示 6 个工具 + 写操作被拦截)
python scripts/demo_client.py
# 4. 启动为 MCP Server(供 Claude / Cursor / 任意 MCP 客户端接入)
python -m src.server
# 开启鉴权:
# READONLY_GATEWAY_TOKEN=your_secret python -m src.serverConsultas de ejemplo: perfil de estudiante, estadísticas del curso CS205, resumen por trimestre académico…
Pruebas
pytest tests/ # 22 个用例:写防护/注入/多语句/截断/工具行为/审计Estructura de directorios
edu-db-readonly-mcp/
├── README.md
├── pyproject.toml
├── requirements.txt
├── data/edu.db # 生成的教务演示库(只读打开)
├── scripts/
│ ├── init_db.py # 建表 + 造种子数据(10学生/10课/32选课)
│ └── demo_client.py # 命令行 MCP 演示
├── src/
│ ├── server.py # FastMCP 入口,注册 6 个工具
│ ├── gateway/
│ │ ├── readonly_gateway.py # 核心:SQL 只读校验 + LIMIT + 超时
│ │ ├── auth.py # token 鉴权
│ │ └── audit.py # 审计日志
│ ├── db/connection.py # mode=ro 连接 + 元数据读取
│ └── tools/
│ ├── query_tool.py # 原始 SQL 网关
│ ├── schema_tools.py # list_tables / describe_table
│ └── edu_workflows.py # 教务业务封装工具
└── tests/
├── test_gateway_security.py # 安全用例
└── test_tools.py # 工具行为用例Documento de diseño → docs/DESIGN.md
Descripción para el currículum (se puede pegar)
Pasarela MCP de solo lectura para bases de datos académicas (FastMCP) Desarrollo independiente de un servidor MCP de solo lectura seguro para bases de datos académicas. Diseño de una pasarela SQL de solo lectura ligera: validación estática que solo permite
SELECT/WITHpara bloquear DML/DDL e inyección de múltiples sentencias con punto y coma, límite de filas forzado automático cuando no se incluyeLIMIT, consultas parametrizadas contra inyección, protección por tiempo de espera de hilos, respaldo de solo lectura con SQLitemode=ro; herramientas de introspección de tablas y encapsulación de negocio académico con autenticación por token y auditoría conaudit.log. 22 pruebas unitarias cubren escenarios de seguridad como protección de escritura, inyección, múltiples sentencias y truncamiento; un demo de extremo a extremo verifica que las operaciones de escritura se bloquean en la capa de protocolo.
This server cannot be deployed
Maintenance
Related MCP Connectors
Query your org's data in natural language — read-only MCP access to SQL, NoSQL, files & warehouses.
- dataOAuthco.thinair
PostgreSQL, MySQL, and SQL Server in one session. 26 read-only MCP tools for AI agents.
Safe, read-only Postgres and MySQL access for AI agents. Audit log + column-level controls.
Text-to-SQL MCP server: read-only queries on PostgreSQL, MySQL and SQL Server with your real schema
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceProvides a read-only PostgreSQL SQL surface for LLM agents via MCP, with defense-in-depth security layers for safe database queries.391 PyPI4MIT
- AlicenseNot gradedqualityCmaintenanceEnables LLMs to safely execute database queries via MCP tools, with security features including query restrictions, truncation, and timeout.6MIT
- AlicenseNot gradedqualityCmaintenanceProvides read-only access to databases for MCP-compatible AI tools, allowing schema exploration and SELECT queries without exposing credentials or risking data changes.101 npm3MIT
- FlicenseNot gradedqualityBmaintenanceProvides read-only database access for AI agents, enabling table listing, schema inspection, and filtered row queries through MCP tools.-