mcpField
F
Food Near Me

Food Near Me

リモート
foodnear.me地図・旅行013 週間前に更新
リポジトリ公式サイト

Food Near Me について

Food Near Me は、検証状況別に検索結果とメニューデータを整理する、AI エージェント向けのレストラン検索 MCP サーバーです。

主な機能

  1. 013段階のレストラン検索
  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 ネイティブなレストラン検索のための Model Context Protocol サーバー — 3 層の検索(verified → menu_indexed → discovered)、Menu Protocol のメニュー、構造化されたメニュー検証に対応しています。Claude Desktop、Cursor、ChatGPT、または任意の MCP ホストに約 30 秒で接続できます。

MCP Registry

本番環境のエンドポイント: 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. プロンプトを試します

「ブルックリン橋の近くにあるビーガン向けタイ料理レストランを探して、最上位の結果のメニューを見せてください。」

エージェントは search_restaurants → get_menu(または先に get_restaurant)を呼び出します。


利用できる機能

ツール(8 個)
ツール説明
search_restaurantslat/lng による 3 層の地理検索 — verified → menu_indexed → discovered。get_menu の前に menu_available を確認します
get_restaurantSchema.org JSON-LD と Menu Protocol 拡張を含むレストランプロフィール
get_menuMenu Protocol v1.0 の完全なメニュー(食事制限フラグ、アレルゲン、看板メニュー)
get_ado_score_breakdownADO スコアの要因と改善に関する推奨事項
validate_menu_protocol公開前に Menu Protocol の JSON ペイロードを検証します
explore_area_for_diet複合機能:近隣エリアの分類別概要(verified / menu_indexed / discovered)。任意の dietary フィルターは verified 層のみを絞り込みます
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/skillエージェントスキルの概要
foodnearme://examples/search-flow検索 → メニューのフロー例
プロンプト(3 個)
プロンプト引数エージェントの動作
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 Registry)

プレビュー/ローカル: 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リクエストの修正方法
retryableエージェントが再試行すべきかどうか
docshttps://foodnear.me/docs#quick-start

_meta を無視するホスト向けに、人が読めるテキストも引き続き content[0].text に含まれます。


検証

リポジトリのルートから実行してください(localhost 用に apps/web の開発サーバーを起動した状態で)。

# 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 は、毎日および手動実行時(.github/workflows/mcp-smoke.yml)に smoke:mcp を実行します。


エージェントの検出

ファイル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


データの信頼モデル(3段階の検索)

  • 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 を参照してください。

FAQ

API キーは必要ですか?
ベータ版 MCP アクセスでは不要です。将来の有料プランでは、API キーまたは x402(Base 上の USDC)を使用する可能性があります。ローカルの docs/Food Near Me プレイブックにある x402-prepaid-spec.md を参照してください。

再起動後にツールが表示されません。
設定 URL の末尾が /mcp になっていることを確認してください。ホストを完全に再起動してください。対象のベース URL に対して npm run smoke:mcp を実行してください。

検索結果が空です。
ベータ版の verified メニューは、特定の都市圏(例:ニューヨーク市ウィリアムズバーグ)向けに登録されています。ウィリアムズバーグには、ウェブサイトから取り込まれた自動メニューを持つ 7 件の menu_indexed レストランがあります。discovered の店舗情報は米国の多くの都市圏をカバーしています。インポートした地域の座標を使用してください。デモ用座標:40.7128, -74.006。verified のテストデータをローカルで使うには、npm run db:seed -w web を実行してください。

Cursor と Claude の設定ファイルのパスが異なるのはなぜですか?
上記のクイックスタートを参照してください。ホストごとに異なる JSON ファイルを使用します。重要なのは mcpServers ブロックだけです。

DoorDash / Uber Eats API とは何が違いますか?
エージェント向けに、オーナー確認済みの Menu Protocol データを提供します。スクレイピングしたアグリゲーターのメニューや注文時のチェックアウト機能ではありません。


モノレポの構成

このリポジトリでは、foodnear.me ウェブアプリ内に MCP サーバーを含めて配布します。

パス用途
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

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。