# umd-mcp [Health: Active]

**Category:** 💻 Developer Tools  
**Repository:** https://github.com/Open-Sourcery-UMD/umd-mcp  
**GitHub Stars:** 0  
**npm Downloads (last month):** 411  
**Views:** 0  
**Installs:** 0  
**Upvotes:** 0  
**Directory Page:** https://allmcps.com/mcp/umd-mcp

## Description
MCP server exposing University of Maryland data

## Tools
Capabilities this server exposes over MCP:

- **login** — Sign in with a UMD Directory ID.
- **logout** — Forget the signed-in user and every service session, and clear the sign-in browser so the next login prompts again.
- **whoami** — Report the currently signed-in UMD user, or that nobody is signed in, and which services have a live session.
- **planetterp_get_course** — Look up a UMD course by its code on PlanetTerp.
- **planetterp_list_courses** — List UMD courses on PlanetTerp in alphabetical order, optionally within one department.
- **planetterp_get_professor** — Look up a UMD professor or teaching assistant by name on PlanetTerp.
- **planetterp_list_professors** — List UMD professors and teaching assistants on PlanetTerp in alphabetical order.
- **planetterp_get_grades** — Grade distributions from PlanetTerp for a course, a professor, or both, broken down by section.
- **planetterp_search** — Search PlanetTerp for courses and professors whose code or name contains the query, as the site search bar does.
- **nutrition_get_menu** — What a UMD dining hall is serving on a given day, by meal period and station, with allergens and dietary labels for each dish, from nutrition.umd.edu.
- **nutrition_get_recipe** — The nutrition label for a dish on a UMD dining hall menu: serving size, calories, nutrition facts with daily values, ingredients and allergens.
- **testudo_soc_list_terms** — Terms the UMD Schedule of Classes currently lists (about four: the current term plus the next few).
- **testudo_soc_list_departments** — Departments (four-letter course prefixes) offering courses in a term, from the UMD Schedule of Classes.
- **testudo_soc_list_courses** — Every course a department offers in a term, from the UMD Schedule of Classes: title, credits, grading methods, gen-ed codes, prerequisites and description.
- **testudo_soc_get_course** — One course in a term from the UMD Schedule of Classes, with every section: instructors, seat counts, meeting days, times, rooms and delivery method.
- **testudo_soc_get_sections** — 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.
- **testudo_soc_search_courses** — Search the UMD Schedule of Classes for a term the way its search form does.
- **testudo_soc_autocomplete_courses** — Course ids and titles in a term whose id starts with the given text, from the UMD Schedule of Classes autocomplete.
- **testudo_soc_autocomplete_instructors** — Instructors teaching in a term whose last or first name contains the given text, from the UMD Schedule of Classes autocomplete.
- **testudo_soc_list_gen_ed_categories** — The general education categories and requirement codes (FSAW, DSHS, DVUP, ...) the UMD Schedule of Classes lists for a term.
- **testudo_soc_list_gen_ed_courses** — Courses fulfilling one general education requirement in a term, from the UMD Schedule of Classes.
- **testudo_soc_list_syllabi** — Past syllabi on file for a course in the UMD Schedule of Classes syllabus repository: the term and instructor of each.
- **testudo_soc_get_building** — Look up a classroom building by the building code and room number a section lists: full name, campus building number and map links.
- **testudo_get_current_term** — The current academic term at UMD with its registration status and key dates, from the Testudo student portal.
- **testudo_list_terms** — 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 da…
- **testudo_get_schedule** — 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).
- **testudo_get_grades** — 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.
- **testudo_get_unofficial_transcript** — 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.
- **testudo_get_profile** — 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.
- **testudo_get_registration_appointment** — 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.
- **testudo_get_request_status** — 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.
- **testudo_get_graduation_application_status** — 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.
- **testudo_get_grade_options** — 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.
- **testudo_get_parent_access** — Parent or guest accounts the signed-in student has granted access to their Testudo records.
- **activeterp_list_program_filters** — The classifications (e.g. Fitness, Aquatics, Esports) and tags (e.g. Adventure Trips) that activeterp.umd.edu programs are filed under.
- **activeterp_list_programs** — Programs on activeterp.umd.edu (group fitness classes, swim lessons, adventure trips, clinics, camps, esports bookings) with their price, optionally within classifications or tags.
- **activeterp_search_programs** — Search activeterp.umd.edu programs by name, as the site search bar does.
- **activeterp_get_program** — One activeterp.umd.edu program: description, classification, price, whether a waiver is required, and how it is scheduled.
- **activeterp_list_program_offerings** — An activeterp.umd.edu program's offerings in a semester: each dated session or series with its price, open spots, meeting pattern and cancelled dates.
- **activeterp_list_program_instances** — An activeterp.umd.edu program's bookable time slots over the coming days: start and end, location, instructor, class size and open spots.
- **activeterp_list_facilities** — Bookable facilities on activeterp.umd.edu (currently the Terps Esports Center stations) with their parent facility and blurb.
- **activeterp_get_facility** — One activeterp.umd.edu facility: description, type, area, maximum occupancy and regular hours per weekday.
- **activeterp_get_facility_schedule** — Bookings on the activeterp.umd.edu facility calendar in a date window, for one facility or all, with recurrence rules.
- **activeterp_list_calendars** — The calendars the activeterp.umd.edu home page can show (e.g. Group Fitness Classes, Adventure Program).
- **activeterp_list_calendar_events** — The activeterp.umd.edu home page calendar: every scheduled class, reservation slot and event over the next several days.
- **activeterp_member_get_profile** — The signed-in member's activeterp.umd.edu profile: name, University ID number, eligibility, date of birth, gender and contact details on file.
- **activeterp_member_list_my_memberships** — The signed-in member's RecWell memberships, current and past: type, start and expiry dates, renewal terms and refund or cancellation status.
- **activeterp_member_get_access_history** — The signed-in member's facility check-ins: facility, check-in station, entrance and exit devices, time, and whether access was granted.
- **activeterp_member_list_my_orders** — The signed-in member's orders: order number, date, where it was placed, totals and whether it was voided.
- **activeterp_member_list_my_invoices** — The signed-in member's invoices, all of them or only the unpaid ones: number, date, total, paid and owing amounts and a PDF link.
- **activeterp_member_get_invoice** — One of the signed-in member's invoices: billing details, subtotal, tax, total, amount paid, outstanding balance and the line items.
- **activeterp_member_list_memberships** — Memberships RecWell sells on activeterp.umd.edu (day passes, the free Group Fitness and Bouldering Zone memberships) with their blurb and price.
- **activeterp_member_get_membership** — One membership RecWell sells with each purchasable term: name, billing, upfront price and the dates it would cover for the signed-in member.
- **activeterp_member_list_towel_services** — Towel services RecWell sells on activeterp.umd.edu (semester and annual) with their price.
- **activeterp_member_get_towel_service** — One towel service with each purchasable term: name, billing, upfront price and the dates it would cover for the signed-in member.
- **activeterp_member_list_multi_visit_passes** — Multi-visit passes RecWell sells (personal training session packages, member visit passes) with their category list, price and any purchase requirement.
- **activeterp_member_get_multi_visit_pass** — One multi-visit pass: category, price, full description and any purchase requirement.
- **athletics_list_sports** — Every varsity sport at Maryland (the Terps, umterps.com) with the ids the other athletics tools take.
- **athletics_list_seasons** — Past and current seasons a sport has a schedule for, with the schedule id to pass to athletics_get_schedule for a past season.
- **athletics_get_schedule** — A Maryland team's schedule and results: every game with date, time, opponent, venue, TV/streaming, and the score once played, plus the team's record.
- **athletics_get_game** — One Maryland game by id (from athletics_get_schedule or athletics_get_calendar): opponent, venue, media links and result.
- **athletics_get_roster** — A Maryland team's current roster: players with jersey number, position, class, height, weight, hometown and major, plus the coaching staff.
- **athletics_search_players** — Find current and former Maryland athletes by last name, across all seasons on umterps.com, optionally within one sport.
- **athletics_get_coaches** — A Maryland team's coaching staff with titles, email, phone and bio page links.
- **athletics_get_news** — Latest Maryland Athletics news stories, newest first, optionally for one sport.
- **athletics_get_article** — The full text of a Maryland Athletics news story (game recaps, previews, announcements) by story id.
- **athletics_get_calendar** — Every Maryland game or event in a date range across all sports (or one sport), grouped by day, with opponents, venues, media links and results.
- **athletics_get_upcoming_events** — A Maryland team's next few games with date, time, opponent, venue and where to watch.
- **calendar_search_events** — Events on the UMD campus calendar (calendar.umd.edu) in a date range, optionally narrowed by full-text query, event type, audience or featured status.
- **calendar_get_event** — One event from the UMD campus calendar by id or slug, with its full description, location, contact and recurrence rule.
- **calendar_list_categories** — The event-type, audience and status categories the UMD campus calendar files events under, with the slugs calendar_search_events accepts.
- **calendar_get_academic_calendar** — The approved UMD semester calendars from the Office of the Provost: first and last day of classes, breaks, reading day, final exams, commencement and summer sessions for each academic year, several years ahead.
- **dining_get_busy_meter** — Current crowd level (less, moderately or extremely busy) of the three UMD dining halls, from the service behind the "Dining Hall Status" page.
- **dining_get_calendar** — Key dates for the current semester from UMD Dining Services: when dining plans go live, holiday and break hours, closures and Dining Dollar expiry.
- **dining_get_news** — The newest posts on dining.umd.edu, mainly "The Dish" monthly newsletter, from its RSS feed.
- **directory_search** — Search the UMD campus directory for people by last name (prefix; "Pin*" wildcards work), full name, email address, Directory ID or phone number.
- **directory_search_advanced** — Search the UMD campus directory by separate name parts, email, work phone, department, affiliation and institution.
- **directory_get_person** — Look up one person in the UMD campus directory by Directory ID (the part of their email before @umd.edu).
- **elms_whoami** — The signed-in user as ELMS (Canvas) knows them: name, login id, email and time zone.
- **elms_list_courses** — The signed-in student's courses on ELMS (Canvas) with term, instructors and current grade standing.

