Token导航 LogoToken导航

MCP Server · 文档知识

Pdffigures MCP Server

一个基于FastAPI的PDF图表和表格提取服务,适用于学术研究、机器学习数据集创建和临床研究数据挖掘。

stdio官方级别未说明来源级核验工具 1
PDF处理机器学习Python

快速开始

作者 / 组织
vlln
提供方
vlln
运行时
Docker

工具数量

1

来源目录标注

资源数量

0

来源目录标注

提示词数量

0

来源目录标注

GitHub Star

7

仓库热度

收录来源

1 个

MCP World

选型结论

Pdffigures MCP Server 属于文档知识类 MCP Server,公开资料标注 1 个工具,通过stdio 本地进程接入,客户端适配情况以官方文档为准,有可以直接复制的安装命令;接入前先确认权限范围。

分类

文档知识

传输方式

stdio

认证方式

无需认证

部署方式

公开资料未说明

安装与配置

安装命令

docker run -d -p 5001:5001 pdffigures2

客户端配置示例

{
  "mcpServers": {
    "pdffigures-mcp-server": {
      "command": "docker",
      "args": [
        "run",
        "-d",
        "-p",
        "5001:5001",
        "pdffigures2"
      ]
    }
  }
}

按公开安装命令拼出来的示例,字段名和参数以仓库 README 为准;带 YOUR_API_KEY 这类占位符的位置记得换成自己的值。

上手步骤

  1. 1

    准备运行环境

    stdio 服务在本地起进程,需要先装好 Docker,再按安装命令拉取依赖。

  2. 2

    安装服务

    复制下面的安装命令执行;命令里带占位符的位置换成自己的密钥或路径。

  3. 3

    写入客户端配置

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

  4. 4

    验证是否可用

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

接入前确认

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

详细介绍

图提取器API和MCP服务器

使用此基于FastAPI的服务从PDF文档中提取图表。图形提取器API和MCP服务器为PDFFigures 2.0提供了一个简单的HTTP接口,这是艾伦人工智能研究所开发的一个强大的图形提取系统。

此API包装器非常适合集成到各种应用程序和工作流中,尤其是用于Retrieval-AugedGeneration(RAG)应用程序。

MCP服务器,由 FastMCP,将PDF提取功能作为MCP工具公开。这允许与可以自动调用提取服务的AI代理和工作流无缝集成。

  • 服务器承载 extract_figures_from_pdf 工具,可以通过HTTP请求调用 /mcp 终点。此工具接收PDF URL,处理文档,并以结构化JSON格式返回提取的图形和表格。
默认的MCP服务器url: http://localhost:5001/mcp

关于PDFFigures 2.0

这项API服务建立在PDFFigures 2.0之上,这是艾伦人工智能研究所的一个基于标量的项目。PDFFigles 2.0专门设计用于从计算机科学领域的学术文档中提取图形、标题、表格和章节标题。他们的学术论文《PDFFigures 2.0:从研究论文中挖掘数字》(Clark和Divvala,2016)描述了这项原创工作。你可以看报纸 这里 并参观 PDFFigures 2.0网站.

┌─────────────────┐      ┌──────────────────┐      ┌────────────────┐
│   Your App      │ HTTP │ Figure Extractor │ JNI  │  PDFFigures    │
│  (Any Language) │──────►  API & MCP Server│──────►     2.0        │
│                 │      │  Python(FastAPI) │      │  (Scala/JVM)   │
└─────────────────┘      └──────────────────┘      └────────────────┘

特性

  • PDF图形和表格提取
  • 支持本地和远程PDF文件
  • 提取的表格和图表统计
  • Docker支持,易于部署
  • PDF解析的可视化选项

FastMCP工具

该项目现在包括 FastMCP 该工具允许以编程方式调用PDF提取服务。这 extract_figures_from_pdf 该工具可用于从给定URL的PDF中提取数字。

用例

  1. *机器学习数据集创建*

从临床试验报告和研究论文中提取视觉数据,为医学图像分析和人工智能模型构建训练数据集,使研究人员能够有效地汇总数据,以训练医疗诊断中的机器学习算法。

  1. *临床研究数据挖掘*

自动从医学研究文章中提取和分类数据,捕获治疗效果图、患者结果图和实验结果图等关键可视化数据,以支持系统评价和荟萃分析。

  1. *学术文献综述与教育*

从学术出版物中快速编译全面的视觉库,使研究人员和教育工作者能够创建教学资源,比较研究方法,并跟踪跨科学学科的视觉趋势。

Docker部署

构建并启动提取服务器:

docker build -t pdffigures2 .
docker run -d -p 5001:5001 pdffigures2

图片是 约286MB --通过Alpine基础进行优化, jlink 最小JRE和pip清理:

┌──────────┬───────┬────────┬───────────────┐
│   指标   │ 原始  │ 优化后 │     变化      │
├──────────┼───────┼────────┼───────────────┤
│ 基础镜像 │ slim  │ alpine │     -70MB     │
│ JRE      │  apt  │ jlink  │     +42MB     │
│ pip 包   │ 原始  │ 清理后 │     -24MB     │
│ 系统包   │  apt  │  apk   │     -12MB     │
├──────────┼───────┼────────┼───────────────┤
│ 镜像大小 │ 452MB │ 286MB  │ -166MB (-37%) │
└──────────┴───────┴────────┴───────────────┘

