:stew:食谱MCP服务器:机器人:
  
\[!警告\] 此项目目前正在积极开发中(v0.X.X) 可生产的。功能可能会发生变化,可能会发生重大变化,恕不另行通知。 使用此MCP服务器的风险由您自行承担。
一个用Rust编写的MCP服务器,用于从互联网导入、解析、缩放、格式化和搜索食谱。
:闪光:特征
- 智能网页抓取: 使用分层策略从各种在线资源中提取食谱
rust-recipe和recipe-scraper,包括高级图像和图库提取以及自动指令净化。 - 配方缩放: 调整任何食谱的份量,自动调整配料数量。
- 重量转换: 使用以下工具自动将体积测量值(杯、汤匙、茶匙)转换为克重 亚瑟王烘焙配料重量表.
- 单位制转换: 自动在公制和英制之间转换体积测量值。
- 营养评估: 根据配料重量自动估算食谱的卡路里和常量营养素(脂肪、碳水化合物、蛋白质)。支持与外部API(如Edamam)集成,以获得更详细的数据,并自动回退到内部估计。
- 膳食过滤: 根据饮食偏好(如纯素、无麸质)过滤搜索结果和抓取食谱。
- 警告提取: 捕捉食谱特定的提示、注释和变化。
- 独立转换工具: 快速将成分字符串列表转换为加权等效值或切换单位系统。
- 多格式导出: 支持将食谱导出到Markdown、JSON和Cooklang。
- 配方发现: 集成搜索功能,可从支持的提供商(AllRecipes、Food Network、Serious Eats、TheMealDB、Epicurious、NYT Cooking、BBC Good Food)中查找食谱URL。
- 缓存: 内置配方缓存,减少冗余网络请求。
- 灵活运输: 支持两者
stdio和HTTP/SSE(服务器发送事件)传输模式。 - 灵活配置: 支持TOML、YAML和JSON配置文件,以及环境变量和命令行参数。
- 高可靠性: 代码覆盖率超过90%。
:package:安装
:剪贴板:先决条件
:锤子:构建
cargo build --release或使用任务:
task build:火箭:用途
:齿轮:配置
服务器可以通过环境变量、命令行参数或位于 config/ 目录。
基于文件的配置
服务器使用以下基于文件的配置层次结构(后面的文件覆盖前面的文件):
config/default.toml(或.yaml,.json):基本配置。config/{RUN_MODE}.toml:环境特定(例如。,config/development.toml).RUN_MODE默认为development.config/local.toml:本地覆盖(不由git跟踪)。
配置选项
| 选项 | 环境变量 | CLI参数 | 默认值 |
|---|---|---|---|
| 配置路径 | RECIPES__CONFIG_PATH | --config, -c | None |
| 日志级别 | RECIPES__LOG_LEVEL | --log-level | info |
| 运输 | RECIPES__TRANSPORT | --transport | stdio |
| 港口 | RECIPES__PORT | --port | 3000 |
| 重量换算 | RECIPES__WEIGHT_CONVERSION | --weight-conversion | true |
| 缓存已启用 | RECIPES__CACHE_ENABLED | --cache-enabled | true |
| 缓存目录 | RECIPES__CACHE_DIR | --cache-dir | .cache |
| 营养应用程序ID | RECIPES__NUTRITION_APP_ID | --nutrition-app-id | None |
| 营养应用程序密钥 | RECIPES__NUTRITION_APP_KEY | --nutrition-app-key | None |
:扳手:MCP工具
服务器提供了几个用于配方管理和配料处理的工具:
manage_recipes
用于复杂配方操作的统一工具。
论据:
action(必填):scrape,scale,format,search,或nutrition.urls:要抓取的食谱URL列表(需要scrape,可选用于scale/format/nutrition).recipes:要缩放、格式化或分析的配方对象列表(如果需要,则需要urls未提供)。target_servings:所需份数(scale,其他人可选)。format_type:输出格式(markdown,json,或cooklang,默认为markdown).query:搜索查询(必填)search).limit:最大搜索结果(可选search,默认值5)。provider:要搜索的配方提供者(allrecipes,foodnetwork,seriouseats,themealdb,epicurious,nytcooking,bbcgoodfood).dietary_filters:饮食偏好列表(vegan,vegetarian,gluten-free,dairy-free,keto,paleo).admonition_types:要提取的警告类型列表(tip,note,variation).bypass_cache:如果为true,则绕过缓存并强制执行新请求(可选,默认值:false)。target_system:所需的体积转换单位系统(metric或imperial,可选)。
convert_ingredients
快速将体积成分字符串列表转换为克重量或单位系统之间的重量。
论据:
ingredients(必填):成分字符串数组(例如。,["1 cup flour", "2 tbsp sugar"]).target_system:所需的体积转换单位系统(metric或imperial,可选)。
:备注:MCP配置示例
{
"mcpServers": {
"recipes": {
"command": "/path/to/recipes-mcp-rs",
"args": ["--weight-conversion", "true", "--cache-enabled", "true"],
"env": {
"RECIPES__LOG_LEVEL": "info"
}
}
}
}:锤子与扳手:开发
:test_tube:运行测试
task test:white_check_mark:CI检查(Lint、Format、Test)
task test:ci:bar_chart:代码覆盖率
该项目保持了高代码质量,测试覆盖率超过90%。
task coverage:page_facing_up:许可证
此项目根据Apache许可证2.0获得许可。请参阅 LICENSE 文件以获取详细信息。
:writing_hand:作者
该项目于2026年启动 尼古拉斯·王尔德.
