mcpField
S
Suparse

Suparse

本地服务
suparse.com生产力01 周前更新

关于 Suparse

Suparse MCP Server 将 Suparse 文档处理 API 接入本地 MCP 客户端,适用于需要从文件中提取结构化数据的团队。它支持单文件和文件夹处理、模板或自动识别架构,并可导出多种格式。

主要功能

  1. 01从文档提取结构化数据
  2. 02批量处理文件夹
  3. 03使用模板或自动识别架构
  4. 04拆分混合多页文档
  5. 05导出 JSON、CSV、XLSX
  6. 06下载结果并清理文档

适用场景

  1. 01将 PDF 发票提取为结构化数据
  2. 02批量处理文件夹中的文档
  3. 03把提取结果保存为 CSV 或 XLSX

MCP 相关

这是通过 stdio 运行的本地 MCP 服务,连接 Suparse Document Processing API。它向客户端提供文件提取、任务查询和结果下载等工具;可读取和写入服务进程有权限访问的本地路径。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"suparse": {
"command": "npx",
"args": [
"-y",
"@suparse/mcp"
],
"env": {
"SUPARSE_API_KEY": "<SUPARSE_API_KEY>"
}
}
}
}
启动命令npx -y @suparse/mcp
需要配置的环境变量
SUPARSE_API_KEY密钥Suparse API key used to authenticate requests.

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npm@suparse/mcp1.5.0

工具

6

收录的工具列表 · 更新于 3 周前

参数类型必填说明
file_pathstring是受支持文档文件的本地路径。
template_idstring否可选的提取模板 ID。仅使用 list_templates 中的非系统团队模板 ID。不要直接传入系统模板 ID;请先让用户将匹配的系统模板添加到其模板中。省略此项可让 Suparse 自动检测。
splitboolean否启用对包含混合文档类型的多页文档进行自动拆分。
cleanupboolean否仅在 result_mode return_json 下有效。返回 JSON 结果后删除已处理的 Suparse 文档,因此之后无法通过这些文档 ID 获取导出文件。
result_modeenum否控制是否直接返回 JSON 格式的提取结果。只有需要在 MCP 响应中获取完整 JSON 提取结果时才使用 return_json。其他情况下,可通过 download_results 以所需格式获取结果defer | return_json
api_urlstring否可选的 API 基础 URL。默认使用 SUPARSE_API_URL 或 Suparse 生产 API。

详细介绍

Suparse MCP 服务

适用于 Suparse 文档处理 API 的 MCP stdio 服务。可从 Claude Code 和 Codex 等本地 MCP 客户端调用,将文档中的结构化数据提取为 JSON、CSV、XLSX 或 Google Sheets;处理单个文件或文件夹,包括加密的 PDF;让 Suparse 自动检测提取架构或应用团队模板;自动创建架构;拆分混合的多页文档;并按文档 ID 下载或清理结果。

安全边界

这是一个本地 stdio MCP 服务。连接的 MCP 客户端可以要求它读取本地文档路径,并在服务进程有权限的位置写入导出文件。请仅将它连接到你信任的 MCP 客户端和工作区。

要求

  • Suparse API 密钥
  • Node.js 20+

身份验证

MCP 服务从以下位置读取凭据:

  1. SUPARSE_API_KEY
  2. ~/.config/suparse/config.json

建议通过客户端的环境变量或密钥输入功能传递 SUPARSE_API_KEY。备用文件由 Suparse 实现,内容为 { "apiKey": "your_api_key" }。请将其作为凭据文件妥善保护。

请在下方示例中将 your_api_key 替换为实际密钥。客户端的 env 设置和 CLI --env 选项可能会将密钥保存到客户端配置中;请勿将包含真实密钥的文件提交到 Git 或放入共享工作区。包含密钥的 CLI 命令也可能出现在 shell 历史记录中。请尽可能使用范围受限的 API 密钥。

本地安装

请先安装所选客户端,并确保它可以使用 Node.js 20+ 和 npx。这些配置会将 @suparse/mcp 作为本地 stdio 进程启动:

