protogrid

Search / io.github.esreddy2/umich-dining-mcp

UMich Dining

R0· no sign-in

Menus, traits, allergens, nutrition and hours of the ten University of Michigan dining halls.

v2.0.0 · active · repository · descriptor JSON · versions

An agent can connect right now, no human step.Remote endpoint, no authentication, reachable on the last probe.
Quality86good
Trust94of 100
Uptime, 30 days100%
Latency p5089 ms

Connect

8 clients · secrets stay placeholders
{
  "mcpServers": {
    "umich-dining-mcp": {
      "type": "http",
      "url": "https://umich-dining-mcp.duckdns.org/mcp"
    }
  }
}
claude mcp add --transport http umich-dining-mcp https://umich-dining-mcp.duckdns.org/mcp
[mcp_servers.umich-dining-mcp]
url = "https://umich-dining-mcp.duckdns.org/mcp"
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "umich-dining-mcp": {
      "type": "remote",
      "url": "https://umich-dining-mcp.duckdns.org/mcp",
      "enabled": true
    }
  }
}
{
  "mcpServers": {
    "umich-dining-mcp": {
      "type": "http",
      "url": "https://umich-dining-mcp.duckdns.org/mcp"
    }
  },
  "deeplink": "cursor://anysphere.cursor-deeplink/mcp/install?name=umich-dining-mcp&config=eyJ0eXBlIjoiaHR0cCIsInVybCI6Imh0dHBzOi8vdW1pY2gtZGluaW5nLW1jcC5kdWNrZG5zLm9yZy9tY3AifQ%3D%3D"
}
{
  "servers": {
    "umich-dining-mcp": {
      "type": "http",
      "url": "https://umich-dining-mcp.duckdns.org/mcp"
    }
  }
}
{
  "mcpServers": {
    "umich-dining-mcp": {
      "httpUrl": "https://umich-dining-mcp.duckdns.org/mcp"
    }
  }
}
extensions:
  "umich-dining-mcp":
    enabled: true
    name: "umich-dining-mcp"
    type: streamable_http
    uri: "https://umich-dining-mcp.duckdns.org/mcp"
    timeout: 300

Quality 86 / 100good

protocol88 · weight 25
  • pass
    protocol.modernsupports 2026-07-28 (server/discover)
  • pass
    protocol.statelessanswers without a session
  • pass
    protocol.transportstreamable HTTP
  • warn
    protocol.list_ttltools/list declares ttlMs 0, so clients re-fetch it on every use
authorizationn/a · weight 15
  • n/a
    auth.prm, auth.as_metadata, auth.cimdno remote uses OAuth
  • n/a
    auth.secret_in_urlno templated URL
tool hygiene79 · weight 30
  • pass
    tools.descriptionsevery tool has a description
  • warn
    tools.description_length1 tools have descriptions over 1,024 characters, which crowds the context
  • pass
    tools.schemasevery tool has an object input schema
  • pass
    tools.annotations7 of 7 tools declare readOnlyHint or destructiveHint
  • fail
    tools.directory_hintsno tool declares all four of readOnlyHint, destructiveHint, idempotentHint and openWorldHint; missing: list_locations (destructiveHint, idempotentHint); get_hours (destructiveHint, idempotentHint); find_open_now (destructiveHint, idempotentHint); …
  • pass
    tools.token_costabout 1,629 tokens to load every tool
  • pass
    tools.api_dumptools are not a one-to-one API dump
stability100 · weight 15
  • pass
    stability.changesno tool changes in 30 days
  • pass
    stability.rug_pullno tool changed its meaning under the same name
dependenciesn/a · weight 15
  • n/a
    deps.known_vulns, deps.mcp_sdk_version, deps.resolvabledeps.dev does not know [email protected]

7 tools, about 1,629 tokens to load them all · tool set 641d60b3818d · checked 2026-11-07 18:01 UTC

Tool changes

