mcpField
M
Meal Server

Meal Server

ローカル
github.com/D-C2211ゲーム・エンタメ169 週間前に更新

Meal Server について

Meal Server は、TheMealDB のレシピや関連情報を検索する Python 製 MCP サーバーです。レシピの検索、料理や食材の閲覧、買い物リスト用の食材保存に対応します。

主な機能

  1. 01名前、頭文字、食材による料理検索
  2. 02カテゴリや地域による絞り込み
  3. 03ランダムな料理候補の取得
  4. 04レシピの食材をファイルに保存
  5. 05カテゴリ、地域、食材のリソース提供
  6. 06複数条件で検索するプロンプト

活用シーン

  1. 01手元の食材で作れるレシピの検索
  2. 02料理の種類やカテゴリからの探索
  3. 03ランダムな料理のアイデア探し
  4. 04レシピをもとにした買い物リスト作成

MCP 対応

TheMealDB の検索と食材保存を MCP ツールとして公開し、料理カテゴリ、地域、食材のリソースやレシピ検索用プロンプトも提供します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

インストール方法は未掲載です

このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。

リポジトリ

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

Meal Server

TheMealDB API にアクセスするための、Python ベースの MCP サーバーです。

🏆 認証

この MCP サーバーは MCP Review によって認証済みです。認証情報を見る

TheMealDB について

TheMealDB は、世界中のレシピを集めたオープンなクラウドソーシングデータベースです。データベースには次の情報が含まれています。

  • 材料と手順を含む、詳細な料理のレシピ
  • 料理の種類、地域、材料による分類
  • 多くのレシピの画像と動画
  • 基本機能を利用できる無料の API アクセス

この MCP サーバーは、Claude、Clide、または同様の AI クライアントを通じて TheMealDB の API を手軽に利用できるインターフェースを提供します。自然言語を使って料理の情報を検索、取得できます。

機能

ツール
  • 文字、名前、材料、カテゴリ、地域から料理を取得
  • ランダムな料理を取得
  • 買い物リスト用に材料をファイルへ保存
リソース
  • 料理のカテゴリ(デザート、シーフード、ベジタリアン料理など)にアクセス
  • 料理の地域(イタリア料理、メキシコ料理、インド料理など)にアクセス
  • 一般的な材料のデータベース(575 種類以上)にアクセス
プロンプト
  • プロンプト(自然言語でのリクエストを支援する定義済みテンプレート)を使って料理の情報にアクセス

使用方法

サーバーを実行するには:

python mealserver.py

環境変数とセキュリティ

mealserver は、設定とセキュリティに環境変数を使用します。環境変数は、プロジェクトのルートディレクトリにある .env ファイルから読み込まれます。

環境変数の設定
  1. .env.example ファイルをコピーして、新しい .env ファイルを作成します。

    cp .env.example .env
    
  2. .env ファイルを編集して、設定をカスタマイズします。

    # TheMealDB API Configuration
    # Default is "1" for the free tier, change if you have premium access
    MEALDB_API_KEY=1
    
    # MCP Server Configuration
    MCP_SERVER_HOST=127.0.0.1
    MCP_SERVER_PORT=8080
    
    # Security Configuration
    # Generate a secure random key for production use
    MCP_SERVER_API_KEY=your_secure_api_key_here
    
    # Logging Configuration
    # Options: DEBUG, INFO, WARNING, ERROR, CRITICAL
    LOG_LEVEL=INFO
    
    # Rate Limiting Configuration
    # Number of requests allowed per time window
    RATE_LIMIT_MAX_REQUESTS=60
    # Time window in seconds
    RATE_LIMIT_WINDOW_SECONDS=60
    
セキュリティ機能

mealserver には、いくつかのセキュリティ機能が含まれています。

  1. API キーの管理:TheMealDB の API キーは、ソースコードにハードコードせず、環境変数に保存されます。

  2. ログ記録:ログレベルを設定できる詳細なログ機能により、使用状況の追跡や潜在的な問題の特定が容易になります。

  3. エラー処理:堅牢なエラー処理により、エラーメッセージから機密情報が漏れるのを防ぎます。

  4. 環境変数の保護:機密情報が誤って公開されないよう、.env ファイルは .gitignore によってバージョン管理から除外されています。

プレミアム API アクセス

TheMealDB API のプレミアムサブスクリプションをお持ちの場合は、.env ファイルで API キーを設定できます。

MEALDB_API_KEY=your_premium_api_key_here

これにより、TheMealDB へのすべてのリクエストで、プレミアム API キーが自動的に使用されます。

使用例

Claude などの AI アシスタントを通じて mealserver を操作する方法を、いくつか紹介します。

名前からレシピを検索
User: Can you find me a recipe for Arrabiata?

Claude: I'll search for Arrabiata recipes using the mealserver.
[Uses get_meal_by_name tool with parameter "Arrabiata"]

I found Pasta all'Arrabiata! Here's the recipe:

Meal: Pasta all'Arrabiata
Category: Vegetarian
Country: Italian