## Claude Desktop Quick Installation
Heuristic fallback — verify the package name and runner against the repository README before running it. Uses `npx` (confidence: low):

```json
"mcpServers": {
  "umd-mcp": {
    "command": "npx",
    "args": ["-y","umd-mcp"],
    "env": {
      "UMD_MCP_BROWSER": "",
      "UMD_MCP_PROFILE_DIR": "",
      "CANVAS_TOKEN": ""
    }
  }
}
```

**Requires environment variables:** `UMD_MCP_BROWSER`, `UMD_MCP_PROFILE_DIR`, `CANVAS_TOKEN` — the values above are empty placeholders; fill in real credentials before running (see the repository for what each one is for).

## Documentation

## What umd-mcp does

The umd-mcp MCP server exposes University of Maryland data through tools grouped around PlanetTerp, nutrition.umd.edu, the Schedule of Classes, and the Testudo student portal. It supports both public lookups and authenticated student information.

PlanetTerp tools cover course and instructor searches, course and professor records, and grade distributions by course, professor, and section. Nutrition tools return dining-hall menus by date, meal period, and station, plus recipe details such as serving size, calories, daily values, ingredients, allergens, and dietary labels.

Schedule of Classes tools provide term and department discovery, course and section details, search and autocomplete, general education categories and courses, syllabus listings, and building information. Testudo tools can return the current academic term, a signed-in student's schedule, grades, unofficial transcript, profile, and registration appointment.

