Skip to main content
Glama
Vanity-1

edu-db-readonly-mcp

by Vanity-1

Edu DB Readonly MCP — Pasarela de solo lectura para bases de datos académicas

Python 3.10+ MCP FastMCP

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 SELECT/WITH, se bloquean INSERT/UPDATE/DELETE/DROP/PRAGMA; se prohíbe la inyección de múltiples sentencias con punto y coma

Respaldo de solo lectura

SQLite se abre con mode=ro; incluso si el SQL pasa por alto la validación, la capa de base de datos no puede escribir en disco

Prevención de volcado de datos

Si no se incluye LIMIT, se añade automáticamente un límite forzado (100 filas por defecto) para evitar que el agente descargue tablas completas

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 READONLY_GATEWAY_TOKEN; si el token no coincide, se rechaza directamente

Auditoría

Cada consulta se registra en audit.log (hora/herramienta/SQL/número de filas/tiempo empleado), con trazabilidad de llamadas


Related MCP server: sql-safety-executor

Lista de herramientas (MCP)

Herramienta

Descripción

list_tables

Lista todas las tablas de negocio y su número de filas

describe_table

Devuelve los campos / tipos / claves primarias de la tabla especificada

query

Pasarela SQL de solo lectura en bruto (validación de seguridad + LIMIT + tiempo de espera)

get_student_profile

Perfil del estudiante (información básica + nota media + detalle de calificaciones de matrícula)

get_course_stats

Número de alumnos del curso / nota media / máxima y mínima / tasa de aprobados

get_enrollment_summary

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.server

Consultas 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/WITH para bloquear DML/DDL e inyección de múltiples sentencias con punto y coma, límite de filas forzado automático cuando no se incluye LIMIT, consultas parametrizadas contra inyección, protección por tiempo de espera de hilos, respaldo de solo lectura con SQLite mode=ro; herramientas de introspección de tablas y encapsulación de negocio académico con autenticación por token y auditoría con audit.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.

F
license - not found
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

  • A
    license
    Not graded
    quality
    A
    maintenance
    Provides a read-only PostgreSQL SQL surface for LLM agents via MCP, with defense-in-depth security layers for safe database queries.
    3
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables LLMs to safely execute database queries via MCP tools, with security features including query restrictions, truncation, and timeout.
    6
    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

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/Vanity-1/edu-db-readonly-mcp'

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