University Course Catalog MCP Server
README.md
# University Course Catalog MCP Server
This project implements an MCP server for a university course catalog, backed by SQLite and exposed over HTTP on port 8080.
## What it provides
- `search_courses`: search courses by keyword and optional department code.
- `get_prerequisites`: fetch the direct prerequisites for a course code.
- `lookup_instructor`: look up an instructor by name.
- `get_prerequisite_graph`: return the full prerequisite dependency graph for a course.
- `course_descriptions`: resource with all course descriptions.
- `department_directory`: resource with all departments and codes.
- `course_comparison_template`: prompt template for comparing two courses.
## Project Layout
- `src/`: application code.
- `data/catalog.db`: seeded SQLite database.
- `data/seed.py`: database seeding helper used for submission requirements.
- `Dockerfile`: container build definition.
- `docker-compose.yml`: local orchestration.
## Run with Docker Engine
Docker Desktop is not required. Use a standard Docker Engine installation with the Compose plugin, or a compatible `docker-compose` CLI.
```bash
docker compose up --build
```
The server will be available at `http://localhost:8080`, and the health endpoint is `http://localhost:8080/health`.
## Local Development
If you are not using Docker at all, you can run the server directly with Python:
```bash
python -m venv .venv
.venv\\Scripts\\activate
pip install -r requirements.txt
python -m src.seed
$env:PORT=8081
python -m src.main
```
If port 8080 is already in use, pick another free port with `PORT` and run `python -m src.main` again.
## Example Queries
- Search for programming courses in Computer Science.
- Show prerequisites for `CS350`.
- Look up instructor `Dr. Ada Lovelace`.
- Compare `CS101` and `CS102`.
## MCP endpoint
The MCP ASGI app is mounted at `/mcp`.
This server cannot be deployed
Maintenance
ActivitySlowing
ResponsivenessNo issues