Token导航 LogoToken导航

MCP Server · 文档知识

Pd Flow

PDFlow是一款利用多模态AI技术从PDF文档中智能提取和结构化内容的工具,支持多种输出格式如Markdown、JSON、HTML等,并提供Web界面和命令行接口。

未说明官方级别未说明来源级核验工具 0
PDF处理TypeScriptClaude文档转换Claude DesktopCursorVS Code

快速开始

公开资料没有提供安装命令,按仓库或官方文档接入。
作者 / 组织
Traves-Theberge
提供方
Traves-Theberge

工具数量

0

来源目录标注

资源数量

0

来源目录标注

提示词数量

0

来源目录标注

GitHub Star

6

仓库热度

收录来源

1 个

MCP World

选型结论

Pd Flow 属于文档知识类 MCP Server,公开资料标注 0 个工具,通过传输方式未标注接入,适配 Claude Desktop、Claude、Cursor,没有现成的安装命令;接入前要先准备 API Key。

分类

文档知识

传输方式

未说明

认证方式

API Key

部署方式

公开资料未说明

安装与配置

公开目录没有给出安装命令,需要按仓库 README安装;下面按同类条目的通用流程说明。

公开命令不是通用的启动方式,拼不出可靠配置示例;请在客户端 MCP 配置里按官方文档填写 command 和 args。

上手步骤

  1. 1

    先确认运行方式

    公开资料没有标注传输方式,先看仓库 README,确认是本地进程还是远程地址。

  2. 2

    获取服务

    公开目录没有给出安装命令,按仓库 README里的步骤安装或获取服务。

  3. 3

    写入客户端配置

    在客户端的 MCP 配置里填启动命令和参数,保存后完全退出客户端再打开,让新配置生效。

  4. 4

    验证是否可用

    连接成功后客户端会列出 0 个工具,随便调一个只读工具确认能返回结果。

接入前确认

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

公开资料仍需确认:安装命令

详细介绍

PDFlow

通过人工智能提取将PDF转换为结构化数据。

PDFlow是一个现代化的全栈PDF提取工具,它利用多模态AI从PDF文档中智能提取和构建内容。无论您需要Markdown格式的文档、JSON格式的数据还是HTML格式的报告,PDFlow都能通过web UI、CLI和AI代理集成提供准确的提取。

📚 查看完整文档 | 🚀 快速开始 | 🔌 API 参考

特性

核心功能

  • PDF上传:直观的拖放式PDF上传界面
  • CLI支持:通过命令行界面进行无头PDF处理,实现自动化
  • 图像转换:使用pdftocairo将PDF页面转换为WebP图像
  • AI提取:使用Google Gemini 2.0 Flash多模式AI进行智能提取
  • 多种格式:以Markdown、MDX、JSON、XML、YAML、HTML或CSV格式导出结果
  • 视觉进度:4步视觉跟踪器(上传→ 转换→ 提取→ 完成),实时更新
  • 丰富的预览:带有语法高亮显示和格式设置的渲染Markdown预览
  • 线程输出:通过实时流媒体查看结果
  • 深色模式:具有本地存储持久性的漂亮暗模式支持
  • 最小设计:灵感来自shadcn/ui的干净黑/白/灰色美学
  • 响应式设计:采用TailwindCSS 4的移动友好界面
  • 类型安全:带Zod验证的完整TypeScript实现
  • 会话存储API密钥:浏览器会话存储中安全的API密钥管理

新增:部署和AI集成

  • 🐳 Docker支持:使用生产就绪容器的多阶段构建
  • 🤖 MCP服务器:AI代理的模型上下文协议集成(Claude等)
  • 📡 REST API:用于自定义集成的完整API
  • 🔐 安全特性:文件验证、命令注入预防、容器化
  • 📚 完整文档网站:互动文档,包括全面的指南和示例
  • 📋 综合录井:具有文件持久性、Docker集成和高级过滤的双输出日志记录系统

技术栈

层技术
前端Next.js 16.0.1,React 19,TailwindCSS 4,Framer Motion
渲染React Markdown,重新键入高亮显示
状态状态
验证Zod
模板把手
人工智能模型谷歌Gemini 2.0 Flash Exp(多模式)
AI SDKVercel AI SDK
后端TypeScript+Next.js API路由
PDF处理pdftocairo(poppler-utils)
存储本地文件系统(上传、输出)

