{"$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-05T16:59:47.086Z","url":"https://verifymcp.io/servers/benjamin-di-dine-mcp/dine-mcp","markdownUrl":"https://verifymcp.io/servers/benjamin-di-dine-mcp/dine-mcp.md","server":{"slug":"benjamin-di-dine-mcp","name":"Dine MCP","registryName":"io.github.benjamin-di/dine-mcp","description":"Restaurant table availability across SevenRooms, TableCheck and ResDiary. Read-only; never books.","registryStatus":"active","deletedAt":null,"statusMessage":null,"liveness":"live","publisher":{"class":"unknown","claimed":false}},"component":{"slug":"dine-mcp","type":"pypi","identifier":"dine-mcp","withdrawn":false,"url":"https://verifymcp.io/servers/benjamin-di-dine-mcp/dine-mcp","version":"0.2.10","transport":"stdio","scoredAt":"2026-11-05T07:13:45.811Z"},"score":{"total":57,"tier":"low","status":"scored","weekDelta":null,"history":[{"date":"2026-11-05","total":57},{"date":"2026-11-04","total":71},{"date":"2026-11-03","total":71},{"date":"2026-11-02","total":55},{"date":"2026-11-01","total":67},{"date":"2026-10-31","total":51},{"date":"2026-10-30","total":51}]},"categories":[{"name":"Supply Chain Security","score":50,"verdict":"partial","reasons":["Malware scan not yet available for this package.","No known CVEs affecting this package version or its production dependencies.","Runs hatchling.build at install time, a recognised build step with no custom scripting around it.","1 of 36 dependencies flagged as unhealthy."],"codes":[{"code":"supplychain.malware_inconclusive","args":{"reason":"vendor_no_verdict"}},{"code":"cve.none","args":{}},{"code":"installscript.allowlisted","args":{"tool":"hatchling.build","hooks":"build_backend"}},{"code":"dephealth.assessed","args":{"deps":"36","unhealthy":"1"}}]},{"name":"Provenance & Transparency","score":48,"verdict":"fail","reasons":["Source repository is publicly reachable at the declared URL.","Provenance check failed: no build-provenance attestation is published.","Clear OSI-approved license (Apache-2.0).","Actively maintained (last published 3 days ago).","Publishes a security disclosure policy (SECURITY.md)."],"codes":[{"code":"provenance.repo_verified","args":{}},{"code":"provenance.none","args":{}},{"code":"license.osi","args":{"spdx":"Apache-2.0"}},{"code":"maintenance.recent","args":{"age_days":"3"}},{"code":"disclosure.present","args":{}}]},{"name":"Schema Quality & AI Usability","score":62,"verdict":"fail","reasons":["AI-judged instruction clarity (excellent).","Context-footprint check failed: tool/resource definitions use about 1071 tokens (~267/item across 4 items; 4 tools + 0 resources), over budget; trim descriptions and params.","Usage-examples check failed: none of the tools include examples."],"codes":[{"code":"schema.ai_quality","args":{"band":"excellent"}},{"code":"schema.footprint_heavy","args":{"avg":"267","items":"4","tools":"4","tokens":"1071","resources":"0"}},{"code":"schema.examples_absent","args":{}}]},{"name":"Stability & Change Management","score":20,"verdict":"partial","reasons":["Stability observed for 6 of 30 days with no destabilising changes; credit accrues until the full window elapses."],"codes":[{"code":"stability.building_history","args":{"days":"6"}}]},{"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 4 captured tool definition(s), and no name or description among them implies an irreversible operation.","An AI judge read all 5 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":"4"}},{"code":"toolsafety.manipulation_clean","args":{"units":"5","judged":"5"}}]},{"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 scan not yet available for this package."],"malware":[],"components":[{"slug":"dine-mcp","type":"pypi","identifier":"dine-mcp","withdrawn":false,"score":57,"current":true,"url":"https://verifymcp.io/servers/benjamin-di-dine-mcp/dine-mcp","markdownUrl":"https://verifymcp.io/servers/benjamin-di-dine-mcp/dine-mcp.md"}],"facts":[{"label":"Registry","value":"pypi"},{"label":"Package","value":"dine-mcp"},{"label":"Version","value":"0.2.10"},{"label":"Transport","value":"stdio"}],"install":{"available":true,"bundleSha256":null},"tools":[{"name":"dine_find_venue","title":"Find venue","description":"Identify one named restaurant and its booking channels (provider and venue on it, phone,\nwebsite). Give exactly one of name (with area and country when known), url or\ngoogle_place_id. Returns {venues: [{venue_id, name, address, time_zone, channels\n[{kind, access_mode, url, text, verified}], match {confidence, evidence}}], candidates\n[{name, address, google_place_id, confidence}], note}. Candidates mean \"not sure which\":\nask which one unless the request uniquely identifies it, then call again with its\ngoogle_place_id. Do not infer the venue country from the person's location. Not a cuisine\nor area search.","inputs":[{"name":"area","type":null,"required":false,"description":"Where it is: district or city ('Central', 'Shibuya')"},{"name":"country","type":null,"required":false,"description":"ISO 3166-1 alpha-2 country code ('HK', 'JP')"},{"name":"google_place_id","type":null,"required":false,"description":"A Google place id (ChIJ…) from a maps tool"},{"name":"limit","type":"integer","required":false,"description":"Candidates to return (1-10)"},{"name":"name","type":null,"required":false,"description":"The restaurant's name, any script ('Amber', '鮨 しこう')"},{"name":"url","type":null,"required":false,"description":"A booking page link (SevenRooms, TableCheck, ResDiary); never fetched"}],"outputs":[{"name":"candidates","type":"array","required":true,"description":null},{"name":"note","type":null,"required":false,"description":null},{"name":"venues","type":"array","required":true,"description":null}],"hasOutputSchema":true,"hasExamples":false,"tokenEstimate":261},{"name":"dine_get_venue","title":"Get venue","description":"One venue in full: channels, each provider's booking rules (how many days ahead,\nparty size limits, card or deposit), experiences or courses, booking links, opening hours\nand sources. Costs one provider request per channel when not cached.","inputs":[{"name":"venue_id","type":"string","required":true,"description":"A venue_id from dine_find_venue"}],"outputs":[{"name":"channels","type":"array","required":true,"description":null},{"name":"name","type":"string","required":true,"description":null},{"name":"venue_id","type":"string","required":true,"description":null}],"hasOutputSchema":true,"hasExamples":false,"tokenEstimate":75},{"name":"dine_check_availability","title":"Check availability","description":"Table availability for venues over dates, a time window and a party size. Ask for missing\ndates and diner count before calling; state the time window used. One result per\nvenue and channel: {venue_id, venue_name, channel, status, time_zone, slots [{start, kind,\narea, experience, price, requires_card, booking_link}], coverage {dates_checked,\ndates_not_checked}, observed_at, served_from, booking_link, opens_at, min_party, max_party, contact,\nnote}. status: ok, none_available, not_yet_open (see opens_at), party_too_small, party_too_large, closed,\ncontact_only, not_connected, blocked, rate_limited, unavailable, unsupported, unknown_venue,\nskipped_deadline. Large requests are refused with too_broad: narrow them.","inputs":[{"name":"date_from","type":"string","required":true,"description":"First date, YYYY-MM-DD, venue local"},{"name":"date_to","type":null,"required":false,"description":"Last date inclusive (default date_from); at most 7 days"},{"name":"kinds","type":null,"required":false,"description":"Slot kinds to include (default bookable and request)"},{"name":"party_size","type":"integer","required":false,"description":"Number of diners"},{"name":"response_format","type":"string","required":false,"description":"concise: up to 6 slots per venue and day"},{"name":"time_from","type":"string","required":false,"description":"Earliest time, HH:MM venue local"},{"name":"time_to","type":"string","required":false,"description":"Latest time, HH:MM; earlier than time_from crosses midnight"},{"name":"venue_ids","type":"array","required":true,"description":"1-5 venue_ids from dine_find_venue"}],"outputs":[{"name":"query","type":"object","required":true,"description":null},{"name":"results","type":"array","required":true,"description":null},{"name":"summary","type":"object","required":true,"description":null}],"hasOutputSchema":true,"hasExamples":false,"tokenEstimate":316},{"name":"dine_status","title":"Status","description":"Version, each provider's mode, maturity, whether it is on, today's request budget and\nany pause after provider pushback. Default is offline; check=true runs paced, budgeted\npublic-widget canaries with a 15-minute cooldown. For a restaurant's availability, use\ndine_find_venue then dine_check_availability. Health never contacts a provider.","inputs":[{"name":"check","type":"boolean","required":false,"description":"Run budgeted provider canaries (15-minute cooldown)"}],"outputs":[{"name":"providers","type":"array","required":true,"description":null},{"name":"version","type":"string","required":true,"description":null}],"hasOutputSchema":true,"hasExamples":false,"tokenEstimate":99}],"toolsTruncatedAtCapture":false,"diagnostics":{"capturedAt":"2026-11-05T07:13:45.000Z","track":"package","endpoint":null,"declaredUrl":null,"truncated":false,"tls":null,"dnssec":null,"auth":null,"httpsRedirect":null,"transports":[],"provenance":{"outcome":"none","label":"No attestation","reason":"no_attestation","reasonLabel":"No attestation published","discovery":null,"discoveryLabel":null,"sourceRepo":null,"attestationSkipped":null,"attestationSkippedLabel":null},"installScripts":[{"hook":"build_backend","tier":"allowlisted"}],"installScriptsTotal":null,"vulnerabilities":[],"vulnerabilitiesTotal":null,"dependencies":{"nodes":36,"partial":false,"deprecated":null,"stale":1,"noRepo":null}},"mismatches":[],"changelog":{"trackingSince":"2026-10-30","recent":[{"id":"chg_01a1aa8e-7771-7d83-84a4-13039405c73c","kind":"check.unverifiable","summary":"Malware scan (pass → unverified)","materiality":"security","direction":"regression","scoreDelta":null,"occurredOn":"2026-11-05","url":"https://verifymcp.io/servers/benjamin-di-dine-mcp/dine-mcp#chg-chg_01a1aa8e-7771-7d83-84a4-13039405c73c"},{"id":"chg_01a1aa8e-7775-79ea-91dd-f35c0ee057a4","kind":"score.total_changed","summary":"Trust score (71 → 57)","materiality":"functional","direction":"regression","scoreDelta":-14,"occurredOn":"2026-11-05","url":"https://verifymcp.io/servers/benjamin-di-dine-mcp/dine-mcp#chg-chg_01a1aa8e-7775-79ea-91dd-f35c0ee057a4"},{"id":"chg_01a19f98-5166-7d68-bbaf-0c2064775f1d","kind":"check.reverified","summary":"Malware scan (unverified → pass)","materiality":"security","direction":"improvement","scoreDelta":null,"occurredOn":"2026-11-03","url":"https://verifymcp.io/servers/benjamin-di-dine-mcp/dine-mcp#chg-chg_01a19f98-5166-7d68-bbaf-0c2064775f1d"},{"id":"chg_01a19f98-516a-7d01-b7c0-60ac41e455af","kind":"score.total_changed","summary":"Trust score (55 → 71)","materiality":"functional","direction":"improvement","scoreDelta":16,"occurredOn":"2026-11-03","url":"https://verifymcp.io/servers/benjamin-di-dine-mcp/dine-mcp#chg-chg_01a19f98-516a-7d01-b7c0-60ac41e455af"},{"id":"chg_01a19a26-e78d-77bf-bd9d-9adf62d94ffa","kind":"check.unverifiable","summary":"Malware scan (pass → unverified)","materiality":"security","direction":"regression","scoreDelta":null,"occurredOn":"2026-11-02","url":"https://verifymcp.io/servers/benjamin-di-dine-mcp/dine-mcp#chg-chg_01a19a26-e78d-77bf-bd9d-9adf62d94ffa"},{"id":"chg_01a19a26-e78e-79e0-ba71-0b345e41e732","kind":"advisory.resolved","summary":"GHSA-7xgj-8392-5q4r no longer affects this package","materiality":"security","direction":"improvement","scoreDelta":null,"occurredOn":"2026-11-02","url":"https://verifymcp.io/servers/benjamin-di-dine-mcp/dine-mcp#chg-chg_01a19a26-e78e-79e0-ba71-0b345e41e732"},{"id":"chg_01a19a26-e78e-7eae-a113-9c2d60380567","kind":"advisory.resolved","summary":"GHSA-vqqp-x5qm-5qp4 no longer affects this package","materiality":"security","direction":"improvement","scoreDelta":null,"occurredOn":"2026-11-02","url":"https://verifymcp.io/servers/benjamin-di-dine-mcp/dine-mcp#chg-chg_01a19a26-e78e-7eae-a113-9c2d60380567"},{"id":"chg_01a19a26-e78f-74f5-83f0-28144064554a","kind":"check.verdict","summary":"Known CVEs (fail → pass)","materiality":"security","direction":"improvement","scoreDelta":null,"occurredOn":"2026-11-02","url":"https://verifymcp.io/servers/benjamin-di-dine-mcp/dine-mcp#chg-chg_01a19a26-e78f-74f5-83f0-28144064554a"},{"id":"chg_01a19a26-e790-7094-bff5-d8dcfe2b2013","kind":"package.version_changed","summary":"Package version (0.2.6 → 0.2.10)","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-11-02","url":"https://verifymcp.io/servers/benjamin-di-dine-mcp/dine-mcp#chg-chg_01a19a26-e790-7094-bff5-d8dcfe2b2013"},{"id":"chg_01a19a26-e790-7524-be1c-bf7a601231a7","kind":"score.total_changed","summary":"Trust score (67 → 55)","materiality":"functional","direction":"regression","scoreDelta":-12,"occurredOn":"2026-11-02","url":"https://verifymcp.io/servers/benjamin-di-dine-mcp/dine-mcp#chg-chg_01a19a26-e790-7524-be1c-bf7a601231a7"},{"id":"chg_01a1954b-5d81-788d-ba48-c2203496a425","kind":"check.reverified","summary":"Malware scan (unverified → pass)","materiality":"security","direction":"improvement","scoreDelta":null,"occurredOn":"2026-11-01","url":"https://verifymcp.io/servers/benjamin-di-dine-mcp/dine-mcp#chg-chg_01a1954b-5d81-788d-ba48-c2203496a425"},{"id":"chg_01a1954b-5d82-7bb5-b850-aad9892ee314","kind":"score.total_changed","summary":"Trust score (51 → 67)","materiality":"functional","direction":"improvement","scoreDelta":16,"occurredOn":"2026-11-01","url":"https://verifymcp.io/servers/benjamin-di-dine-mcp/dine-mcp#chg-chg_01a1954b-5d82-7bb5-b850-aad9892ee314"},{"id":"chg_01a19192-0741-7e0d-b771-0f9e25830d36","kind":"package.version_changed","summary":"Package version (0.2.3 → 0.2.6)","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-10-31","url":"https://verifymcp.io/servers/benjamin-di-dine-mcp/dine-mcp#chg-chg_01a19192-0741-7e0d-b771-0f9e25830d36"},{"id":"chg_01a19011-0274-7984-9c7a-7892a267cbaa","kind":"check.unverifiable","summary":"Provenance (fail → unverified)","materiality":"security","direction":"regression","scoreDelta":null,"occurredOn":"2026-10-31","url":"https://verifymcp.io/servers/benjamin-di-dine-mcp/dine-mcp#chg-chg_01a19011-0274-7984-9c7a-7892a267cbaa"},{"id":"chg_01a19011-0275-7988-a934-91592dd7011e","kind":"check.measure","summary":"Schema quality (242 → 267)","materiality":"functional","direction":"regression","scoreDelta":null,"occurredOn":"2026-10-31","url":"https://verifymcp.io/servers/benjamin-di-dine-mcp/dine-mcp#chg-chg_01a19011-0275-7988-a934-91592dd7011e"},{"id":"chg_01a19011-0276-71a4-8b31-204e7eee43c9","kind":"check.reverified","summary":"Stability (unverified → 0.03)","materiality":"functional","direction":"improvement","scoreDelta":null,"occurredOn":"2026-10-31","url":"https://verifymcp.io/servers/benjamin-di-dine-mcp/dine-mcp#chg-chg_01a19011-0276-71a4-8b31-204e7eee43c9"},{"id":"chg_01a19011-0276-7818-94e6-84e4cf4bad24","kind":"check.measure","summary":"Schema quality (good → excellent)","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-10-31","url":"https://verifymcp.io/servers/benjamin-di-dine-mcp/dine-mcp#chg-chg_01a19011-0276-7818-94e6-84e4cf4bad24"},{"id":"chg_01a19011-0277-705f-aea4-1667105c9ef1","kind":"package.version_changed","summary":"Package version (0.2.3 → 0.2.4)","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-10-31","url":"https://verifymcp.io/servers/benjamin-di-dine-mcp/dine-mcp#chg-chg_01a19011-0277-705f-aea4-1667105c9ef1"},{"id":"chg_01a18de4-4468-7ad1-9240-4cc75a3f4ed4","kind":"score.first_scored","summary":"First indexed and scored","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-10-30","url":"https://verifymcp.io/servers/benjamin-di-dine-mcp/dine-mcp#chg-chg_01a18de4-4468-7ad1-9240-4cc75a3f4ed4"}],"truncated":false,"feedUrl":"https://verifymcp.io/servers/benjamin-di-dine-mcp/dine-mcp/changelog.json"},"links":{"html":"https://verifymcp.io/servers/benjamin-di-dine-mcp/dine-mcp","markdown":"https://verifymcp.io/servers/benjamin-di-dine-mcp/dine-mcp.md","changelogJson":"https://verifymcp.io/servers/benjamin-di-dine-mcp/dine-mcp/changelog.json","changelogRss":"https://verifymcp.io/servers/benjamin-di-dine-mcp/dine-mcp.xml","external":[{"label":"PyPI project","href":"https://pypi.org/project/dine-mcp/"},{"label":"Socket report","href":"https://socket.dev/pypi/package/dine-mcp"},{"label":"Repository","href":"https://github.com/benjamin-di/dine-mcp-server"}]}}