School Database MCP Server について
SQLiteを使って模擬学校データベースを管理するデモ用MCPサーバーです。教育・実演向けに、データベース操作と生徒の行動分類、メール通知を組み合わせています。
主な機能
- 01スキーマとテーブル関係の確認
- 02パラメーター化したSELECT・INSERT・UPDATEの実行
- 03行動メモの記録と分類
- 04生徒の行動アラート確認
- 05アラートメールの送信
活用シーン
- 01模擬学校データとスキーマの確認
- 02生徒の事案の記録と分類
- 03アラート対象となる行動パターンの確認
- 04関係者へのメール通知
MCP 対応
stdio経由で、学校データベースの確認・クエリ、行動追跡、アラートのツールをMCPクライアントに提供します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
学校データベース MCP サーバー
行動追跡の自動化とアラートシステムを備えた、模擬学校データベースを管理するための Model Context Protocol(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
このサーバーは、通信に stdio を使用する MCP サーバーとして動作します。
ワークフローの例
-
データベース構造を確認する:
{ "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 プロトコルを処理するメインサーバークラス- データベース操作では、辞書のようにアクセスできる row factory を備えた SQLite を使用します
- すべてのツール操作で async/await パターンを使用します
備考
- これは MCP サーバー開発を紹介するデモ用/お試しプロジェクトです
- 教育目的で模擬データを使用しています
- より大規模なシステムで他の MCP サーバーと統合できるよう設計されています
- 包括的なエラー処理とログ記録を備えています
ライセンス
このプロジェクトは、教育およびデモを目的としています。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。