Skip to main content
Glama
IshaanShivalli

college-tools-mcp

College Management AI Assistant (v5)

Ein intelligenter Assistent für die Hochschulverwaltung, unterstützt von Google Gemini und dem Model Context Protocol (MCP). Der Assistent interagiert über strukturierte FastMCP-Tools mit einer relationalen SQLite-Datenbank und beantwortet Anfragen zu Studierenden, Lehrkräften, Kursen, Einschreibungen und akademischer Leistung.


Architekturübersicht

+-------------------------------------------------------------+
|                      User / Client                          |
+-------------------------------------------------------------+
                              |
                              v
+-------------------------------------------------------------+
|                   Gemini LLM Assistant                      |
|                         (bot.py)                            |
+-------------------------------------------------------------+
                              |
                     MCP Protocol (stdio)
                              |
                              v
+-------------------------------------------------------------+
|                     FastMCP Server                          |
|                      (tooling.py)                           |
+-------------------------------------------------------------+
                              |
                        SQLite Queries
                              |
                              v
+-------------------------------------------------------------+
|                   College SQLite Database                   |
|                        (college.db)                         |
|   - persons (students, faculty, staff)                      |
|   - courses                                                 |
|   - student_enrollments                                     |
+-------------------------------------------------------------+

Related MCP server: College AI Assistant

Funktionen

  • Synthetische Datengenerierung: Erstellt realistische Hochschuldaten mit Faker, einschließlich Studierenden, Lehrkräften, Kursen und Notenhistorien.

  • FastMCP-Tooling: Stellt robuste, schema-konforme MCP-Toolst Für die Abfrage von akademischen Datensätzen, Kursen, Fachabteilungen und Einschreibungsstatistiken bereit.

  • Interaktiver Multi-Turn-Bot: Chat-Oberfläche unter Verwendung des Google GenAI SDK (google-genai) mit automatischer Orchestrierung von Tool-Aufrufen über MCP.

  • Sichere Konfiguration: Umgebungsbasierte API-Schlüssel-Verwaltung mit .env-Unterstützung.


Projektstruktur

.
├── bot.py                   # Interactive Gemini chatbot integrating MCP tools via stdio
├── tooling.py               # FastMCP Server exposing database querying tools
├── create_data.py           # SQLite database schema initializer & synthetic data generator
├── college.db               # SQLite database file (generated by create_data.py)
├── system_prompt.txt        # System instruction prompt for the AI assistant
├── prompt.txt               # Context and initial project design prompts
├── mcp_config.example.json  # Example configuration for MCP client registration
├── requirements.txt         # Python package dependencies
├── .env                     # Environment variables (GEMINI_API_KEY)
└── .gitignore               # Git ignore file for Python, SQLite, and secrets

Datenbankschema

Die SQLite-Datenbank (college.db) enthält die folgenden relationalen Tabellen:

  1. persons: Speichert Profile von Studierenden, Lehrkräften und Personal (ID, name, email, phone, DOB, gender, address, role).

  2. courses: Speichert Kursübersichten (course ID, code, course name, department, credits, assigned instructor).

  3. student_enrollments: Speichert Einschreibungsdetails (Enrollment ID, student ID, course ID, date, grade, semester).


Verfügbare MCP-Tools (tooling.py)

  • get_student_info(student_id_or_name): Ruft Studierendenprofile per ID, Name oder E-Mail ab.

  • get_course_details(course_code_or_name): Ruft Kursdetails und Informationen zum Dozenten ab.

  • get_student_enrollments(student_id_or_name): Listet alle Kurse und Noten für einen Studierenden auf.

  • get_students_by_course(course_code_or_name): Listet Studierende auf, die in einem bestimmten Kurs eingeschrieben sind.

  • list_courses_by_department(department): Listet alle Kurse in einer akademischen Abteilung auf.

  • get_courses_taught_by_faculty(faculty_id_or_name): Listet Kurse, die von einem Dozenten gelehrt werden.

  • search_persons(query, role): Durchsucht Personen über verschiedene Rollen hinweg (student, faculty, staff).

  • get_course_statistics(course_code_or_name): Zusammenfassende Statistiken (Gesamtzahl der eingeschriebenen und Notenverteilung).

  • list_all_courses(): Vollständiges Verzeichnis aller Kursen.

  • execute_custom_sql_query(query): Schreibgeschützte Ausführung von Abfragen für komplexe Aggregationen.


Setup & Installation

1. Voraussetzungen

2. Abhängigkeiten installieren

pip install -r requirements.txt

3. Umgebungsvariablen konfigurieren

Erstellen oder bearbeiten Sie Ihre .env-Datei im Projektstammverzeichnis:

GEMINI_API_KEY=your_actual_gemini_api_key_here

4. Synthetische Datenbank generieren

Initialisieren Sie die Datenbank mit synthetischen Datensätzen:

python create_data.py

Verwendung

Starten Sie den interaktiven KI-Bot

python bot.py

Geben Sie Ihre akademischen oder administrativen Fragen ein (z. B. "Zeig mir alle Kurse in Informatik" oder "Welche Noten hat John Doe erhalten?"). Geben Sie exit oder exit ein, um die Sitzung zu beenden.

Als MCP-Server verbinden (z. B. IDE / Claude Desktop / Antigravity)

Verwenden Sie mcp_config.example.json, um tooling.py in Ihrer MCP-Client-Konfiguration zu registrieren:

{
  "mcpServers": {
    "college-tools-mcp": {
      "command": "python",
      "args": [
        "-Wignore",
        "<FULL_PATH_TO>/tooling.py"
      ]
    }
  }
}

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    C
    maintenance
    Provides MCP tools for searching student profiles, viewing marks/attendance, and finding low-attendance students. Enables AI assistants like Gemini to interact with college student data through natural language.
    -
  • F
    license
    Not graded
    quality
    B
    maintenance
    MCP server exposing a university course catalog with tools for searching courses, looking up prerequisites and instructors, and generating prerequisite graphs, plus resources and a prompt template for AI academic advisors.
    -
  • F
    license
    Not graded
    quality
    C
    maintenance
    Enables LLM agents to safely query educational administration databases through read-only MCP tools, enforcing SQL whitelisting, automatic LIMIT caps, parameterized queries, timeouts, token authentication, and audit logging.
    -