mcpField
F
Food Near Me

Food Near Me

远程服务
foodnear.me地图与出行013 周前更新

关于 Food Near Me

Food Near Me 是面向 AI Agent 的餐厅发现 MCP 服务,按验证状态组织搜索结果和菜单数据。

主要功能

  1. 01三级餐厅搜索
  2. 02餐厅资料与菜单
  3. 03饮食及过敏原数据
  4. 04Menu Protocol 验证
  5. 05饮食筛选与路线搜索

适用场景

  1. 01查找指定地点附近的餐厅
  2. 02按饮食需求比较餐厅
  3. 03查看菜单过敏原与限制
  4. 04发现路线沿途餐厅

MCP 相关

其 MCP 端点提供 8 个工具、4 个资源和 3 个提示词,涵盖餐厅搜索、资料、菜单、饮食比较、路线发现及 Menu Protocol 验证。

配置

远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。

服务地址https://foodnear.me/mcp
一键复制安装命令
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。

工具

9

此工具无需参数。

详细介绍

Food Near Me — MCP 服务

面向 AI 原生餐厅发现的模型上下文协议服务 — 三层搜索(已验证 → 菜单已索引 → 已发现)、Menu Protocol 菜单和结构化菜单验证。约 30 秒即可接入 Claude Desktop、Cursor、ChatGPT 或任何 MCP 主机。

MCP 注册表

生产端点: https://foodnear.me/mcp · 8 个工具 · 4 个资源 · 3 个提示词 · 无需 API 密钥(测试版)


