Token导航 LogoToken导航TokenDH.com
tableshot (Bespoke34) logo
文档知识stdio官方级别未说明来源级核验

tableshot (Bespoke34)

MCP Server

TableShot是一款专为PDF表格提取设计的MCP服务器,无需编写代码即可为AI助手提供表格读取能力。

工具数

2

提示词数

0

GitHub Stars

1

资源数

0
PDF处理PythonClaudeClaude DesktopClaudeCursorWindsurf

安装说明

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

作者 / 组织

Bespoke34

提供方

Bespoke34

最后核验

2026/5/17 20:21

快速接入

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

命令预览

pip install tableshot

详细介绍

TableShot

用于PDF表格提取的唯一MCP服务器。 让任何人工智能助手都能从PDF中读取表格——没有其他工具能做到这一点。

![PyPI](https://pypi.org/project/tableshot/) ![License: MIT](LICENSE) ![Tests](https://github.com/Bespoke34/tableshot/actions) ![Python 3.10+](https://pypi.org/project/tableshot/)

Camelot、Tabula和Table Transformer是Python库,它们需要开发人员编写代码。TableShot是一个MCP服务器:Claude Desktop、Cursor和Windsurf可以直接使用它,无需任何代码。

安装约33MB。没有模型下载。没有API密钥。结果\

问题

让任何AI助手从PDF中读取表格。它不能——你得到汤这个词:

Sales Report Q1 2024 Product Price Quantity Total Widget A $10.00 100
$1,000.00 Widget B $25.50 50 $1,275.00 Widget C $5.99 200 $1,198.00

TableShot为您呈现:

产品价格数量总计
小部件A10.00美元1001000.00美元
小部件B25.50美元50美元1275.00美元
小部件C5.99美元200美元1198.00美元
小部件D149.00美元101490.00美元

快速开始

克劳德桌面/光标/风帆

添加到MCP配置中:

{
  "mcpServers": {
    "tableshot": {
      "command": "uvx",
      "args": ["tableshot"]
    }
  }
}

然后问: *“从/path/to/report.pdf中提取表格”*

pip install tableshot

作为独立的MCP服务器运行:

tableshot              # stdio transport (for MCP clients)
python -m tableshot    # same thing

工具

工具它做什么
extract_tables将所有表提取为Markdown、CSV、JSON或HTML格式
list_tables快速扫描——提取前预览表格

extract_tables

source: str           # File path or URL to a PDF (or image with [ml] extra)
pages: str = "all"    # "all", "1", "1-3", "1,3,5"
format: str = "markdown"  # "markdown", "csv", "json", "html"

list_tables

source: str           # File path or URL to a PDF
pages: str = "all"    # "all", "1", "1-3", "1,3,5"

返回找到的每个表的表计数、维度、标题和预览行。

例子

财务报告(带边框的表格)

输入: 贝莱德风格的季度收益PDF

输出(降价):

|                                      | Q3 2023    | Q3 2022    | 9M 2023    | 9M 2022    |
| ------------------------------------ | ---------- | ---------- | ---------- | ---------- |
| Total revenue                        | $4,522     | $4,311     | $13,228    | $13,536    |
| Total expense                        | 2,885      | 2,785      | 8,538      | 8,578      |
| Operating income                     | $1,637     | $1,526     | $4,690     | $4,958     |
| Operating margin                     | 36.2%      | 35.4%      | 35.5%      | 36.6%      |

提取于 25毫秒.

多表文档

输入: PDF与员工目录+预算摘要在同一页面上

输出: 这两个表都是用正确的标题分别提取的:

Table 1: 3 rows x 3 cols (Name, Department, Email)
Table 2: 4 rows x 2 cols (Category, Amount)

宽桌(8列,横向)

| ID  | Name  | Q1  | Q2  | Q3  | Q4  | Total | Status |
| --- | ----- | --- | --- | --- | --- | ----- | ------ |
| 1   | Alpha | 100 | 150 | 200 | 250 | 700   | Active |
| 2   | Beta  | 90  | 110 | 130 | 170 | 500   | Active |
| 3   | Gamma | 0   | 0   | 50  | 80  | 130   | New    |

所有4种输出格式(Markdown、CSV、JSON、HTML)均可用于每次提取。

基准测试

在10个PDF文件上进行了测试,涵盖了有边框的表格、多表格页面、多页面文档, 特殊字符、宽表和真实财务报表。

度量结果
带边框的表格精度8/8完全匹配
速度(带边框的表格)每次提取4-25ms
速度(3页财务PDF)182毫秒
输出格式有效性36/36通行证(9份PDF x 4种格式)

测试数据

生成的夹具--单击 来源 为了查看输入的PDF, 输出 查看TableShot提取的内容:

夹具描述来源输出速度
simple_bordered4列销售报告(产品、价格、数量、总计)PDF提取10ms
multi_table一页两表:员工目录+预算汇总PDF提取10ms
single_row最小表--表头+一个数据行PDF提取4ms
multi_page每页一张表,共2页PDF提取9毫秒
empty_page仅第1页文本;第2页有一张表PDF提取6ms
special_chars带有 $, :, ", &, <>PDF提取6ms
wide_table8列横向表格(第1季度至第4季度,总计,状态)PDF提取11毫秒

真实世界的PDF(由于大小/许可,不包括在仓库中):

PDF描述表格速度
贝莱德模拟生成贝莱德季度收益表的模拟(5列)1个表,11行25ms
财务报表示例具有复杂视觉格式的3页财务报表(155KB)3个表,75行182ms
NHM表格包含55个表格的56页大文档(25MB)55个表格,2321行5.8秒

完全机器可读的结果 benchmarks/results.json.比较前后的详细信息请参见 基准/结果.md.

vs其他工具

TableShotCamelotTabula py表格转换器
安装~33MB,无其他需要Ghostscript需要Java(100-300MB)需要PyTorch(700MB-5GB)
速度~10ms/表>20s最坏情况变量(JVM启动)2-5s/页
带边框的桌子优秀优秀良好优秀
无界良好(文本回退)较差更好的检测最佳
MCP支持本地没有
维护活跃~5年过时活跃活跃

需要扫描的PDF或图像?

基本安装处理带有文本层的原生PDF(90%以上的实际用例)。 对于扫描的文档和图像:

pip install tableshot[ml]     # Table Transformer for image-based tables
pip install tableshot[ocr]    # OCR for scanned documents (ONNX, no PyTorch)
pip install tableshot[all]    # Everything

随着 [ml] 安装后,TableShot会自动检测PDF是否有文本层:

  • 文本层存在 --使用pdfplumber(快速,~10ms)
  • 扫描/无文本层 --使用Table Transformer进行检测,使用pdfplumber进行文本提取
  • 图像文件 (PNG、JPEG)-使用表格转换器+OCR(需要 [ocr])

您还可以强制ML后端: extract_tables("/path/to/scan.pdf", backend="ml")

运作原理

PDF/Image ──> Smart Router ──> Table Detection ──> Cell Extraction ──> Formatted Output
                  |                                                        |
                  |  PDF with text layer:                                  |  Markdown
                  |    pdfplumber (lines → text fallback)                  |  CSV
                  |                                                        |  JSON
                  |  Scanned PDF / Image (with [ml]):                      |  HTML
                  |    Table Transformer → pdfplumber text / OCR           |
  • pdfplumber 处理PDF解析和表检测(MIT)
  • pypdfium2 将PDF页面渲染为ML后端的图像(Apache-2.0)
  • 变压器表 (可选 [ml])检测图像中的表格(MIT)
  • MCP-SDK 通过stdio传输将工具暴露给AI助手(MIT)

基本安装总量:~33MB。没有模型下载。无需GPU。

已知限制

所有基于规则的PDF表格提取器(包括Camelot和Tabula)都有这些限制:

  • 具有视觉格式的财务报表 --由空格而非单元格边框定位的金额可能会在列之间分割
  • 扫描的PDF/图像 --基本安装中没有OCR(使用 tableshot[ml]tableshot[ocr])
  • 含有方程式的科学论文 --内联数学中断表边界检测
  • 复杂的无边框表格 --列对齐不明确会导致误检测

我们对此是诚实的。对于边缘情况, tableshot[ml] 添加了Table Transformer支持。

贡献

git clone https://github.com/Bespoke34/tableshot.git
cd tableshot
pip install -e ".[dev]"
pip install fpdf2                 # for generating test fixtures
python tests/generate_fixtures.py # create test PDFs
pytest -m "not slow"              # run 160 tests (skip ML tests)
pytest                            # run all 167 tests (needs [ml] extra)
ruff check src/ tests/            # lint
  • 95%的测试覆盖率,所有测试必须通过
  • 抹布干净,无绒布警告
  • MIT许可证——所有依赖项必须与MIT/Apache-2.0/BSD兼容

许可证

麻省理工学院

目录标签

目录标签

PDF处理PythonClaude本地部署表格提取MCP服务器无代码工具AI集成

支持客户端

Claude DesktopClaudeCursorWindsurf

接入字段

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

stdio

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

none

工具数量(toolCount,工具数)

2

资源数量(resourceCount,资源数)

0

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

0

权限和风险

stdionone部署方式未说明

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

安装前确认

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

来源信息

继续浏览同类 MCP