Token导航 LogoToken导航TokenDH.com
Recipe Tools logo
浏览器工具stdio官方级别未说明来源级核验

Recipe Tools

MCP Server

一个用于从PDF或JPG文件中提取食谱并将其转换为结构化HTML文件的工具,支持与LLM客户端交互。

工具数

5

提示词数

0

GitHub Stars

0

资源数

0
PythonClaude浏览器自动化Claude DesktopClaude

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

lka

提供方

lka

最后核验

2026/5/17 20:22

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

pip install uv

详细介绍

食谱工具

用于从PDF或JPG文件提取食谱的MCP服务器。提供提示和工具,以便 一个LLM客户端(克劳德桌面,光标等)在结构化的交互式扫描食谱 可以转换HTML文件。

工作方式

FastMCP-服务器在 server.py 集中注册所有终端:

  • 提示 generate_recipe -- 具有 Prompt 支持的 MCP 客户端配方工作流程
  • 工具 get_recipe_prompt -- 只支持工具的客户端的配方工作流程
  • 工具 select_image_regions_tool -- 使用OCR选择图像片段的网页GUI(自动打开浏览器)
  • 工具 get_working_directory_tool -- 显示工作目录
  • 工具 build_recipe_html_tool -- 从结构化食谱数据生成HTML,并更新索引(生成 index.html 自动从模板(如果不存在)
  • 工具 get_server_version -- 返回服务器的当前版本号

项目结构

recipe-tools/
├── pyproject.toml
├── README.md
├── CLAUDE.md
├── .flake8
├── src/
│   └── recipe_processor/
│       ├── __init__.py
│       ├── server.py                  # Zentraler MCP-Server (FastMCP)
│       ├── assets/
│       │   ├── Template.html          # HTML-Template fuer einzelne Rezepte
│       │   └── index_template.html    # HTML-Template fuer die Rezeptuebersicht
│       ├── core/
│       │   ├── __init__.py
│       │   ├── utils.py              # Gemeinsame Utils (Pfade, Verzeichnisse)
│       │   └── recipes_index.py      # Rezept-Index-Verwaltung (HTML-Manipulation)
│       └── tools/
│           ├── __init__.py
│           ├── prompt.py              # RECIPE_PROMPT Konstante
│           ├── html_builder.py        # HTML-Erzeugung aus Rezeptdaten
│           └── image_selector/
│               ├── __init__.py
│               ├── tools.py           # Tool-Funktionen (select, list, get_dir)
│               ├── web_gui.py         # Browser-GUI (FastAPI + HTML Canvas)
│               ├── gui.py             # Tkinter-GUI (inaktiv, Backup)
│               ├── export.py          # Region-Export + OCR
│               ├── pdf_utils.py       # PDF-Bildextraktion (PyMuPDF)
│               └── utils.py           # transform_coords (image_selector-spezifisch)
└── tests/
    ├── __init__.py
    ├── test_prompt.py
    ├── test_server.py
    ├── test_html_builder.py
    ├── test_image_selector_tools.py
    ├── test_web_gui.py
    └── test_recipes_index.py

安装

安装uv(一次性)

# Option 1: winget
winget install astral-sh.uv

# Option 2: pip
pip install uv

然后重新启动终端 uv im路径是。

设置环境变量(唯一,使uv venv/ 而非 .venv/ 使用)

[System.Environment]::SetEnvironmentVariable("UV_PROJECT_ENVIRONMENT", "venv", "User")

然后重新启动终端。

设置项目

uv sync --extra dev
git config core.hooksPath .githooks

UV 设置 venv/ 安装所有依赖关系并锁定精确的依赖关系 版本在 uv.lock第二个命令激活预推钩(运行) 克隆之后)。

前提条件

立方体OCR 必须安装并在 PATH 中。

配置 MCP 服务器

Claude Desktop 配置示例 (claude_desktop_config.json):

{
  "mcpServers": {
    "recipe-server": {
      "command": "path/to/venv/Scripts/recipe-server",
      "env": {
        "IMAGE_SELECTOR_WORKING_DIR": "C:/Rezepte",
        "IMAGE_SUBDIRECTORY": "Eingang"
      }
    }
  }
}

服务器手动启动

uv run recipe-server

或者作为模块:

uv run python -m recipe_processor.server

测试和涂层

