Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

io.github.avivkeller/umd-mcp

NPM · UMD-MCP

MCP server exposing University of Maryland data

Available components

+3 this week 81 Trust /100

Last scanned (22 hours ago)

Scores higher than 69% of npm servers

Category Education and Research

Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →

Supply Chain Security98
  • No malware found by supply-chain analysis.Pass
  • No known CVEs affecting this package version or its production dependencies.Pass
  • No install/post-install scripts declared.Pass
  • 65 of 218 dependencies flagged as unhealthy (3 deprecated). View diagnostics → Partial
Provenance & Transparency45
Schema Quality & AI Usability82
  • AI-judged instruction clarity (excellent).Pass
  • Tool/resource definitions use about 9284 tokens (~92/item across 100 items; 100 tools + 0 resources), lean.Pass
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management73
  • Stability observed for 22 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage100
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 100% of tool parameters carry a description.Pass
  • Structured output schemas are declared (99% of tools); any adoption earns full credit.Pass
Tool Safety100
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • We read all 100 captured tool definition(s), and no name or description among them implies an irreversible operation.Pass
  • An AI judge read all 100 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 21 Oct 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 63 to 67. That category is still filling its 30-day observation window: 19 days of observed history at the previous scan, 20 at this one. The score rises as the window fills, whether or not the server changes.

  • 19 Oct 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 57 to 60. That category is still filling its 30-day observation window: 17 days of observed history at the previous scan, 18 at this one. The score rises as the window fills, whether or not the server changes.

  • 17 Oct 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 50 to 53. That category is still filling its 30-day observation window: 15 days of observed history at the previous scan, 16 at this one. The score rises as the window fills, whether or not the server changes.

  • 15 Oct 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 43 to 47. That category is still filling its 30-day observation window: 13 days of observed history at the previous scan, 14 at this one. The score rises as the window fills, whether or not the server changes.

  • 13 Oct 26 +6
    • Stability: unverified → 0.40 ▲ functional
  • 1 Oct 26 71

    First indexed and scored.

Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 23 Oct 2026 · Analysed npm/umd-mcp@0.0.1

Provenance No attestation

The registry publishes no build provenance for this version, so there is nothing to verify.

Result No attestation
Ecosystem npm

Background: How many MCP packages publish verified provenance →

Dependencies 218 packages
Packages resolved 218
Deprecated 3
Stale 64
Tree resolution Complete

Background: SBOMs and build attestations, explained →

MCP tools · 100 exposed · ~9,284 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
recwell_list_facilities ~46

RecWell facilities with a one-paragraph description and link each, grouped as indoor or outdoor. Use recwell_get_facility for hours tables and details. No login needed.

Input schema present but exposes no named parameters.

NameTypeReqDescription
facilitiesarrayyesFacilities in the order the site lists them

No examples provided.

senate_get_bill ~103

One University Senate bill by id or document number: the proposal, sponsor, policy link, related bills, and every stage of its history (committee reviews, Senate votes, presidential approval) with dates, decisions and the PDFs filed at each stage. No login needed.

NameTypeReqDescription
billstringyesBill id (e.g. "987") or Senate document number (e.g. "26-27-04"), from senate_list_legislation or senate_get_committee
NameTypeReqDescription
completed–yesWhen the process finished
descriptionstring|nullyesThe proposal as submitted
document_numberstringyesSenate document number, e.g. "26-27-04": the academic year and a sequence number
idintegeryesBill id, for senate_get_bill
is_activebooleanyesWhether the bill is still moving through the process
is_completebooleanyesWhether the process has finished
keywordsstring|nullyesKeywords the Senate Office tagged the bill with
pcc_idstring|nullyesPrograms, Curricula & Courses (PCC) proposal id, for curriculum bills
policy_urlstring|nullyesThe policy the bill concerns, when there is one
proposed–yesWhen the proposal was submitted
related_billsarrayyesBills the Senate Office linked to this one
sponsorstring|nullyesWho proposed it
stagesarrayyesThe bill's history, most recent stage first
start_year–yesCalendar year the bill started in
titlestringyesBill title
urlstringyesBill page on senate.umd.edu

No examples provided.

senate_get_committee ~112

One University Senate committee, University council, or past council or task force by name (from senate_list_committees): its page as text (charge, chair, contact), current members with seats and colleges, and the bills it is reviewing. See senate_list_past_committee_legislation for earlier bills and senate_get_committee_meetings for meeting dates. No login needed.