先决条件

  • Node.js 20+(Next.js 16需要)
  • npm或纱线
  • pdftocairo(poppler-utils)
  • Google Gemini API密钥

安装pdftocairo

Ubuntu/Debian:

sudo apt-get install poppler-utils

macOS:

brew install poppler

窗户: 下载并安装 Windows版poppler 并添加到PATH中。

设置

选项1:Docker(推荐)

# Set your API key
export GEMINI_API_KEY="your-api-key-here"

# Build and start with Docker Compose (includes proper user permissions)
USER_ID=$(id -u) GROUP_ID=$(id -g) docker-compose build
USER_ID=$(id -u) GROUP_ID=$(id -g) docker-compose up -d

# Access at http://localhost:3535

注: 建筑与 USER_ID 和 GROUP_ID 确保容器用户与主机用户匹配,防止装载卷的权限问题。

📦 有关完整的Docker文档,请参阅

方案2:地方发展

  1. 克隆存储库并安装依赖项:
git clone https://github.com/traves-theberge/pdflow.git
cd pdflow
npm install
  1. 运行开发服务器:
npm run dev
  1. 打开应用程序:

- 引导到 http://localhost:3001 - 点击右上角的设置齿轮图标 - 输入您的Google Gemini API密钥 - 点击“保存API密钥”

您的API密钥安全地存储在浏览器的会话存储中,并且不会发送到除Google的Gemini API之外的任何服务器。

用法

网络界面

  1. 配置API密钥:在“设置”中输入Gemini API密钥(仅限第一次)
  2. 选择输出格式:从Markdown、MDX、JSON、XML、YAML、HTML或CSV中选择
  3. 上传PDF:拖放或单击以选择PDF文件
  4. 处理:该应用程序自动将PDF转换为WebP图像,并使用AI提取数据
  5. 查看结果:在页面完成时实时查看提取的内容
  6. 下载:导出单个页面或合并下载所有页面

📚 有关完整的web界面指南,请参阅 Web使用文档

CLI(无头模式)

PDFlow包含一个命令行界面,用于在没有web UI的情况下进行无头PDF处理。

将PDF提取为结构化数据:

npm run pdflow -- extract 
 [options]

选项:

  • -f, --format :输出格式(markdown|json|xml|yaml|html|mdx|csv)\[默认:markdown\]
  • -o, --output :输出目录\[默认:./outputs\]
  • -k, --api-key :Gemini API密钥(或设置Gemini_API_key env var)
  • -a, --aggregate:将所有页面聚合到一个文件中
  • -v, --verbose:显示详细输出

示例:

# Extract PDF to markdown
npm run pdflow -- extract document.pdf -f markdown -o ./results

# Extract to JSON with aggregation
npm run pdflow -- extract document.pdf -f json -a

# Extract with custom API key
npm run pdflow -- extract document.pdf -k YOUR_API_KEY

# Extract with verbose output
npm run pdflow -- extract document.pdf -v

验证Gemini API密钥:

npm run pdflow -- validate-key
# or
npm run pdflow -- validate-key -k YOUR_API_KEY

生成MCP配置:

# Generate config for VS Code
npm run pdflow -- mcp-config --tool vscode

# Generate for Claude Desktop
npm run pdflow -- mcp-config --tool claude-desktop

# Generate for Cursor
npm run pdflow -- mcp-config --tool cursor

# Generate for Claude Code
npm run pdflow -- mcp-config --tool claude-code

# Use development server (port 3001)
npm run pdflow -- mcp-config --dev

# Use custom URL (e.g., Tailscale)
npm run pdflow -- mcp-config --url http://100.64.0.2:3535

CLI输出: CLI在输出文件夹中创建一个会话目录,其中包含:

  • 单个页面文件(例如。, page-1.md, page-2.md)
  • 元数据文件(例如。, page-1.meta.json)
  • 聚合文件(如果 -a 使用标志。, full.markdown)

📚 有关完整的CLI文档,请参阅 CLI使用指南

项目结构

