AI Access

Let an AI assistant search courses for you.

BadgerBase runs an MCP (Model Context Protocol) server that lets an AI assistant search the UW–Madison course catalog on your behalf, using the same data and filters the site itself uses. It requires your BadgerBase account, and you approve access before anything connects.

Server URL
https://mcp.badgerbase.app/mcp

/01

The three tools

The server exposes three tools. search_courses searches the catalog and historic GPA data. get_course returns one course in full — description, prerequisites, and every section with its seats, instructors and meeting times. my_subscriptions lists the courses and sections you’re watching. Search now reaches the section-level filters too — professor ratings, open seats, and the times you’re free — so it can answer things like “an open COMP SCI course with a well-rated professor that fits my Tuesday afternoon.”

search_courses tool filters and their meaning
FilterMeaning
search_paramFree text over course designation, title, and instructor name.
subject_codeExact subject match, e.g. COMP SCI.
levelElementary, Intermediate, or Advanced. Comma-separate to match any.
min_gpaMinimum cumulative GPA earned by past students, on a 0–4 scale.
statusOPEN, WAITLISTED, or CLOSED. Comma-separate to match any.
min_credits / max_creditsCredit range for the course.
general_educationAn exact gen-ed code, e.g. QR-A — not a yes/no flag.
ethnic_studies / humanities / social_science / natural_scienceBreadth requirement flags.
min_professor_ratingRateMyProfessor rating of the section's instructors, 1–5.
max_professor_difficultyDifficulty ceiling, 1–5 — nothing harder than this.
min_professor_ratings_countOnly sections whose instructors have at least this many ratings, so one review can't decide it.
min_would_take_again_percentWould-take-again percentage, 0–100.
min_open_seatsSections with at least this many seats currently open.
free_monday … free_fridayWhen you're free that day, e.g. "13:00-17:00,18:00-20:00". See the note below — the semantics are stricter than they look.
sortcumulative_gpa or recent_gpa, highest first.
limitResults per page. Defaults to 10, capped at 25.
page1-based page number, for paging through results.
get_course

Takes a designation like COMP SCI 400. Some designations cover several different courses — topics courses and seminars share a code — so it answers with the list of variants and you pick one by title.

my_subscriptions

Takes no arguments and reads only your own subscriptions. It cannot subscribe or unsubscribe you — nothing the AI does here can change what you’re watching.

How the free_* filters actually work

These are the blocks you are free, not the times you want class. A course matches only if one of its sections has every meeting inside your blocks — and a section meeting on a day you didn’t mention is excluded outright. So asking for “morning classes” by giving only free_monday will also drop everything that meets Tuesday through Friday. Give every day you could attend.

/02

The two permissions

The consent screen asks for these separately. courses:read covers searching and course detail. subscriptions:read covers seeing what you’re watching. A connection granted only the first is refused if it asks for your subscriptions, so you can approve search without handing over your watchlist.

/03

Connect it in Claude

STEP 01
Open Settings → Connectors

In Claude, go to Settings and find the Connectors section, then choose Add custom connector.

STEP 02
Paste the server URL

Enter https://mcp.badgerbase.app/mcp as the connector URL and save it.

STEP 03
Sign in to BadgerBase

Claude opens BadgerBase sign-in. Use your existing account, or create one if you don't have one yet.

STEP 04
Review and approve

You'll land on a consent screen naming the client and exactly what it can do. Approve to finish connecting, or decline to stop here.

This works with any MCP client that supports Streamable HTTP with OAuth, not just Claude. The exact menu names differ by client, but the shape is the same: add a custom connector, give it the server URL above, sign in, and approve. After you sign in, BadgerBase shows a consent screen naming the client that's requesting access and exactly what it can do.

/04

Things to try asking

Find open COMP SCI courses with a class GPA above 3.3

Which QR-A courses still have seats?

Compare intermediate STAT courses by GPA

What are the meeting times and instructors for COMP SCI 400?

Has a seat opened in any section I'm watching?

Of the courses I'm watching, which has the highest average GPA?