NameTypeReqDescription
namestringyesName as senate_list_committees gives it, e.g. "Academic Procedures & Standards"
NameTypeReqDescription
aboutstring|nullyesThe group's page as plain text: charge, chair, contact
active_billsarrayyesBills the group is reviewing now
linksarrayyesLinks on the page (documents, forms, email addresses)
membersarrayyesCurrent members; empty for past councils
namestringyesName, to pass to senate_get_committee
summarystring|nullyesOne-paragraph description from the listing page
typestringyes"committee" for a Senate standing or special committee, "council" for a University council, "past_council" for a dissolved council or task force
urlstringyesPage on senate.umd.edu

No examples provided.

senate_get_committee_meetings ~104

A University Senate standing committee's meeting dates and times for an academic year (default: the current one), with the agendas posted for each; other meeting materials need a committee member login. No login needed.

NameTypeReqDescription
committeestringyesCommittee name as senate_list_committees gives it, e.g. "Academic Procedures & Standards"
yearstring–Academic year, e.g. "2024-2025" (default: current)
NameTypeReqDescription
academic_yearstringyesAcademic year as "YYYY-YYYY", e.g. "2025-2026"
meetingsarrayyesMeetings in date order
yearsarrayyesEvery academic year with committee folders, newest first

No examples provided.

senate_get_constituent ~108

How the University Senate files a member of the campus community, by UMD Directory ID: their college, department, title, population and constituency. To find who represents them, call senate_list_senators with that constituency, and with the college too when represented_by_college is true, as the site's "Find My Senator" tool does. No login needed.

NameTypeReqDescription
directory_idstringyesUMD Directory ID, the part of a umd.edu email before the @
NameTypeReqDescription
collegestring|nullyesCollege or division acronym
constituencystringyesConstituency they vote in, e.g. "Tenured/Tenure-Track Faculty"
departmentstring|nullyesDepartment, e.g. "CMNS-Computer Science"
directory_idstringyesUMD Directory ID
majorstring|nullyesMajor, for students
namestringyesFull name
populationstringyesPopulation the Senate files them under, e.g. "Faculty"
represented_by_collegebooleanyesWhether their constituency elects senators per college, so their senators are those with both this constituency and this college; otherwise the constituency alone
titlestring|nullyesJob title, or null for students

No examples provided.

senate_get_meetings ~93

The University Senate meeting schedule for an academic year (default: the current one) with the agenda, materials, slides and minutes posted for each meeting, and the years the archive covers. Meetings run 3:15-5:00 PM unless a document says otherwise. No login needed.

NameTypeReqDescription
yearstring–Academic year, e.g. "2024-2025" (default: current)
NameTypeReqDescription
academic_yearstringyesAcademic year as "YYYY-YYYY", e.g. "2025-2026"
meetingsarrayyesMeetings in date order
other_documentsarrayyesDocuments filed under the year but not a meeting, e.g. committee reports
yearsarrayyesEvery academic year with a schedule, newest first

No examples provided.

senate_list_committees ~106

The University Senate's standing and special committees, the University councils it seats, and past councils and task forces, each with a one-paragraph summary. Pass a name to senate_get_committee for its charge, members and current work. No login needed.

NameTypeReqDescription
typestring–Only "committee" (Senate committees), "council" (University councils) or "past_council" (dissolved councils and task forces); default: all
NameTypeReqDescription
groupsarrayyesCommittees, then councils

No examples provided.

senate_list_legislation ~158

Bills before the University Senate (senate.umd.edu): the current academic year's legislation with where each bill stands and who is reviewing it, or the archive of past bills back to 2001. Filter by words in the title or document number. Call senate_get_bill for a bill's history and documents. No login needed.

NameTypeReqDescription
limitinteger–Maximum number of records to return, 1-200 (default 50)
offsetinteger–Number of records to skip, for pagination (default 0)
querystring–Only bills whose title or document number contains this text
scopestring–"current" for this year's bills (default), "archived" for past years
NameTypeReqDescription
billsarrayyesNewest first
totalintegeryesBills matching the query

No examples provided.

senate_list_past_committee_legislation ~105

Every bill each University Senate standing committee has reviewed, grouped by committee and academic year back to 2001, as the Past Committees page lists them: document number, title, whether the bill is still active and when it completed. Optionally one committee. No login needed.

NameTypeReqDescription
committeestring–Only this committee, named as senate_list_committees gives it, e.g. "Academic Procedures & Standards" (default: every committee)
NameTypeReqDescription
committeesarrayyesCommittees in the order the site lists them

No examples provided.

senate_list_senators ~156

Current members of the University Senate with the seat, constituency, college and term end of each. Filter by college or division acronym, population, constituency, or a name search. No login needed.

NameTypeReqDescription
collegestring–Only senators for this college or division acronym, e.g. "CMNS", "ENGR", "VPSA"
constituencystring–Only senators for this constituency, e.g. "Tenured/Tenure-Track Faculty", "Exempt Staff - Divisions"
populationstring–Only senators for this population, e.g. "Faculty" or "Undergraduate Student"
querystring–Only senators whose name, email or seat contains this text
NameTypeReqDescription
senatorsarrayyesIn alphabetical order by name

