NYCfoodie

io.github.tireniajilore由 GitHub 帳號 tireniajilore 發布v1.0.0更新於 Oct 24, 2026

Editorial NYC restaurant recommendations for AI agents: search, compare, guides, ratings.

已驗證Streamable HTTP可網頁執行位置與生活網頁搜尋與抓取

概覽

AI 產生的概覽

一個託管型 MCP 伺服器,讓助理取得紐約餐廳的精選編輯推薦:搜尋、詳情、比較、榜單與評分。

可以做什麼
依自由文字、料理類型、街區、場合或價位搜尋餐廳,可選擇依地點附近篩選;也可依料理類型、街區和價位篩選出評分最高的餐廳。取得單一餐廳的完整資訊:評分、價位、地址、訂位連結、訂位提示、評論摘要、標籤及其收錄的榜單。對 2 至 5 家指定餐廳依評分、價位、標籤和評論摘要進行並列比較。依主題尋找精選編輯榜單,含排名項目與簡介;並依被多少榜單收錄為餐廳排名。依料理類型、場合、街區標籤、價位接近度和榜單共同出現找出與指定餐廳相似的餐廳。記錄 1 至 5 分的回饋及選填評論。
適用情境
適合在對話助理中取得紐約餐飲推薦:描述想吃的料理或用餐場合、在幾家指定餐廳間做選擇、索取編輯精選榜單或最穩妥的選擇,或尋找某家喜歡餐廳的替代選項。對於支援遠端 MCP 伺服器的用戶端,它是免安裝的託管方案。
執行需求
需要遠端 Streamable HTTP 端點;未宣告驗證、安裝或 API 金鑰。README 提供託管位址以及 Cursor、Claude Code、Claude 應用程式等 MCP 用戶端的設定方式。需要能連線至該託管服務的網路。
安裝前請注意
submit_feedback 工具每次呼叫都會寫入一筆新的回饋紀錄,評論和評分會存放在伺服器端,請避免包含個人或敏感資訊。推薦內容來自第三方編輯來源,可能不完整或已過時。README 說明目前 MVP 城市為紐約。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 NYCfoodie,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Web executable,透過 Streamable HTTP。 遠端服務在工作區中設定後即可從網頁執行環境執行。

交給代理程式安裝

把這段提示詞貼上到 Claude Code、Codex、Cursor 等代理程式,或 SourceWeft 對話中。代理程式會讀取該伺服器的安裝指南,先向你展示發布者、端點和登入方式,經你同意後再把它新增到你的客戶端。金鑰不會寫進任何命令。

閱讀 https://sourceweft.com/mcp/io.github.tireniajilore%2Fnycfoodie/install.md,並按其中說明把這個 MCP 伺服器接入我的客戶端。修改任何設定之前,先告訴我它的發布者、端點和登入方式,等我確認。不要把 API 金鑰寫進命令或我會提交的檔案;問我金鑰應從哪裡取得。

檢視代理程式所依據的安裝指南

其他 MCP 客戶端

把它新增到你客戶端的 mcpServers 設定中。

{
  "mcpServers": {
    "nycfoodie": {
      "type": "http",
      "url": "https://nycfoodie-production.up.railway.app/mcp"
    }
  }
}

README

NYCfoodie

[NYCfoodie MCP connector – tool definition quality and endpoint health on Glama]

The data layer for restaurant taste: structured, editorial restaurant recommendations served to AI agents over MCP. Not another review scraper — curated guides and reviews normalised into one schema, queryable by tools.

MVP city: New York. The city is a parameter everywhere; nothing NYC-specific is hardcoded.

Use it

Hosted endpoint (Streamable HTTP): https://nycfoodie-production.up.railway.app/mcp

  • Cursor — one-click install
  • Claude Code — claude mcp add --transport http nycfoodie https://nycfoodie-production.up.railway.app/mcp
  • Windsurf / Cline / Roo Code / Zed / VS Code — add to your MCP config:
json
{  "mcpServers": {    "nycfoodie": {      "url": "https://nycfoodie-production.up.railway.app/mcp"    }  }}
  • Claude (app) — Settings → Connectors → Add custom connector → paste the URL.
  • Any MCP client — add the URL above as a remote server (Streamable HTTP). No auth, no install.

Tools

search_restaurants · get_restaurant · compare_restaurants · find_guides · find_similar · guide_consensus · top_rated · submit_feedback

Layout

  • db/ — SQLite storage (better-sqlite3) with numbered SQL migrations written in Postgres-compatible DDL. The migration runner is dialect-agnostic by convention, so a Postgres adapter can replace better-sqlite3 later without touching the migrations.
  • crawler/ — source adapters (starting with The Infatuation) that normalise into the db schema. Endpoint/field mapping: docs/infatuation-data-surface.md (step 2).
  • mcp/ — stdio MCP server (@modelcontextprotocol/sdk) exposing search, detail, comparison and guide tools.

Quickstart

bash
npm installnpm run typechecknpm run buildnode db/dist/migrate.js ./nycfoodie.db   # creates/opens the SQLite db, applies migrationsnode mcp/dist/index.js                   # starts the MCP server on stdio

Roadmap

  1. Scaffold (done) — repo, packages, migration runner, stub MCP tools.
  2. Map The Infatuation's data surface — Next.js pages + GraphQL endpoints → docs/infatuation-data-surface.md.
  3. Database schema proposal — shown for approval before any crawler code is written.
  4. Crawler — only after schema sign-off.

Conventions

  • British English in docs and user-facing text.
  • Migrations: numbered NNN_name.sql, applied once in order; see db/migrations/README.md for the Postgres-compatibility rules.
  • Never commit *.db files or credentials.

來源:README.md,提交 c1c92f4

工具

8

search_restaurants

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.

輸入參數latlngcity必填sortlimitquerycuisineoccasionradius_kmmin_ratingprice_tierneighborhood另有 1 個

get_restaurant

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.

輸入參數idcity必填nameinclude_prose

compare_restaurants

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.

輸入參數idscity必填restaurants

find_guides

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.

輸入參數city必填limitqueryinclude_entries

find_similar

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.

輸入參數idcity必填namelimit

guide_consensus

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.

輸入參數city必填limittheme

top_rated

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.

輸入參數latlngcity必填limitcuisineoccasionradius_kmmin_ratingprice_tierneighborhoodinclude_closed

submit_feedback

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.

輸入參數toolratingcomment

版本歷史

1
  1. v1.0.0最新Sep 20, 2026

評分

已滿足適用檢查項的 90%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通必需25 分
  • 已宣告認證方式必需10 分
  • 已列出工具必需15 分
  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分

    請在儲存庫或註冊中心條目中宣告授權條款。