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 installed
Maintenance
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
- AlicenseNot gradedqualityAmaintenanceProvides a read-only PostgreSQL SQL surface for LLM agents via MCP, with defense-in-depth security layers for safe database queries.3MIT
- AlicenseNot gradedqualityCmaintenanceEnables LLMs to safely execute database queries via MCP tools, with security features including query restrictions, truncation, and timeout.6MIT
- FlicenseNot gradedqualityDmaintenanceEnables AI agents to explore MySQL database schemas and execute read-only queries through a safe, MCP interface.
- 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.923MIT
Related MCP Connectors
Read-only MCP server for ClassQuill, a tutoring-business-management platform.
Official Microsoft MCP Server to query Microsoft Entra data using natural language
Query PostgreSQL databases in plain English — LLM-generated, safety-validated SQL.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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