文档 / 给 Agent / MCP 接入

MCP 接入

注册一次,Claude Code 这类 Agent 就能直接读你本机的文档。 它们不再需要你把整本 PDF 粘进对话——先要目录,再按标题取节,或者跨文档检索。 文档始终留在这台机器上。

注册#

$ claude mcp add aimorsel -- morsel mcp

也可以写进项目里的 .mcp.json

{
  "mcpServers": {
    "aimorsel": { "command": "morsel", "args": ["mcp"] }
  }
}

改完重启一次会话就生效。

八个工具#

前三个是为省上下文设计的,也是和普通「文档转换 MCP」的差别所在。

工具它做什么
get_outline只返回标题树,附每节的页码范围与 token 估算。读大文档的第一步——花几百 token 就能看清全文结构
get_section按标题取某一节正文(含子节),标题模糊匹配。命中太多时会列出候选让 Agent 精确化
search_documents跨已转换文档全文检索,命中段落带页码和标题路径,按相关度排序。空格分隔的多个词是「与」的关系
read_pdf_markdown直接返回 Markdown 正文,小文档一次读完。过长会截断并给出完整文件路径
extract_tables提取文档里所有表格,以 CSV 文本返回,含页码
get_chunks切成 RAG 分块返回 JSONL,每块带页码范围、标题路径和 token 估算
qa_check逐页元素与字符统计,标记空白页、疑似扫描页、低密度页
convert_pdf转换并返回产物文件清单;已转换且没变化的自动跳过

省上下文的用法#

一份长文档,Agent 应该这样读——三步之后进上下文的只有真正需要的那一节:

# 1. 先看结构,几百 token
get_outline("年报.pdf")

# 2. 挑一节取正文
get_section("年报.pdf", "财务摘要")

# 3. 或者跨全部已转换文档找一个词,命中带页码
search_documents("毛利率")

get_outline 返回的每节 token 数是含子节的, 和 get_section 实际会返回的体量一致——Agent 照着这个数取舍才准。

几点注意#