uv run pytest
uv run flake8 src/ tests/
uv run black src/ tests/

Der预推钩(.githooks/pre-push自动执行这三个步骤 在每个人面前 git push 从:black格式化代码,flake8检查错误, pytest 执行测试。如果黑色进行了更改,将推 取消 - 格式化仍然需要提交。

CI/CD

Die GitHub操作工作流(.github/workflows/)也使用 uv:

  • 持续集成 (ci.yml):每次推动和PR - Linting,格式化,测试时运行
  • 发布 (release.yml) 在 push 上创建 main 自动创建新

发布人 python-semantic-release如果有传统的委托 (feat:, fix:等等)。发布后,将 uv.lock 自动 更新并与 [skip ci] 坚信的。

uv.lock 它是存储库的一部分,并确保可重复安装。之后 一 git pull 足够 uv sync --extra dev更新环境。

独立模式(无 MCP 服务器)

图像选择器(Web GUI)

uv run python -m recipe_processor.tools.image_selector.tools --standalone

自动打开浏览器GUI。加载 .env文件自动(通过 python-dotenv). 没有论据,图片就会出现 IMAGE_SUBDIRECTORY 装载。 可选,可以直接传输图像路径:

uv run python -m recipe_processor.tools.image_selector.tools --standalone pfad/zum/bild.jpg

HTML生成器

uv run python -m recipe_processor.tools.html_builder rezept.json

从包含食谱数据的 JSON 文件生成 HTML 文件。JSON 文件 包含与 build_recipe_html功能(recipe_name, ingredients, instructions等等)。加载 .env文件自动。

环境变量 (.env)

变量描述Default
IMAGE_SELECTOR_WORKING_DIR 工作目录os.getcwd()
IMAGE_SUBDIRECTORY 图片子目录(相对于Working Dir)"" (Working Yourself)

模板

在目录中 src/recipe_processor/assets/ 有两个HTML模板:

  • 模板.html -- 单个食谱 HTML 文件的模板。生成时替换占位符:
占位符内容
`, ` 食谱名称
``简要描述
`` 相对图像路径。
`

, , , 时间(Text) | , , , 时间标准(ISO 8601) | |港口| | | 所使用的厨房设备 (逗号分隔) | | 成分清单作为 | | 准备步骤如 | | Tips and Tips | | | 后值 | | ` 源语言 |

  • 索引模板.html -- 食谱模板 (index.html).删除占位符 `被类别部分取代。自动使用,如果原始目录中没有 index.html` 存在 。

成分说明

在成分列表中,可以用图案覆盖 --- Text --- 被标记。它们将自动进入 Text 转换。

相同数量的成分(“je”语法)

形状的成分 je 1 TL Kreuzkuemmel und Chilipulver 自动进入 单个条目分为相同数量:

je 1 TL Kreuzkümmel und Chilipulver  →  1 TL Kreuzkümmel
                                         1 TL Chilipulver
je 1 TL Salz, Pfeffer und Paprika    →  1 TL Salz
                                         1 TL Pfeffer
                                         1 TL Paprika

已知单位: g, kg, mg, l, ml, cl, dl, EL, TL, Stk, Pck, Pkg, Pr, Prise, Msp, Bd, Bund.

国家(cookware)

可选字段 cookware 接受设备列表并给予它们 在 HTML 的“蛋糕设备”部分中以逗号分隔。如果该字段缺少或是空的, 部分将完全隐藏。

可选字段和有条件的 HTML 块

字段 prep_time, cook_time, wait_time, cookware, tips, nutritionsource 是可选的。如果字段为空,则相应的HTML块将被删除。 完全省略(输出中没有空头)。

依赖关系

包装目的
fastmcpMCP服务器框架
Pillow图像处理
PyMuPDFPDF 图像提取
pytesseractOCR 文本识别
beautifulsoup4HTML解析(Rezept索引)
lxmlHTML解析器后端为BeautifulSoup提供支持
python-dotenv.env 文件加载(独立模式)
fastapiWeb框架浏览器GUI
uvicornASGI服务器燃料浏览器GUI

目录标签

目录标签

PythonClaude浏览器自动化食谱处理本地部署PDF解析HTML生成OCR自动化工具

支持客户端

Claude DesktopClaude

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

none

工具数量(toolCount,工具数)

5

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdionone部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP