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.

C
Caution
73/100

purdue-mcp

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

⚡ Live Monitored: not connected

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

Is this your MCP?

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.

// key findings
⚠️
Tool descriptions don’t match what handlers do
1 tool describes read intent but its handler mutates — course_availability (line 78: /Scheduled Meeting Times<\/caption>(.*?)<\/table>/is.exec(chunk))
No credential exfiltration, no sensitive file access, no obfuscation
Static analysis found nothing flowing your secrets to unexpected places.
Open source with a license and README
Anyone can audit the code, the license is declared, and the publisher documents what it does.
// tools this server exposes29 tools

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_sports

Every Purdue varsity sport and its current schedule id. Source: purduesports.com (official athletics site API).

athletics_schedule

Full season schedule for one Purdue team — dates, opponents, home/away, venue, and final scores where played. Source: purduesports.com (official athletics site API).

athletics_upcoming

The next Boilermaker games across every varsity sport, soonest first — what to go watch this week. Source: purduesports.com (official athletics site API).

course_availability

How 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_details

Everything 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_terms

Terms available in Purdue's live registration system, newest first. Terms marked 'View only' are closed to registration. Source: Purdue Banner self-service.

reddit_purdue

Current 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_exponent

Articles 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_terms

Every 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_subjects

All course subject codes at Purdue (CS, MA, ENGR, …), optionally filtered by name. Source: Purdue.io.

search_courses

Find courses by subject code, course number, and/or title keyword — returns titles, credit hours, and descriptions. Source: Purdue.io.

course_sections

CRNs, section types, meeting days/times, rooms, and instructors for a course in a given term. Source: Purdue.io.

find_building

Resolve a Purdue building short code or name (e.g. 'LWSN' -> Lawson Computer Science Building). Source: Purdue.io.

dining_locations

List 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_menu

Full 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_item

Search 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_nutrition

Full 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_length

Crowdsourced real-time line-length reports for Purdue dining courts. Often empty outside peak hours. Source: Purdue HFS dining API (live).

search_events

Official university event calendar (lectures, athletics, concerts, deadlines, career fairs) with times, locations, and links. Source: events.purdue.edu (Localist, live).

search_student_orgs

Search BoilerLink's directory of ~1,200 registered student organizations by name or keyword. Source: BoilerLink / Anthology Engage (live).

search_club_events

Upcoming 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_hours

Today'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_news

Official Purdue newsroom articles — research announcements, university decisions, campus news — searchable by keyword. Source: purdue.edu/newsroom (WordPress REST API, live).

academic_calendar

The 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_occupancy

Real-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_routes

Every CityBus route serving Purdue and Greater Lafayette. Source: CityBus GTFS feed (scheduled service; CityBus publishes no public real-time feed).

bus_stops

Search CityBus stops by name, or find the stops nearest a latitude/longitude on campus. Source: CityBus GTFS feed.

bus_next_departures

Next 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_weather

Current conditions and forecast for the Purdue West Lafayette campus, plus any active severe-weather alerts. Source: NOAA/NWS api.weather.gov (live).

// quality suggestions

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.

// full audit trail
The findings above are the summary. The full trail, every check we ran, each deduction, the network hosts observed and the dependency advisories, goes to verified publishers, along with an alert whenever a new one lands. Verified publishers can also review each finding and dispute it in one click. Publisher corrections have sharpened several of our checks this month, because the maintainer knows the codebase better than any scanner.
// improvement guidance — verified publishers only
We have 6 concrete improvements we can share with the publisher of this MCP. Each comes with specific guidance to raise the trust score.
// embed badge in your README
[![M8ven Verified](https://m8ven.ai/badge/mcp/sharziki/purdue-mcp?variant=verified)](https://m8ven.ai/mcp/sharziki/purdue-mcp)
Shows verification status without the grade. Want the grade badge instead? Remove ?variant=verified from the URL.
commit: d12674b95e2887c732120c68dc44236517fa342b
code hash: da78cbe100cdaf25159a1b09ba55a6ec447463ee7e1ff3abeaa31eb9df9f9a18
view raw JSON →
Check MCPs from inside your assistant
Tool Check · MCP

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
check_toolsearch_toolscompare_toolsrecommend_alternativescheck_publisherreport_concern
How to add it →Free · no account needed · works in any MCP client