/src
  /app
    /api
      /upload
        route.ts                      # PDF upload endpoint
      /process
        route.ts                      # Processing endpoint with progress
      /outputs/[sessionId]/[filename]
        route.ts                      # Output file serving
      /settings
        /validate-key
          route.ts                    # API key validation
    /components
      UploadForm.tsx                  # File upload component
      ProgressBar.tsx                 # Progress tracking with polling
      EnhancedOutputViewer.tsx        # Real-time threaded output display
      Settings.tsx                    # Settings modal with API key management
    /utils
      gemini-extractor.ts             # Gemini AI extraction logic
      aggregator.ts                   # Output aggregation
      prompt-builder.ts               # Dynamic prompt generation
    /store
      useAppStore.ts                  # Zustand state management
    page.tsx                          # Main page with dark mode
    layout.tsx                        # Root layout
    globals.css                       # Global styles
  /cli
    pdflow.ts                         # CLI entry point
    pdf-processor.ts                  # Headless PDF processing logic
/templates
  /formats
    markdown_format.hbs               # Markdown extraction template
    mdx_format.hbs                    # MDX extraction template
    json_format.hbs                   # JSON extraction template
    xml_format.hbs                    # XML extraction template
    yaml_format.hbs                   # YAML extraction template
    html_format.hbs                   # HTML extraction template
    csv_format.hbs                    # CSV extraction template
/scripts
  convert-to-webp.sh                  # PDF to WebP conversion script
/docs
  CLI_USAGE.md                        # Complete CLI documentation
/public
  PDFlow_Logo.png                     # Logo (icon only)
  PDFlow_Logo_W_Text.png              # Logo with text
/uploads                              # Temporary upload storage (gitignored)
/outputs                              # Processed output files (gitignored)
/test-cli-outputs                     # CLI test outputs (gitignored)

API终点

POST/api/上传

上传PDF文件并将其转换为WebP图像。

请求: multipart/form-data

  • file:PDF文件

答复:

{
  "success": true,
  "sessionId": "session_1234567890_abc123",
  "pageCount": 5,
  "message": "Successfully uploaded and converted PDF to 5 pages"
}

POST/api/进程

开始处理会话或聚合结果。

请求:

{
  "sessionId": "session_1234567890_abc123",
  "format": "markdown",
  "aggregate": true
}

答复:

{
  "sessionId": "session_1234567890_abc123",
  "status": "completed",
  "totalPages": 5,
  "processedPages": 5,
  "aggregate": {
    "format": "markdown",
    "totalPages": 5,
    "createdAt": "2024-01-01T00:00:00.000Z"
  }
}

GET/api/进程?会话ID=

获取会话的处理进度。

答复:

{
  "sessionId": "session_1234567890_abc123",
  "status": "processing",
  "totalPages": 5,
  "processedPages": 3,
  "processingTime": "15.23s"
}

环境变量

变量描述必填
GEMINI_API_KEYGoogle Gemini API密钥(可通过UI设置)可选\*
PORT服务器端口(默认为3000)否
NODE_ENV节点环境否

\*API键可以通过设置在应用程序UI中设置。如果已设置 .env.local,它将被用作后备方案。

发展

可用脚本

  • npm run dev -启动开发服务器
  • npm run build -为生产而建
  • npm run start -启动生产服务器
  • npm run lint -运行ESLint

添加新功能

  1. 新的输出格式:添加到 aggregator.ts 并更新格式选择器
  2. 自定义处理:修改 gemini-extractor.ts 用于不同的提取提示
  3. UI组件:添加到 /src/app/components 并进口 page.tsx

部署

维塞尔

  1. 推送到GitHub
  2. 将存储库连接到Vercel
  3. 添加 GEMINI_API_KEY 作为环境变量
  4. 部署

码头工人

FROM node:18-alpine
WORKDIR /app
COPY package*.json ./
RUN npm ci --only=production
COPY . .
RUN npm run build
EXPOSE 3000
CMD ["npm", "start"]

记录和监控

PDFlow v0.5.0+包括用于调试和监控的全面日志记录:

查看日志

# Watch logs in real-time
./scripts/view-logs.sh --follow

# Show only errors
./scripts/view-logs.sh --errors

# Filter by session ID
./scripts/view-logs.sh --session session_123

# View Docker logs
docker logs -f pdflow

日志文件

日志存储在:

  • 主机: ./logs/pdflow-YYYY-MM-DD.log
  • 容器: /app/logs/pdflow-YYYY-MM-DD.log
  • 码头工人: docker logs pdflow

配置

通过环境变量控制日志记录:

LOG_LEVEL=info              # debug|info|warn|error|critical
ENABLE_FILE_LOGGING=true    # Enable file-based logs
LOG_RETENTION_DAYS=7        # Days to keep logs

📋 有关完整的日志记录文档,请参阅 docs/LOGGING.md

故障排除

