Skip to main content
Glama
Vanity-1

edu-db-readonly-mcp

by Vanity-1

Edu DB Readonly MCP — Gateway für schreibgeschützte Bildungs- und Verwaltungsdatenbanken

Python 3.10+ MCP FastMCP

Ein sicheres schreibgeschütztes Abfrage-Gateway MCP für Bildungs- und Verwaltungs-Businessdatenbanken. Mit dem offiziellen FastMCP SDK wird die „Verwaltungsdatenbank (Studenten / Kurse / Noten / Kursanmeldungen)" als eine Reihe von MCP-Tools bereitgestellt, damit LLM-Agenten Geschäftsdaten sicher abfragen können, aber von der Protokollebene bis zur Datenbankebene sind alle Schreiboperationen verboten.

Im Gegensatz zu ChatGPT-Wrappern, generischen MCP-Servern und reinen RAG-Demos konzentriert sich dieses Projekt auf die Engineering-Kette „Geschäftsdatenbanken sicher für Agenten zum Lesen öffnen" – ein praxisnahes Beispiel für Datensicherheit + MCP-Implementierung.


Kernvorteile (für Vorstellungsgespräche geeignet)

Sicherheitsdimension

Implementierungsmethode

Schreibschutz

Statische SQL-Lexer-Prüfung: nur SELECT/WITH erlaubt, blockiert INSERT/UPDATE/DELETE/DROP/PRAGMA; verbietet Mehrfachanweisungen mit Semikolon

Readonly-Absicherung

SQLite wird mit mode=ro geöffnet, selbst wenn SQL die Prüfung umgeht, kann auf Datenbankebene nichts geschrieben werden

Schutz vor Datenbanküberlastung

Fehlendes LIMIT wird automatisch mit einem Höchstwert ergänzt (Standard 100 Zeilen), um ein vollständiges Auslesen der Datenbank durch den Agenten zu verhindern

Injektionsschutz

Auf Gateway-Ebene wird durchgängig Parameterbindung verwendet, Geschäftstools nutzen feste Whitelist-Abfragefunktionen – natürlich immun gegen Verkettungs-Injektionen

Timeout-Schutz

Langsame Abfragen werden nach Überschreiten des Schwellenwerts (Standard 3s) automatisch beendet, um hängende intelligente Agenten zu vermeiden

Authentifizierung

Optionales READONLY_GATEWAY_TOKEN, bei Token-Mismatch wird direkt abgelehnt

Audit

Jede Abfrage wird in audit.log protokolliert (Zeit/Tool/SQL/Zeilenanzahl/Ausführungszeit), Aufrufe sind nachvollziehbar


Related MCP server: sql-safety-executor

Tool-Liste (MCP)

Tool

Beschreibung

list_tables

Listet alle Geschäftstabellen und Zeilenanzahlen auf

describe_table

Gibt Felder / Typen / Primärschlüssel der angegebenen Tabelle zurück

query

Rohes schreibgeschütztes SQL-Gateway (Sicherheitsprüfung + LIMIT + Timeout)

get_student_profile

Studentenprofil (Basisdaten + Durchschnittsnote + Kursnoten-Details)

get_course_stats

Kursbelegungszahl / Durchschnittsnote / Höchst- und Tiefstwert / Bestehensquote

get_enrollment_summary

Zusammenfassungsbericht zu Kursanmeldungen und Noten, filterbar nach Jahr / Semester

query demonstriert die Fähigkeit des „rohen SQL-Gateways", die übrigen sind branchenspezifische sichere Wrapper-Funktionen für die Verwaltung (feste parametrisierte Abfragen, sicherer als nacktes SQL und näher an den Geschäftsanforderungen).


Schnellstart

# 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

Beispielabfragen: Studentenprofil, CS205-Kursstatistik, Zusammenfassung nach Semester …


Tests

pytest tests/            # 22 个用例:写防护/注入/多语句/截断/工具行为/审计

Verzeichnisstruktur

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              # 工具行为用例

Designdokument → docs/DESIGN.md


Lebenslauf-Beschreibung (einfügbar)

Gateway MCP für schreibgeschützte Bildungs- und Verwaltungsdatenbanken (FastMCP) Eigenständige Entwicklung eines sicheren schreibgeschützten MCP-Servers für Bildungs- und Verwaltungsdatenbanken. Entwurf eines leichtgewichtigen SQL-Readonly-Gateways: statische Validierung, die nur SELECT/WITH zulässt und DML/DDL sowie Semikolon- Mehrfachanweisungs-Injektionen blockiert, automatische Zeilenbegrenzung bei fehlendem LIMIT, parametrisierte Abfragen gegen Injektionen, Thread-Timeout- Schutz, SQLite mode=ro als Readonly-Absicherung; Bereitstellung von Tabellen-Introspektion und Verwaltungs-Business-Wrapper-Tools mit Token-Authentifizierung und audit.log-Auditierung. 22 Unit-Tests decken Sicherheitsszenarien wie Schreibschutz, Injektion, Mehrfachanweisungen und Abschneidung ab, ein End-to-End-Demo verifiziert, dass Schreiboperationen auf Protokollebene blockiert werden.

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