mcpField
S
School Database MCP Server

School Database MCP Server

ローカル
github.com/eoinmooremathデータベース073 週間前に更新

School Database MCP Server について

SQLiteを使って模擬学校データベースを管理するデモ用MCPサーバーです。教育・実演向けに、データベース操作と生徒の行動分類、メール通知を組み合わせています。

主な機能

  1. 01スキーマとテーブル関係の確認
  2. 02パラメーター化したSELECT・INSERT・UPDATEの実行
  3. 03行動メモの記録と分類
  4. 04生徒の行動アラート確認
  5. 05アラートメールの送信

活用シーン

  1. 01模擬学校データとスキーマの確認
  2. 02生徒の事案の記録と分類
  3. 03アラート対象となる行動パターンの確認
  4. 04関係者へのメール通知

MCP 対応

stdio経由で、学校データベースの確認・クエリ、行動追跡、アラートのツールをMCPクライアントに提供します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

インストール方法は未掲載です

このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。

リポジトリ

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

学校データベース MCP サーバー

行動追跡の自動化とアラートシステムを備えた、模擬学校データベースを管理するための Model Context Protocol(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

このサーバーは、通信に stdio を使用する MCP サーバーとして動作します。

ワークフローの例
  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 プロトコルを処理するメインサーバークラス
  • データベース操作では、辞書のようにアクセスできる row factory を備えた SQLite を使用します
  • すべてのツール操作で async/await パターンを使用します

備考

  • これは MCP サーバー開発を紹介するデモ用/お試しプロジェクトです
  • 教育目的で模擬データを使用しています
  • より大規模なシステムで他の MCP サーバーと統合できるよう設計されています
  • 包括的なエラー処理とログ記録を備えています

ライセンス

このプロジェクトは、教育およびデモを目的としています。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。