Food Near Me

me.foodnear由 foodnear.me 發布官方發布者v1.1.0更新於 Nov 2, 2026

AI-native restaurant discovery: verified/menu-indexed/discovered tiers + signed allergy-safety data.

已驗證Streamable HTTP可網頁執行位置與生活知識與記憶

概覽

AI 產生的概覽

面向 AI 的餐廳探索遠端 MCP 伺服器:依信任層級的地理搜尋、Menu Protocol 菜單、飲食比較與簽章的過敏安全資料。

可以做什麼
  • 依座標搜尋餐廳,結果分為已驗證、菜單已索引、僅探索三個層級,並檢視餐廳資料。
  • 取得完整的 Menu Protocol 菜單(含飲食標記與過敏原),並在發布前驗證菜單資料。
  • 依飲食需求探索街區、比較 2 至 5 家餐廳的可用餐點,並尋找路線沿途的餐廳。
  • 取得簽章的過敏安全聲明,以及針對某種過敏需求最多 3 家人工精選場所。
  • 讀取內建資源(Menu Protocol 規格、OpenAPI 指標、代理技能、範例流程),並使用三個引導提示。
適用情境
適合讓助理推薦附近餐廳、依料理或飲食需求篩選、顯示菜單,或依明確的信任層級回答過敏安全問題。較適合能連線遠端 HTTP MCP 端點的宿主。
執行需求
需要可連線的遠端 MCP 端點 foodnear.me/mcp(HTTP JSON-RPC);README 建議以 npx mcp-remote 橋接給 Cursor、Claude Desktop 等宿主,這需要 Node.js。測試期間不需 API 金鑰,但有速率限制。資料涵蓋範圍集中在已預先匯入的美國都會區。
安裝前請注意
測試期間無需驗證,請求未經驗證且受速率限制;未來付費層級可能使用 API 金鑰或加密貨幣付款。菜單資料信任度不一:只有已驗證菜單對飲食與過敏原聲明具權威性,僅探索的場所不應引用其餐點。未整理的場所其過敏安全聲明可能為未知,僅供參考。

安裝

在 SourceWeft 中

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

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

交給代理程式安裝

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

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

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

其他 MCP 客戶端

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

{
  "mcpServers": {
    "food-near-me": {
      "type": "http",
      "url": "https://foodnear.me/mcp"
    }
  }
}

README

Food Near Me — MCP Server

Model Context Protocol server for AI-native restaurant discovery — three-tier search (verified → menu_indexed → discovered), Menu Protocol menus, and structured menu validation. Plug into Claude Desktop, Cursor, ChatGPT, or any MCP host in about 30 seconds.

[MCP Registry]

Production endpoint: https://foodnear.me/mcp · 8 tools · 4 resources · 3 prompts · No API key (beta)


Quick start {#quick-start}

1. Add this to your MCP host config

Cursor — ~/.cursor/mcp.json (macOS/Linux) or %USERPROFILE%\.cursor\mcp.json (Windows)

Claude Desktop — ~/Library/Application Support/Claude/claude_desktop_config.json (macOS), %APPDATA%\Claude\claude_desktop_config.json (Windows)

json
{  "mcpServers": {    "foodnear-me": {      "command": "npx",      "args": ["-y", "mcp-remote", "https://foodnear.me/mcp"]    }  }}

2. Restart your MCP host

3. Try a prompt

“Find vegan Thai restaurants near Brooklyn Bridge and show me a menu for the top result.”

Your agent should call search_restaurants → get_menu (or get_restaurant first).


What you get

Tools (8)

ToolDescription
search_restaurantsThree-tier geo search by lat/lng — verified → menu_indexed → discovered; check menu_available before get_menu
get_restaurantRestaurant profile with Schema.org JSON-LD + Menu Protocol extensions
get_menuFull Menu Protocol v1.0 menu (dietary flags, allergens, signatures)
get_ado_score_breakdownADO score factors and improvement recommendations
validate_menu_protocolValidate a Menu Protocol JSON payload before publish
explore_area_for_dietComposite: bucketed neighborhood overview (verified / menu_indexed / discovered); optional dietary filter narrows the verified tier only
compare_restaurants_for_dietComposite: compare 2–5 known restaurants by dietary-eligible menu items and trust tier ranking
find_restaurants_along_routeComposite: route-adjacent restaurant discovery between origin/destination with optional dietary ranking
get_safety_attestationSigned (Ed25519, fnm-safety-v1) allergy-safety tier statement for one restaurant; unknown + advisory when uncurated
find_safe_places_near_meThe pack: at most 3 human-curated places for an allergy need, each with curator_checked_at; left_out cut line; explicit empty_state

Resources (4)

URIContent
foodnearme://spec/menu-protocolMenu Protocol v1.0 specification
foodnearme://spec/openapiOpenAPI 3.1 spec pointer
foodnearme://agent/skillAgent skill summary
foodnearme://examples/search-flowExample search → menu flow

Prompts (3)

PromptArgsGuides agent to
find_dinner_near_melocation (required), cuisine?, dietary?search_restaurants → get_menu
dietary_constrained_menurestaurant_id, restrictionsget_menu with explicit MP flags/allergens
validate_my_menustrict? (true for strict mode)validate_menu_protocol

Configuration

SettingValue
MCP URLhttps://foodnear.me/mcp
TransportHTTP JSON-RPC (POST); discovery via GET /mcp
AuthNone during beta (rate limits apply)
Registryme.foodnear/foodnear-me (official MCP Registry)

Preview / local: Replace the URL with http://localhost:3000/mcp when running npm run dev in apps/web.

Operational tool filter: set FNM_MCP_ENABLED_TOOLS=search_restaurants,get_menu to expose only a comma-separated subset in tools/list and GET /mcp. Leave unset or * to expose all tools. This is for temporary degradation/context control, not privacy or auth.


Architecture

┌─────────────────────┐     POST /mcp (JSON-RPC)     ┌─────────────────────────┐│  MCP host           │ ────────────────────────────▶│  apps/web/app/mcp       ││  (Cursor / Claude)  │     GET /mcp (discovery)     │  Next.js route handler  │└─────────────────────┘                              └────────────┬────────────┘                                                                │                                                                ▼                                                   ┌─────────────────────────┐                                                   │  Supabase + PostGIS     │                                                   │  Menu Protocol (MP)     │                                                   └─────────────────────────┘

Implementation: apps/web/app/mcp/route.ts · Flow runner: apps/web/lib/mcp/mcp-flow-runner.ts


Tool error contract

Failed tools/call responses include structured metadata in _meta.error:

FieldMeaning
codeVALIDATION_ERROR · NOT_FOUND · UPSTREAM · RATE_LIMITED · UNKNOWN
messageWhat went wrong
hintHow to fix the request
retryableWhether the agent should retry
docshttps://foodnear.me/docs#quick-start

Human-readable text is still in content[0].text for hosts that ignore _meta.


Verify

From repo root (with apps/web dev server running for localhost):

bash
# Automated agent flows (14 flows when Supabase + seed configured; 11 without DB)npm run test:mcp-flows
# Against productionnpm run test:mcp-flows:http
# Discovery GETs + MCP tools/list countnpm run smoke:mcp
# Three-tier trust model copy parity (local files)npm run check:discovery-copy
# Full deploy gate (13 checks + discovery copy on production URL)npm run preflight -w web# or: ./apps/web/scripts/deploy-preflight.sh https://foodnear.me

Production monitoring: GitHub Actions workflow MCP Production Smoke runs smoke:mcp daily and on manual dispatch (.github/workflows/mcp-smoke.yml).


Agent discovery

Scripted flows: apps/web/docs/example-agent-flows.md


Data trust model (three-tier search)

  • search_restaurants returns verified → menu_indexed → discovered.
  • Every result includes verification_status and menu_available. Call get_menu only when menu_available is true.
  • Verified — owner-approved MP; authoritative for dietary/allergen claims.
  • menu_indexed — automated/public MP menu; cite with caveat — not owner-verified.
  • discovered — place only; do not cite menu items.
  • Trust progression: discovered → menu_indexed → verified. See https://foodnear.me/attribution for data sources.

FAQ

Do I need an API key?
No for beta MCP access. Future paid tiers may use API keys or x402 (USDC on Base). See x402-prepaid-spec.md in your local docs/Food Near Me playbook.

Tools not showing after restart?
Confirm the config URL ends with /mcp. Restart the host completely. Run npm run smoke:mcp against your target base URL.

Empty search results?
Beta verified menus are seeded for specific metros (e.g. Williamsburg, NYC). 7 menu_indexed restaurants in Williamsburg have automated menus from website ingest. Discovered place listings cover many US metros — use coordinates in an imported region. Demo coords: 40.7128, -74.006. Run npm run db:seed -w web locally for verified test data.

Cursor vs Claude config path?
See Quick start above — each host uses a different JSON file; only the mcpServers block matters.

How is this different from DoorDash / Uber Eats APIs?
We expose owner-verified Menu Protocol data for agents — not scraped aggregator menus or ordering checkout.


Monorepo layout

This repository ships the MCP server inside the foodnear.me web app:

PathPurpose
apps/webNext.js app — MCP at /mcp, landing, API routes
packages/menu-protocolMenu Protocol schema + validators
databaseMigrations, seeds, schema
server.jsonOfficial MCP Registry metadata

Business strategy and runbooks live in a separate local docs folder (not in this repo) — see your team's docs/Food Near Me playbook.


Development

bash
npm installcd apps/web && cp .env.example .env.local   # Supabase keysnpm run dev                                 # http://localhost:3000npm run test:mcp-flows                      # POST localhost:3000/mcp

Operator: menu_indexed website ingest

Promote discovered → menu_indexed via free website/ordering-platform parsers (ChowNow API, order.online, Sauce, Squarespace, BentoBox, Toast, Playwright). Always dry-run first — headless is slow.

bash
cd apps/webnpm run db:probe:menu-batch -- --headless --limit=10npm run db:import:menu-indexed:website:headless:dry-run -- --limit=10npm run db:import:menu-indexed:website:headless -- --limit=10   # live

No Uber Eats / DoorDash / Grubhub / RapidAPI scrapers. See apps/web/docs/example-agent-flows.md.


Links

來源:README.md,提交 7c5156a

工具

0
SourceWeft 尚未讀取此伺服器的工具。

版本歷史

1
  1. v1.1.0最新Sep 16, 2026

評分

已滿足適用檢查項的 75%

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

  • 近 30 天內可連通必需25 分
  • 已宣告認證方式必需10 分
  • 已列出工具必需15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分

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