常见问题

  1. “未找到pdftocairo”

- 安装poppler-utils(请参阅先决条件)

  1. “未找到Gemini API密钥”

- 检查 .env.local 文件存在并且包含有效的API密钥

  1. “PDF转换失败”

- 确保PDF不受密码保护 - 检查文件大小限制 - 检查日志: ./scripts/view-logs.sh --errors

  1. “处理停留在0%”

- 检查浏览器控制台是否有错误 - 验证API终结点是否响应 - 审核日志: ./scripts/view-logs.sh --follow

  1. “脚本已退出,代码为1”

- 检查详细的错误日志: grep "Script failed" logs/pdflow-*.log - 验证是否安装了ImageMagick和poppler-utils - 查看日志中的stderr输出以了解特定错误消息

使用日志进行调试

# Find errors in today's logs
./scripts/view-logs.sh --today --errors

# Search for specific errors
grep "ERROR" logs/pdflow-*.log

# View session timeline
grep "session_YOUR_SESSION_ID" logs/pdflow-*.log

# Check Docker logs
docker logs --tail 100 pdflow

许可证

MIT许可证-有关详细信息,请参阅许可证文件。

贡献

  1. 分叉存储库
  2. 创建要素分支
  3. 进行更改
  4. 如果适用,添加测试
  5. 提交拉取请求

支持

对于问题和疑问:

  • 在GitHub上打开一个问题
  • 检查上面的故障排除部分

工具与能力

工具数量

0

资源数量

0

提示词数量

0

能力标签

PDF处理TypeScript本地部署AI数据提取多格式输出自动化工具文档转换

支持客户端

Claude DesktopClaudeCursorVS Code

数量来自来源目录的标注,具体工具清单以官方文档为准。

典型使用场景

读长文档提问

把 PDF、Markdown 和笔记交给模型,按章节追问细节。

整理知识库

把零散资料归档、打标签,检索时更容易命中。

批量出摘要

提取要点,输出能直接引用的段落。

选择建议

值得选的地方

  • 只提供 0 个工具,职责集中,接入后不容易误操作。
  • 已经适配 Claude Desktop、Claude、Cursor,换客户端不用重新研究配置。
  • 公开说明写得比较完整,接入前能看清能力边界。

先想清楚的地方

  • 公开资料没有可直接复制的安装命令,第一次接入要自己找入口。
  • 需要自备API Key,没有凭据没法直接试。
  • 第三方目录整理,版本更新和行为细节以官方仓库为准。

更适合

  • 需要在文档知识场景里让模型直接调用外部能力的人。
  • 已经在用 Claude Desktop 的用户,接入路径最短。
  • 愿意照着官方文档一步步配环境的人。

不太适合

  • 暂时拿不到API Key的人。
  • 希望一条命令就装好、不想看文档的人。
  • 需要厂商级 SLA 和技术支持的生产环境。

同类对比

5 个同类
MCP Server工具数传输方式安装命令收录来源最后核验
Pd Flow

MCP World · 本页

0未说明未标注1 个2026-05-17
Cherry Studio

MCP World

0未说明未标注1 个2026-05-17
Pdf Math Translate

MCP World

0stdio有1 个2026-05-17
report generation

MCP World

0stdio有1 个2026-05-17
Anything To Notebooklm

MCP World

0stdio有1 个2026-05-17

按同分类和工具数量挑出最接近的几条,字段以各自详情页为准。

常见问题

5 条

Pd Flow 怎么安装?

公开目录没有给出可以直接复制的安装命令,需要按仓库 README里的步骤安装;装好后写进客户端的 MCP 配置再重启。

Pd Flow 怎么在 Claude Desktop、Cursor 里配置?

它是传输方式未标注,客户端配置里要写启动命令和参数,运行环境是 未标注;保存后完全退出客户端再打开,配置才会生效。

Pd Flow 收费吗?

本站只整理公开资料,不代收费用,也没有标注具体价格。是否收费取决于服务本身和背后的接口额度,正式使用前按官方说明确认。

Pd Flow 需要 API Key 吗?

公开资料标注的认证方式是API Key,也就是要先拿到凭据才能连上;凭据只填在自己本地的配置里,不要写进公开仓库。

Pd Flow 支持哪些客户端?

公开资料标注支持 Claude Desktop、Claude、Cursor、VS Code;其他客户端只要能配置 MCP Server,也能用同样的命令或地址接入。

来源信息

继续浏览同类 MCP