purdue-mcp (sharziki/purdue-mcp) is an MCP server listed on the M8ven Trust Index. It scores 73 out of 100, grade C. It declares 29 tools. No publisher has claimed this listing.
MCP server providing 24 tools to access public, real-time Purdue University data including dining menus, gym occupancy, course catalogs, bus times, events, and more.
Caution. Specific findings reduced this grade. They are listed on the page. Grades reflect the full trust pyramid: code, verification depth, and reputation. New projects cap at C until adoption is earned.
How we verified
Verified is a snapshot. Live keeps it current, and builds your track record.
⚡ Connect GitHub → continuous verification on every pushwhy connect →Who stands behind it
sharziki
Source: Glama
Claim it to get a verified publisher badge, a free copy of our full audit findings, and direct contact for any high-priority issues we find. Or connect your repo for our deepest verification, Live Monitored: read-only, revoke anytime. What we access →
Install from
The grade above is for the source repository. Registries can serve a different version, so we mark the ones we were not able to read.
These names and descriptions are the publisher's own, read from the source code. We print them as written. Our assessment is the findings above, not this list.
athletics_sportsEvery Purdue varsity sport and its current schedule id. Source: purduesports.com (official athletics site API).
athletics_scheduleFull season schedule for one Purdue team — dates, opponents, home/away, venue, and final scores where played. Source: purduesports.com (official athletics site API).
athletics_upcomingThe next Boilermaker games across every varsity sport, soonest first — what to go watch this week. Source: purduesports.com (official athletics site API).
course_availabilityHow many seats are actually open in each section of a course right now, with waitlist counts, CRNs, meeting times, and instructors. This is the authoritative registration data — use it over search_courses/course_sections when the question is 'can I get in'. Source: Purdue Banner self-service (public…
section_detailsEverything Banner knows about one section: seats, waitlist, prerequisites, and major/level restrictions. Answers 'why can't I register for this'. Meeting times come from course_availability or course_sections. Source: Purdue Banner self-service (public, live).
banner_termsTerms available in Purdue's live registration system, newest first. Terms marked 'View only' are closed to registration. Source: Purdue Banner self-service.
reddit_purdueCurrent posts from r/Purdue — the unofficial student pulse: housing and sublease chatter, campus gripes, events, advice threads, what is actually happening this week. Unofficial and unmoderated by the university; treat as opinion, not fact. Source: reddit.com/r/Purdue public feed.
purdue_exponentArticles from the Purdue Exponent, the independent student newspaper — campus reporting, student government, local news, sports coverage. Editorially independent of the university. Source: purdueexponent.org public feed.
list_termsEvery term in the Purdue course catalog, newest first, with codes and date ranges. Use the code with the other course tools. Source: Purdue.io (community catalog mirror).
list_subjectsAll course subject codes at Purdue (CS, MA, ENGR, …), optionally filtered by name. Source: Purdue.io.
search_coursesFind courses by subject code, course number, and/or title keyword — returns titles, credit hours, and descriptions. Source: Purdue.io.
course_sectionsCRNs, section types, meeting days/times, rooms, and instructors for a course in a given term. Source: Purdue.io.
find_buildingResolve a Purdue building short code or name (e.g. 'LWSN' -> Lawson Computer Science Building). Source: Purdue.io.
dining_locationsList every Purdue dining location (dining courts, quick bites, On-the-GO!) with whether it is open right now and the next meal period. Source: Purdue HFS dining API (live).
dining_menuFull menu for one Purdue dining location on a date, by meal period and station, with dietary tags. Source: Purdue HFS dining API (live).
dining_find_itemSearch every Purdue dining court's menu for a dish on a given date — answers 'who is serving chicken tenders today'. Source: Purdue HFS dining API (live).
dining_item_nutritionFull nutrition panel for one menu item, by the item id returned from dining_menu or dining_find_item. Source: Purdue HFS dining API (live).
dining_line_lengthCrowdsourced real-time line-length reports for Purdue dining courts. Often empty outside peak hours. Source: Purdue HFS dining API (live).
search_eventsOfficial university event calendar (lectures, athletics, concerts, deadlines, career fairs) with times, locations, and links. Source: events.purdue.edu (Localist, live).
search_student_orgsSearch BoilerLink's directory of ~1,200 registered student organizations by name or keyword. Source: BoilerLink / Anthology Engage (live).
search_club_eventsUpcoming student organization events (club meetings, socials, callouts) with time, room, and host org. Distinct from the official university calendar. Source: BoilerLink / Anthology Engage (live).
library_hoursToday's hours and open/closed status for every Purdue library and study space (WALC, Hicks, HSSE, Parrish, Archives, …), or a full week's grid. Source: Purdue Libraries LibCal (live).
purdue_newsOfficial Purdue newsroom articles — research announcements, university decisions, campus news — searchable by keyword. Source: purdue.edu/newsroom (WordPress REST API, live).
academic_calendarThe official academic calendar — first day of classes, breaks, finals week, commencement — plus any registrar page (add/drop deadlines, exam scheduling, grade policies) by keyword. Source: purdue.edu/registrar (WordPress REST API, live).
recwell_occupancyReal-time headcount and percent-of-capacity for every counted Purdue RecWell space — CoRec fitness floors, tracks, courts, climbing walls, pools. Answers 'how busy is the gym right now'. Source: Purdue RecWell live facility counts (updates ~every 30s).
bus_routesEvery CityBus route serving Purdue and Greater Lafayette. Source: CityBus GTFS feed (scheduled service; CityBus publishes no public real-time feed).
bus_stopsSearch CityBus stops by name, or find the stops nearest a latitude/longitude on campus. Source: CityBus GTFS feed.
bus_next_departuresNext scheduled CityBus departures from a stop today, by route and headsign. These are timetable times — CityBus publishes no public real-time feed, so buses may run early or late. Source: CityBus GTFS feed.
campus_weatherCurrent conditions and forecast for the Purdue West Lafayette campus, plus any active severe-weather alerts. Source: NOAA/NWS api.weather.gov (live).
Tool annotations
No tools have read-only/destructive annotations
Add readOnlyHint or destructiveHint annotations to every tool so hosts can warn users before invoking.
All four hints declared on every tool
29/29 tools missing one or more hints — athletics_sports (missing: readOnlyHint, destructiveHint, idempotentHint, openWorldHint); athletics_schedule (missing: readOnlyHint, destructiveHint, idempotentHint, openWorldHint); athletics_upcoming (missing: readOnlyHint, destructiveHint, idempotentHint, openWorldHint), +26 more. OpenAI's directory rejects tools where any of the four hints are missing or non-boolean.
For every tool, set all four hints (readOnlyHint, destructiveHint, idempotentHint, openWorldHint) to explicit true/false values that match the handler’s actual behaviour.
Descriptions match behaviour
1 tool describes read intent but its handler mutates — course_availability (line 78: /Scheduled Meeting Times<\/caption>(.*?)<\/table>/is.exec(chunk))
Rename the tool, rewrite the description, or move the side-effect into a separate clearly-named tool.
Tool inputs are validated
26/29 tool handlers declare input schemas (90%)
Declare an inputSchema with zod/joi/yup on every tool definition.
Tests exist
No test files found
Add tests that exercise each declared tool.
Tool description accuracy
course_availability: description implies read-only but handler writes/deletes/executes
Update tool descriptions to accurately reflect all capabilities — especially write, delete, or execute operations.
Claim the listing to review these findings one by one and send us a correction where you disagree, straight to the team. Claiming also means we tell you when the grade moves, and reach you first if we find anything urgent.
[](https://m8ven.ai/mcp/sharziki/purdue-mcp)?variant=verified from the URL.Vetting this one by hand? Tool Check is an MCP that scores other MCPs. Add it once and ask Claude, ChatGPT, or any MCP client to grade a server, surface CVEs, check the publisher, and suggest safer alternatives — before you install.
https://m8ven.ai/api/mcp/tool-check