快速开始 {#quick-start}

1. 将以下内容添加到 MCP 主机配置中

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

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

{
  "mcpServers": {
    "foodnear-me": {
      "command": "npx",
      "args": ["-y", "mcp-remote", "https://foodnear.me/mcp"]
    }
  }
}
2. 重启 MCP 主机
3. 试试这个提示词

“查找 Brooklyn Bridge 附近的纯素泰餐厅,并向我展示排名第一的餐厅菜单。”

你的 Agent 应调用 search_restaurants → get_menu(或先调用 get_restaurant)。


你将获得

工具(8 个)
工具描述
search_restaurants按 lat/lng 进行三层地理搜索——已验证 → 菜单已索引 → 已发现;调用 get_menu 前检查 menu_available
get_restaurant餐厅资料,包含 Schema.org JSON-LD 和 Menu Protocol 扩展
get_menu完整的 Menu Protocol v1.0 菜单(饮食标记、过敏原、招牌菜)
get_ado_score_breakdownADO 评分因素和改进建议
validate_menu_protocol发布前验证 Menu Protocol JSON 载荷
explore_area_for_diet组合工具:按类别汇总的街区概览(verified / menu_indexed / discovered);可选的 dietary 筛选条件仅缩小已验证层级的范围
compare_restaurants_for_diet组合工具:根据符合饮食要求的菜单项和信任层级排名,对比 2–5 家已知餐厅
find_restaurants_along_route组合工具:发现起点与目的地之间路线附近的餐厅,并可选择按饮食要求排序
资源(4 个)
URI内容
foodnearme://spec/menu-protocolMenu Protocol v1.0 规范
foodnearme://spec/openapiOpenAPI 3.1 规范指针
foodnearme://agent/skillAgent 技能摘要
foodnearme://examples/search-flow搜索 → 菜单流程示例
提示词(3 个)
提示词参数引导 Agent 执行
find_dinner_near_melocation(必填)、cuisine?、dietary?search_restaurants → get_menu
dietary_constrained_menurestaurant_id、restrictions使用明确的 MP 标记/过敏原调用 get_menu
validate_my_menustrict?(严格模式设为 true)validate_menu_protocol

配置

设置值
MCP URLhttps://foodnear.me/mcp
传输方式HTTP JSON-RPC(POST);通过 GET /mcp 发现
身份验证测试版期间无需身份验证(适用速率限制)
注册表me.foodnear/foodnear-me(官方 MCP 注册表)

预览版 / 本地: 在 apps/web 中运行 npm run dev 时,将 URL 替换为 http://localhost:3000/mcp。

运维工具筛选器: 设置 FNM_MCP_ENABLED_TOOLS=search_restaurants,get_menu,即可在 tools/list 和 GET /mcp 中仅公开以逗号分隔的子集。留空或设为 * 可公开所有工具。此功能用于临时降级/上下文控制,不用于隐私保护或身份验证。


架构

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

实现:apps/web/app/mcp/route.ts · 流程运行器:apps/web/lib/mcp/mcp-flow-runner.ts


工具错误约定

失败的 tools/call 响应会在 _meta.error 中包含结构化元数据:

字段含义
codeVALIDATION_ERROR · NOT_FOUND · UPSTREAM · RATE_LIMITED · UNKNOWN
message出错原因
hint如何修正请求
retryableAgent 是否应重试
docshttps://foodnear.me/docs#quick-start

对于忽略 _meta 的主机,人类可读文本仍位于 content[0].text 中。


验证

从仓库根目录运行(需启动 apps/web 开发服务器以使用 localhost):

# Automated agent flows (14 flows when Supabase + seed configured; 11 without DB)
npm run test:mcp-flows

# Against production
npm run test:mcp-flows:http

# Discovery GETs + MCP tools/list count
npm 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

生产监控: GitHub Actions 工作流 MCP Production Smoke 每天运行 smoke:mcp,并支持手动触发(.github/workflows/mcp-smoke.yml)。


Agent 发现

文件URL
llms.txthttps://foodnear.me/llms.txt
llms-full.txthttps://foodnear.me/llms-full.txt
MCP 清单https://foodnear.me/.well-known/mcp-server.json
AgentRoothttps://foodnear.me/.well-known/agentroot.json
技能文件https://foodnear.me/SKILL.md
OpenAPIhttps://foodnear.me/openapi.json
Web 快速参考https://foodnear.me/docs

脚本化流程:apps/web/docs/example-agent-flows.md


数据可信度模型(三级搜索)

  • search_restaurants 按 verified → menu_indexed → discovered 的顺序返回结果。
  • 每个结果都包含 verification_status 和 menu_available。仅当 menu_available 为 true 时才调用 get_menu。
  • Verified — 所有者批准的 MP;饮食和过敏原声明的权威来源。
  • menu_indexed — 自动获取的/公开的 MP 菜单;引用时须注明限制——未经所有者验证。
  • discovered — 仅为地点信息;不要引用菜单项目。
  • 可信度递进:discovered → menu_indexed → verified。数据来源见 https://foodnear.me/attribution。

常见问题

我需要 API 密钥吗?
Beta 阶段使用 MCP 无需密钥。未来的付费层级可能会使用 API 密钥或 x402(Base 上的 USDC)。请参阅本地 docs/Food Near Me 操作手册中的 x402-prepaid-spec.md。

重启后没有显示工具?
确认配置 URL 以 /mcp 结尾。完全重启主机。针对目标基础 URL 运行 npm run smoke:mcp。

搜索结果为空?
Beta 阶段已为特定都会区(例如纽约市 Williamsburg)预置经过验证的菜单。Williamsburg 有 7 家 menu_indexed 餐厅,其自动获取的菜单来自网站采集。已发现的地点列表覆盖许多美国都会区——请在导入的区域中使用坐标。演示坐标:40.7128, -74.006。在本地运行 npm run db:seed -w web 以获取已验证的测试数据。

Cursor 和 Claude 的配置路径有何不同?
请参阅上方的快速入门——每个主机使用不同的 JSON 文件;只有 mcpServers 部分需要关注。

这与 DoorDash / Uber Eats API 有何不同?
我们向 Agent 提供经过所有者验证的 Menu Protocol 数据——而非抓取的聚合平台菜单或下单结账功能。


Monorepo 结构

此仓库将 MCP 服务包含在 foodnear.me Web 应用中:

路径用途
apps/webNext.js 应用——MCP 位于 /mcp,包含落地页和 API 路由
packages/menu-protocolMenu Protocol 架构和验证器
database迁移、种子数据、架构
server.json官方 MCP Registry 元数据

业务策略和运行手册位于单独的本地文档文件夹中(不在此仓库内)——请参阅团队的 docs/Food Near Me 操作手册。


开发

npm install
cd apps/web && cp .env.example .env.local   # Supabase keys
npm run dev                                 # http://localhost:3000
npm run test:mcp-flows                      # POST localhost:3000/mcp
操作员:menu_indexed 网站采集

通过免费的网页/订购平台解析器(ChowNow API、order.online、Sauce、Squarespace、BentoBox、Toast、Playwright),将 discovered 提升为 menu_indexed。务必先进行试运行——无头模式速度较慢。

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

不提供 Uber Eats / DoorDash / Grubhub / RapidAPI 抓取器。请参阅 apps/web/docs/example-agent-flows.md。


Links

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。