请将 JSON 示例合并到现有配置中,而不要替换其他服务。连接后,使用模板列表检查验证 Suparse 身份验证。

Claude Code

使用用户级作用域为所有项目安装:

claude mcp add --scope user --transport stdio suparse \
  --env SUPARSE_API_KEY=your_api_key \
  -- npx -y @suparse/mcp

请将服务名称(suparse)放在 --env 之前;否则 Claude Code 可能会将其解析为另一个环境变量,并报告 Invalid environment variable format。

若要修改现有注册(例如更改 API 密钥或启动命令),请先移除,再重新运行添加命令:

claude mcp remove --scope user suparse

请使用原安装时的名称和作用域。对于注册名称为 suparse-local 的用户级本地测试,请运行 claude mcp remove --scope user suparse-local。添加更新后的注册信息后,请完全退出 Claude Code,再启动新的会话以加载新配置。

检查配置和连接:

claude mcp list
claude mcp get suparse

在 Claude Code 中,使用 /mcp 查看状态和工具,然后运行模板列表检查。请参阅 Claude Code MCP 文档。

Claude Desktop

在 macOS 上,打开配置文件 ~/Library/Application Support/Claude/claude_desktop_config.json;在 Windows 上,打开 %APPDATA%\Claude\claude_desktop_config.json。将 Suparse 添加到 mcpServers 部分:

{
  "mcpServers": {
    "suparse": {
      "command": "npx",
      "args": ["-y", "@suparse/mcp"],
      "env": {
        "SUPARSE_API_KEY": "your_api_key"
      }
    }
  }
}

请完全退出并重新打开 Claude Desktop,确认 Suparse 出现在可用工具中,然后运行模板列表检查。

如果 Windows 报告 npx 进程启动错误,请将该服务的 command 和 args 替换为:

{
  "command": "cmd",
  "args": ["/c", "npx", "-y", "@suparse/mcp"]
}

请保留现有的 env 块。此解决方法仅适用于无法直接启动 npx.cmd 的客户端。

Codex

推荐通过 CLI 安装:

codex mcp add suparse \
  --env SUPARSE_API_KEY=your_api_key \
  -- npx -y @suparse/mcp

安装后,在 ~/.codex/config.toml 中现有的 [mcp_servers.suparse] 表内添加 tool_timeout_sec = 300。CLI 命令不会设置此超时时间。

或者,在 ~/.codex/config.toml 或项目范围的 .codex/config.toml 中手动配置服务:

[mcp_servers.suparse]
command = "npx"
args = ["-y", "@suparse/mcp"]
tool_timeout_sec = 300

[mcp_servers.suparse.env]
SUPARSE_API_KEY = "your_api_key"

tool_timeout_sec 最多为 Suparse 提取工具预留五分钟以完成操作;Codex 的默认值为 60 秒。CLI 和 IDE 扩展共用此配置。请参阅 Codex MCP 文档。

验证已配置的服务:

codex mcp list

在交互式 Codex 会话中,使用 /mcp 检查活动服务,然后运行模板列表检查。

Cursor

将以下内容添加到 ~/.cursor/mcp.json,以用于所有项目;或添加到 .cursor/mcp.json,以用于当前项目:

{
  "mcpServers": {
    "suparse": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "@suparse/mcp"],
      "env": {
        "SUPARSE_API_KEY": "${env:SUPARSE_API_KEY}"
      }
    }
  }
}

启动 Cursor 前,请在其环境中设置 SUPARSE_API_KEY;${env:SUPARSE_API_KEY} 引用可避免将密钥写入 JSON 文件。更改环境后,请重启 Cursor。或者,将密钥放入一个未跟踪的个人配置文件中。

打开 Cursor 的 MCP 设置,确认 Suparse 已启用且其工具可用,然后在 Agent 聊天中运行模板列表检查。请参阅 Cursor MCP 文档。

VS Code / GitHub Copilot

对于 Copilot CLI,请通过以下命令安装并验证:

copilot mcp add suparse \
  --env SUPARSE_API_KEY=your_api_key \
  --timeout 300000 \
  -- npx -y @suparse/mcp
