edu-db-readonly-mcp
Edu DB Readonly MCP — шлюз только для чтения к учебной базе данных
Безопасный MCP-шлюз только для чтения для учебных бизнес-баз данных. С помощью официального FastMCP SDK «учебная база (студенты / курсы / оценки / выбор курсов)» раскрывается как набор MCP-инструментов, позволяя LLM-агенту безопасно запрашивать бизнес-данные, но запрещая все операции записи — от уровня протокола до уровня базы данных.
В отличие от обёрток над ChatGPT, универсальных MCP-серверов и чистых RAG-демо, этот проект сосредоточен на инженерном контуре «безопасно открыть бизнес-базу для чтения агентом» — это практический кейс на стыке безопасности данных и внедрения MCP.
Ключевые преимущества (можно рассказать на собеседовании)
Аспект безопасности | Способ реализации |
Защита от записи | Статическая лексическая проверка SQL: разрешены только |
Подстраховка только для чтения | SQLite открывается в режиме |
Защита от выгрузки всей базы | При отсутствии |
Защита от инъекций | На уровне шлюза всё работает через параметризованные привязки, бизнес-инструменты используют фиксированные функции с белым списком запросов — устойчиво к конкатенационным инъекциям |
Защита по таймауту | Медленные запросы, превышающие порог (по умолчанию 3 с), автоматически завершаются, чтобы «умный» агент не завис |
Аутентификация | Опциональный |
Аудит | Каждый запрос записывается в |
Related MCP server: sql-safety-executor
Список инструментов (MCP)
Инструмент | Описание |
| Выводит все бизнес-таблицы и число строк в них |
| Возвращает поля / типы / первичные ключи указанной таблицы |
| Сырой SQL-шлюз только для чтения (проверка безопасности + LIMIT + таймаут) |
| Профиль студента (основная информация + средний балл + детали оценок по выбранным курсам) |
| Число студентов на курсе / средний балл / максимум и минимум / процент сдачи |
| Сводный отчёт по оценкам выбранных курсов, с фильтром по году / учебному сезону |
query демонстрирует возможности «сырого SQL-шлюза», остальные — отраслевые безопасные функции-обёртки для учебных задач
(фиксированные параметризованные запросы — безопаснее и ближе к бизнесу, чем сырой SQL).
Быстрый старт
# 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Примеры запросов: профиль студента, статистика курса CS205, сводка по учебным сезонам…
Тестирование
pytest tests/ # 22 个用例:写防护/注入/多语句/截断/工具行为/审计Структура каталога
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 # 工具行为用例Проектный документ → docs/DESIGN.md
Описание для резюме (можно вставить)
MCP-шлюз только для чтения к учебной базе данных (FastMCP) Самостоятельно разработал безопасный MCP-сервер только для чтения для учебной базы. Спроектировал лёгкий SQL-шлюз только для чтения: статическая проверка пропускает только
SELECT/WITH, блокирует DML/DDL и многооператорные инъекции через точку с запятой; при отсутствииLIMITавтоматически принудительно ограничивает число строк; параметризованные запросы защищают от инъекций; защита по таймауту потоков; подстраховка только для чтения через SQLitemode=ro; предоставляет инструменты самоанализа таблиц и бизнес-обёртки для учебных задач, поддерживает токен-аутентификацию и аудит черезaudit.log. 22 модульных теста покрывают сценарии безопасности: защиту от записи, инъекции, многооператорные запросы, усечение и др.; сквозное демо подтверждает, что операции записи блокируются на уровне протокола.
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.174 PyPI4MIT
- AlicenseNot gradedqualityCmaintenanceEnables LLMs to safely execute database queries via MCP tools, with security features including query restrictions, truncation, and timeout.6MIT
- AlicenseNot gradedqualityBmaintenanceProvides read-only access to databases for MCP-compatible AI tools, allowing schema exploration and SELECT queries without exposing credentials or risking data changes.60 npm3MIT

MCP DB Gatewayofficial
AlicenseNot gradedqualityBmaintenanceProvides governed, read-only PostgreSQL access for AI agents via MCP. Enforces schema/table allowlists, query limits, and audit events.MIT