purdue-mcp
Click on "Install 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., "@purdue-mcpwhen's the next bus from the PMU?"
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.
purdue-mcp
One MCP server for all public, real-time Purdue University data — dining menus, live gym occupancy, the course catalog, bus times, campus events, student orgs, library hours, athletics, news, and weather. Point any MCP client (Claude Code, Claude Desktop, Cursor, …) at it and ask "what's for dinner at Wiley", "how busy is the CoRec", or "when's the next bus from the PMU".
24 tools across 10 public sources.
Everything it reads is public and unauthenticated. It never touches a student account, grades, schedules, bursar records, or anything behind a Purdue login.
Unofficial and community-run. Not affiliated with, endorsed by, or operated by Purdue University.
Install
npm install -g purdue-mcpOr run straight from the repo:
git clone https://github.com/sharziki/purdue-mcp && cd purdue-mcp
npm install && npm run buildConnect it
Claude Code
claude mcp add purdue -- npx -y purdue-mcpClaude Desktop / Cursor — add to your MCP config:
{
"mcpServers": {
"purdue": {
"command": "npx",
"args": ["-y", "purdue-mcp"]
}
}
}Tools
Dining — Purdue HFS dining API
Tool | What it answers |
| Every dining court / Quick Bites / On-the-GO!, open right now or next meal time |
| Full menu for a location and date, by meal and station, with vegan/vegetarian/allergen filters |
| "Who's serving chicken tenders today?" — searches every dining court at once |
| Full nutrition panel for any menu item |
| Crowdsourced live line-length reports (populated around peak meal hours) |
Academics — Purdue.io course catalog
Tool | What it answers |
| Term codes and date ranges, newest first |
| Every subject code (CS, MA, ENGR, …) |
| Courses by subject, number, or title keyword — with descriptions and credit hours |
| CRNs, section types, meeting days/times, rooms, and instructors for a term |
| Resolve a building code, e.g. |
Campus life
Tool | What it answers |
| Official university calendar — lectures, athletics, career fairs, deadlines |
| ~1,200 registered student organizations on BoilerLink |
| Upcoming club events: callouts, socials, meetings |
Facilities
Tool | What it answers |
| Live headcount and % capacity for all 37 counted RecWell spaces — "how busy is the CoRec right now" |
| Today's hours and open/closed status for every library, or the full week |
Athletics
Tool | What it answers |
| Every varsity team and its current season schedule |
| Full season for one team — opponents, rankings, home/away, venue, results |
| Next Boilermaker games across all sports, soonest first |
Getting around
Tool | What it answers |
| Every CityBus route serving campus and Greater Lafayette |
| Find stops by name, or the stops nearest a lat/lon |
| Next scheduled departures from a stop, with minutes-until |
News and deadlines
Tool | What it answers |
| Official newsroom articles, searchable |
| First day of classes, breaks, finals week, add/drop deadlines, exam scheduling |
Environment
Tool | What it answers |
| Current conditions, forecast, and active NWS alerts for West Lafayette |
Dates default to today in the campus timezone (America/Indiana/Indianapolis), so the server gives the right answer no matter where it runs.
Data sources
Source | Endpoint | Notes |
Purdue Dining (HFS) |
| Official, public, unauthenticated |
Purdue.io |
| Community-run open-source catalog mirror (Purdue-io/PurdueApi) |
Purdue Events |
| Localist public API |
BoilerLink |
| Anthology Engage public discovery API |
Purdue RecWell |
| Live occupancy counters; account key is the one Purdue's own public widget ships |
Purdue Libraries |
| Springshare LibCal public hours endpoints |
Purdue Athletics |
| Official athletics site's public JSON API |
Purdue Newsroom / Registrar |
| WordPress REST API |
CityBus |
| Static schedule feed; no public real-time feed exists |
NOAA / NWS |
| Public federal API |
Responses are cached in-process with short TTLs (30s–24h depending on how fast the data moves) to stay a polite client. Nothing is persisted to disk.
Ruled out (investigated, no public source)
Laundry machine availability — Purdue moved residence-hall laundry to CSCPay Mobile, which has no public web status page. The old
washalertwebhost the community app scraped no longer resolves.Real-time bus positions — CityBus publishes GTFS static only. No GTFS-Realtime feed is listed on Transitland or the Mobility Database, and MyRide's backend is not public.
bus_next_departuresreturns timetable times.Parking garage availability — Purdue Parking publishes no live space counts.
Seat availability / waitlists — lives behind the myPurdue login. Out of scope by design.
Adding a source
Each source is one file in src/sources/ exporting a registerX(server) that calls server.registerTool(...). Register it in src/index.ts. Use getJSON() from src/lib/http.ts so you inherit the timeout, User-Agent, and cache.
Rules of the road:
Public data only. Nothing that needs a Purdue login, and nothing about a specific individual.
Verify the endpoint is live before shipping it —
npm run smokehits every real upstream and is the test suite.Be a polite client. Sensible cache TTL, no tight polling.
npm run build
npm run smoke # live end-to-end check of all toolsLicense
MIT
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
This MCP server provides seamless access to Malaysia's government open data, including datasets, w…
Read-only MCP server for ClassQuill, a tutoring-business-management platform.
MCP server exposing Kettle Logic insight articles & industry guidance as tools + resources.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/sharziki/purdue-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server