Ingredients:
- 1 pound Penne Rigate
- 1/4 cup Olive Oil
- 3 cloves Garlic
- 1 tin Chopped Tomatoes
- 1/2 teaspoon Red Chile Flakes
- 1/2 teaspoon Italian Seasoning
- 6 leaves Basil
- Spinkling Parmigiano-Reggiano

Instructions: [Full cooking instructions would appear here]
アイデアを得るためにランダムなレシピを取得
User: I'm not sure what to cook tonight. Any suggestions?

Claude: Let me get a random recipe suggestion for you.
[Uses get_random_meal tool]

How about trying Beef and Mustard Pie? Here's the recipe:

Meal: Beef and Mustard Pie
Category: Beef
Country: British

Ingredients:
- 2 tbs Olive Oil
- 1 Onion
- 2 Carrots
- 2 tbs Plain Flour
- 2 tbs Mustard
- 2 Bay Leaves
- 500g Beef
- 500g Puff Pastry
- 300g Mushrooms
- 1 Egg Yolk
- 2 tbs Thyme
- 200g Creme Fraiche
- 0.5 Beef Stock Cube

Instructions: [Full cooking instructions would appear here]
手元にある材料を使ったレシピを検索
User: I have chicken, potatoes, and rosemary. What can I make?

Claude: Let me find recipes that use those ingredients.
[Uses get_meal_by_multiple_ingredients tool with parameters ["chicken", "potatoes", "rosemary"]]

I found Roast Chicken with Lemon and Rosemary! Here's the recipe:

Meal: Roast Chicken with Lemon and Rosemary
Category: Chicken
Country: British

Ingredients:
- 1 whole Chicken
- 2 pounds Potatoes
- 1 sprig Rosemary
- 1 Lemon
- 2 tbs Olive Oil
- 1 tsp Salt
- 1 tsp Black Pepper

Instructions: [Full cooking instructions would appear here]
特定の地域の料理を調べる
User: I'd like to try making some Thai food. What options do I have?

Claude: Let me find some Thai recipes for you.
[Uses get_meal_by_area tool with parameter "Thai"]

Here are some Thai recipes you might enjoy:

1. Thai Green Curry
2. Pad See Ew
3. Massaman Beef Curry
4. Thai Red Curry Fish Cakes
5. Tom Yum Soup

Would you like the full recipe for any of these?
買い物リストを作成
User: I want to make Beef Stroganoff. Can you create a shopping list for me?

Claude: Let me find the recipe and create a shopping list for you.
[Uses get_meal_by_name tool with parameter "Beef Stroganoff"]
[Then uses save_ingredients_to_file tool with the ingredients]

I've created a shopping list for Beef Stroganoff and saved it to "Beef Stroganoff - ingredients.txt". Here's what you'll need:

- 1 lb Beef
- 2 tbs Olive Oil
- 1 Onion
- 1 tbs Plain Flour
- 1 tbs Tomato Puree
- 1 cup Beef Stock
- 1 tbs Worcestershire Sauce
- 1 tsp Dijon Mustard
- 2 cups Mushrooms
- 1 cup Sour Cream
- Parsley (for garnish)

MCP クライアントとの連携

このサーバーを Claude、Clide、または同様の MCP 対応クライアントで使用するには、クライアントの MCP 設定に追加する必要があります。たとえば、Cline(Claude 用の VS Code 拡張機能)では、cline_mcp_settings.json ファイルに追加します。このファイルは通常、次の場所にあります。

  • Windows:%APPDATA%\Code\User\globalStorage\saoudrizwan.claude-dev\settings\cline_mcp_settings.json
  • macOS:~/Library/Application Support/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json
  • Linux:~/.config/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json

設定ファイルの mcpServers オブジェクトに、次の設定を追加します。

"mealserver": {
  "command": "uv",
  "args": [
    "--directory",
    "C:\\mcp\\mealserver",
    "run",
    "mealserver.py"
  ]
}

ディレクトリのパスは、インストール先に合わせて変更してください。

この設定を追加したら、MCP クライアントを再起動するか、ウィンドウを再読み込みしてください。これで、AI アシスタントとの会話で mealserver のツールを使用できるようになります。

MCP ツール

この MCP サーバーは、AI アシスタントが TheMealDB API を操作するための複数のツールを提供します。各ツールは、料理データの取得または操作に関する特定の目的を担います。

