学校数据库MCP服务器
一种模型上下文协议(MCP)服务器,用于管理具有自动行为跟踪和警报系统的模拟学校数据库。
概述
该项目实现了一个学校管理系统后端,为以下方面提供了工具:
- 管理学生和教师数据
- 记录和分类学生行为事件
- 带有电子邮件通知的自动行为警报系统
- 数据库查询和模式检查
服务器使用SQLite进行数据存储,并与外部服务(如Gmail)集成以进行通知。
特性
核心数据库管理
- 架构检查:获取具有表关系的完整数据库结构
- 安全查询执行:使用参数绑定执行SELECT、INSERT和UPDATE查询
- 样品数据:查看任何表中的示例记录
行为管理工作流
- 添加行为注释:记录学生行为事件,待分类
- LLM分类:自动将行为分类为积极、消极或中性
- 警报系统:监控学生的行为模式
- 电子邮件通知:自动向相关方发送警报
可用工具
get_database_schema-检查数据库结构和关系execute_query-安全运行SQL查询add_behavior_note_pending_classification-记录新的行为事件update_behavior_classification-LLM分析后对行为进行分类get_pending_classifications-列出未分类的行为记录check_student_alerts_enhanced-检查学生是否需要行为提醒send_behavior_alert_email_immediately-发送自动电子邮件警报
数据库模式
该系统包括以下表格:
- 学生:学生信息和联系方式
- 教师:教师信息
- 行为说明:带有分类和警报的事故记录
- 类:课程和报名信息
- 成绩:学业成绩跟踪
安装
先决条件
- Python 3.12+
- SQLite3
设置
- 克隆存储库
- 安装依赖项:
pip install mcp>=1.9.2- 运行服务器:
python school_db_mcp.py用法
启动服务器
python school_db_mcp.py服务器作为MCP服务器运行,使用stdio进行通信。
工作流示例
- 检查数据库结构:
{
"tool": "get_database_schema",
"arguments": {"include_sample_data": true}
}- 添加行为事件:
{
"tool": "add_behavior_note_pending_classification",
"arguments": {
"student_name": "John Doe",
"teacher_id": 1,
"description": "Student was disruptive during class",
"location": "Classroom 101"
}
}- 对行为进行分类:
{
"tool": "update_behavior_classification",
"arguments": {
"note_id": 1,
"behavior_type": "negative",
"reasoning": "Disruptive behavior affects learning environment"
}
}- 检查警报:
{
"tool": "check_student_alerts_enhanced",
"arguments": {
"student_id": 123,
"days_back": 7
}
}安全功能
- 查询消毒:只允许SELECT、INSERT和UPDATE查询
- 参数绑定:防止SQL注入攻击
- 输入验证:在处理之前验证所有工具输入
整合
此服务器设计用于:
- Gmail MCP服务器:用于发送行为警报电子邮件
- LLM系统:用于自动行为分类
- 学校管理系统:作为后端数据服务
发展
项目结构
school-db-server/
├── school_db_mcp.py # Main server implementation
├── pyproject.toml # Project configuration
├── README.md # This file
└── school_data # SQLite database file (created on first run)关键类
SchoolDatabaseMCP:处理MCP协议的主服务器类- 数据库操作使用SQLite和行工厂进行类似字典的访问
- 所有工具操作的异步/等待模式
备注
- 这是一个 演示/玩具项目 展示MCP服务器开发
- 将模拟数据用于教育目的
- 旨在与更大系统中的其他MCP服务器集成
- 包括全面的错误处理和日志记录
许可证
该项目用于教育和示范目的。
