W
AI-Wiki
CONCEPT

Hyper-Extract MCP 只读访问模型

定义

Hyper-Extract MCP 只读访问模型 是指 Hyper-Extract 通过 MCP Server - Hyper-Extract 摘要|MCP Server,把已有 Knowledge Abstract 的查询与导出能力暴露给支持 MCP 的外部助手使用,但访问边界被严格限定为 read + export only

它可以读取、查询、问答、查看信息和导出结果,但 不会 创建 KA、修改 KA,也不会删除 KA。

这个模型强调的不是把完整的 Hyper-Extract CLI 工作流 搬到协议层,而是把已经由 CLI 生成和维护好的知识资产,安全地交给 MCP 客户端消费。换句话说,创建与增强仍主要发生在 CLI 侧,MCP 侧负责受限访问。

在 Hyper-Extract 文档中的语境

在 Hyper-Extract 的说明里,MCP Server 被定位为一个面向“MCP 能力客户端”的服务接口,典型对象包括 Claude Desktop、IDE agents 等外部助手。

文档对它的描述非常直接:这些助手可以通过 Model Context Protocol 来 query and export your Knowledge Abstracts。这里的重点不是任意操作本地知识库,而是围绕“你已经拥有的 KA”执行查询和导出。

因此,这一模型与 Hyper-Extract CLI 工作流 的关系是:

  • CLI 负责生成和维护知识资产,例如先用 he parse 产出 KA。
  • MCP Server 负责把这些现成资产以统一协议暴露给外部助手。
  • 协议访问不延伸到创建、变更、删除生命周期。

核心边界:只允许 read + export

这一模型最重要的边界是权限范围。文档明确写明:MCP Server 是 read + export only

这意味着允许的操作类型包括:

  • 查看已有 KA 的基础信息。
  • 基于已有 KA 做检索。
  • 基于已有 KA 做问答。
  • 把已有 KA 导出到外部可消费的格式或目录。

而明确 不允许 的操作包括:

  • create:不能通过 MCP 创建新的 Knowledge Abstract
  • mutate:不能通过 MCP 修改现有 KA 内容、结构或内部状态。
  • delete:不能通过 MCP 删除 KA。

这个边界非常关键,因为它说明 MCP Server 不是 CLI 的完全远程代理,更不是可写知识管理接口,而是一个受限的只读/导出访问面。

服务对象:MCP-capable assistants

该模型面向的不是普通终端用户,而是支持 MCP 协议的助手程序。文档给出的例子包括:

  • Claude Desktop
  • IDE agents
  • 其他 MCP-capable assistants

其典型接入方式是让 MCP 客户端把 he-mcp 作为一个 MCP server command 来启动。例如类 Claude Desktop 的配置可将 hyper-extract 这个 server 指向 he-mcp

这说明 he-mcp 并不是独立知识处理器,而是外部助手访问 Hyper-Extract 资产的协议桥接入口。

所有操作都围绕已有 KA 展开

ka_path 是入口参数

文档明确说明:All tools take a ka_path。也就是说,MCP 暴露出的所有工具,都不是对某个抽象全局知识空间直接操作,而是要求调用方明确指向一个具体 KA 目录。

这个目录必须是由 he parse 创建出来的目录。也就是说:

  • MCP 工具处理的是已经存在的 KA。
  • 工具不会替你执行 he parse
  • 调用方必须知道目标 KA 的路径,并通过 ka_path 传入。

这构成了该访问模型的第二层边界:不仅不能写,而且连“处理对象”都必须是 CLI 预先产出的结果。

不是面向原始文档,而是面向抽取结果

因为 ka_path 指向的是 he parse 生成的目录,所以 MCP Server 面向的是“抽取后的知识资产”,而不是原始 PDF、Markdown 或其他输入文档。

这和 Knowledge Abstract 在 Hyper-Extract 中的定位一致:KA 是后续查看、检索、问答、导出的中心对象。MCP 访问模型实际上是把这套“围绕 KA 的消费能力”开放给外部助手。

关键机制:查询、问答与导出都建立在现有状态上

info:读取 KA 状态

示例中给出:

  • info(ka_path="./tesla_kb") → {nodes: 48, edges: 70, index_built: true, ...}

这说明只读访问至少包括读取 KA 的结构信息和状态信息,例如节点数、边数、索引是否已建立等。

从这个例子也能看出,MCP 返回的不是对 KA 的修改结果,而是对当前状态的观察。

searchask:依赖已构建索引

文档特别强调,searchask 不是无条件可用。它们要求对应 KA 已经建立索引,索引需要先通过 he build-index 构建。

这意味着:

  • 如果只有 he parse 生成的 KA,但尚未建立索引,那么不能默认执行 search/ask
  • 要让 MCP 客户端可做语义检索与问答,必须先在 CLI 侧对该 KA 执行 he build-index
  • 索引构建仍属于 CLI 工作流的一部分,而不是 MCP 自动代做。

这一点与 CLI Guide - Hyper-Extract 摘要Hyper-Extract CLI 工作流 中的规则一致:检索与问答建立在已建索引之上。