No tool definition changes recorded. A server's first observation is its baseline; later probes record what changes.

Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed. How it is computed.

Trust 94 / 100

provenance80
liveness100
freshness100
hygiene100

+repository +namespace-matches-repo +reachable +uptime-100% +updated-9d-ago

Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed. How it is computed.

Dependencies

[email protected] npmthis version is not known to the dependency resolver

Dependency graphs from deps.dev; advisories from OSV.dev, including the GitHub Advisory Database and the PyPI Advisory Database; all CC BY 4.0. The graph is what a clean install of this version resolves today; nothing was installed or run. How it is checked.

Endpoints

remoteauthreachableuptime 30dp50protocollast ok
https://umich-dining-mcp.duckdns.org/mcp streamable-httpnoneyes100%89 ms2026-07-282026-11-07
packageregistryversionruntimesecrets
umich-dining-mcpnpm2.0.0npx

Tools (7)

filter_dishesread-onlyFilter the dining hall menus by allergen, trait, nutrient density, carbon footprint and calories. exclude_allergens removes dishes that carry any of the listed allergens; require_traits keeps only dishes that carry every listed trait; min_mhealthy is the lowest acceptable nutrient-density tier (3 = Nutrient Dense Medium or better); max_carbon is the highest acceptable carbon footprint; max_calories and max_sodium_mg are numeric caps that exclude dishes without published values. Allergen data is only as good as the site. The menu page flags the allergens the kitchen reported for a dish, but the data does not distinguish "contains" from "may contain", there are no ingredient lists, and it is not safe to treat a missing flag as an absence of the allergen. The site's own guidance is: "Look for the signs posted near each food serving area for a list of menu options with allergens highlighted in red." The "Gluten Free" trait means the dish is made without gluten, not that it is safe for someone with coeliac disease. Dedicated gluten-free pantries exist only at South Quad, East Quad, Mosher-Jordan and Bursley.
find_open_nowread-onlyReturn the dining halls that are serving at the current time, and the ones that are not, with the service periods of today.
get_hoursread-onlyGet the service periods published for a dining hall on the requested day, together with the hall's regular weekly schedule. Without a hall argument every hall is returned.
get_item_nutritionread-onlyGet the full nutrition panel of one dish, including the serving size, calories, the fat, cholesterol, sodium, carbohydrate and protein values and the micronutrients. The dish name is matched case-insensitively; an exact match wins, otherwise a unique substring match is used and an ambiguous name is reported rather than guessed.
get_menuread-onlyGet the menu of one dining hall: meals, stations and dishes, with each dish's traits (Vegan, Halal, Gluten Free, Nutrient Dense tier, Carbon Footprint tier), allergens and nutrition panel. The date defaults to today; the site publishes menus for today-3 days to today+14 days.
list_locationsread-onlyList the ten University of Michigan dining halls with their address, phone, e-mail, map link, the service periods published for the requested day, whether they are serving right now, and whether they have a gluten-free pantry. Cafes, markets, bakeries, grills, prices and meal plans are out of scope.
search_dishesread-onlySearch dish names across the dining halls, or within one hall. The match is a case-insensitive substring match on the dish name.

Schemas: list_tools.

Similar MCP servers

Official server.json
{
  "name": "io.github.esreddy2/umich-dining-mcp",
  "title": "UMich Dining",
  "$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
  "remotes": [
    {
      "url": "https://umich-dining-mcp.duckdns.org/mcp",
      "type": "streamable-http"
    }
  ],
  "version": "2.0.0",
  "packages": [
    {
      "version": "2.0.0",
      "transport": {
        "type": "stdio"
      },
      "identifier": "umich-dining-mcp",
      "runtimeHint": "npx",
      "registryType": "npm"
    }
  ],
  "repository": {
    "id": "1427583950",
    "url": "https://github.com/esreddy2/UMich-dining-mcp",
    "source": "github"
  },
  "description": "Menus, traits, allergens, nutrition and hours of the ten University of Michigan dining halls."
}