{"name":"io.github.tireniajilore/nycfoodie","slug":"tireniajilore-nycfoodie","title":"NYCfoodie","description":"Editorial NYC restaurant recommendations for AI agents: search, compare, guides, ratings.","url":"https://mcp.market/server/tireniajilore-nycfoodie","rating":null,"grade":"B","score":79,"certified":false,"status":"active","category":"search","tags":["search"],"presence":{"score":23,"stars":0,"forks":0,"downloads_week":null,"last_push_at":"2026-10-05T03:00:45.000Z","license":null},"uptime":{"percent":100,"checks":28,"ok":28,"last_checked_at":"2026-11-05T11:55:35.612Z","last_ok_at":"2026-11-05T11:55:35.612Z","latency_ms":377},"claimed":false,"transport":"remote","callable_via_gateway":true,"default_price_micros":0,"repository":"https://github.com/tireniajilore/nycfoodie","website":"https://github.com/tireniajilore/nycfoodie","version":"1.0.0","remotes":[{"type":"streamable-http","url":"https://nycfoodie-production.up.railway.app/mcp"}],"packages":[],"tools":[{"name":"compare_restaurants","description":"Compare 2–5 named restaurants head-to-head as structured data (rating, price, tags, review summary). Use when the user asks to choose between specific places, e.g. 'should I go to X or Y?' or to compare four options on a budget.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"restaurants":{"description":"Restaurant ids or names to compare","minItems":2,"maxItems":5,"type":"array","items":{"type":"string"}},"ids":{"description":"Alias for restaurants","minItems":2,"maxItems":5,"type":"array","items":{"type":"string"}},"city":{"type":"string","description":"City slug, always required. Currently 'new-york', covering the five boroughs plus the immediate metro (within 30 km of Manhattan)."}},"required":["city"],"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"find_guides","description":"Find curated editorial guides (ranked lists) matching a theme, e.g. 'best ramen'. Returns each guide with its ranked entries, blurbs and linked restaurants. Use when the user wants the editorial lists themselves rather than individual restaurant picks. Set include_entries=false to list guide titles and metadata without pulling every entry blurb.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"city":{"type":"string","description":"City slug, always required. Currently 'new-york', covering the five boroughs plus the immediate metro (within 30 km of Manhattan)."},"query":{"description":"Theme, e.g. 'best ramen', 'date night'","type":"string"},"limit":{"description":"Max results (default 10)","type":"integer","minimum":1,"maximum":50},"include_entries":{"description":"Set false to return guide metadata without the ranked entry blurbs (default true)","type":"boolean"}},"required":["city"],"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"find_similar","description":"Find restaurants similar to a named one, scored by shared cuisine, occasion and neighbourhood tags, price-tier proximity and guide co-occurrence. Use for 'like X' or 'alternatives to X' requests.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"id":{"description":"Canonical restaurant id, or a name to resolve","type":"string"},"name":{"description":"Alias for id: the restaurant's exact name","type":"string"},"city":{"type":"string","description":"City slug, always required. Currently 'new-york', covering the five boroughs plus the immediate metro (within 30 km of Manhattan)."},"limit":{"description":"Max results (default 10)","type":"integer","minimum":1,"maximum":50}},"required":["city"],"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"get_restaurant","description":"Get the full picture for one restaurant in one call: Infatuation rating (0–10), price tier, address, reservation link, booking intel, review summary, tags and every guide it appears in. Use when the user names a specific restaurant. editorial_blurbs carries verbatim Eater guide excerpts (guide title, URL, position, blurb, captured_at) for any venue with Eater guide entries — Eater-only venues have no rating or price, only this prose plus tags. Full review prose is opt-in via include_prose (default: headline and summary only). review.headline is the source's actual headline when one exists, otherwise null — use review.summary for the descriptive text. match_type is 'exact' when the id or name matched verbatim, 'fuzzy' when it was resolved from a partial/typo'd name — never present a fuzzy match as the venue the user named without saying so. booking is null when the source has no booking intel (not the same as walk-in-only); a reservation link alone never implies a booking policy. data_as_of is the dataset vintage and crawled_at is when this venue was last crawled — caveat fast-decaying claims (closures especially) when these are old.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"id":{"description":"Canonical restaurant id, or a name to resolve","type":"string"},"name":{"description":"Alias for id: the restaurant's exact name","type":"string"},"city":{"type":"string","description":"City slug, always required. Currently 'new-york', covering the five boroughs plus the immediate metro (within 30 km of Manhattan)."},"include_prose":{"description":"Include the full review text (default false: headline + summary only)","type":"boolean"}},"required":["city"],"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"guide_consensus","description":"Rank restaurants by how many distinct guides feature them, optionally filtered by theme. Use for 'where can't I go wrong' or safest-bet picks. Differs from find_guides: this returns ranked restaurants, not the guides themselves. Each row carries guide_appearance_count (a number); get_restaurant's guide_appearances is the full entry list.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"city":{"type":"string","description":"City slug, always required. Currently 'new-york', covering the five boroughs plus the immediate metro (within 30 km of Manhattan)."},"theme":{"description":"Guide theme, e.g. 'ramen', 'brunch'","type":"string"},"limit":{"description":"Max results (default 10)","type":"integer","minimum":1,"maximum":50}},"required":["city"],"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"search_restaurants","description":"Search restaurants by free text, cuisine, neighbourhood, occasion or price, optionally near a point. Use when the user describes what they want (e.g. 'Italian date night in the West Village', 'ramen near me') rather than naming a specific restaurant. Free text matches names, tags, review prose and guide blurbs (e.g. 'cacio e pepe'). Returns compact matches with Infatuation rating (0–10), price tier, address_line and tags. Cards carry guide_appearance_count (a number); get_restaurant's guide_appearances is the full entry list. Known-closed venues are excluded by default. Coverage for city='new-york' is the five boroughs plus the immediate metro (within 30 km of Manhattan). With no query or filters, returns the highest-rated venues.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"query":{"description":"Free text, e.g. 'date-night Italian'","type":"string"},"city":{"type":"string","description":"City slug, always required. Currently 'new-york', covering the five boroughs plus the immediate metro (within 30 km of Manhattan)."},"cuisine":{"description":"e.g. 'Italian', 'ramen'","type":"string"},"neighborhood":{"description":"e.g. 'West Village', or a borough like 'Brooklyn'","type":"string"},"occasion":{"description":"Occasion tag. Allowed: 'Date Nights', 'Happy Hours', 'Pre-Theater', 'See & Be Seen', 'Serious Takeout Operation', 'Unique Dining Experiences', 'Wasting Your Time & Money'. Hyphens, spaces and underscores are flexible ('date-night' works); unambiguous prefixes resolve to the full value. Unknown or ambiguous values are rejected with an error.","type":"string"},"min_rating":{"description":"Minimum Infatuation rating","type":"number","minimum":0,"maximum":10},"price_tier":{"description":"1 ($) to 4 ($$$$)","type":"integer","minimum":1,"maximum":4},"include_closed":{"description":"Include known-closed venues (default false)","type":"boolean"},"lat":{"description":"Latitude for proximity search. Must be given together with lng; radius_km defaults to 5 km when omitted. A location outside the NYC coverage area is rejected with an error.","type":"number"},"lng":{"description":"Longitude for proximity search. Must be given together with lat; radius_km defaults to 5 km when omitted.","type":"number"},"radius_km":{"description":"Search radius in kilometres (default 5 when lat/lng are given without it). Requires lat and lng.","type":"number","exclusiveMinimum":0},"sort":{"description":"Sort by rating (default) or guide appearances","type":"string","enum":["rating","guides"]},"limit":{"description":"Max results (default 10)","type":"integer","minimum":1,"maximum":50}},"required":["city"],"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"submit_feedback","description":"Record feedback on a tool result: a 1–5 rating, a comment, or both (at least one is required). Use after showing the user a recommendation to log what was good or wrong. Each call stores a new feedback entry; it changes nothing the user sees.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"tool":{"description":"Which tool the feedback is about, e.g. 'search_restaurants'","type":"string"},"rating":{"description":"1 (poor) to 5 (excellent)","type":"integer","minimum":1,"maximum":5},"comment":{"description":"What was good or wrong","type":"string"}},"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"top_rated","description":"List the highest-rated restaurants (Infatuation 0–10 scale), with optional cuisine, neighbourhood and price filters. Use for 'best in the city' requests. Differs from search_restaurants: no free-text query, strictly rating-ordered.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"city":{"type":"string","description":"City slug, always required. Currently 'new-york', covering the five boroughs plus the immediate metro (within 30 km of Manhattan)."},"cuisine":{"description":"e.g. 'Italian', 'ramen'","type":"string"},"neighborhood":{"description":"e.g. 'West Village', or a borough like 'Brooklyn'","type":"string"},"occasion":{"description":"Occasion tag. Allowed: 'Date Nights', 'Happy Hours', 'Pre-Theater', 'See & Be Seen', 'Serious Takeout Operation', 'Unique Dining Experiences', 'Wasting Your Time & Money'. Hyphens, spaces and underscores are flexible ('date-night' works); unambiguous prefixes resolve to the full value. Unknown or ambiguous values are rejected with an error.","type":"string"},"min_rating":{"description":"Minimum Infatuation rating","type":"number","minimum":0,"maximum":10},"price_tier":{"description":"1 ($) to 4 ($$$$)","type":"integer","minimum":1,"maximum":4},"include_closed":{"description":"Include known-closed venues (default false)","type":"boolean"},"lat":{"description":"Latitude for proximity search. Must be given together with lng; radius_km defaults to 5 km when omitted. A location outside the NYC coverage area is rejected with an error.","type":"number"},"lng":{"description":"Longitude for proximity search. Must be given together with lat; radius_km defaults to 5 km when omitted.","type":"number"},"radius_km":{"description":"Search radius in kilometres (default 5 when lat/lng are given without it). Requires lat and lng.","type":"number","exclusiveMinimum":0},"limit":{"description":"Max results (default 10)","type":"integer","minimum":1,"maximum":50}},"required":["city"],"$schema":"http://json-schema.org/draft-07/schema#"}}],"scan":{"score":79,"grade":"B","scanned_at":"2026-10-15T17:29:11.013Z","report":{"scannerVersion":"0.1.10","scannedAt":"2026-10-15T17:29:10.892Z","components":{"code":{"score":-1,"max":25,"notes":["remote-only server, no package to scan"]},"reliability":{"score":20,"max":20,"notes":["remote reachable in 441ms"]},"poisoning":{"score":15,"max":15,"notes":["8 tool descriptions checked"]},"auth":{"score":3,"max":15,"notes":["open endpoint exposes 1 write-action tools with no auth"]},"maintenance":{"score":15,"max":15,"notes":["last push 11 days ago"]},"identity":{"score":6,"max":10,"notes":["registry namespace matches repository owner"]}},"findings":[{"id":"auth.open-write","severity":"high","component":"auth","title":"Write-action tools reachable without authentication"}],"inputs":{"probes":[{"url":"https://nycfoodie-production.up.railway.app/mcp","reachable":true,"authRequired":false,"latencyMs":441,"serverInfo":{"name":"nycfoodie","version":"0.1.0"}}],"packages":[],"repo":{"found":true,"owner":"tireniajilore","repo":"nycfoodie","archived":false,"pushedAt":"2026-10-05T03:00:45Z","stars":0,"forks":0,"openIssues":1,"ownerType":"User","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/248356293?v=4","ownerCreatedAt":"2025-12-07T20:49:39Z"},"icon":{"url":null,"source":"none"},"presence":{"stars":0,"forks":0,"downloadsWeek":null,"license":null,"lastPushAt":"2026-10-05T03:00:45.000Z","score":23}}}},"grade_history":[],"reviews":[]}