示例中给出的调用也体现了这种能力边界:

  • search(ka_path="./tesla_kb", query="War of Currents") → {nodes: [...], edges: [...]}
  • ask(ka_path="./tesla_kb", question="Who were Tesla's rivals?") → "Thomas Edison ..."

但这些示例成立的前提,是 ./tesla_kb 已经处于 index_built: true 的状态。

export_obsidian:属于导出能力,但受 feature 开关约束

文档将 export_obsidian 明确归入导出能力的一部分,但它并不是始终可用。它要求对应的 Obsidian 导出 feature 已启用。

如果该能力不可用,系统的行为也不是直接崩溃或无说明失败,而是:

  • 返回一条解释性消息。
  • 告知该工具当前不可用的原因。

这说明 MCP 只读访问模型中的“导出”也是有条件边界的:并非只要是导出请求就必然能执行,还取决于本地安装或 feature 支持情况。

示例中导出调用为:

  • export_obsidian(ka_path="./tesla_kb", output="./vault") → "Exported 49 notes to ./vault"

这里可以看出它操作的仍是已有 KA,输出则写到指定目录;但这种导出能力受可选 feature 是否存在的约束。

配置复用:不单独维护第二套模型配置

MCP Server 的模型配置来源不是独立设计的一套新配置,而是直接复用 CLI 的配置文件:~/.he/config.toml。文档明确说明,Server 会读取与你在 CLI 中使用的相同 LLM/embedder 配置,因此需要先运行 he config init ...

这意味着:

  • MCP 访问模型与 CLI 共用同一份 LLM 配置来源。
  • MCP 访问模型与 CLI 共用同一份 embedding 配置来源。
  • 不需要为了 MCP 额外维护另一套 provider、模型名、endpoint 或 embedder 参数。

这种设计的实际含义是,Hyper-Extract Provider System 的配置入口仍然以 CLI 体系为中心,而 MCP Server 只是复用既有设置。

因此,MCP 侧的可用性部分取决于 CLI 环境是否已正确初始化,例如是否已完成 he config init ... 并写入 ~/.he/config.toml

安装与运行在该模型中的含义

文档给出的安装与启动方式是:

pip install 'hyperextract[mcp]'

# start the server (stdio transport)
he-mcp

# equivalent:
python -m hyperextract.mcp_server

这里有几个与访问模型相关的要点:

  • 需要安装带 [mcp] 的额外依赖。
  • 启动入口可以是 he-mcp
  • python -m hyperextract.mcp_serverhe-mcp 等价。
  • 使用的是 stdio transport。

虽然这些是运行细节,但它们进一步表明:he-mcp 是把只读/导出能力暴露给外部助手的服务入口,而不是新的知识抽取命令。

细节与边界

边界 1:MCP 不负责创建 KA

即使一个外部助手可以连接到 MCP Server,它也不能绕过 CLI 直接生成新的 KA。KA 的创建仍由 he parse 完成,MCP 工具只能接入这些既有结果。

边界 2:MCP 不负责增量增强或清理

既然文档明确限制为 read + export only,那么像补充内容、改变结构、清理或删除之类会改变 KA 状态的动作,都不在这个模型内。换言之,MCP 不是 Hyper-Extract CLI 工作流 中 Enhance 或清理类步骤的协议替身。

边界 3:检索/问答依赖前置准备

searchask 的可用性取决于索引是否已经建立。未建索引时,这两个能力不能被视为“默认服务能力”。这与只读模型并不矛盾,因为索引构建是一个前置准备动作,仍应先由 CLI 完成。

边界 4:导出能力也有可选性

export_obsidian 虽属于导出范畴,但其存在与否受 feature 影响。这说明“导出”不是一个无条件统一超集,而是具体导出器按安装特性分别生效。

边界 5:配置来源单一

MCP Server 不自行定义另一套模型配置,避免了 CLI 与协议端配置漂移的问题;但反过来说,如果 CLI 配置未初始化或配置不正确,MCP 端也无法独立补救。

与相关概念的关系

Hyper-Extract CLI 工作流 的关系

Hyper-Extract MCP 只读访问模型 可以看作 CLI 工作流的“消费端延伸”。CLI 负责产出和维护 KA,MCP 负责把这些成果提供给外部助手进行读取、检索、问答与导出。

Knowledge Abstract 的关系

Knowledge Abstract 是该模型中的核心操作对象。没有既有 KA,就没有 ka_path 可指向,也就没有 MCP 查询与导出的基础。

MCP Server - Hyper-Extract 摘要 的关系

后者更偏向源文档摘要与安装运行说明;本条则抽象出其中的访问边界、依赖条件与协议定位。

Hyper-Extract MCP 工具依赖约束 的关系

如果说本条解释的是“能做什么、不能做什么”的总体访问模型,那么 Hyper-Extract MCP 工具依赖约束 更适合展开各工具的可用条件、特性依赖与失败反馈方式。

he-mcp 的关系

he-mcp 是该只读访问模型的实际启动入口之一,是 MCP 客户端接入 Hyper-Extract 的命令级桥接点。

相关条目