Skip to main content
Glama
esreddy2

umich-dining-mcp

by esreddy2

List dining halls

list_locations
Read-onlyIdempotent

List University of Michigan dining halls with daily service periods and current open status, optionally filtered by date or hall, so users can see which halls are serving now.

Instructions

List the dining halls and their service periods for the day, with whether they are open now. openNow is evaluated at the current campus-local time. The entries are the halls and their service periods for the day. stale means a page was served from an expired cache entry; asOf is the age of the data. Cafes, markets, bakeries, grills, prices and meal plans are out of scope.

Input Schema

NameRequiredDescriptionDefault
dateNoThe day to read. Defaults to today.
hallNoKeep only this hall.

Output Schema

NameRequiredDescriptionDefault
dateYes
failuresYes
locationsYes
mapUrlTemplateNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed13 schema fields changedv0.1.1
    • addedInput schema / additionalProperties
      Added value: +false
    • changedInput schema / properties / date / description
      Previous value: -"Calendar date in YYYY-MM-DD. The site publishes menus for today-3 days to today+14 days."New value: +"The day to read. Defaults to today."
    • addedInput schema / properties / hall
      Added value: +{
      +  "description": "Keep only this hall.",
      +  "enum": [
      +    "bursley",
      +    "east-quad",
      +    "markley",
      +    "mosher-jordan",
      +    "north-quad",
      +    "south-quad",
      +    "twigs-at-oxford",
      +    "wolverine-village",
      +    "lawyers-club",
      +    "martha-cook"
      +  ],
      +  "type": "string"
      +}
    • addedOutput schema / properties / locations / items / properties / asOf
      Added value: +{
      +  "type": "string"
      +}
    • removedOutput schema / properties / locations / items / properties / date
      Removed value: -{
      -  "type": "string"
      -}
    • removedOutput schema / properties / locations / items / properties / mapUrl
      Removed value: -{
      -  "type": [
      -    "string",
      -    "null"
      -  ]
      -}
    • removedOutput schema / properties / locations / items / properties / meals
      Removed value: -{
      -  "items": {
      -    "enum": [
      -      "Breakfast",
      -      "Lunch",
      -      "Dinner"
      -    ],
      -    "type": "string"
      -  },
      -  "type": "array"
      -}
    • removedOutput schema / properties / locations / items / properties / path
      Removed value: -{
      -  "type": "string"
      -}
    • changedOutput schema / properties / locations / items / properties / today / items / required
      Previous value: -[
      -  "label",
      -  "times",
      -  "closed"
      -]New value: +[
      +  "label",
      +  "times"
      +]
    • changedOutput schema / properties / locations / items / required
      Previous value: -[
      -  "id",
      -  "name",
      -  "path",
      -  "url",
      -  "residentsOnly",
      -  "glutenFreePantry",
      -  "address",
      -  "phone",
      -  "email",
      -  "mapUrl",
      -  "meals",
      -  "date",
      -  "today",
      -  "openNow",
      -  "stale"
      -]New value: +[
      +  "id",
      +  "name",
      +  "url",
      +  "residentsOnly",
      +  "glutenFreePantry",
      +  "address",
      +  "phone",
      +  "email",
      +  "today",
      +  "openNow",
      +  "stale"
      +]
    • addedOutput schema / properties / mapUrlTemplate
      Added value: +{
      +  "type": "string"
      +}
    • removedOutput schema / properties / warning
      Removed value: -{
      -  "type": "string"
      -}
    • changedOutput schema / required
      Previous value: -[
      -  "date",
      -  "locations",
      -  "failures",
      -  "warning"
      -]New value: +[
      +  "date",
      +  "locations",
      +  "failures"
      +]
  2. First observedv0.1.0

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive, so the safety burden is light. The description adds genuinely useful behavior: openNow is evaluated at campus-local time, and stale/asOf describe cache-expiry semantics an agent would otherwise misread.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads the core purpose well, but 'The entries are the halls and their service periods for the day' restates the opening sentence almost verbatim, spending a sentence without adding information. The out-of-scope clause earns its place; the repetition does not.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given a rich input schema, an output schema, and full annotations, the description covers what's needed to call it: scope, time basis, and cache semantics. Only a hint about empty-result or error behavior is absent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% for both parameters (date pattern and hall enum), so the baseline of 3 applies. The description adds only the implicit 'for the day' framing and nothing about date format or the hall enum beyond what the schema states.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a concrete verb (list) and resource (dining halls) with scope: service periods for the day and open-now status. The out-of-scope sentence separates it from menu/price/meal-plan siblings, but it does not distinguish it from find_open_now, which overlaps on the openNow concept.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives a clear when-not list (cafes, markets, bakeries, grills, prices, meal plans) and clarifies the date default applies to 'the day'. Missing an explicit pointer to the sibling to use for cross-hall open-now filtering (find_open_now), so the alternative routing is only partial.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.