TeacherAssist-MCP
AI-powered Teacher Assistance MCP Server for managing student records with PostgreSQL, enabling create and read operations via MCP tools.
README
TeacherAssist-MCP
AI-powered Teacher Assistant MCP Server built with FastMCP, FastAPI, PostgreSQL, SQLAlchemy, and Email Notifications.
This project demonstrates how to build a Model Context Protocol (MCP) server that allows AI assistants such as Claude Desktop to manage student records through MCP tools while automatically sending registration emails to students.
Features
- Create students
- Retrieve all students
- Email notification on student registration
- PostgreSQL database integration
- SQLAlchemy ORM
- FastAPI REST API
- Claude Desktop MCP integration
- MCP Inspector support
- Beginner-friendly project structure
Tech Stack
- Python 3.11+
- FastMCP
- FastAPI
- PostgreSQL
- SQLAlchemy
- Psycopg2
- SMTP (Gmail)
- UV Package Manager
- Claude Desktop
- MCP Inspector
Project Structure
TeacherAssist-MCP/
│
├── app/
│ ├── db/
│ │ └── database.py
│ │
│ ├── models/
│ │ └── student.py
│ │
│ ├── schemas/
│ │ └── student.py
│ │
│ ├── services/
│ │ ├── student_service.py
│ │ └── email_service.py
│ │
│ ├── mcp/
│ │ ├── server.py
│ │ └── tools/
│ │ └── student_tools.py
│ │
│ └── main.py
│
├── .env
├── pyproject.toml
├── uv.lock
├── README.md
└── .venv/
Prerequisites
Install:
- Python 3.11+
- PostgreSQL
- Git
- UV
Verify:
python --version
git --version
psql --version
uv --version
Clone Repository
git clone https://github.com/YOUR_USERNAME/TeacherAssist-MCP.git
cd TeacherAssist-MCP
Install Dependencies
Using UV:
uv sync
Activate environment:
Windows
.venv\Scripts\activate
Linux/macOS
source .venv/bin/activate
PostgreSQL Setup
Create database:
CREATE DATABASE teacherassist;
Example connection:
DATABASE_URL=postgresql://postgres:password@localhost:5432/teacherassist
Email Configuration
Create a .env file:
DATABASE_URL=postgresql://postgres:password@localhost:5432/teacherassist
EMAIL_USER=your_email@gmail.com
EMAIL_PASSWORD=your_gmail_app_password
Gmail Setup
- Enable 2-Step Verification
- Open Google Account Security
- Generate App Password
- Use the generated password as
EMAIL_PASSWORD
Do NOT use your Gmail login password.
Run FastAPI Server
uv run uvicorn app.main:app --reload
Open:
http://127.0.0.1:8000/docs
Swagger UI will be available for testing APIs.
Run MCP Server
uv run python -m app.mcp.server
Expected output:
Starting MCP server 'TeacherAssist MCP'
transport 'stdio'
Test Using MCP Inspector
Run:
npx @modelcontextprotocol/inspector uv run python -m app.mcp.server
Open the generated URL.
Available tools:
- create_student
- get_students
Claude Desktop Configuration
Open Claude Desktop MCP configuration file and add:
{
"mcpServers": {
"Teacher-Assistance": {
"command": "D:\\Projects\\TeacherAssist-MCP\\.venv\\Scripts\\python.exe",
"args": [
"-m",
"app.mcp.server"
],
"cwd": "D:\\Projects\\TeacherAssist-MCP"
}
}
}
Replace the paths with your own project location.
Restart Claude Desktop.
API Examples
Create Student
POST /students
{
"student_id": 101,
"name": "Monirul Islam",
"email": "student@example.com"
}
Response:
{
"student_id": 101,
"name": "Monirul Islam",
"email": "student@example.com"
}
A confirmation email will automatically be sent.
Get Students
GET /students
Response:
[
{
"student_id": 101,
"name": "Monirul Islam",
"email": "student@example.com"
}
]
Example Claude Desktop Prompts
Create a student with ID 1001, name Monirul Islam, email monirul@gmail.com
Show all students
Claude will invoke MCP tools automatically.
Common Issues
ModuleNotFoundError: app
Run from project root:
uv run python -m app.mcp.server
PostgreSQL Connection Error
Verify:
- PostgreSQL service is running
- Database exists
- Credentials are correct
- DATABASE_URL is correct
Claude Desktop Cannot Connect
Verify:
- Correct Python executable path
- Correct cwd path
- MCP server runs manually
- Claude Desktop restarted after config change
Gmail Authentication Failed
Use a Google App Password.
Do not use your normal Gmail password.
Duplicate Student ID
Student IDs must be unique.
Use a new ID when creating students.
Future Enhancements
- Update Student
- Delete Student
- Attendance Management
- Grade Calculation
- GPA Calculation
- Student Reports
- AI-powered Analytics
- Authentication & Authorization
- Multi-user Support
License
MIT License
Author
Monirul Islam
TeacherAssist-MCP demonstrates how AI assistants can interact with PostgreSQL databases through FastMCP and the Model Context Protocol (MCP), while integrating FastAPI APIs and automated email notifications.
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.