Restaurant Health Inspections について
Restaurant Health Inspections は、米国、英国、カナダ、フランスの20地域で、レストランの検査評価、スコア、違反記録を検索する MCP サーバーです。政府の公開データを使い、API キーは不要です。
主な機能
- 01都市名と店名でレストラン検索
- 02評価、スコア、結果の表示
- 03検査履歴と違反記録の取得
- 04地域ごとの評価制度の説明
- 05API キー不要の公開データ利用
活用シーン
- 01レストランの現在の検査状況を確認
- 02過去の違反記録を調査
- 03地域ごとの評価制度を比較
MCP 対応
レストラン検索、検査履歴、評価制度のツールを MCP クライアントに提供します。ホスト型エンドポイントは認証不要の Streamable HTTP で、ローカル stdio の Python 版も利用できます。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://food.ian.sh/mcpclaude mcp add --transport http iangcarroll-restaurant-health https://food.ian.sh/mcp{"mcpServers":{"iangcarroll-restaurant-health":{"type":"http","url":"https://food.ian.sh/mcp"}}}Cursor で開く{"servers":{"iangcarroll-restaurant-health":{"type":"http","url":"https://food.ian.sh/mcp"}}}VS Code で開く{"mcpServers":{"iangcarroll-restaurant-health":{"type":"http","url":"https://food.ian.sh/mcp"}}}{"mcpServers":{"iangcarroll-restaurant-health":{"serverUrl":"https://food.ian.sh/mcp"}}}コマンドはターミナルで実行し、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.ts | LA とラスベガスの 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 を設定してキャッシュの保存先を変更することもできます。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。