测试API

  • 打开 http://localhost:5001/docs 查看API文档。
  • 使用 curl 要测试从PDF URL中提取:
  curl -X POST http://localhost:5001/api/extract \
    -F "pdf_url=https://example.com/sample.pdf"

代理技能(非MCP)

API客户端调用提取服务器并在本地下载渲染的图形。专为没有MCP支持的代理环境而设计。

# Copy config and point to the server
cp .env.example .env
# (edit .env if the server is remote)

# Run extraction against a local PDF
skills/pdffigures2/scripts/pdffigures2 paper.pdf -o ./extracted/

脚本将PDF发布到 PDFFIGURES2_API_URL,下载每个渲染的图形,并将结构化的JSON摘要打印到stdout。看 skills/pdffigures2/SKILL.md 获取面向代理的完整文档。

用法

从PDF中提取图表

这 /api/extract 端点现在支持PDF文件上传和PDF URL。

使用API

您可以向发送POST请求 /api/extract 其中之一:

  • A. file (多部分/表单数据)包含PDF。
  • A. pdf_url (表单数据)包含PDF的URL。

API将返回一个JSON响应,其中包含提取的图形和表格,包括完整的 renderURL 路径。

JSON响应示例(imageText 为简洁起见截断):

[
  {
    "caption": "TABLE III CMAPSS DATASET ATTRIBUTES",
    "captionBoundary": {
      "x1": 113.12599182128906,
      "x2": 225.1184844970703,
      "y1": 116.80506896972656,
      "y2": 130.57305908203125
    },
    "figType": "Table",
    "imageText": [
      "Required", "fan", "conversion", "speed", "rpm", "High-pressure", "turbines", "cool", "air", "flow",
      "lbm/s", "Low-pressure", "turbines", "cool", "air", "flow", "lbm/s", "Bleed", "enthalpy", "-", "Required"
    ],
    "name": "III",
    "page": 5,
    "regionBoundary": {
      "x1": 46.8,
      "x2": 291.12,
      "y1": 140.88,
      "y2": 385.91999999999996
    },
    "renderDpi": 300,
    "renderURL": ""
  },
  {
    "caption": "Fig. 3. Agentic AI implementation with Google ADK.",
    "captionBoundary": {
      "x1": 335.4129943847656,
      "x2": 516.9002685546875,
      "y1": 228.6050567626953,
      "y2": 233.40704345703125
    },
    "figType": "Figure",
    "imageText": [],
    "name": "3",
    "page": 5,
    "regionBoundary": {
      "x1": 302.88,
      "x2": 549.12,
      "y1": 86.88,
      "y2": 216
    },
    "renderDpi": 300,
    "renderURL": ""
  },
  {
    "caption": "TABLE I COMPARISON BETWEEN AI AGENTS AND AGENTIC AI",
    "captionBoundary": {
      "x1": 204.9189910888672,
      "x2": 390.3569641113281,
      "y1": 54.10902404785156,
      "y2": 67.87701416015625
    },
    "figType": "Table",
    "imageText": [
      "pert", "systems", "LLM-based", "agents,", "multi-agent", "coordination,", "intent-based", "workflows", "Task",
      "Scope", "Focused", "on", "short-term,", "well-defined", "tasks", "Oriented", "toward", "long-term,", "dynamic,",
    ],
    "name": "I",
    "page": 2,
    "regionBoundary": {
      "x1": 51.839999999999996,
      "x2": 543.12,
      "y1": 77.75999999999999,
      "y2": 217.92
    },
    "renderDpi": 300,
    "renderURL": ""
  },
  {
    "caption": "Fig. 1. Traditional AI Agent vs. Agentic AI",
    "captionBoundary": {
      "x1": 224.30499267578125,
      "x2": 370.9708251953125,
      "y1": 448.1660461425781,
      "y2": 452.968017578125
    },
    "figType": "Figure",
    "imageText": [],
    "name": "1",
    "page": 2,
    "regionBoundary": {
      "x1": 45.839999999999996,
      "x2": 549.12,
      "y1": 230.88,
      "y2": 436.08
    },
    "renderDpi": 300,
    "renderURL": ""
  },
  {
    "caption": "TABLE IV SUMMARY OF ENGINE MAINTENANCE ACTIONS",
    "captionBoundary": {
      "x1": 215.99301147460938,
      "x2": 379.2913513183594,
      "y1": 54.10902404785156,
      "y2": 67.87701416015625
    },
    "figType": "Table",
    "imageText": [
      "#", "Engines", "RUL", "Range", "Recommended", "Action", "Priority", "Cost", "(USD)", "Labor", "Hours", "Assigned",
      "Staff", "Scheduled", "Time", "15", "82–124", "MONITOR", "low", "0", "0", "[jr", "mechanic]", "Within", "7", "days"
    ],
    "name": "IV",
    "page": 7,
    "regionBoundary": {
      "x1": 48.96,
      "x2": 549.12,
      "y1": 77.75999999999999,
      "y2": 135.12
    },
    "renderDpi": 300,
    "renderURL": ""
  },
  {
    "caption": "TABLE II KEY COMPONENTS OF INTENTION PROCESSING",
    "captionBoundary": {
      "x1": 345.09295654296875,
      "x2": 507.22100830078125,
      "y1": 417.8482666015625,
      "y2": 431.6162414550781
    },
    "figType": "Table",
    "imageText": [
      "Targets", "Specify", "the", "resources", "or", "entities", "to", "which", "the", "intent", "applies.", "Can", "be",
      "defined", "statically", "(explicit", "list)", "or", "dynamically", "(using", "filters", "or", "criteria).", "Context"
    ],
    "name": "II",
    "page": 3,
    "regionBoundary": {
      "x1": 302.88,
      "x2": 549.12,
      "y1": 441.84,
      "y2": 677.04
    },
    "renderDpi": 300,
    "renderURL": ""
  },
  {
    "caption": "Fig. 2. Proposed framework for Industry 5.0 applying intent-based and Agentic AI.",
    "captionBoundary": {
      "x1": 159.51600646972656,
      "x2": 435.7596435546875,
      "y1": 288.3310241699219,
      "y2": 293.13299560546875
    },
    "figType": "Figure",
    "imageText": [],
    "name": "2",
    "page": 4,
    "regionBoundary": {
      "x1": 45.839999999999996,
      "x2": 549.12,
      "y1": 49.68,
      "y2": 276
    },
    "renderDpi": 300,
    "renderURL": ""
  }
]