copilot mcp list

超时时间以毫秒为单位,最多允许五分钟用于工具发现和调用。然后在 Copilot CLI 中运行模板列表检查。请参阅 Copilot CLI 命令参考。

若要使用可移植的 Copilot 配置,请在工作区根目录中创建 .mcp.json。若要进行个人安装,请使用 ~/.copilot/mcp-config.json(如果已配置 $COPILOT_HOME,则使用 $COPILOT_HOME/mcp-config.json):

{
  "mcpServers": {
    "suparse": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "@suparse/mcp"],
      "env": {
        "SUPARSE_API_KEY": "your_api_key"
      },
      "tools": ["*"]
    }
  }
}

请勿跟踪任何包含真实密钥的文件。若要使用 VS Code 的密码输入来配置工作区,请改用 .vscode/mcp.json:

{
  "inputs": [
    {
      "id": "suparse-api-key",
      "type": "promptString",
      "description": "Suparse API key",
      "password": true
    }
  ],
  "servers": {
    "suparse": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "@suparse/mcp"],
      "env": {
        "SUPARSE_API_KEY": "${input:suparse-api-key}"
      }
    }
  }
}

VS Code 格式使用 servers;可移植格式使用 mcpServers。请选择一种配置方式,以避免重复的服务。交互式输入不会转发到 Copilot harness 会话;对于此类会话,请使用可移植配置。

在命令面板中运行 MCP: List Servers,选择 Suparse 并启动,然后在 Agent 聊天中运行模板列表检查。请参阅 VS Code MCP 配置参考。

Gemini CLI

为你的用户账户安装:

gemini mcp add --scope user \
  --env SUPARSE_API_KEY=your_api_key \
  suparse npx -y @suparse/mcp

此操作会将服务配置写入 ~/.gemini/settings.json。使用以下命令检查连接状态:

gemini mcp list

在交互式会话中,使用 /mcp list 检查工具,然后运行模板列表检查。请参阅 Gemini CLI MCP 文档。

Windsurf / Cascade

这些说明适用于旧版 Cascade Agent。对于较新的默认 Devin Local Agent,请遵循 Devin CLI MCP 配置文档;其配置位置和迁移行为取决于已安装的版本,即使路径与 Cascade 重叠也是如此。

通过 Cascade 的 MCP 控件打开 MCP 配置。Windsurf 安装使用 ~/.codeium/windsurf/mcp_config.json(Windows 上为 %USERPROFILE%\.codeium\windsurf\mcp_config.json)。当前 Devin Desktop 版本中的 Cascade 在 macOS/Linux 上使用 ~/.config/devin/mcp_config.json(或 $XDG_CONFIG_HOME/devin/mcp_config.json),在 Windows 上使用 %APPDATA%\devin\mcp_config.json。通过 Cascade 打开文件会根据你安装的版本选择相应路径。

在 mcpServers 下添加 Suparse:

{
  "mcpServers": {
    "suparse": {
      "command": "npx",
      "args": ["-y", "@suparse/mcp"],
      "env": {
        "SUPARSE_API_KEY": "your_api_key"
      }
    }
  }
}

保存文件,刷新 MCP 列表或重启客户端,并确认 Cascade 中已启用 Suparse 及其工具。运行模板列表检查。请参阅 Cascade MCP 文档。

验证安装

在客户端的 Agent 聊天中询问:

使用 Suparse 的 list_templates 工具列出我团队可用的提取模板。

如果出现提示,请批准工具调用。成功的响应可确认 MCP 连接和 Suparse API 身份验证均正常;如果你的团队没有模板,team_templates 列表为空也是有效结果。此检查不会上传或处理文档。

如果服务无法启动,请检查客户端的 PATH 中是否包含 Node.js 20+ 和 npx,并查看其 MCP 日志。如果出现身份验证错误,请检查传递给服务的密钥或 Suparse 备用文件。桌面应用可能不会继承在终端中设置的环境变量。

验证文档处理(可选)

