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 中的说明安装。

代码仓库

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

餐食服务

一个基于 Python 的 MCP 服务,用于访问 TheMealDB API。

🏆 认证

此 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”)
    • 返回格式化的餐点信息,包括食材、做法和链接
    • 适合按字母顺序浏览餐点
  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 种餐点类别的完整列表
    • 类别包括:牛肉、鸡肉、甜点、羊肉、杂项、意大利面、猪肉、海鲜、配菜、前菜、纯素、素食、早餐和山羊肉
    • 每个类别都包含名称、描述和缩略图 URL
  2. 菜系地区(URI:http://localhost/cuisine_areas)

    • 提供 TheMealDB 中全部 29 个菜系地区/国家的列表
    • 地区包括:美国、英国、加拿大、中国、克罗地亚、荷兰、埃及、菲律宾、法国、希腊、印度、爱尔兰、意大利、牙买加、日本、肯尼亚、马来西亚、墨西哥、摩洛哥、波兰、葡萄牙、俄罗斯、西班牙、泰国、突尼斯、土耳其、乌克兰、乌拉圭和越南
  3. 常见食材(URI:http://localhost/common_ingredients)

    • 提供包含 575 种以上常见烹饪食材的数据库
    • 每种食材都包含名称,许多还附有详细描述
    • 食材涵盖多个类别,包括肉类、蔬菜、水果、谷物、乳制品、香草、香料等

这些资源可用于探索可选餐点、了解不同菜系类型,以及发现适合规划食谱的食材。

MCP 提示词

除了工具和资源外,这个 MCP 服务还提供了一些可供 AI 助手直接使用的提示词。提示词是预定义的自然语言模式,可映射到特定功能,让你更轻松地与服务交互。

可用提示词
  1. 为我查找 {cuisine} {category} 食谱

    • 查找同时符合特定菜系和类别的食谱
    • 参数:
      • cuisine:菜系/地区(例如:意大利、墨西哥)
      • category:餐食类别(例如:甜点、海鲜)
    • 返回同时属于指定菜系和类别的餐食
    • 示例:“为我查找意大利面食谱”
    • 适合探索某个菜系中的特定菜品类型
  2. 查找以 {letter} 开头的 {category} 食谱

    • 查找特定类别中以指定字母开头的食谱
    • 参数:
      • category:餐食类别(例如:早餐、甜点)
      • letter:首字母(例如:A、B)
    • 返回属于指定类别且以给定字母开头的餐食
    • 示例:“查找以 B 开头的素食食谱”
    • 非常适合缩小食谱选项范围,或玩与食物相关的游戏

这些提示词让你能够以更自然的方式与餐食数据库交互,直观地组合多个搜索条件。

评论

支持 Markdown

第一次接触 MCP?

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

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