利用可能なツール
  1. get_meal_by_letter

    • 特定の文字で始まる料理を取得します
    • パラメーター:letter(「A」、「B」などの1文字)
    • 材料、手順、リンクを含む料理情報をフォーマットして返します
    • 料理をアルファベット順に探すのに便利です
  2. get_meal_by_name

    • 料理名または料理名の一部で検索します
    • パラメーター:name(例:「Arrabiata」、「Spicy」)
    • 一致する料理の詳細情報を返します
    • 特定のレシピや、特定の単語を含む料理を探すのに最適です
  3. get_random_meal

    • データベースからランダムな料理を取得します
    • パラメーターは不要です
    • 料理の詳細情報をすべて返します
    • 献立のアイデアを得たり、新しいレシピを見つけたりするのに最適です
  4. get_meal_by_ingredient

    • 特定の材料を使った料理を探します
    • パラメーター:ingredient(例:「chicken_breast」、「tomatoes」)
    • 指定した材料を含む料理を返します
    • 手元にある材料をもとに献立を計画するのに最適です
  5. get_meal_by_multiple_ingredients

    • 指定した複数の材料を含む料理を探します
    • パラメーター:ingredients(材料のリスト。例:["beef", "potatoes"])
    • 指定した材料をすべて含む料理を返します
    • 手元にある材料をもとにレシピを探すのに最適です
    • 食品ロスの削減や、工夫を凝らした料理に役立ちます
  6. get_meal_by_category

    • 特定のカテゴリーの料理を取得します
    • パラメーター:category(例:「Seafood」、「Vegetarian」)
    • 指定したカテゴリーに属する料理を返します
    • 食事の好みや料理の種類に合った料理を探すのに便利です
  7. get_meal_by_area

    • 特定の料理または地域の料理を探します
    • パラメーター:area(例:「Italian」、「Mexican」)
    • 指定した料理の地域の料理を返します
    • 各国の料理を探求するのに最適です
  8. save_ingredients_to_file

    • 料理の材料をファイルに保存します(買い物リストとして使用できます)
    • パラメーター:
      • meal_name:料理名
      • ingredients_with_measures:分量付きの材料リスト
      • file_path:材料ファイルの保存先パス
    • レシピに必要な材料をすべて記載した、フォーマット済みのテキストファイルを作成します
    • 献立の計画や食料品の買い物に便利です

これらのツールは、単独でも組み合わせても使用でき、さまざまな条件でレシピを探したり、各国の料理を探求したり、献立を計画したりできます。

MCP リソース

ツールに加えて、この MCP サーバーは AI アシスタントが直接アクセスできる複数のリソースを提供します。リソースとは、特定のパラメーターを必要とせず、コンテキストや情報を提供するデータソースです。

利用可能なリソース
  1. 料理カテゴリー(URI:http://localhost/meal_categories)

    • TheMealDBで利用できる14種類すべての料理カテゴリーの包括的なリストを提供します
    • カテゴリーには、Beef、Chicken、Dessert、Lamb、Miscellaneous、Pasta、Pork、Seafood、Side、Starter、Vegan、Vegetarian、Breakfast、Goatがあります
    • 各カテゴリーには、名前、説明、サムネイル画像のURLが含まれます
  2. 料理の地域(URI:http://localhost/cuisine_areas)

    • TheMealDBで利用できる29種類すべての料理の地域/国のリストを提供します
    • 地域には、American、British、Canadian、Chinese、Croatian、Dutch、Egyptian、Filipino、French、Greek、Indian、Irish、Italian、Jamaican、Japanese、Kenyan、Malaysian、Mexican、Moroccan、Polish、Portuguese、Russian、Spanish、Thai、Tunisian、Turkish、Ukrainian、Uruguayan、Vietnameseがあります
  3. 一般的な材料(URI:http://localhost/common_ingredients)

    • 575種類以上の一般的な調理用材料のデータベースにアクセスできます
    • 各材料には名前が含まれ、多くの材料には詳細な説明も含まれます
    • 材料は肉、野菜、果物、穀物、乳製品、ハーブ、スパイスなど、さまざまなカテゴリーにわたります

これらのリソースを利用して、利用可能な料理の選択肢を調べたり、さまざまな料理の種類について理解を深めたり、レシピの計画に使う材料を見つけたりできます。

MCP プロンプト

ツールやリソースに加えて、この MCP サーバーでは AI アシスタントが直接使用できるプロンプトをいくつか提供しています。プロンプトは、特定の機能に対応する事前定義済みの自然言語パターンで、サーバーとのやり取りを容易にします。

利用可能なプロンプト
  1. {cuisine}の{category}のレシピを見せて

    • 特定の料理とカテゴリの両方に一致するレシピを検索します
    • パラメーター:
      • cuisine:料理の種類/地域(例:イタリア料理、メキシコ料理)
      • category:食事のカテゴリ(例:デザート、シーフード)
    • 指定された料理とカテゴリの両方に該当する料理を返します
    • 例:「イタリア料理のパスタのレシピを見せて」
    • 料理の種類の中から、特定の料理を探すのに便利です
  2. {letter}で始まる{category}のレシピを探して

    • 特定のカテゴリから、指定した文字で始まるレシピを検索します
    • パラメーター:
      • category:食事のカテゴリ(例:朝食、デザート)
      • letter:最初の文字(例:A、B)
    • 指定されたカテゴリに該当し、指定した文字で始まる料理を返します
    • 例:「Bで始まるベジタリアンのレシピを探して」
    • レシピの候補を絞り込んだり、食べ物に関するゲームをしたりするのに最適です

これらのプロンプトを使うと、複数の検索条件を組み合わせた直感的なクエリを実行でき、食事データベースとより自然にやり取りできます。

コメント

MCP は初めてですか?

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

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