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: Georgia Tech 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.

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

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/sarvea45/Model-Context-Protocol-MCP-Server-for-a-University-Course-Catalog'

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