学校数据库管理系统

一个用于管理模拟学校数据库的MCP服务器,具有自动化行为跟踪和警报系统功能。

  • by eoinmooremath
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 eoinmooremath/school-db-mcp-server

使用说明

学校数据库MCP服务器

一种模型上下文协议(MCP)服务器,用于管理具有自动行为跟踪和警报系统的模拟学校数据库。

概述

该项目实现了一个学校管理系统后端,为以下方面提供了工具:

  • 管理学生和教师数据
  • 记录和分类学生行为事件
  • 带有电子邮件通知的自动行为警报系统
  • 数据库查询和模式检查

服务器使用SQLite进行数据存储,并与外部服务(如Gmail)集成以进行通知。

特性

核心数据库管理

  • 架构检查:获取具有表关系的完整数据库结构
  • 安全查询执行:使用参数绑定执行SELECT、INSERT和UPDATE查询
  • 样品数据:查看任何表中的示例记录

行为管理工作流

  1. 添加行为注释:记录学生行为事件,待分类
  2. LLM分类:自动将行为分类为积极、消极或中性
  3. 警报系统:监控学生的行为模式
  4. 电子邮件通知:自动向相关方发送警报

可用工具

  • 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

设置

  1. 克隆存储库
  2. 安装依赖项:
    pip install mcp>=1.9.2
    
  3. 运行服务器:
    python school_db_mcp.py
    

用法

启动服务器

python school_db_mcp.py

服务器作为MCP服务器运行,使用stdio进行通信。

工作流示例

  1. 检查数据库结构:

    {
      "tool": "get_database_schema",
      "arguments": {"include_sample_data": true}
    }
    
  2. 添加行为事件:

    {
      "tool": "add_behavior_note_pending_classification",
      "arguments": {
        "student_name": "John Doe",
        "teacher_id": 1,
        "description": "Student was disruptive during class",
        "location": "Classroom 101"
      }
    }
    
  3. 对行为进行分类:

    {
      "tool": "update_behavior_classification",
      "arguments": {
        "note_id": 1,
        "behavior_type": "negative",
        "reasoning": "Disruptive behavior affects learning environment"
      }
    }
    
  4. 检查警报:

    {
      "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服务器集成
  • 包括全面的错误处理和日志记录

许可证

该项目用于教育和示范目的。