处理可能会消耗 Suparse 积分。请使用一份较小的示例发票或收据,其中仅包含你愿意上传到 Suparse 的数据。

  1. 将示例 PDF 放在 MCP 服务可访问的位置,并使用其绝对路径(参见本地路径)。
  2. 向客户端询问:“使用 Suparse 的 start_file_extraction 从 /absolute/path/to/sample.pdf 提取结构化数据。返回任务 ID,以及提供的任何文档 ID 或处理状态。不要删除已上传的文档。”
  3. 使用返回的任务 ID 调用 wait_for_task_extraction。如果处理仍在进行,请保留该 ID 并再次轮询;不要重新上传文件。
  4. 处理完成后,使用返回的文档 ID 调用 fetch_document_result。如有需要,使用任务 ID 调用 get_task_results 以查找文档 ID。

此操作会检查本地文件访问、身份验证、上传、处理和结果检索。除非你明确希望之后删除已上传的文档,否则请保留该文档。

工具

目标推荐工具
处理文档,然后获取任务 ID/文档 ID使用默认 result_mode: "defer" 的 extract_file
开始处理,并在确认上传后返回start_file_extraction
直接在 MCP 响应中获取 JSON使用 result_mode: "return_json" 的 extract_file
开始处理多份文档start_folder_extraction
检查中间结果get_task_results
保存 CSV/XLSX/JSON 文件download_results
重新连接后下载已完成的导出download_export_job

defer 会上传并轮询,直到处理进入终止状态或轮询失败;它延后的是结果导出,而非等待处理完成。仅启动的工具会在确认上传后返回任务 ID,不会轮询处理是否完成。需要尽快获取 ID 时,尤其是对于耗时较长的任务或需要人工审核的任务,请使用这些工具。

return_json 会在文本和结构化内容中返回完整结果。大型文档或批次可能会大量占用助手上下文;对于这类任务,建议使用 download_results 保存导出文件。

本地路径

输入和输出路径必须可供运行 Suparse MCP 的机器和操作系统进程访问。相对路径(如 ./invoice.pdf)会相对于服务器进程的当前工作目录解析;该目录由 MCP 客户端在启动时选择,可能与已打开的项目目录或聊天目录不同。文件路径会直接传递给 Node SDK 的文件系统操作;文件夹路径会使用 path.resolve,相对于同一工作目录进行规范化。相对导出路径也会使用进程的工作目录;如果未指定输出路径,则默认使用该目录。服务器不会展开工具路径参数中的 ~。

如果不确定当前工作目录,请优先使用绝对路径。请使用与服务器操作系统相匹配的路径:例如,Windows 进程使用 C:\Users\you\invoice.pdf,挂载了相应驱动器的 WSL2 进程则使用 /mnt/c/Users/you/invoice.pdf。其他机器上或服务器无法访问的文件系统中的路径,不会仅仅因为它出现在聊天中就变得可读取。

额度、删除与重试

文档处理和自动创建架构可能会消耗 Suparse 额度。再次上传同一文件可能会新建一项处理提交。如果请求超时,请使用保留的任务 ID、导出作业 ID 或幂等键恢复,不要提交新任务。

delete_documents 会从 Suparse 远程删除文档,而不仅仅是移除本地临时文件。组合提取工具中的 cleanup 选项也可能在确认导出无误后删除远程文档。只有在确认所需结果已安全保存后,才应请求删除。

服务器已提供 MCP 注解:状态、模板和结果检查工具为只读;上传和创建架构的工具会修改数据且不具备幂等性;组合提取工具被标记为可能具有破坏性,因为它可以执行清理;delete_documents 则被标记为具有破坏性。导出提交工具不会被声明为普遍具有幂等性:安全重放需要使用相同的键和完全相同的请求选项。磁盘导出工具也可能写入或覆盖本地文件。这些提示可帮助客户端评估工具调用,但不会强制执行权限,也不能保证任意重试都是安全的。

