Skip to main content
Glama
sarvea45

University Course Catalog MCP Server

by sarvea45

University Course Catalog MCP Server

A Model Context Protocol (MCP) server exposing a university course catalog to Large Language Models (LLMs). This project acts as the backend for an AI-powered academic advisor, demonstrating how to use the MCP specification, define tools and resources, and manage state securely with a SQLite database.

Technologies Used

  • Python 3.12

  • FastAPI (for HTTP and SSE transport)

  • Model Context Protocol (MCP) SDK

  • SQLAlchemy (Database ORM)

  • Pydantic (Data validation)

  • NetworkX (Graph resolution for prerequisites)

  • Docker & Docker Compose (Containerization)

Related MCP server: University Course Catalog MCP Server

Getting Started

1. Prerequisites

Ensure you have Docker and Docker Compose installed on your system.

2. Environment Variables

An .env.example file is provided in the repository root. Ensure the database URL is correctly configured:

DATABASE_URL=sqlite:///./data/catalog.db
PORT=8080

3. Running the Server

You can launch the entire system using Docker Compose. This command builds the image, runs the database seed script automatically, and mounts the data/ volume for database persistence:

docker-compose up --build -d

The server will be available at http://localhost:8080. Docker Compose will also execute an automated healthcheck.

MCP Capabilities

Tools

  • search_courses: Searches the university course catalog for courses matching a query string. Can optionally filter by a specific department code.

  • get_prerequisites: Retrieves the direct prerequisites for a given course code.

  • lookup_instructor: Finds an instructor's details (Name, Email, Department) by their name.

  • get_prerequisite_graph: Returns the full, multi-level dependency graph (nodes and edges) for a given course using NetworkX.

Resources

  • course-catalog://course_descriptions: A formatted text resource containing all courses and their descriptions.

  • course-catalog://department_directory: A formatted text resource listing all academic departments and their codes.

Prompt Templates

  • course_comparison_template: A prompt template requesting the LLM to generate a structured comparison between two specific courses using their course codes.

Testing Locally

You can test the MCP server functionality by connecting the official MCP Inspector CLI to the server:

npx @anthropic-ai/inspector http://localhost:8080/sse

From the inspector, you can invoke tools, fetch resources, and render prompt templates interactively.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    A 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.
    1
    MIT
  • A
    license
    Not graded
    quality
    A
    maintenance
    A read-only MCP server exposing NTNU course data to LLM assistants, enabling course catalog search, teaching schedules, weekly timetables, grade statistics, and course comparison tools.
    1
    MIT
  • 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.
    -