{"$schema":"https://verifymcp.io/schemas/trust-report.json","schemaVersion":1,"license":{"name":"CC BY-NC 4.0","url":"https://creativecommons.org/licenses/by-nc/4.0/"},"generatedAt":"2026-11-05T17:56:37.541Z","url":"https://verifymcp.io/servers/esreddy2-umich-dining-mcp/umich-dining-mcp","markdownUrl":"https://verifymcp.io/servers/esreddy2-umich-dining-mcp/umich-dining-mcp.md","server":{"slug":"esreddy2-umich-dining-mcp","name":"UMich Dining","registryName":"io.github.esreddy2/umich-dining-mcp","description":"Menus, traits, allergens, nutrition and hours of the ten University of Michigan dining halls.","registryStatus":"active","deletedAt":null,"statusMessage":null,"liveness":"live","publisher":{"class":"unknown","claimed":false}},"component":{"slug":"umich-dining-mcp","type":"npm","identifier":"umich-dining-mcp","withdrawn":false,"url":"https://verifymcp.io/servers/esreddy2-umich-dining-mcp/umich-dining-mcp","version":"2.0.0","transport":"stdio","scoredAt":"2026-11-05T06:24:54.963Z"},"score":{"total":85,"tier":"high trust","status":"scored","weekDelta":14,"history":[{"date":"2026-11-05","total":85},{"date":"2026-11-04","total":84},{"date":"2026-11-03","total":84},{"date":"2026-11-02","total":83},{"date":"2026-11-01","total":83},{"date":"2026-10-31","total":82},{"date":"2026-10-30","total":82},{"date":"2026-10-29","total":71},{"date":"2026-10-28","total":81},{"date":"2026-10-27","total":81},{"date":"2026-10-26","total":81},{"date":"2026-10-25","total":81},{"date":"2026-10-24","total":81},{"date":"2026-10-23","total":81},{"date":"2026-10-22","total":81},{"date":"2026-10-21","total":66}]},"categories":[{"name":"Supply Chain Security","score":99,"verdict":"partial","reasons":["No malware found by supply-chain analysis.","No known CVEs affecting this package version or its production dependencies.","No install/post-install scripts declared.","3 of 28 dependencies flagged as unhealthy (1 deprecated)."],"codes":[{"code":"supplychain.malware_clean","args":{}},{"code":"cve.none","args":{}},{"code":"installscript.none","args":{}},{"code":"dephealth.assessed","args":{"deps":"28","unhealthy":"3","deprecated":"1"}}]},{"name":"Provenance & Transparency","score":97,"verdict":"fail","reasons":["Source repository is publicly reachable at the declared URL.","Cryptographically verified build provenance (signed, bound to esreddy2/UMich-dining-mcp).","Clear OSI-approved license (MIT).","Actively maintained (last published 6 days ago).","Disclosure check failed: no security disclosure policy was found in the source repository."],"codes":[{"code":"provenance.repo_verified","args":{}},{"code":"provenance.verified","args":{"repo":"esreddy2/UMich-dining-mcp"}},{"code":"license.osi","args":{"spdx":"MIT"}},{"code":"maintenance.recent","args":{"age_days":"6"}},{"code":"disclosure.absent","args":{}}]},{"name":"Schema Quality & AI Usability","score":75,"verdict":"fail","reasons":["100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).","AI-judged instruction clarity (good).","Context-footprint check failed: tool/resource definitions use about 1591 tokens (~159/item across 10 items; 8 tools + 2 resources), over budget; trim descriptions and params.","Usage-examples check failed: none of the tools include examples."],"codes":[{"code":"schema.descriptions","args":{"pct":"100"}},{"code":"schema.ai_quality","args":{"band":"good"}},{"code":"schema.footprint_heavy","args":{"avg":"159","items":"10","tools":"8","tokens":"1591","resources":"2"}},{"code":"schema.examples_absent","args":{}}]},{"name":"Stability & Change Management","score":29,"verdict":"fail","reasons":["Stability check failed: the tool surface changed between 0.1.1 and 2.0.0: 1 tool removals, 1 breaking changes, 2 additions."],"codes":[{"code":"stability.version_churn","args":{"to":"2.0.0","days":"15","from":"0.1.1","added":"2","breaks":"1","removed":"1"}}]},{"name":"Tool Coverage","score":100,"verdict":"pass","reasons":["100% of tools have a non-trivial description (not blank, and not just the tool's name).","100% of tool parameters carry a description.","Structured output schemas are declared (100% of tools); any adoption earns full credit."],"codes":[{"code":"toolquality.descriptions","args":{"pct":"100"}},{"code":"toolquality.param_docs","args":{"pct":"100"}},{"code":"toolquality.output_present","args":{"pct":"100"}}]},{"name":"Tool Safety","score":100,"verdict":"pass","reasons":["No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.","We read all 8 captured tool definition(s), and no name or description among them implies an irreversible operation.","An AI judge read all 10 captured unit(s) of tool text and found none that tries to manipulate the model reading it."],"codes":[{"code":"toolsafety.injection_clean","args":{}},{"code":"toolsafety.destructive_none","args":{"tools":"8"}},{"code":"toolsafety.manipulation_clean","args":{"units":"10","judged":"10"}}]},{"name":"Capabilities","score":100,"verdict":"pass","reasons":["Implements a current MCP spec version (2026-07-28)."],"codes":[{"code":"protocol.current","args":{"version":"2026-07-28"}}]}],"inconclusive":[],"malware":[],"components":[{"slug":"umich-dining-mcp-2","type":"remote","identifier":"https://umich-dining-mcp.duckdns.org/mcp","withdrawn":false,"score":77,"current":false,"url":"https://verifymcp.io/servers/esreddy2-umich-dining-mcp/umich-dining-mcp-2","markdownUrl":"https://verifymcp.io/servers/esreddy2-umich-dining-mcp/umich-dining-mcp-2.md"},{"slug":"umich-dining-mcp","type":"npm","identifier":"umich-dining-mcp","withdrawn":false,"score":85,"current":true,"url":"https://verifymcp.io/servers/esreddy2-umich-dining-mcp/umich-dining-mcp","markdownUrl":"https://verifymcp.io/servers/esreddy2-umich-dining-mcp/umich-dining-mcp.md"}],"facts":[{"label":"Registry","value":"npm"},{"label":"Package","value":"umich-dining-mcp"},{"label":"Version","value":"2.0.0"},{"label":"Transport","value":"stdio"}],"install":{"available":true,"bundleSha256":null},"tools":[{"name":"list_locations","title":"List dining halls","description":"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.","inputs":[{"name":"date","type":"string","required":false,"description":"The day to read. Defaults to today."},{"name":"hall","type":"string","required":false,"description":"Keep only this hall."}],"outputs":[{"name":"date","type":"string","required":true,"description":null},{"name":"failures","type":"array","required":true,"description":null},{"name":"locations","type":"array","required":true,"description":null},{"name":"mapUrlTemplate","type":"string","required":false,"description":null}],"hasOutputSchema":true,"hasExamples":false,"tokenEstimate":117},{"name":"get_menu","title":"Get a dining hall menu","description":"Get the menu of one dining hall: meals, stations and dishes. Rows: [name, traits, allergens, mhealthyTier, calories, servingSize, servingSizeGrams] plus nutrients. traits/allergens are codes; read key. With no meal, the meal being served now is returned (or next if closed). Date defaults to today; site publishes today-3..+14. stale means expired cache; asOf data age. Allergens advisory.","inputs":[{"name":"date","type":"string","required":false,"description":"The day to read. Defaults to today."},{"name":"hall","type":"string","required":true,"description":"The dining hall to read."},{"name":"include_nutrients","type":"array","required":false,"description":"Nutrients to return, by key/name, or [\"all\"]."},{"name":"meal","type":null,"required":false,"description":"Keeps only those meals: one name, or a list of them. When it is left out, the meal the hall is serving right now is used."},{"name":"station","type":"string","required":false,"description":"Keeps only that station."}],"outputs":[{"name":"asOf","type":"string","required":false,"description":null},{"name":"date","type":"string","required":true,"description":null},{"name":"hall","type":"string","required":true,"description":null},{"name":"key","type":"object","required":true,"description":null},{"name":"meals","type":"array","required":true,"description":null},{"name":"note","type":"string","required":false,"description":null},{"name":"nutrients","type":"array","required":false,"description":null},{"name":"renderedDate","type":"string","required":false,"description":null},{"name":"stale","type":"boolean","required":true,"description":null},{"name":"totalItems","type":"number","required":true,"description":null},{"name":"totalStations","type":"number","required":true,"description":null},{"name":"units","type":"object","required":false,"description":null},{"name":"unknownMealLabels","type":"array","required":true,"description":null}],"hasOutputSchema":true,"hasExamples":false,"tokenEstimate":197},{"name":"filter_dishes","title":"Filter dishes","description":"Filter dining hall menus by allergen, trait, nutrient density, carbon, calories, sodium and name. All params optional. Allergens/traits are slugs; read key for codes. min_mhealthy: keep tiers >= (1-5). max_carbon: keep tiers <= (1 low, 2 medium, 3 high). nutrients: range per nutrient. query: case-insensitive substring. Rows are coded arrays; read key. stale means expired cache; asOf data age. Allergens advisory.","inputs":[{"name":"date","type":"string","required":false,"description":"A single day to filter. Cannot be combined with from/to."},{"name":"exclude_allergens","type":"array","required":false,"description":"Keeps only the dishes that carry none of these allergens."},{"name":"from","type":"string","required":false,"description":"The first day of a range to filter."},{"name":"hall","type":null,"required":false,"description":"Halls: one, a list, or none for all."},{"name":"include_nutrients","type":"array","required":false,"description":"Nutrients to return, by key/name, or [\"all\"]."},{"name":"limit","type":"integer","required":false,"description":"Rows to return (default 50, max 500)."},{"name":"max_carbon","type":"integer","required":false,"description":"The highest acceptable carbon footprint: 1 (low), 2 (medium) or 3 (high). The dishes the site did not tag are dropped."},{"name":"meal","type":"string","required":false,"description":"Keeps only that meal."},{"name":"min_mhealthy","type":"integer","required":false,"description":"The lowest acceptable nutrient-density tier. The dishes the site did not tag are dropped."},{"name":"nutrients","type":"object","required":false,"description":"Range per nutrient, e.g. {\"protein\":{\"min\":20,\"unit\":\"g\"}}. A constraint drops dishes with no value."},{"name":"offset","type":"integer","required":false,"description":"Pages of the range to skip."},{"name":"query","type":"string","required":false,"description":"A case-insensitive substring of the dish name."},{"name":"require_traits","type":"array","required":false,"description":"Keeps only the dishes that carry every one of these traits."},{"name":"sort_by","type":"string","required":false,"description":"Sort field: a nutrient key, carbonFootprint, a micronutrient name, servingSize, mhealthyTier, or a ratio \"numerator:denominator\" (e.g. \"protein:calories\", \"vitaminA:iron\"). Legacy: proteinToCalorie,…"},{"name":"sort_order","type":"string","required":false,"description":"The direction of the sort. It defaults to desc, so the biggest value comes first."},{"name":"station","type":"string","required":false,"description":"Keeps only that station."},{"name":"to","type":"string","required":false,"description":"The last day of a range to filter. Defaults to the last published day."}],"outputs":[{"name":"asOf","type":"string","required":false,"description":null},{"name":"coverage","type":"object","required":false,"description":null},{"name":"date","type":"string","required":false,"description":null},{"name":"dateRange","type":"object","required":false,"description":null},{"name":"failures","type":"array","required":true,"description":null},{"name":"filter","type":"object","required":false,"description":null},{"name":"flags","type":"object","required":false,"description":null},{"name":"key","type":"object","required":true,"description":null},{"name":"matches","type":"array","required":true,"description":null},{"name":"noMenu","type":"array","required":false,"description":null},{"name":"note","type":"string","required":false,"description":null},{"name":"nutrients","type":"array","required":false,"description":null},{"name":"stale","type":"boolean","required":true,"description":null},{"name":"totalMatches","type":"number","required":true,"description":null},{"name":"truncated","type":"boolean","required":true,"description":null},{"name":"units","type":"object","required":false,"description":null}],"hasOutputSchema":true,"hasExamples":false,"tokenEstimate":508},{"name":"list_nutrition_fields","title":"List nutrition fields","description":"List the canonical nutrient identifiers, their units, the alternative units a threshold may be written in, and the Daily Value basis of the published micronutrients. A constraint on a nutrient excludes the dishes that publish no value for it, and a value the site writes as \"trace\" or \"< 1%\" is missing rather than zero. sortFields includes servingSize, mhealthyTier and ratio syntax \"a:b\".","inputs":[],"outputs":[{"name":"acceptedUnits","type":"object","required":true,"description":null},{"name":"fields","type":"array","required":true,"description":null},{"name":"micronutrients","type":"array","required":true,"description":null},{"name":"notes","type":"array","required":true,"description":null},{"name":"sortFields","type":"array","required":true,"description":null}],"hasOutputSchema":true,"hasExamples":false,"tokenEstimate":93},{"name":"get_hours","title":"Get dining hall hours","description":"Get the service periods published for a dining hall on the requested day, plus the regular weekly schedule. Accepts one hall, a list, or none for all (like filter_dishes). today is the day's published service periods and regular is the weekly schedule. A hall that cannot be read is reported in the failures and the other halls are still returned. The response carries the weekday name of the requested date. stale means the data is from cache and may be slightly old, but is still the best available; asOf is the age. Re-call only if you need guaranteed-fresh data.","inputs":[{"name":"date","type":"string","required":false,"description":"The day to read. Defaults to today."},{"name":"hall","type":null,"required":false,"description":"Halls: one, a list, or none for all."}],"outputs":[{"name":"asOf","type":"string","required":false,"description":null},{"name":"date","type":"string","required":true,"description":null},{"name":"failures","type":"array","required":true,"description":null},{"name":"halls","type":"array","required":true,"description":null},{"name":"weekday","type":"string","required":false,"description":null},{"name":"weekly","type":"object","required":false,"description":null}],"hasOutputSchema":true,"hasExamples":false,"tokenEstimate":159},{"name":"get_dining_occupancy","title":"Dining hall occupancy","description":"Real-time occupancy for monitored dining halls: current count, patron flow, total capacity, and percent full. Only halls with sensors are returned.","inputs":[{"name":"hall","type":null,"required":false,"description":"Keep only this hall, or a list of halls."}],"outputs":[{"name":"observedAt","type":"string","required":true,"description":null},{"name":"readings","type":"array","required":true,"description":null}],"hasOutputSchema":true,"hasExamples":false,"tokenEstimate":55},{"name":"find_open_now","title":"Find halls that are open now","description":"The dining halls that are serving at the given time of day, and the ids of the ones that are not, with the service periods of the day for the halls that are open. Without arguments the current campus-local time is used, and the response says which time it resolved. open carries the hall details and today's periods; closed carries hall ids only. stale means a page was served from an expired cache entry; asOf is the age of the data.","inputs":[{"name":"at","type":"string","required":false,"description":"The campus-local time of day to look at. Defaults to the current time."},{"name":"date","type":"string","required":false,"description":"The day to look at. Defaults to today."}],"outputs":[{"name":"asOf","type":"string","required":false,"description":null},{"name":"at","type":"string","required":true,"description":null},{"name":"closed","type":"array","required":true,"description":null},{"name":"date","type":"string","required":true,"description":null},{"name":"failures","type":"array","required":true,"description":null},{"name":"open","type":"array","required":true,"description":null}],"hasOutputSchema":true,"hasExamples":false,"tokenEstimate":139},{"name":"get_item_nutrition","title":"Get a dish nutrition panel","description":"Get the full nutrition panel of one dish. Name matched case-insensitively; exact match wins, else unique substring. Dish row uses the same coded layout as the sweep tools. Panel values are numbers with one units map; micronutrient amount is the derived amount, with the published percent behind it. asOf data age. Allergens advisory. Use this only when you need the full panel for a single dish. For multiple dishes, use filter_dishes with include_nutrients instead.","inputs":[{"name":"date","type":"string","required":false,"description":"Date YYYY-MM-DD. Site publishes today-3..+14 days."},{"name":"hall","type":"string","required":true,"description":"The dining hall to read."},{"name":"item","type":"string","required":true,"description":"The dish name."},{"name":"meal","type":"string","required":false,"description":"Narrow the search to one meal."},{"name":"station","type":"string","required":false,"description":"Narrow the search to one station."}],"outputs":[{"name":"allergens","type":"array","required":true,"description":null},{"name":"asOf","type":"string","required":false,"description":null},{"name":"carbonFootprint","type":null,"required":true,"description":null},{"name":"date","type":"string","required":true,"description":null},{"name":"hall","type":"number","required":true,"description":null},{"name":"key","type":"object","required":true,"description":null},{"name":"meal","type":"number","required":true,"description":null},{"name":"mhealthyTier","type":"number|null","required":true,"description":null},{"name":"name","type":"string","required":true,"description":null},{"name":"nutrition","type":"object","required":true,"description":null},{"name":"station","type":"number","required":true,"description":null},{"name":"traits","type":"array","required":true,"description":null},{"name":"units","type":"object","required":false,"description":null},{"name":"warning","type":"string","required":true,"description":null}],"hasOutputSchema":true,"hasExamples":false,"tokenEstimate":179}],"toolsTruncatedAtCapture":false,"diagnostics":{"capturedAt":"2026-11-05T06:24:54.000Z","track":"package","endpoint":null,"declaredUrl":null,"truncated":false,"tls":null,"dnssec":null,"auth":null,"httpsRedirect":null,"transports":[],"provenance":{"outcome":"verified","label":"Verified","reason":"verified","reasonLabel":"Verified","discovery":"attestation_endpoint","discoveryLabel":"Registry attestation endpoint","sourceRepo":null,"attestationSkipped":null,"attestationSkippedLabel":null},"installScripts":[],"installScriptsTotal":null,"vulnerabilities":[],"vulnerabilitiesTotal":null,"dependencies":{"nodes":28,"partial":false,"deprecated":1,"stale":3,"noRepo":null}},"mismatches":[],"changelog":{"trackingSince":"2026-10-21","recent":[{"id":"chg_01a1aa61-bed3-777a-833d-9f04a597b9bb","kind":"score.total_changed","summary":"Trust score (84 → 85)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-11-05","url":"https://verifymcp.io/servers/esreddy2-umich-dining-mcp/umich-dining-mcp#chg-chg_01a1aa61-bed3-777a-833d-9f04a597b9bb"},{"id":"chg_01a1a009-5ca9-765e-b75b-07f7b031e5d1","kind":"score.total_changed","summary":"Trust score (83 → 84)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-11-03","url":"https://verifymcp.io/servers/esreddy2-umich-dining-mcp/umich-dining-mcp#chg-chg_01a1a009-5ca9-765e-b75b-07f7b031e5d1"},{"id":"chg_01a195bb-ce3a-7ef8-aef8-3ea1e62d62d0","kind":"score.total_changed","summary":"Trust score (82 → 83)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-11-01","url":"https://verifymcp.io/servers/esreddy2-umich-dining-mcp/umich-dining-mcp#chg-chg_01a195bb-ce3a-7ef8-aef8-3ea1e62d62d0"},{"id":"chg_01a18b6e-9e28-739a-8cdc-8c8a8e6c753d","kind":"score.total_changed","summary":"Trust score (71 → 82)","materiality":"functional","direction":"improvement","scoreDelta":11,"occurredOn":"2026-10-30","url":"https://verifymcp.io/servers/esreddy2-umich-dining-mcp/umich-dining-mcp#chg-chg_01a18b6e-9e28-739a-8cdc-8c8a8e6c753d"},{"id":"chg_01a18b6e-9e26-7bc0-84c6-2cdf32fb77e2","kind":"check.reverified","summary":"Known CVEs (unverified → pass)","materiality":"security","direction":"improvement","scoreDelta":null,"occurredOn":"2026-10-30","url":"https://verifymcp.io/servers/esreddy2-umich-dining-mcp/umich-dining-mcp#chg-chg_01a18b6e-9e26-7bc0-84c6-2cdf32fb77e2"},{"id":"chg_01a18b6e-9e27-7b59-abf4-7221d61d650d","kind":"check.reverified","summary":"Dependency health (unverified → 0.95)","materiality":"functional","direction":"improvement","scoreDelta":null,"occurredOn":"2026-10-30","url":"https://verifymcp.io/servers/esreddy2-umich-dining-mcp/umich-dining-mcp#chg-chg_01a18b6e-9e27-7b59-abf4-7221d61d650d"},{"id":"chg_01a186e1-5636-780d-bcc4-aa1755bc680f","kind":"check.measure","summary":"Tool coverage (50% → 100%)","materiality":"functional","direction":"improvement","scoreDelta":null,"occurredOn":"2026-10-29","url":"https://verifymcp.io/servers/esreddy2-umich-dining-mcp/umich-dining-mcp#chg-chg_01a186e1-5636-780d-bcc4-aa1755bc680f"},{"id":"chg_01a186e1-5636-7157-bc82-1e3e762359d8","kind":"check.verdict","summary":"Schema quality (pass → fail)","materiality":"functional","direction":"regression","scoreDelta":null,"occurredOn":"2026-10-29","url":"https://verifymcp.io/servers/esreddy2-umich-dining-mcp/umich-dining-mcp#chg-chg_01a186e1-5636-7157-bc82-1e3e762359d8"},{"id":"chg_01a186e1-5637-71d0-8570-2d33bc80b2f4","kind":"score.total_changed","summary":"Trust score (38 → 71)","materiality":"functional","direction":"improvement","scoreDelta":33,"occurredOn":"2026-10-29","url":"https://verifymcp.io/servers/esreddy2-umich-dining-mcp/umich-dining-mcp#chg-chg_01a186e1-5637-71d0-8570-2d33bc80b2f4"},{"id":"chg_01a186e1-5634-7506-a7bd-8c1371778f52","kind":"check.reverified","summary":"Stability (unverified → fail)","materiality":"security","direction":"regression","scoreDelta":null,"occurredOn":"2026-10-29","url":"https://verifymcp.io/servers/esreddy2-umich-dining-mcp/umich-dining-mcp#chg-chg_01a186e1-5634-7506-a7bd-8c1371778f52"},{"id":"chg_01a186bb-394e-76bc-a3b0-93d94ca6f775","kind":"check.unverifiable","summary":"Dependency health (0.95 → unverified)","materiality":"functional","direction":"regression","scoreDelta":null,"occurredOn":"2026-10-29","url":"https://verifymcp.io/servers/esreddy2-umich-dining-mcp/umich-dining-mcp#chg-chg_01a186bb-394e-76bc-a3b0-93d94ca6f775"},{"id":"chg_01a186bb-3949-7d17-aff3-7bbca177b8c8","kind":"check.unverifiable","summary":"Known CVEs (pass → unverified)","materiality":"security","direction":"regression","scoreDelta":null,"occurredOn":"2026-10-29","url":"https://verifymcp.io/servers/esreddy2-umich-dining-mcp/umich-dining-mcp#chg-chg_01a186bb-3949-7d17-aff3-7bbca177b8c8"},{"id":"chg_01a186bb-394b-7027-96de-a79a0822005b","kind":"check.unverifiable","summary":"Tool safety (pass → unverified)","materiality":"security","direction":"regression","scoreDelta":null,"occurredOn":"2026-10-29","url":"https://verifymcp.io/servers/esreddy2-umich-dining-mcp/umich-dining-mcp#chg-chg_01a186bb-394b-7027-96de-a79a0822005b"},{"id":"chg_01a186bb-394b-7597-991f-5d22bccb88ae","kind":"check.reason","summary":"Stability (Stability not yet verified: we do not have a sandbox capture of the MCP schema this version of the package serves yet.)","materiality":"security","direction":"neutral","scoreDelta":null,"occurredOn":"2026-10-29","url":"https://verifymcp.io/servers/esreddy2-umich-dining-mcp/umich-dining-mcp#chg-chg_01a186bb-394b-7597-991f-5d22bccb88ae"},{"id":"chg_01a186bb-394c-7248-8082-10c2fcc11ae1","kind":"check.unverifiable","summary":"Capabilities (pass → unverified)","materiality":"functional","direction":"regression","scoreDelta":null,"occurredOn":"2026-10-29","url":"https://verifymcp.io/servers/esreddy2-umich-dining-mcp/umich-dining-mcp#chg-chg_01a186bb-394c-7248-8082-10c2fcc11ae1"},{"id":"chg_01a186bb-3954-727d-89aa-4c3cbfa2e3c0","kind":"check.unverifiable","summary":"Tool coverage (100 → unverified)","materiality":"functional","direction":"regression","scoreDelta":null,"occurredOn":"2026-10-29","url":"https://verifymcp.io/servers/esreddy2-umich-dining-mcp/umich-dining-mcp#chg-chg_01a186bb-3954-727d-89aa-4c3cbfa2e3c0"},{"id":"chg_01a186bb-395b-7326-994d-45cde2a57eff","kind":"check.unverifiable","summary":"Schema quality (100 → unverified)","materiality":"functional","direction":"regression","scoreDelta":null,"occurredOn":"2026-10-29","url":"https://verifymcp.io/servers/esreddy2-umich-dining-mcp/umich-dining-mcp#chg-chg_01a186bb-395b-7326-994d-45cde2a57eff"},{"id":"chg_01a186bb-395b-7b88-a074-e080795739e9","kind":"package.version_changed","summary":"Package version (0.1.1 → 2.0.0)","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-10-29","url":"https://verifymcp.io/servers/esreddy2-umich-dining-mcp/umich-dining-mcp#chg-chg_01a186bb-395b-7b88-a074-e080795739e9"},{"id":"chg_01a186bb-395e-7e31-8fc5-cff34b5b8eea","kind":"score.total_changed","summary":"Trust score (81 → 38)","materiality":"functional","direction":"regression","scoreDelta":-43,"occurredOn":"2026-10-29","url":"https://verifymcp.io/servers/esreddy2-umich-dining-mcp/umich-dining-mcp#chg-chg_01a186bb-395e-7e31-8fc5-cff34b5b8eea"},{"id":"chg_01a16235-ed59-7508-a179-2ff4496ed3ef","kind":"score.total_changed","summary":"Trust score (66 → 81)","materiality":"functional","direction":"improvement","scoreDelta":15,"occurredOn":"2026-10-22","url":"https://verifymcp.io/servers/esreddy2-umich-dining-mcp/umich-dining-mcp#chg-chg_01a16235-ed59-7508-a179-2ff4496ed3ef"}],"truncated":true,"feedUrl":"https://verifymcp.io/servers/esreddy2-umich-dining-mcp/umich-dining-mcp/changelog.json"},"links":{"html":"https://verifymcp.io/servers/esreddy2-umich-dining-mcp/umich-dining-mcp","markdown":"https://verifymcp.io/servers/esreddy2-umich-dining-mcp/umich-dining-mcp.md","changelogJson":"https://verifymcp.io/servers/esreddy2-umich-dining-mcp/umich-dining-mcp/changelog.json","changelogRss":"https://verifymcp.io/servers/esreddy2-umich-dining-mcp/umich-dining-mcp.xml","external":[{"label":"npm package","href":"https://www.npmjs.com/package/umich-dining-mcp"},{"label":"Socket report","href":"https://socket.dev/npm/package/umich-dining-mcp"},{"label":"Repository","href":"https://github.com/esreddy2/UMich-dining-mcp"}]}}