mcpField
R
Restaurant Health Inspections

Restaurant Health Inspections

リモート
food.ian.sh法務・行政04 日前に更新
リポジトリ公式サイト

Restaurant Health Inspections について

Restaurant Health Inspections は、米国、英国、カナダ、フランスの20地域で、レストランの検査評価、スコア、違反記録を検索する MCP サーバーです。政府の公開データを使い、API キーは不要です。

主な機能

  1. 01都市名と店名でレストラン検索
  2. 02評価、スコア、結果の表示
  3. 03検査履歴と違反記録の取得
  4. 04地域ごとの評価制度の説明
  5. 05API キー不要の公開データ利用

活用シーン

  1. 01レストランの現在の検査状況を確認
  2. 02過去の違反記録を調査
  3. 03地域ごとの評価制度を比較

MCP 対応

レストラン検索、検査履歴、評価制度のツールを MCP クライアントに提供します。ホスト型エンドポイントは認証不要の Streamable HTTP で、ローカル stdio の Python 版も利用できます。

設定

リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。

エンドポイントhttps://food.ian.sh/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 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。

ツール

詳細

restaurant-health MCP server

20 か所のレストランの衛生検査結果を検索できます。

  • 米国: ニューヨーク市、ニューヨーク州(NYC 以外)、サンフランシスコ、LA 郡、サンタクララ郡、マリン郡、サクラメント郡、ラスベガス、シカゴ、ボストン、オースティン、ローリー/ウェイク郡、ルイビル、デトロイト、シンシナティ、オマハ/ダグラス郡、フェアファックス郡
  • その他: ロンドンおよび英国、トロント、パリおよびフランス

政府公開データを使用するため、API キーは不要です。

ホスト先:https://food.ian.sh。 MCP エンドポイントは https://food.ian.sh/mcp です(Streamable HTTP、認証なし)。

claude mcp add --transport http restaurant-health https://food.ian.sh/mcp

ツール

ツール機能
search_restaurants(city, name, address?, zip_code?, limit?)レストランを検索し、現在の評価、スコアまたは結果を表示します
get_inspection_history(city, restaurant_id, max_inspections?)市が公開している場合、過去の検査結果、スコア、違反事項を表示します
rating_systems()対象の市を一覧表示し、それぞれの評価方法を説明します

各市の ID、評価システム、データソースは src/cities/ 内の各モジュールにあります。rating_systems は同じ情報を返します。

データの取得方法

  • ライブ API、1 日間キャッシュ(場所ごとに Cloudflare Cache API を使用)。LA とラスベガス以外が対象です。
    • Socrata:NYC、SF、シカゴ、オースティン、サンタクララ、マリン、シンシナティ、NY 州
    • ArcGIS:ローリー、ルイビル、デトロイト、サクラメント、オマハ、フェアファックス
    • CKAN:ボストン、トロント
    • Opendatasoft:フランス
    • FSA ratings API:英国
  • D1 への一括インポート: LA 郡とラスベガスでは大容量の CSV ファイルと zip ファイル(約 75 MB)のみが公開されています。毎日の cron により、ファイルに変更があった場合に再インポートされます。

既知の制限:

  • 英国で公開されているのは現在の評価のみで、検査履歴はありません。
  • フランスで公開されているのは概要レベルの情報のみで、対象期間は直近 12 か月です。
  • オマハで確認できるのは 2025 年 12 月以降の検査のみで、違反事項はリンク先の PDF に記載されています。
  • フェアファックスでは違反の詳細は公開されていません。
  • LA 郡にはパサデナ、ロングビーチ、バーノンは含まれません。

ランディングページでは Cloudflare のリクエスト位置情報を使って既定の市を選択します(src/geo.ts)。?city=<id> で上書きできます。

ホスト型デプロイ(Cloudflare Workers)

パス内容
src/index.tsルーティング、MCP ツール(@modelcontextprotocol/sdk を使ったステートレスな Streamable HTTP)、cron ハンドラー
src/cities/市ごとのモジュール。検索、履歴、評価の説明、ランディングページのバッジを提供します(index.ts はレジストリです)
src/lib/http.tsキャッシュ付き fetch、および Socrata/ArcGIS のクエリーヘルパー
src/geo.ts訪問者の位置情報から既定の市を選択します
src/bulk.tsLA とラスベガスの D1 へのインポート、および D1 に対するクエリー
src/landing.ts/ のランディングページ。検索ボックスは /api/search を呼び出し、検索結果を展開すると /api/history を呼び出します
migrations/D1 スキーマ
npm install
npm run dev                  # local; apply schema first: npx wrangler d1 migrations apply restaurant-health --local
npm run deploy

各インポートでは、新しい世代の行を書き込み、meta.gen:<city> を切り替えてから古い行を削除します。インポートに失敗しても、不完全なデータは残りません。再インポートを強制するには、次を実行します。

curl -X POST -H "Authorization: Bearer $ADMIN_TOKEN" "https://food.ian.sh/admin/refresh?force=1"

main へのプッシュは .github/workflows/deploy.yml により自動的にデプロイされます。D1 マイグレーションを適用した後、wrangler deploy を実行します。リポジトリシークレット CLOUDFLARE_API_TOKEN と CLOUDFLARE_ACCOUNT_ID が必要です。

ADMIN_TOKEN は Worker シークレットです(wrangler secret put ADMIN_TOKEN)。SOCRATA_APP_TOKEN は任意のシークレットで、設定すると NYC と SF のレート制限が緩和されます。/api/status では、各一括インポート対象の市について、最後にインポートされた時刻を確認できます。

ローカル stdio 版(Python)

server.py は元のスタンドアロン版です。一括データファイルを自らダウンロードし、~/.cache/restaurant-health-mcp にキャッシュします。

uv が必要です。依存関係は server.py 内で宣言されています。

Claude Code:

claude mcp add restaurant-health --scope user -- uv run --script /path/to/server.py

Claude Desktop(claude_desktop_config.json):

{
  "mcpServers": {
    "restaurant-health": {
      "command": "uv",
      "args": ["run", "--script", "/path/to/server.py"]
    }
  }
}

任意:SOCRATA_APP_TOKEN を設定すると、NYC と SF のレート制限が緩和されます。また、RESTAURANT_HEALTH_CACHE を設定してキャッシュの保存先を変更することもできます。

コメント

MCP は初めてですか?

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

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