开发人员设置

如果你想修改代码或在没有Docker的情况下在本地运行,请克隆存储库:

git clone https://github.com/vlln/pdffigures-mcp-server.git
cd pdffigures-mcp-server

使用figure_extractor.py进行测试

figure_extractor.py 是一个CLI工具,用于针对正在运行的API服务器测试提取。它向API发送本地PDF,并下载提取的数字:

# Start the server first (via Docker or uvicorn), then:
python figure_extractor.py 
 --output_dir ./output

选项:

  • --output_dir --保存下载图形的目录(默认: ./output)
  • --url -自定义API终结点(默认值: http://localhost:5001/api/extract)

应用结构

project/
├── Dockerfile                # Multi-stage Alpine image (server + jlink JRE + pdffigures2 JAR)
├── .dockerignore
├── .env.example              # Example config for the Agent Skill
├── app/                      # FastAPI web service code
│   ├── __init__.py
│   ├── app.py                # API endpoints and MCP Server
│   ├── service.py            # Runs pdffigures2 JAR via subprocess
│   └── utils.py              # File I/O helpers
├── skills/                   # Agent Skills (non-MCP alternative)
│   └── pdffigures2/          # API client wrapper for pdffigures2
├── figure_extractor.py       # CLI tool for testing extraction
└── README.md

致谢

这个项目是 黄实验室/图形提取器我们感谢原作者的工作。

许可证

此项目根据Apache许可证2.0获得许可。

工具与能力

工具数量

1

资源数量

0

提示词数量

0

能力标签

PDF处理Python本地部署图表提取学术研究机器学习数据挖掘

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

典型使用场景

读长文档提问

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

整理知识库

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

批量出摘要

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

选择建议

值得选的地方

  • 只提供 1 个工具,职责集中,接入后不容易误操作。
  • 有现成的安装命令,不用自己找入口,照着跑就能起服务。
  • 公开说明写得比较完整,接入前能看清能力边界。

先想清楚的地方

  • stdio 方式要求本地装好 Docker,换机器要重新装一遍。
  • 公开摘要偏短,具体能力和限制要回到仓库确认。
  • 第三方目录整理,版本更新和行为细节以官方仓库为准。

更适合

  • 需要在文档知识场景里让模型直接调用外部能力的人。
  • 想先快速试一下、能接受在本地跑服务的人。

不太适合

  • 完全不想在本地装环境的人。
  • 需要厂商级 SLA 和技术支持的生产环境。

同类对比

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

MCP World · 本页

1stdio有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 条

Pdffigures MCP Server 怎么安装?

公开资料给出的安装命令是 docker run -d -p 5001:5001 pdffigures2,运行环境为 Docker。装完后按客户端要求写进 MCP 配置,重启客户端生效。

Pdffigures MCP Server 怎么在 Claude Desktop、Cursor 里配置?

它是stdio 本地进程,客户端配置里要写启动命令和参数,运行环境是 Docker;保存后完全退出客户端再打开,配置才会生效。

Pdffigures MCP Server 收费吗?

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

Pdffigures MCP Server 需要 API Key 吗?

公开资料标注为无需认证,装好就能连;如果实际调用时报鉴权错误,按官方文档补上凭据。

Pdffigures MCP Server 支持哪些客户端?

公开资料没有标注具体客户端;能配置本地 MCP 命令的客户端都能接,配置方式参照官方文档。

来源信息

继续浏览同类 MCP