No examples provided.

terplink_get_article ~43

One TerpLink news article with its full body as plain text. No login needed.

NameTypeReqDescription
article_idintegeryesArticle id from terplink_get_news
NameTypeReqDescription
authorstring|nullyesAuthor name
bodystring|nullyesArticle body as plain text
idintegeryesArticle id, for terplink_get_article
image_urlstring|nullyesCover image
organizationobjectyesThe organization that posted the article
publishedstringyesWhen the article was posted
summarystring|nullyesTeaser text
titlestringyesHeadline
updatedstringyesWhen the article was last edited
urlstringyesPublic TerpLink page

No examples provided.

terplink_get_event ~54

Full details of one TerpLink event: description, venue or meeting link, hosts, categories, perks and RSVP capacity. No login needed.

NameTypeReqDescription
event_idintegeryesEvent id from terplink_search_events
NameTypeReqDescription
addressobjectyesWhere the event is held
benefitsarrayyesPerks advertised, e.g. "Free Food"
categoriesarrayyesCategory names
co_hostsarrayyesIds of every hosting organization
descriptionstring|nullyesDescription as plain text
ends_onstringyesEnd, ISO 8601
idintegeryesEvent id, for terplink_get_event
image_urlstring|nullyesEvent image
namestringyesEvent name
organizationobjectyesThe hosting organization
rsvpobjectyesRSVP settings and counts
rsvp_totalintegeryesRSVPs so far
starts_onstringyesStart, ISO 8601
themestringyesTheme the host picked
urlstringyesPublic TerpLink page
visibilitystringyesWho can see the event, e.g. "Public"

No examples provided.

terplink_get_news ~114

News articles student organizations and departments post on TerpLink, newest first, optionally filtered by keyword or organization. Call terplink_get_article for the body. No login needed.

NameTypeReqDescription
limitinteger–Maximum number of records to return, 1-50 (default 20)
offsetinteger–Number of records to skip, for pagination (default 0)
organization_idinteger–Only articles from this organization
querystring–Words to match in the title or body
NameTypeReqDescription
articlesarrayyesNewest first
totalintegeryesArticles matching the query

No examples provided.

terplink_get_organization ~72

Full profile of one TerpLink student organization: description, email, type, primary contact, social links and mailing address. No login needed.

NameTypeReqDescription
organizationstringyesWebsite key (e.g. "kedma", from terplink_search_organizations or the public URL) or numeric organization id
NameTypeReqDescription
addressstring|nullyesMailing address on one line
categoriesarrayyesCategory names, e.g. "SGA Recognized"
category_idsarrayyesIds of the categories the organization is in
descriptionstring|nullyesFull description as plain text
emailstring|nullyesContact email
idintegeryesOrganization id
image_urlstring|nullyesProfile picture
namestringyesOrganization name
phonestring|nullyesContact phone
primary_contactstring|nullyesName of the primary contact
short_namestring|nullyesAbbreviation or nickname
social_mediaobjectyesLinks the organization lists; null where none
started–yesWhen the organization was registered
statusstringyesRegistration status, e.g. "Active"
summarystring|nullyesOne-paragraph summary
typestring|nullyese.g. "Registered Student Organization - Spring"
urlstringyesPublic TerpLink page
website_keystringyesPass to terplink_get_organization; the last part of the public URL

No examples provided.

terplink_list_event_categories ~44

The categories TerpLink events are tagged with (Academic, Service, Sports and Recreation, ...). Use the ids with terplink_search_events. No login needed.

Input schema present but exposes no named parameters.

NameTypeReqDescription
categoriesarrayyesCategories as the site orders them

No examples provided.

terplink_list_organization_categories ~48

The categories TerpLink files student organizations under (Academic, Cultural/Ethnic, Honor Society, ...). Use the ids with terplink_search_organizations. No login needed.

Input schema present but exposes no named parameters.

NameTypeReqDescription
categoriesarrayyesCategories in name order

No examples provided.

terplink_search_events ~227

Search TerpLink events by keyword, date range, hosting organization, category, theme or perk. Upcoming and ongoing events only unless include_past is set. Times are ISO 8601. No login needed.

NameTypeReqDescription
benefitsarray–Only events offering these perks
category_idsarray–Only events in categories (see terplink_list_event_categories) with any of these ids
ends_beforestring–Only events ending before this date
include_pastboolean–Also return events that have already ended (default false)
limitinteger–Maximum number of records to return, 1-50 (default 20)
offsetinteger–Number of records to skip, for pagination (default 0)
organization_idsarray–Only events hosted by organizations with any of these ids
querystring–Words to match in the name or description
starts_afterstring–Only events starting on or after this date
themesarray–Only events with any of these themes
NameTypeReqDescription
eventsarrayyesSoonest-ending first
totalintegeryesEvents matching the query