工具参考
  • extract_file、extract_folder:合并上传和处理。默认使用 defer,轮询后返回任务 ID/文档 ID;任务可能处于 partially_completed 状态。return_json 会返回导出分组,其中包含每个输入的任务状态和文档 ID;部分完成的任务和空导出会报告为未完成。cleanup 是尽力而为的操作,且仅在使用 return_json 时有效。
  • start_file_extraction、start_folder_extraction:上传后立即返回任务 ID,不进行轮询或导出。文件夹扫描按顺序进行、不会递归,且并发上传数上限为 10。
  • wait_for_task_extraction:轮询远程任务。轮询间隔默认为 2 秒,最多尝试 3 次;重试和 SDK 退避意味着这不是严格的实际时间期限。
  • get_task_results:读取一页有上限的任务部分文档。这个不透明游标会结束一个快照,而不是结束任务处理;重新调用可能会看到更多文档。
  • list_templates:列出摘要或完整模板记录,分为可直接使用的 team_templates 和仅用于发现的 system_templates。
  • start_quick_schema_creation、get_quick_schema_creation、wait_for_quick_schema_creation:启动并查看自动架构创建。运行 ID 与任务、文档和导出作业 ID 相互独立。
  • fetch_json_results:按文档 ID 返回经过验证的 TaskExport[] JSON。它不会解包 ZIP 文件,也不接受任意 JSON 架构。
  • fetch_document_result:通过直接的单文档端点获取一个文档的结构化 JSON 结果。
  • download_results:导出文档并将响应保存到本地路径。支持 JSON、CSV、XLSX 和即时 Google Sheets。已有输出路径遵循 SDK 的覆盖行为。
  • get_export_job、wait_for_export_job、download_export_job:查看、等待并下载已知的远程导出作业,即使 MCP 重启后也可使用。下载会保留原始字节,包括 ZIP,并在原子发布前验证文件。download_export_job 默认使用 overwrite: false。
  • delete_documents:按 ID 删除远程文档。需要清理时,请在确认成功导出/下载后使用。
导出格式

fetch_json_results 接受:

输入值默认值
export_typeoriginal、unifiedunified

JSON 导出会以结构化的 results 形式返回。fetch_json_results 和 download_results 接受 wait_timeout_ms(以毫秒为单位的正整数,默认值为 60000)以及可选的 UUID idempotency_key。等待时间会限制等待操作完成的时长,包括轮询重试;提交和传输是两个独立阶段,因此 MCP 客户端仍需为工具调用预留足够的总时间。如果响应丢失,请使用相同的文档 ID、格式、导出类型、布局和密钥重放请求。

download_results 接受 json、csv、xlsx 和 google_sheets,以及可选的 output_path 本地文件路径或已有目录。XLSX 导出还接受 xlsx_layout: "standard" | "flat",默认值为 standard。它会将导出内容直接写入磁盘,并返回保存后的 output_path。支持即时 Google Sheets 响应;不支持后台 Google Sheets。磁盘工具保存的是 Sheets 响应元数据(包括 URL),而不是电子表格二进制文件。MCP 客户端应使用 download_results 下载 CSV、XLSX、Google Sheets 和已保存的 JSON 文件;不应获取 base64 数据后再用 shell 或 Python 解码。已知作业的下载会保留原始文件字节,适用于 ZIP 或精确的 JSON 文件。

CSV/XLSX 导出可能会返回包含多个文件的 ZIP(例如发票和银行对账单)。两个下载工具都会报告 requested_format、artifact_format 和 content_type,并将保存的扩展名更正为与文件格式一致。因此,如果 API 返回的是归档文件,显式指定的 results.xlsx 路径会变为 results.zip;请检查返回的 output_path。 对于单独的本地文件,调用 download_results 并设置 unpack: true:

{"document_ids":["invoice-id","statement-id"],"format":"xlsx","output_path":"/absolute/path/results.xlsx","unpack":true}