## How the umd-mcp MCP server works

Tool names generally follow an `<integration>_<method>` pattern. PlanetTerp, nutrition, and Schedule of Classes operations work anonymously according to the supplied tool descriptions. Student-facing Testudo operations are marked as requiring login, and the `login`, `logout`, and `whoami` tools manage the authenticated state.

When login is requested, the server opens a controlled Chrome or Edge window using a separate browser profile. The user signs in through the UMD Shibboleth identity provider, including Duo when prompted. The server receives the callback on a UMD-published hostname that resolves to `127.0.0.1`, validates the CAS service ticket, and uses the resulting session to establish cookies for connected services. The browser profile remains available for later logins. Logout clears the stored service sessions and browser cookies.

## Setup and configuration

Build the project and point an MCP client at the generated Node entrypoint. The documented client configuration runs `node` with `/path/to/umd-mcp/dist/index.js` as its argument. Development commands use pnpm: install dependencies with `pnpm install`, run the server with `pnpm dev`, inspect it with `pnpm inspect`, and produce the build with `pnpm build`.

The umd-mcp MCP server can use an installed Chrome or Edge executable. Set `UMD_MCP_BROWSER` when the browser is elsewhere, and set `UMD_MCP_PROFILE_DIR` to change where the persistent browser profile is stored. Set `CANVAS_TOKEN` with a Canvas personal access token from ELMS profile settings if ELMS tools are enabled; the token is used as a bearer token and avoids browser sign-in for those tools.

## Tools and capabilities

- Search PlanetTerp courses and instructors, inspect course or professor records, and retrieve grade distributions.
- Retrieve dining-hall menus and dish nutrition information.
- Browse Schedule of Classes terms, departments, courses, sections, instructors, gen-ed requirements, syllabi, and buildings.
- Query the current UMD term and authenticated student schedules, grades, transcript, profile, and registration appointment.
- Check the signed-in identity and which service sessions remain active.

## Limitations and notes

Authenticated data depends on an active UMD sign-in and the relevant service session. The Testudo tools expose information for the signed-in student rather than arbitrary student records. The Schedule of Classes tools cover the terms currently listed by UMD, described in the source material as roughly the current term and the next few terms. Some browser-based login behavior also depends on Chrome or Edge availability and the configured profile directory.

The umd-mcp MCP server does not itself describe write operations for course registration, profile changes, or other student-account mutations in the supplied tool list; the documented Testudo capabilities are read-oriented lookups.

_Full upstream README: https://allmcps.com/mcp/umd-mcp/readme_