No examples provided.

terplink_search_organizations ~129

Search the roughly 1,000 active student organizations on TerpLink by name or keyword, optionally within categories from terplink_list_organization_categories. Returns summaries; call terplink_get_organization for contact details. No login needed.

NameTypeReqDescription
category_idsarray–Only organizations with any of these ids
limitinteger–Maximum number of records to return, 1-50 (default 20)
offsetinteger–Number of records to skip, for pagination (default 0)
querystring–Words to match in the name or description
NameTypeReqDescription
organizationsarrayyesMatches in name order
totalintegeryesOrganizations matching the query

No examples provided.

terplink_search_service_opportunities ~97

Volunteer and community service opportunities listed for UMD students (mirrored from GivePulse), searchable by keyword. Includes past listings. No login needed.

NameTypeReqDescription
limitinteger–Maximum number of records to return, 1-50 (default 20)
offsetinteger–Number of records to skip, for pagination (default 0)
querystring–Words to match in the title or description
NameTypeReqDescription
opportunitiesarrayyesMatches as GivePulse orders them
totalintegeryesOpportunities matching the query

No examples provided.

testudo_get_current_term ~36

The current academic term at UMD with its registration status and key dates, from the Testudo student portal. Requires login.

Input schema present but exposes no named parameters.

NameTypeReqDescription
datesobjectyesKey dates of the term; a date is null when the portal leaves it unset
idstringyesFour-digit year followed by "01" (Spring), "05" (Summer), "08" (Fall) or "12" (Winter), e.g. "202608" for Fall 2026
namestringyese.g. "Fall 2026"
status–yesWhere today falls relative to the schedule adjustment, registration and graduation application windows; null when the portal omits it

No examples provided.

testudo_get_grade_options ~139

The grading option (regular or pass/fail) the signed-in student has elected for each course in a term, from the Testudo student portal, with the pass/fail credit totals. Only populated while the term's election window is open; use testudo_list_terms with kind "grade_option" to find such terms. Read-only; changing an option is not supported. Requires login.

NameTypeReqDescription
term_idstringyesFour-digit year followed by "01" (Spring), "05" (Summer), "08" (Fall) or "12" (Winter), e.g. "202608" for Fall 2026
NameTypeReqDescription
optionsarrayyesOne entry per course; empty outside the election window
pass_fail_creditsobjectyesTotals the portal shows; both null when it shows none
termstringyesFour-digit year followed by "01" (Spring), "05" (Summer), "08" (Fall) or "12" (Winter), e.g. "202608" for Fall 2026

No examples provided.

testudo_get_grades ~114

The signed-in student's grades for a term from the Testudo student portal: final grades once posted, mid-term grades while the term runs, and the semester and cumulative GPA. Use testudo_list_terms with kind "grades" for the terms available. Requires login.