ZIP 文件会保留,output_paths 会列出解压到其旁边新建的 results_files-* 文件夹中的文件。现有的解压文件不会被替换。单个工作簿仍保持 .xlsx 格式,并直接显示在 output_paths 中。默认不解压,且仅适用于 CSV/XLSX;若压缩包路径不安全、包含链接、存在重复目标、条目超过 1000 个或未压缩数据超过 512 MiB,则会拒绝解压。解压失败时会删除部分文件;如果压缩包已保存,错误恢复信息会包含 saved_artifact_path。 download_export_job 始终保留原始产物,不进行解压。CSV/XLSX 的 download_results 会通过 SDK 的原始下载 API 缓冲产物;已知任务的恢复流程会在发布前流式传输并验证产物。

result_mode 控制是否直接返回 JSON 格式的提取结果。只有在 MCP 响应中需要完整 JSON 时,才使用 return_json。在其他情况下,你可以通过 download_results 以所需格式获取结果。

显式请求 return_json 时,完整 JSON 会同时出现在文本内容和结构化内容中,即使启用了清理也是如此。其 tasks 记录会保留每个轮询输入的任务 ID、状态和文档 ID。部分完成和空导出会增加 failed_count,同时保留已导出的数据;清理期间会保留其父任务。组合提取允许为每个 JSON 导出设置 wait_timeout_ms,默认值为 60000 毫秒;在 defer 模式下会忽略此参数。可选的 exports 记录会将生成的幂等键和已接受的任务 ID 与每个本地输入关联起来。组合提取不接受调用方提供的幂等键。

已取消的文件夹响应会统计所有已扫描文件。尚未开始的输入会在 failed 中显示,并带有 cancelled: true、unstarted: true 和代码 OPERATION_NOT_STARTED;failed_count 会将它们计入。这些条目仍按源顺序排列,并区分可以安全启动的输入和需要恢复的已提交任务。恢复时优先处理已知的导出任务,其次使用保留的键重放完全相同的导出,最后轮询任务。

重要提示:只有当 result_mode: "return_json" 时,extract_file 和 extract_folder 中的 cleanup 才有效。清理仅尽力执行,且要求任务已完全完成,并且 JSON 导出涵盖所有请求的文档 ID。若覆盖范围缺失或无法验证,则会产生 INCOMPLETE_EXPORT 错误并保留父任务。部分任务、空导出以及后端工作状态不确定的输入都会被保留。文件夹清理会等待所有提取工作线程结束;如果操作已取消,则跳过清理。对于 CSV/XLSX/Google Sheets 或已保存的 JSON 文件,请使用启动或组合提取,等待任务完成,下载结果,然后在需要时调用 delete_documents。仅本地产物写入失败,并不能证明后端工作仍在运行。请求清理时,cleanup 会在文本结果和结构化结果中报告状态以及已删除或保留的文档 ID。保留的 ID 包括无法确认是否已删除的 ID。组合提取的进度按已处理完毕的输入文件数计算,并会随每次通知递增。 extract_file、extract_folder、start_file_extraction 和 start_folder_extraction 接受 template_id、split、pdf_password、folder_id 和 auto_approve。审批默认开启。仅在需要人工审核时将 auto_approve: false,并使用仅启动任务的工具,以便在处理等待前返回任务 ID。MCP 无法进行人工审核或审批文档;请保留任务 ID,并在审核完成后继续轮询。这不会创建或报告后端 awaiting_approval 状态。请将 pdf_password 视为敏感输入。MCP 会在返回的错误、元数据、部分结果和进度中对其进行脱敏,但 MCP 客户端可能会根据自身行为保留已提交的工具参数。

Google Sheets 要求和结果
  • 请求 format: "google_sheets" 前,请先在 Suparse 中连接 Google Sheets;SDK 需要可用的 Google 集成。
  • Suparse 集成支持创建电子表格或追加到现有电子表格。此 MCP 工具不提供目标电子表格 ID 或追加选项,且 SDK 未说明其导出端点会选择哪种目标行为。此 MCP 服务不支持选择目标位置或显式追加行。
  • 此处仅支持即时 Google Sheets 导出响应;无法通过此工作流下载后台 Google Sheets 任务。
  • download_results 会保存 JSON 元数据文件,并返回 output_path 以及可用的 google_sheets_metadata,其中可能包含电子表格或文件夹 URL。它不会保存本地 .xlsx 文件。若需要该文件,请使用 format: "xlsx"。
