Skip to main content
Glama

Classavo MCP Server

A Model Context Protocol (MCP) server that enables AI assistants like Claude Desktop to interact with the Classavo education platform via natural language.

Features

For Professors

  • Course Management - Create courses, manage rosters, invite students

  • Assignments - Create, update, clone assignments and quizzes

  • Grading - View submissions, grade work, provide feedback

  • Attendance - Start sessions, generate codes, track attendance

  • Live Polling - Create and run polls during class

  • Discussions - Create threads, pin comments, manage discussions

  • Analytics - View insights, export gradebook to LMS formats

For Students

  • View Grades - See YOUR grades (privacy protected)

  • Submit Work - Submit assignments

  • Attendance - Check in with attendance codes

  • Polling - Vote in active polls

  • Discussions - Participate in discussions

  • Content - View course chapters and materials

Related MCP server: EduBase MCP Server

Privacy Controls

Important: This server implements strict privacy controls:

  • Students can ONLY view their own grades, submissions, and attendance

  • Student tools do not accept student_id parameters

  • API endpoints return only the authenticated user's data

  • Professor-only tools verify user role before execution

Installation

Prerequisites

  • Python 3.10+

  • A Classavo account (Professor or Student)

Setup

  1. Clone the repository:

git clone https://github.com/kiranprakashkm/classavo-mcp.git
cd classavo-mcp
  1. Create a virtual environment:

python3 -m venv venv
source venv/bin/activate  # On Windows: venv\Scripts\activate
  1. Install dependencies:

pip install -r requirements.txt

Configuration

Environment Variables

Create a .env file or set these environment variables:

# Classavo API URL (production or local)
CLASSAVO_API_URL=https://api.classavo.com

# Option 1: Pre-configured API token
CLASSAVO_API_TOKEN=your_token_here

# Option 2: Username/password for login flow
CLASSAVO_USERNAME=your_email@example.com
CLASSAVO_PASSWORD=your_password

# Optional settings
CLASSAVO_RATE_LIMIT=10  # Requests per second
DEBUG=false

Claude Desktop Configuration

Add to ~/.config/claude/claude_desktop_config.json (macOS/Linux) or %APPDATA%\Claude\claude_desktop_config.json (Windows):

{
  "mcpServers": {
    "classavo": {
      "command": "python",
      "args": ["/path/to/classavo-mcp/main.py"],
      "env": {
        "CLASSAVO_API_URL": "https://api.classavo.com",
        "CLASSAVO_USERNAME": "your_email@example.com",
        "CLASSAVO_PASSWORD": "your_password"
      }
    }
  }
}

Alternatively, use an API token:

{
  "mcpServers": {
    "classavo": {
      "command": "python",
      "args": ["/path/to/classavo-mcp/main.py"],
      "env": {
        "CLASSAVO_API_URL": "https://api.classavo.com",
        "CLASSAVO_API_TOKEN": "your_api_token_here"
      }
    }
  }
}

Running the Server

Standalone

python main.py

With Claude Desktop

After configuring Claude Desktop, restart it. The Classavo tools will be available automatically.

Available Tools

Authentication

Tool

Description

login

Authenticate with username/password

logout

End session

get_my_profile

View current user info

get_notifications

View notifications

Courses

Tool

Description

Access

list_courses

List your courses

All

get_course

Get course details

All

create_course

Create a new course

Professor

get_course_roster

View enrolled students

Professor

invite_students

Invite students by email

Professor

join_course

Join with invite code

Student

get_course_analytics

View course insights

Professor

Assignments

Tool

Description

Access

list_assignments

List assignments

All

get_assignment

Get assignment details

All

create_assignment

Create assignment

Professor

update_assignment

Update assignment

Professor

delete_assignment

Delete assignment

Professor

create_question

Add question to assignment

Professor

clone_assignment

Clone to another course

Professor

Grading & Submissions

Tool

Description

Access

list_submissions

View all submissions

Professor

get_submission

View submission details

Professor

grade_submission

Grade a submission

Professor

get_gradebook

Full gradebook

Professor

export_gradebook

Export to LMS format

Professor

view_my_grades

Your grades only

Student

view_my_submissions

Your submissions only

Student

submit_assignment

Submit your work

Student

Attendance

Tool

Description

Access

start_attendance_session

Start attendance

Professor

end_attendance_session

End session

Professor

get_active_sessions

View active sessions

Professor

get_attendance_report

Attendance report

Professor

mark_student_attendance

Manual marking

Professor

check_in_attendance

Check in with code

Student

view_my_attendance

Your attendance

Student

Polling

Tool

Description

Access

list_polls

List polls

Professor

create_poll

Create a poll

Professor

start_poll

Launch poll

Professor

end_poll

End poll

Professor

get_poll_results

View results

Professor

vote_in_poll

Cast your vote

Student

get_active_polls

View active polls

Student

Discussions

Tool

Description

Access

list_discussions

List discussions

All

get_discussion

View discussion

All

create_discussion

Create thread

Professor

post_comment

Add comment

All

pin_comment

Pin comment

Professor

delete_discussion

Delete thread

Professor

Tool

Description

Access

global_search

Search across courses

All

Example Usage

Professor Examples

"List all my courses"
"Show the roster for Chemistry 101"
"Create a homework assignment called 'Chapter 5 Review' for course abc123"
"Start attendance for my Biology class"
"How did students do on the midterm exam?"
"Export grades to Canvas format"

Student Examples

"What are my grades in Chemistry?"
"Show my upcoming deadlines"
"Check me in with attendance code 1234"
"Submit my homework for assignment xyz"
"Vote option B in the current poll"

Development

Running Tests

pytest
pytest --cov=. --cov-report=term-missing

Project Structure

classavo-mcp/
├── main.py              # FastMCP server entry point
├── config.py            # Environment configuration
├── client.py            # Async HTTP client for Classavo API
├── auth.py              # Authentication management
├── tools/
│   ├── __init__.py      # Tool registration
│   ├── auth_tools.py    # Login, profile, notifications
│   ├── course_tools.py  # Course CRUD, roster
│   ├── assignment_tools.py  # Assignment management
│   ├── grading_tools.py     # Submissions, grading
│   ├── attendance_tools.py  # Attendance tracking
│   ├── polling_tools.py     # Live polls
│   ├── discussion_tools.py  # Discussion boards
│   └── student_tools.py     # Student-specific (privacy protected)
├── requirements.txt
├── README.md
└── PLAN.md

License

MIT License - See LICENSE file for details.

Support

For issues or questions:

  • Open an issue on GitHub

  • Contact the Classavo support team

F
license - not found
-
quality - not tested
D
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/kiranprakashkm/classavo-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server