NameTypeReqDescription
term_idstringyesFour-digit year followed by "01" (Spring), "05" (Summer), "08" (Fall) or "12" (Winter), e.g. "202608" for Fall 2026
NameTypeReqDescription
academic_actionstring|nullyesAcademic action (probation, dismissal, dean's list, ...) recorded for the term; null if none
final_gradesarrayyesCourses with final grades; empty until grades are posted
gpa–yesnull until the term has posted grades
midterm_gradesarrayyesCourses with mid-term grades; empty outside the mid-term window
termstringyesFour-digit year followed by "01" (Spring), "05" (Summer), "08" (Fall) or "12" (Winter), e.g. "202608" for Fall 2026

No examples provided.

testudo_get_graduation_application_status ~57

The signed-in student's graduation applications from the Testudo student portal: the term applied for, the diploma name and mailing address, and the status of each degree. Read-only; applying is not supported. Requires login.

Input schema present but exposes no named parameters.

NameTypeReqDescription
applicationsarrayyesApplications on file; empty when the student has not applied

No examples provided.

testudo_get_parent_access ~43

Parent or guest accounts the signed-in student has granted access to their Testudo records. Read-only; granting or revoking access is not supported. Requires login.

Input schema present but exposes no named parameters.

NameTypeReqDescription
accountsarrayyesAccounts with access; empty when none

No examples provided.

testudo_get_profile ~47

The signed-in student's contact information on file with the university, from the Testudo student portal: name, email, phone numbers, local and permanent addresses and emergency contact. Requires login.

Input schema present but exposes no named parameters.

NameTypeReqDescription
emailstring|nullyes–
emergency_contact–yes–
genderstring|nullyes–
local_address–yes–
namestring|nullyes–
permanent_address–yes–
phonesobjectyes–
uidstring|nullyesUniversity id

No examples provided.

testudo_get_registration_appointment ~66

When the signed-in student may register for classes, from the Testudo student portal: the registration appointment for the upcoming term, any blocks on the account, and the majors, minors and certificates on record. Read-only; this does not register for anything. Requires login.

Input schema present but exposes no named parameters.

NameTypeReqDescription
appointment–yesThe registration appointment; null when none is assigned yet
blocksarrayyesRegistration blocks on the account as the portal lists them; empty when none
certificatesarrayyes–
current_term–yes–
majorsarrayyes–
minorsarrayyes–
next_appointment_available–yesWhen the next appointment date will be published, if the portal announces one
next_registration_term–yes–
previous_registration_term–yes–
primary_majorobjectyesThe primary major on record
registration_term–yesTerm the appointment registers for
student_typestring|nullyese.g. "Undergraduate"
uidstring|nullyesUniversity id

No examples provided.

testudo_get_request_status ~56

Status of the official transcript and enrollment certification orders the signed-in student has placed through the Testudo student portal, and any judicial or financial block that would stop new orders. Read-only; ordering is not supported. Requires login.

Input schema present but exposes no named parameters.

NameTypeReqDescription
blocksobjectyesBlocks that prevent transcript and certification requests
enrollment_certification_requestsarrayyesEnrollment certification orders, as the portal lists them
transcript_requestsarrayyesOfficial transcript orders, as the portal lists them

No examples provided.

testudo_get_schedule ~117

The signed-in student's class schedule for a term from the Testudo student portal: each registered section with its instructors, credits, delivery method and weekly meetings (days, times, building and room). Use testudo_list_terms with kind "schedule" for the terms available. Requires login.

NameTypeReqDescription
term_idstringyesFour-digit year followed by "01" (Spring), "05" (Summer), "08" (Fall) or "12" (Winter), e.g. "202608" for Fall 2026
NameTypeReqDescription
coursesarrayyesRegistered sections in the order the portal lists them; empty when not registered
studentobjectyes–
termstringyesFour-digit year followed by "01" (Spring), "05" (Summer), "08" (Fall) or "12" (Winter), e.g. "202608" for Fall 2026

No examples provided.

testudo_get_unofficial_transcript ~52

The signed-in student's unofficial transcript from the Testudo student portal, as plain text: transfer credit, every past course with its grade, and current courses. For advising purposes only. Requires login.

Input schema present but exposes no named parameters.

NameTypeReqDescription
as_ofstring|nullyesDate the transcript was generated, as printed (MM/DD/YY)
textstringyesThe transcript as fixed-width text, section headers included

No examples provided.

testudo_list_terms ~121

Terms the signed-in student can use with a given Testudo feature: "schedule" lists terms with a class schedule (use with testudo_get_schedule), "grades" terms with posted grades, "enrollment_certification" terms an enrollment certification can be ordered for, "graduation" every term a graduation date can fall in, "graduation_application" terms open for a graduation application, and "grade_option" terms with an open pass/fail election window. Requires login.

NameTypeReqDescription
kindstringyesWhich feature's term list to return
NameTypeReqDescription
termsarrayyesTerms in the order the portal lists them

No examples provided.

testudo_soc_autocomplete_courses ~138

Course ids and titles in a term whose id starts with the given text, from the UMD Schedule of Classes autocomplete. The cheapest way to find what a department offers or to resolve a partial course id. No login needed.

NameTypeReqDescription
querystringyesStart of a course id, e.g. "CMSC" (all CMSC courses) or "CMSC13"
term_idstringyesFour-digit year followed by "01" (Spring), "05" (Summer), "08" (Fall) or "12" (Winter), e.g. "202608" for Fall 2026
NameTypeReqDescription
coursesarrayyesCourses offered that term whose id starts with the query

No examples provided.

testudo_soc_autocomplete_instructors ~134

Instructors teaching in a term whose last or first name contains the given text, from the UMD Schedule of Classes autocomplete. Pass the returned `name` as the instructor to testudo_soc_search_courses. No login needed.

NameTypeReqDescription
querystringyesPart of a last or first name, at least two characters, e.g. "gonz"
term_idstringyesFour-digit year followed by "01" (Spring), "05" (Summer), "08" (Fall) or "12" (Winter), e.g. "202608" for Fall 2026
NameTypeReqDescription
instructorsarrayyesMatching instructors

No examples provided.

testudo_soc_get_building ~100

Look up a classroom building by the building code and room number a section lists (e.g. "IRB" "0324"): full name, campus building number and map links. No login needed.

NameTypeReqDescription
buildingstringyesBuilding code as shown on a section, e.g. "IRB"
roomstringyesRoom number as shown on the section, e.g. "0324"; the lookup needs one
NameTypeReqDescription
campus_map_urlstring|nullyesLink to the building on the UMD campus map
codestringyesBuilding code, e.g. "IRB"
google_maps_urlstring|nullyesLink to the building on Google Maps
namestringyesBuilding name, e.g. "Brendan Iribe Center"
numberstring|nullyesCampus building number, e.g. "432"
picture_urlstring|nullyesPhoto of the building
roomstring|nullyesRoom number as given, e.g. "0324"
room_info_urlstring|nullyesLink to the room in 25Live

No examples provided.

testudo_soc_get_course ~122

One course in a term from the UMD Schedule of Classes, with every section: instructors, seat counts, meeting days, times, rooms and delivery method. No login needed.

NameTypeReqDescription
course_idstringyesCourse id, e.g. "CMSC131" or "ENGL101X"
term_idstringyesFour-digit year followed by "01" (Spring), "05" (Summer), "08" (Fall) or "12" (Winter), e.g. "202608" for Fall 2026
NameTypeReqDescription
courseobjectyesThe course and its sections
seats_as_ofstring|nullyesWhen the seat counts on this page were last refreshed, as YYYY-MM-DDTHH:MM in US Eastern time (roughly hourly); null if the page does not say

No examples provided.

testudo_soc_get_sections ~283

Sections of one or more courses in a term, from the UMD Schedule of Classes: instructors, seat counts, meeting days, times, rooms and delivery method. Seat counts are a snapshot refreshed roughly hourly, not real time. No login needed.

NameTypeReqDescription
course_idsarrayyesCourse ids to get sections for, up to 10 per call, e.g. ["CMSC131", "CMSC132"]
teaching_centerstring–Only sections taught at this location or in this program: "ALL" all locations and programs, "*" College Park campus, "DC" District of Columbia, "FS" Frostburg State, "HG" Hagerstown, "HT" Heat Center…
term_idstringyesFour-digit year followed by "01" (Spring), "05" (Summer), "08" (Fall) or "12" (Winter), e.g. "202608" for Fall 2026
NameTypeReqDescription
sectionsobjectyesSections keyed by course id, in the order the site lists them; a course the site does not offer that term is absent

No examples provided.

testudo_soc_list_courses ~135

Every course a department offers in a term, from the UMD Schedule of Classes: title, credits, grading methods, gen-ed codes, prerequisites and description. Sections are not included; call testudo_soc_get_sections or testudo_soc_get_course for those. No login needed.

NameTypeReqDescription
departmentstringyesFour-letter department code, e.g. "CMSC"
term_idstringyesFour-digit year followed by "01" (Spring), "05" (Summer), "08" (Fall) or "12" (Winter), e.g. "202608" for Fall 2026
NameTypeReqDescription
coursesarrayyesCourses in catalog order; empty when the department offers none that term
departmentobjectyesThe department
seats_as_ofstring|nullyesWhen the seat counts on this page were last refreshed, as YYYY-MM-DDTHH:MM in US Eastern time (roughly hourly); null if the page does not say

No examples provided.

testudo_soc_list_departments ~87

Departments (four-letter course prefixes) offering courses in a term, from the UMD Schedule of Classes. No login needed.

NameTypeReqDescription
term_idstringyesFour-digit year followed by "01" (Spring), "05" (Summer), "08" (Fall) or "12" (Winter), e.g. "202608" for Fall 2026
NameTypeReqDescription
departmentsarrayyesDepartments in alphabetical order; empty for a term the site does not list

No examples provided.

testudo_soc_list_gen_ed_categories ~66

The general education categories and requirement codes (FSAW, DSHS, DVUP, ...) the UMD Schedule of Classes lists for a term. No login needed.

NameTypeReqDescription
term_idstring–Term to list for (default: the newest term)
NameTypeReqDescription
categoriesarrayyesCategories in the order the site lists them

No examples provided.

testudo_soc_list_gen_ed_courses ~124

Courses fulfilling one general education requirement in a term, from the UMD Schedule of Classes. Sections are not included; call testudo_soc_get_sections for those. No login needed.

NameTypeReqDescription
codestringyesGeneral education code from testudo_soc_list_gen_ed_categories, e.g. "DSNL"
term_idstringyesFour-digit year followed by "01" (Spring), "05" (Summer), "08" (Fall) or "12" (Winter), e.g. "202608" for Fall 2026
NameTypeReqDescription
coursesarrayyesCourses grouped by department, in catalog order; empty for an unknown code
seats_as_ofstring|nullyesWhen the seat counts on this page were last refreshed, as YYYY-MM-DDTHH:MM in US Eastern time (roughly hourly); null if the page does not say

No examples provided.

testudo_soc_list_syllabi ~129

Past syllabi on file for a course in the UMD Schedule of Classes syllabus repository: the term and instructor of each. The PDFs themselves need a UMD login. No login needed for the list.

NameTypeReqDescription
course_idstringyesCourse id, e.g. "CMSC131" or "ENGL101X"
term_idstringyesFour-digit year followed by "01" (Spring), "05" (Summer), "08" (Fall) or "12" (Winter), e.g. "202608" for Fall 2026
NameTypeReqDescription
syllabiarrayyesSyllabi on file, newest first as the site lists them

No examples provided.

testudo_soc_list_terms ~48

Terms the UMD Schedule of Classes currently lists (about four: the current term plus the next few). Returns the term ids the other Schedule of Classes tools take. No login needed.

Input schema present but exposes no named parameters.

NameTypeReqDescription
termsarrayyesTerms in the order the site lists them

No examples provided.

testudo_soc_search_courses ~594

Search the UMD Schedule of Classes for a term the way its search form does. Needs at least one of course_id (a department prefix, partial id or full id), instructor, or delivery; the other fields narrow the results. When the search narrows by section (instructor, days, time, delivery, open seats, credits or level) the matching sections come back inline; otherwise sections are null and testudo_soc_get_sections fetches them. No login needed.

NameTypeReqDescription
course_idstring–Department prefix ("CMSC"), partial id ("CMSC13") or full course id ("CMSC131") to match
creditsinteger–Only courses whose credits satisfy credits_compare against this value, 0-4
credits_comparestring–How to compare course credits with `credits` (default "=")
daysarray–Only sections that meet on these weekdays
deliveryarray–Only sections taught in these ways (default: any)
end_timestring–End of the range when time_compare is "between", e.g. "3:00 PM"
instructorstring–Instructor name as testudo_soc_autocomplete_instructors returns it in `name`, e.g. "Gonzalez, Elias"
levelstring–Only undergraduate ("UGRAD") or graduate ("GRAD") courses (default "ALL")
open_sections_onlyboolean–Only sections with open seats (default false)
section_idstring–Only this section, e.g. "0101"; use together with a full course_id
start_timestring–Time for time_compare, on the quarter hour, e.g. "12:00 PM" or "9:30 AM"
teaching_centerstring–Only sections taught at this location or in this program: "ALL" all locations and programs, "*" College Park campus, "DC" District of Columbia, "FS" Frostburg State, "HG" Hagerstown, "HT" Heat Center…
term_idstringyesFour-digit year followed by "01" (Spring), "05" (Summer), "08" (Fall) or "12" (Winter), e.g. "202608" for Fall 2026
time_comparestring–Only sections whose meetings start "after", "at" or "before" start_time, or "between" start_time and end_time
NameTypeReqDescription
coursesarrayyesMatching courses grouped by department, in catalog order
messagestring|nullyesMessage the site shows instead of results, e.g. that no courses matched or that the search needs more criteria; null when there are results
seats_as_ofstring|nullyesWhen the seat counts on this page were last refreshed, as YYYY-MM-DDTHH:MM in US Eastern time (roughly hourly); null if the page does not say

No examples provided.

transportation_get_route ~95

One Shuttle-UM route with its stops in order (for the most common trip pattern on the given day) and the route polyline, from the published GTFS feed. No login needed.

NameTypeReqDescription
datestring–Service date as YYYY-MM-DD (default: today in College Park)
routestringyesRoute id as in transportation_list_routes, e.g. "104" (event routes have longer ids)
NameTypeReqDescription
colorstring|nullyesRoute colour as a six-digit hex string, e.g. "93c47d"
headsignstring|nullyesDestination shown on the bus for this pattern
idstringyesRoute id, e.g. "104"
long_namestring|nullyesRoute name, e.g. "College Park Metro Station"
scheduled_todaybooleanyestrue when at least one trip runs today
shapearrayyesRoute polyline as [longitude, latitude] pairs, thinned to at most 500 points
short_namestring|nullyesNumber or code shown on the bus, e.g. "104"
stopsarrayyesStops of the most common trip pattern, in order; empty when nothing is scheduled
urlstringyesDOTS page with the stop list and printed timetable

No examples provided.

transportation_get_schedule ~156

Scheduled departures of a Shuttle-UM route on a date, optionally at one stop, from the published GTFS feed. Times are scheduled, not live; real-time arrivals are only in the Transit app. Without a stop only timepoint stops are listed, to keep the answer short. No login needed.

NameTypeReqDescription
afterstring–Only departures at or after this local time, as HH:MM
datestring–Service date as YYYY-MM-DD (default: today in College Park)
routestringyesRoute id as in transportation_list_routes, e.g. "104" (event routes have longer ids)
stopstring–Only departures from this stop, e.g. "1001"
NameTypeReqDescription
datestringyesDate as YYYY-MM-DD
departuresarrayyesDepartures in time order; stops without a scheduled time are estimates
routestringyesRoute id
service_idsarrayyesGTFS service patterns active that day, e.g. "FA26RS Weekday"; empty means no service
weekdaystringyes–

No examples provided.

transportation_get_service_alerts ~56

Current Shuttle-UM system updates and alerts (detours, schedule changes) and the modified-service notices linked from the DOTS schedules page. Delays are not posted here, only in the Transit app. No login needed.

Input schema present but exposes no named parameters.

NameTypeReqDescription
alertsarrayyesSystem updates and alerts, top first
effectivestring|nullyesEffective-date note under the heading
noticesarrayyesModified-service notices linked under the season heading
seasonstring|nullyesSchedule season heading, e.g. "FALL 2026 SCHEDULES"

No examples provided.

transportation_get_service_calendar ~54

The Shuttle-UM service calendar for the academic year: for each break, exam week and intersemester period, the dates and whether service is regular or modified, with the notice page for the detail. No login needed.

Input schema present but exposes no named parameters.

NameTypeReqDescription
periodsarrayyesPeriods in the order the page lists them
titlestring|nullyesPage heading, e.g. "SHUTTLE-UM SERVICE CALENDAR: 2025-2026"

No examples provided.

transportation_get_stop ~54

One Shuttle-UM bus stop with its location and every route that serves it, from the published GTFS feed. No login needed.

NameTypeReqDescription
stopstringyesFour-digit stop id, e.g. "1001"
NameTypeReqDescription
idstringyesStop id, e.g. "1001"
latnumber|nullyesLatitude
lonnumber|nullyesLongitude
namestring|nullyesStop name, e.g. "Regents Drive Garage"
routesarrayyesIds of every route with a trip that serves this stop
wheelchair_boardingstringyesWheelchair access as the feed records it

No examples provided.

transportation_list_routes ~50

Every Shuttle-UM bus route in the current timetable (regular routes such as 104 College Park Metro plus event routes), with whether each runs today, from the published GTFS feed. No login needed.

Input schema present but exposes no named parameters.

NameTypeReqDescription
feedobjectyesThe timetable the answers come from
routesarrayyesRoutes in id order

No examples provided.

transportation_list_stops ~107

Shuttle-UM bus stops from the published GTFS feed, filtered by a name fragment or by distance from a point. Without a filter, every stop. No login needed.

NameTypeReqDescription
latnumber–Latitude to search around
lonnumber–Longitude to search around
querystring–Only stops whose name contains this text, e.g. "Stamp"
radius_minteger–Search radius in metres around lat/lon (default 500)
NameTypeReqDescription
stopsarrayyesMatching stops: nearest first for a point search, otherwise by id

No examples provided.

whoami ~32

Report the currently signed-in UMD user, or that nobody is signed in, and which services have a live session.

Input schema present but exposes no named parameters.

NameTypeReqDescription
attributes–yesnull when nobody is signed in
servicesarrayyesSingle sign-on services other tools depend on, and whether each is signed in
signed_inbooleanyesWhether a user is signed in
user–yesnull when nobody is signed in

No examples provided.

Install

How do I install the io.github.avivkeller/umd-mcp server?

io.github.avivkeller/umd-mcp runs locally as an npm package, launched with npx -y umd-mcp. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

npm · umd-mcp

# add to Claude Code
claude mcp add avivkeller-umd-mcp -- npx -y umd-mcp
Common questions

What is the io.github.avivkeller/umd-mcp server?

io.github.avivkeller/umd-mcp is listed in the public MCP registry as io.github.avivkeller/umd-mcp. MCP server exposing University of Maryland data. This page covers its npm package (umd-mcp).

Is the io.github.avivkeller/umd-mcp server safe to use?

io.github.avivkeller/umd-mcp scores 81 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 23 October 2026. It declares no install or post-install scripts. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the io.github.avivkeller/umd-mcp server expose?

io.github.avivkeller/umd-mcp exposes 100 tools: login, logout, whoami, planetterp_get_course, planetterp_list_courses, and 95 more. Their descriptions and schemas cost roughly 9,284 tokens of context every time the server is loaded.

Is the io.github.avivkeller/umd-mcp server still maintained?

io.github.avivkeller/umd-mcp is still listed as active in the MCP registry. We last reached this channel on 23 October 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

What licence is the io.github.avivkeller/umd-mcp server under?

io.github.avivkeller/umd-mcp declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.