恢复指南
已知信息下一步操作
导出任务 ID调用 get_export_job;如果任务排队中或处理中,再调用 wait_for_export_job;任务完成后调用 download_export_job。
任务 ID调用 wait_for_task_extraction,然后调用 get_task_results,或导出已知文档 ID。
导出响应丢失,但保留了 UUID 键使用相同的 ID、格式、类型、布局和键重放完全相同的请求。
上传确认状态未知,但有上传引用保留该引用并进行调查。不要重新提交上传。MCP 没有上传恢复端点。
典型工作流

常规提取和下载:

extract_file(file_path="./invoice.pdf")
download_results(document_ids=["<document-id>"], format="csv", output_path="./exports")

长时间运行的任务和部分检查:

start_file_extraction(file_path="./invoice.pdf")
wait_for_task_extraction(task_id="<task-id>", poll_interval=2, max_poll_attempts=3)
get_task_results(task_id="<task-id>", limit=25, cursor=null)

poll_interval 的单位为秒。导出的 wait_timeout_ms 单位为毫秒。任务可能处于 partially_completed 状态;请保留已完成的文档 ID,并检查后续页面。当某个页面返回 next_cursor: null 时,表示该快照已全部读取,但任务仍可能继续生成文档。之后请发起新的页面请求,并跟踪 ID 以避免重复。

人工审核:

start_file_extraction(file_path="./contract.pdf", auto_approve=false)

返回的 task_id 是远程任务 ID,document_ids 用于标识远程文档,run_id 属于快速创建架构的流程,export_job_id 用于标识远程导出任务,而 output_path 是本地文件系统路径。

超时或响应丢失后恢复已接受的导出:

get_export_job(export_job_id="<export-job-id>")
wait_for_export_job(export_job_id="<export-job-id>", wait_timeout_ms=60000)
download_export_job(export_job_id="<export-job-id>", output_path="./exports/result.zip")

SDK 的 60000 毫秒等待上限包含轮询重试,但不包含提交或制品传输。请在 MCP 客户端中为完整操作设置合适的超时时间。返回已解析 JSON 的工具会返回经过验证的 TaskExport[];已知任务的下载会保留原始制品字节,制品可能是 ZIP 或原样 JSON。请勿将 base64/原始缓冲区暴露在聊天中,也不要使用 shell 命令解码制品。

自动创建架构

使用本地文件调用 start_quick_schema_creation,然后将其规范化后的 run_id 传给 get_quick_schema_creation 或 wait_for_quick_schema_creation。终态结果会保留生成的模板 ID、已保存文档、失败文档详情以及可重试状态。启动工具还接受 pdf_password 和 folder_id。

upload_batch_id 和 source_upload_id 仅适用于通过其他方式获取这些 ID 的高级工作流;MCP 服务不会创建上传批次。

MCP Agent 的模板选择

MCP Agent 在向提取工具传递 template_id 时,只能使用 team_templates。常规选择时使用默认摘要视图;仅在需要架构、提示词、验证或创建者元数据时,才请求 view: "full"。

当用户要求处理某种文档类型(例如收据)时:

  1. 首先检查 team_templates,如果存在匹配的团队模板,则使用该模板。
  2. 如果没有匹配的团队模板,则调用 list_templates 并设置 include_system: true,然后检查 system_templates。
  3. 系统模板仅供发现使用。MCP 无法将其添加到团队中,也不能直接使用其 ID 进行提取。
  4. 如果没有匹配的团队模板,则省略 template_id 以自动检测;或者在用户授权创建架构时,使用 start_quick_schema_creation 并跟进其 run_id。MCP 不支持自定义模板编辑和手动配置;如果用户提出相关要求,请说明此限制。

开发

构建软件包:

pnpm build

使用 MCP Inspector 测试:

npx @modelcontextprotocol/inspector node dist/index.mjs

MCP 服务使用 stdout 输出 JSON-RPC 协议消息。请勿在服务路径中添加 console.log 输出;请使用 stderr 或 MCP 工具响应。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。