AVV Chennai Academic Calendar MCP Server
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@AVV Chennai Academic Calendar MCP ServerWhat holidays are in September 2026 for the Chennai campus?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Amrita Vishwa Vidyapeetham (Chennai) Academic Calendar MCP Server & OpenAPI REST API
An OpenAPI 3.1 compatible Model Context Protocol (MCP) Server and REST API for the Amrita Vishwa Vidyapeetham, Chennai Campus Academic Calendar (AY 2026-27).
Designed specifically for LLMs (Claude, GPT, Gemini, Cursor, Cline, Antigravity) to query academic schedules, examination dates, class days (CD01..CD90), holidays, faculty feedback sessions, class committee meetings, and timetable swaps.
๐ฏ Key Features
Dual Compatibility:
MCP Protocol: Native support for tools, resources, and prompt templates over stdio and SSE transports via FastMCP.
OpenAPI 3.1 REST API: Complete FastAPI service providing Swagger UI (
/docs), ReDoc (/redoc), OpenAPI JSON (/openapi.json), and OpenAPI YAML (/openapi.yaml).
Comprehensive Academic Dataset:
Covers all 374 days of Academic Year 2026-27 (June 1, 2026 โ June 9, 2027).
Tracks separate cohorts:
Senior UG/PG: Semesters III, IV, V, VI, VII, VIII UG and Sem III, IV PG.
First Year UG/PG: Semesters I and II UG and PG.
Class Day progression from CD01 to CD90 for each semester.
Special Saturday timetable replacements (e.g., Saturday working with Monday Timetable).
Categorized academic milestones: Commencements, Midterms, Missed Midterms, Practical Exams, End Semester Theory Exams, Faculty Feedbacks, and Class Committee Meetings.
OpenAPI Schema Access for LLMs:
LLM agents can query
get_openapi_specificationdynamically or fetch/openapi.jsondirectly to discover all endpoints and data schemas.
Related MCP server: webcal-mcp
๐ Repository Structure
.
โโโ AVV_Chennai_Academic_Calendar_AY2026-27.json # Raw academic calendar source dataset
โโโ calendar_service.py # Data indexing, search & calculation engine
โโโ fastapi_app.py # FastAPI app implementing OpenAPI 3.1 REST endpoints
โโโ mcp_server.py # FastMCP server with tools, resources & prompts
โโโ server.py # Unified CLI entry point (stdio / HTTP / export)
โโโ openapi.json # Pre-generated OpenAPI 3.1 JSON specification
โโโ openapi.yaml # Pre-generated OpenAPI 3.1 YAML specification
โโโ mcp_config.json # Example MCP client configuration
โโโ test_server.py # 21 pytest & integration tests
โโโ README.md # Documentation๐ How to Run
1. Run as MCP Server (Stdio Mode)
Use this mode when connecting from Claude Desktop, Cursor, Cline, or any stdio-based MCP client:
python3 server.py --stdio2. Run as Systemd Background Service (Port 8003 - Active)
The server is deployed as a persistent Linux systemd daemon for 24/7 background operation.
๐ Service Quick Reference Card
Parameter | Value |
Service Name |
|
Systemd Unit File |
|
Repository Unit Copy | |
Listen Port |
|
Bind Host |
|
Execution Mode | HTTP REST (FastAPI) + OpenAPI 3.1 + MCP SSE |
Working Directory |
|
Python Binary |
|
Start Command |
|
Restart Policy |
|
Run As User |
|
Environment |
|
๐ Service URLs (Port 8003)
OpenAPI 3.1 JSON: http://localhost:8003/openapi.json
OpenAPI 3.1 YAML: http://localhost:8003/openapi.yaml
Interactive Swagger UI: http://localhost:8003/docs
ReDoc Documentation: http://localhost:8003/redoc
MCP SSE Transport: http://localhost:8003/sse
Health Check: http://localhost:8003/health
๐ ๏ธ Service Management Commands
# Check service status and health
systemctl status academic-calendar.service
# Restart the service (e.g. after code changes or updates)
systemctl restart academic-calendar.service
# Stop the service
systemctl stop academic-calendar.service
# Start the service
systemctl start academic-calendar.service
# Enable autostart on system boot
systemctl enable academic-calendar.service
# Disable autostart on system boot
systemctl disable academic-calendar.service
# Reload systemd configuration after modifying the unit file
systemctl daemon-reload
# View real-time streaming logs
journalctl -u academic-calendar.service -f
# View the last 50 log entries without paging
journalctl -u academic-calendar.service -n 50 --no-pager
# Verify that the server is actively listening on port 8003
ss -tulpn | grep 8003๐งช Quick curl Verification
# 1. Health check
curl -s http://localhost:8003/health
# 2. Get OpenAPI spec
curl -s http://localhost:8003/openapi.json
# 3. Query calendar entry for Gandhi Jayanthi (Holiday)
curl -s http://localhost:8003/api/v1/date/2026-10-02
# 4. Search for Midterm Exam dates
curl -s "http://localhost:8003/api/v1/search?q=Midterm"
# 5. Get all working Saturdays with swapped timetables
curl -s http://localhost:8003/api/v1/timetable-swaps3. Run Manually via CLI (Development Mode)
# HTTP & SSE Mode on custom port
python3 server.py --http --port 8003 --host 0.0.0.0
# Stdio MCP Mode (for interactive terminal / stdin pipe)
python3 server.py --stdio4. Re-export OpenAPI Specifications
Generate fresh openapi.json and openapi.yaml files:
python3 server.py --export-openapi๐ Connecting to LLM Clients
Claude Desktop Configuration
Add the following to your claude_desktop_config.json (located at ~/.config/Claude/claude_desktop_config.json on Linux or %APPDATA%/Claude/claude_desktop_config.json on Windows):
{
"mcpServers": {
"avv-chennai-academic-calendar": {
"command": "python3",
"args": [
"/home/hirthikbalaji/SocialMedia/ACADEMIC_CALENDER/server.py",
"--stdio"
],
"env": {
"PYTHONUNBUFFERED": "1"
}
}
}
}Cursor Configuration (.cursor/mcp.json)
{
"mcpServers": {
"academic-calendar": {
"command": "python3 /home/hirthikbalaji/SocialMedia/ACADEMIC_CALENDER/server.py --stdio"
}
}
}๐ ๏ธ MCP Tools Reference
Tool Name | Parameters | Description |
| none | Returns institution name, academic year, version, approver, legend, and dates. |
|
| Lookup day status (W/CD/H), Class Day (CD01..CD90), events, or timetable swaps for any date (e.g. |
|
| Full-text search across all event descriptions, dates, and class days. |
|
| Retrieves chronological schedule for a date range with optional filters. |
|
| Lists holidays. Set |
|
| Retrieves major milestones ( |
|
| Returns upcoming events and milestones starting from a reference date. |
|
| Computes working days, holidays, vacation days, and instructional class days (CDs) for attendance calculations. |
|
| Lists all working Saturdays where an alternate day timetable (e.g. Monday TT) is followed. |
|
| Returns full OpenAPI 3.1 specification (JSON or YAML) so the LLM can dynamically inspect all endpoints. |
๐ฆ MCP Resources & Prompts
Resources
calendar://metadata- Calendar document information, approval, and legend definitions.calendar://holidays- Complete list of 23 official named festival and public holidays.calendar://milestones- All 48 key academic milestones (exams, feedbacks, commencements).calendar://timetable-swaps- All 19 working Saturdays and special day orders.calendar://full- The complete raw JSON calendar document.openapi://schema.json- Complete OpenAPI 3.1 specification for the REST API.
Prompts
academic_advising(cohort, current_date): Template guiding an LLM in advising a student on upcoming exams, feedback, and deadlines.holiday_and_leave_inquiry(month): Template guiding an LLM in summarizing monthly holidays and long weekends.attendance_and_class_day_counter(cohort, from_date, to_date): Template for calculating student attendance and remaining instructional days against the 90 class days requirement.
๐ OpenAPI REST Endpoints
All endpoints are documented interactively at /docs (Swagger UI):
GET /api/v1/metadata- Get official calendar metadataGET /api/v1/date/{target_date}- Detailed query for single dateGET /api/v1/calendar- Range and filter queryGET /api/v1/search- Keyword searchGET /api/v1/holidays- List holidays (withnamed_onlyfilter)GET /api/v1/timetable-swaps- List timetable replacement daysGET /api/v1/milestones- List academic milestonesGET /api/v1/upcoming- List upcoming eventsGET /api/v1/stats/class-days- Count instructional class days (CDs) and working daysGET /api/v1/export/full- Full raw JSON dataGET /openapi.yaml- OpenAPI YAML specificationGET /health- Service healthcheck
๐งช Testing
Run the automated test suite with pytest:
python3 -m pytest -p no:anyio test_server.py -vAll 21 test cases cover metadata validation, single-date lookups, holidays filtering, class day counters, timetable swaps, milestone categorization, FastAPI routes, and FastMCP tool executions.
This server cannot be deployed
Maintenance
Related MCP Connectors
Calendar API for AI agents: events, availability, Google/Microsoft setup, scheduling, and iCal.
Reliable Australian business-day, public-holiday and deadline tools for AI agents.
Deterministic calendars and cosmic date JSON for AI agents via MCP (Gregorian 1900-2100).
Time and date math for AI agents: Unix timestamp conversion, DST-correct time zone conversion, durations, epoch arithmetic, cron schedules, and holiday countdowns. Eight tools, no key.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceA Model Context Protocol server that provides LLMs with access to Georgia Tech's OSCAR course schedule system, enabling search for courses, subjects, and detailed course information.1MIT
- AlicenseNot gradedqualityAmaintenanceA read-only MCP server that exposes iCalendar feeds as queryable tools for LLM agents, enabling calendar event retrieval and filtering.MIT
- AlicenseNot gradedqualityCmaintenanceMCP server that provides intelligent student assistance tools for academic calculations, attendance tracking, marks analysis, and syllabus reading via Groq LLM.30 npm1MIT
- AlicenseAqualityCmaintenanceEnables AI clients to read DTU Learn classes, assignments, deadlines, exams, and recent calendar changes through a local MCP server, using a cached SQLite store for fast and resilient queries.6MIT