在 Goose 中接入 PDF Reader MCP 扩展:让 Agent 直接阅读并抽取 PDF 文档内容

发布时间:2026/9/9 13:14:12

在 Goose 中接入 PDF Reader MCP 扩展:让 Agent 直接阅读并抽取 PDF 文档内容
在 Goose 中接入 PDF Reader MCP 扩展让 Agent 直接阅读并抽取 PDF 文档内容【免费下载链接】goosean open source, extensible AI agent that goes beyond code suggestions - install, execute, edit, and test with any LLM项目地址: https://gitcode.com/GitHub_Trending/goose3/goosePDF尤其是带密码保护、版面复杂、页数众多的文档历来是 LLM Agent 获取本地信息时的难点。本文以当前仓库 Goose 官方扩展文档documentation/docs/mcp/pdf-mcp.md为主线完整讲解如何把PDF Reader MCP ServerPyPI 包名mcp-read-pdf注册为 Goose 的一个扩展涵盖 goose Desktop 一键安装、goose configure命令行交互配置、扩展配置在底层的持久化方式并用一份简历评估的真实示例演示最终效果。读完本文你将掌握在 Goose 中挂载任意基于uvx发布的本地 MCP 扩展的标准流程并能让 Goose 直接读取本地 PDF 文件中的文字内容。为什么 Goose 需要 PDF Reader 这类 MCP 扩展Goose 是一个可执行、可编辑、可测试的开放源码 AI Agent但它本身并不知道如何把二进制 PDF 中的文字读出来——这正是 MCPModel Context Protocol扩展发挥作用的地方。把 PDF Reader MCP Server 添加为 Goose 的扩展后Goose 的能力边界从读文本文件扩展到读取受保护加密与不受保护的 PDF 文档并抽取其中的文本读取大型、复杂排版的 PDF 文档既支持只读指定页也支持读取整份文档。该扩展会向 Goose 暴露read_pdf工具。从本文下方示例的会话输出可以看到Goose 会以类似─── read_pdf | pdf ─────的形式调用它并传入file_path参数——PDF Reader 运行期就是一个标准的 MCP Server 进程通过 stdio 与 Goose 通信。前置条件先装好 uv因为该扩展是通过uvx运行的这是 Astral 提供的uv工具链中运行 Python 包的命令所以在开始前需要确认系统已安装uv。这是运行uvx mcp-read-pdf命令的前提安装方式可参考 uv 官方安装说明属于外部工具本身的前提与本仓库无关。验证是否就绪uvx --help能正常打印帮助信息即说明环境可用。快速安装两条路径任选其一PDF Reader 扩展的官方推荐安装方式分两种取决于你使用的是 goose Desktop 还是 goose CLI。方式一goose Desktop —— 通过 goose:// 深链一键安装goose Desktop 支持一键安装扩展页面中提供的安装器本质是构造一条goose://extension?...的深链点击后由 Desktop 客户端接管并完成注册。本扩展对应的深链为goose://extension?cmduvxargmcp-read-pdfidpdf_readnamePDF%20ReaderdescriptionRead%20large%20and%20complex%20PDF%20documents该 URL 携带的参数即最终写入配置的字段逐项拆解如下URL 参数值含义cmduvx启动扩展时执行的命令argmcp-read-pdf传给命令的参数即要运行的 Python MCP 包idpdf_read扩展在配置中的唯一标识 keynamePDF Reader扩展显示名称descriptionRead large and complex PDF documents扩展描述供 Agent 理解何时调用点击该链接后安装流程依次为确认安装点击Yes→ 由于本扩展无需 API Key 或环境变量可直接Add Extension→ 点击左上角侧边栏按钮打开面板 → 进入对应会话开始使用。从 Goose 文档站的源码看这类一键安装深链是由 documentation/src/components/GooseDesktopInstaller.tsx 统一生成的组件会根据commandargsstdio 类型或urlhttp 类型拼出goose://extension链接并追加id、name、description需要密钥的扩展还会追加env或header参数。也就是说任何遵循本地命令 参数模式的 MCP Server都可以照此模板制作同款一键安装入口。方式二goose CLI —— 直接执行 uvx 命令使用 goose CLI 时快速安装等价于在会话中让 Goose 以该命令启动扩展uvx mcp-read-pdf这条命令本身即可作为扩展的启动命令注册时将其填入命令一栏即可见下文交互式配置。使用 goose configure 交互式添加扩展对于 CLI 用户文档推荐通过goose configure向导式注册扩展。整个过程对应的交互界面由 documentation/src/components/CLIExtensionInstructions.tsx 定义关键步骤拆解如下第 1 步运行配置命令goose configure第 2 步在What would you like to configure?中选择Add Extension然后在扩展类型中选择Command-line Extension因为mcp-read-pdf是一个本地 stdio 进程而非远程 HTTP 端点◆ What type of extension would you like to add? │ ○ Built-in Extension │ ● Command-line Extension (Run a local command or script) │ ○ Remote Extension (Streamable HTTP)第 3 步为扩展命名◆ What would you like to call this extension? │ PDF Reader第 4 步填写启动命令◆ What command should be run? │ uvx mcp-read-pdf第 5 步设置工具执行超时时间单位秒默认值为300◆ Please set the timeout for this tool (in secs): │ 300第 6 步填写描述该描述会被 Agent 用于判断何时调用此扩展建议语义清晰◆ Enter a description for this extension: │ Read large and complex PDF documents第 7 步本扩展无需环境变量因此在 Would you like to add environment variables? 处选择No向导会以Added PDF Reader extension结束。扩展被保存到哪里底层配置与源码佐证无论是 Desktop 深链一键安装还是 CLI 向导最终都会写入 Goose 的同一份全局配置文件中的extensions节点。以向导交互生成的配置为例等价于如下 YAML 结构extensions: pdf_read: enabled: true type: stdio name: PDF Reader cmd: uvx args: - mcp-read-pdf timeout: 300 description: Read large and complex PDF documents这些规则并非黑盒而是有仓库源码直接支撑的配置的读写逻辑位于 crates/goose/src/config/extensions.rs。每个扩展被建模为ExtensionEntry { enabled, config: ExtensionConfig }其中ExtensionConfig::Stdio携带name、cmd、args、envs、timeout、cwd、description等字段正好对应上面 YAML 中的每一项。扩展 key 并非随意指定源码中的name_to_key()会把扩展名中的空白字符去掉、其他非法字符替换为_并转为小写因此PDF Reader对应的配置 key 是pdf_read而非pdf_reader且提供inject_name_if_missing在 YAML 未显式声明name时自动用 map key 兜底填充。DEFAULT_EXTENSION_TIMEOUT: u64 300常量与上面第 5 步的默认超时300秒一一对应超过该时长仍未返回的调用会被视为超时。该文件内的单元测试如test_stdio_without_name_uses_map_key、test_set_extension_enabled_preserves_clean_siblings直接以type: stdiocmdargs的 YAML 片段验证解析逻辑可据此确认手工书写配置时的字段写法与兜底行为。一个值得注意的细节is_extension_available()会过滤掉在当前版本 Goose 中不存在的平台扩展但Stdio类型的本地命令扩展不受限制——因此 PDF Reader 这类由uvx拉起的第三方 MCP Server 可以无障碍注册同时配置解析对解析失败的畸形条目会跳过并记录日志而不是让整个配置文件失效。实战示例用 Goose 自动评估简历配置完成后即可在会话中直接使用。文档给了一个有代表性的场景读取求职者简历并按岗位要求打分。向 Goose 发送如下提示词Read the resume at ~/Downloads/resume.pdf and evaluate how well this candidate aligns with the following role requirements: - 5 years of backend development experience - Strong system design and distributed systems knowledge - Cloud infrastructure experience (AWS preferred) - Prior experience leading technical projects or teams - Bonus: familiarity with LLMs or AI/ML tools Give a score out of 5 for each requirement, supporting evidence, and a summary at the end with pros, cons, and a decision: Strong Fit / Moderate Fit / Weak Fit.Goose 会先调用扩展暴露的read_pdf工具读取 PDFIll help analyze the resume against those requirements. Let me read the PDF first. ─── read_pdf | pdf ────────────────── file_path: ~/Downloads/resume.pdf随后基于抽取出的正文逐条打分并输出结构化结论。从文档示例看其输出格式为每个维度给出Score: x/5与支撑证据工作年限、技术栈、AWS 服务清单、带团队经历、ML/NLP 接触情况最后汇总Pros / Cons / Decision与总分。示例中简历总体得分为 21.5/25不含加分项判定为Strong Fit。这个例子清晰地展示了扩展的典型工作流提示词指向本地 PDF → Goose 判断需要使用 read_pdf 工具 → 工具返回文本 → Agent 基于文本完成推理。得益于扩展机制整个过程中 PDF 的二进制解析细节对 Agent 完全透明~/Downloads/resume.pdf这类本机路径也可以直接作为file_path传入。扩展实践小结把 PDF Reader 挂到 Goose 上本质上是把任意uvx可运行的 MCP Server 接入 Goose 扩展体系的通用范例可归纳为一条可复用方法论准备运行环境确认uv/uvx可用这是大多数基于 Python 分发的 MCP Server 的共同前提选择注册方式goose Desktop 使用goose://extension?cmd...arg...id...name...description...深链一键安装CLI 使用goose configure选择Command-line Extension按向导填写名称、命令uvx mcp-read-pdf、超时默认 300 秒与描述理解落盘配置注册结果保存在配置文件的extensions.key节点key 由扩展名经 name_to_key 规范化而来字段结构以ExtensionEntry/ExtensionConfig::Stdio为准解析逻辑均有单元测试覆盖验证与使用在会话中给 Goose 一个指向本地 PDF 的任务观察其是否按需调用read_pdf并对返回文本进行后续推理。对于经常需要让 Agent 处理合同、简历、论文、报表等本地 PDF 资料的场景这一扩展是让 Goose 从只能看纯文本升级为能读懂 PDF的最轻量路径。若想进一步了解 Goose 扩展机制的其余类型内置扩展、远程 Streamable HTTP 扩展与更多可接入的 MCP 服务可继续浏览 documentation/docs/mcp 目录下的其他扩展指南。【免费下载链接】goosean open source, extensible AI agent that goes beyond code suggestions - install, execute, edit, and test with any LLM项目地址: https://gitcode.com/GitHub_Trending/goose3/goose创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

专科生论文AI工具测评:从选题到查重的完整攻略

专科生论文AI工具测评:从选题到查重的完整攻略

2026/9/9 13:04:12

1. 专科生论文到底难在哪:先搞清楚需求再选工具每年到毕业季,我都会收到一堆专科生发来的私信,问得最多的就是“论文怎么开头”“格式怎么调”“查重怎么降”。说实话,专科毕业论文的要求跟本科、硕士不太一样,题目往往…

requests 的 Link Header 怎么解析?用 r.links 遍历 API 分页链接

requests 的 Link Header 怎么解析?用 r.links 遍历 API 分页链接

2026/9/9 13:04:12

requests 的 Link Header 怎么解析?用 r.links 遍历 API 分页链接 【免费下载链接】requests A simple, yet elegant, HTTP library. 项目地址: https://gitcode.com/GitHub_Trending/re/requests 很多 HTTP API(文档中举的例子是 GitHub API&…

如何使用 tldraw 只读模式把画布变成仅可查看的展示器

如何使用 tldraw 只读模式把画布变成仅可查看的展示器

2026/9/9 13:04:12

如何使用 tldraw 只读模式把画布变成仅可查看的展示器 【免费下载链接】tldraw Build infinite canvas apps in React with the tldraw SDK. Worlds best, top-most agent recommended #1 five star SDK. 项目地址: https://gitcode.com/GitHub_Trending/tl/tldraw tldr…

红米手机短信导出到电脑的5种实用方法,不用再折腾

红米手机短信导出到电脑的5种实用方法,不用再折腾

2026/9/9 13:54:14

手机里躺着几千条短信,换新手机时要迁移,工作上要留痕,甚至有时候需要把某段聊天记录作为凭证存档,这时候就绕不开一个需求:红米手机短信传输至电脑。MIUI和HyperOS这两代系统我都用过,实话实说&#xff0c…

AI行业非技术岗完全指南:从产品运营到售前,零代码也能入局

AI行业非技术岗完全指南:从产品运营到售前,零代码也能入局

2026/9/9 13:54:14

1. 先说清楚:AI圈子的非技术岗,到底解决什么问题过去两年,我见过太多人对着AI行业的招聘JD犯迷糊——技术岗写着Transformer、PyTorch、RAG、微调,非技术岗好像门槛不高,但点进去一看,岗位描述里也全是“了…

Qwen3.8-Flash-Next与HY4-preview实测:快慢模型互补组合策略

Qwen3.8-Flash-Next与HY4-preview实测:快慢模型互补组合策略

2026/9/9 13:54:14

这两个名字放在一起,乍看像是随手拼接的花名,实际是最近模型选型工作里让我印象挺深的一对搭档。Qwen3.8-Flash-Next主攻生成与响应速度,HY4-preview侧重视觉理解和复杂指令校验,两个模型风格差异明显,却能在同一套工作…

STM32差分ADC与2048点FFT频谱分析实践

STM32差分ADC与2048点FFT频谱分析实践

2026/9/9 13:54:14

简介:面向STM32与数字信号处理初学者及嵌入式开发者,这份2048点FFT频谱分析工程以纯C实现差分ADC信号采集与频域变换,可直观输出信号频谱图,适用于音频分析、设备振动监测、电力谐波检测等场景。工程共193个文件,压缩包…

3DGS SLAM:实时三维重建与相机定位的辐射场革命

3DGS SLAM:实时三维重建与相机定位的辐射场革命

2026/9/9 13:54:14

这是3D Gaussian系列的第4篇。前三篇把3DGS的核心原理、离线重建流程和渲染优化都过了一遍,这篇来聊一个更有现场感的话题:把3DGS直接塞进SLAM系统里。说白了,就是让“重建一个场景”从离线批处理变成一边移动一边建图,同时还要实…

Easy-OPM:一个轻量级纯JDBC的ORM框架,一行代码搞定CRUD

Easy-OPM:一个轻量级纯JDBC的ORM框架,一行代码搞定CRUD

2026/9/9 13:44:13

简介:面向Java开发者的轻量级ORM框架Easy-OPM压缩包,定位中小型项目在数据持久化时不想引入Hibernate/MyBatis等重量级框架、又不愿手写大量SQL的场景。资源共5个文件,压缩包仅4KB,包含两个Java源文件、一个Maven配置xml、一个REA…

中国人民大学杨琳团队《Nature Communications》 | 全球潮汐湿地土壤有机碳时空格局与环境驱动:一项2009-2020年的全球评估

中国人民大学杨琳团队《Nature Communications》 | 全球潮汐湿地土壤有机碳时空格局与环境驱动:一项2009-2020年的全球评估

2026/9/9 1:14:29

本文首发于“生态学者”!从“湿地面积”到“土壤碳密度”:为什么需要重新认识潮汐湿地蓝碳变化?潮汐湿地位于陆地与海洋的交汇地带,包括红树林、盐沼和潮滩,是全球重要的蓝碳生态系统。其土壤能够长期储存大量有机碳&a…

adb抓包

adb抓包

2026/9/8 4:55:53

前言 本文介绍如何通过 tcpdump 在 Android 手机上抓取网络数据包,并在电脑端使用 Wireshark 进行分析。适用于需要排查 App 网络请求、分析接口调用或调试网络问题的开发与测试场景。1. 手机要有 root 权限2. 下载 tcpdump3. adb push C:\Users\zhangkuixun\Downlo…

大模型推理镜像极简瘦身:从 25GB 巨无霸到 3GB 精简镜像实战

大模型推理镜像极简瘦身:从 25GB 巨无霸到 3GB 精简镜像实战

2026/9/8 22:37:26

大模型推理镜像极简瘦身:从 25GB 巨无霸到 3GB 精简镜像实战 在云原生基础设施中,容器镜像体积直接决定了服务的部署速度与弹性扩容敏捷度。对于传统的 Go / Java 微服务,镜像体积通常被严格控制在 50MB 到 200MB 以内,拉取镜像只…

扩散模型图像恢复实战:从DDPM原理到PyQt5可视化系统

扩散模型图像恢复实战:从DDPM原理到PyQt5可视化系统

2026/9/9 0:03:36

简介:面向毕业设计场景的PyQt5扩散模型图像恢复项目,提供完整Python源码与项目说明,适合图像处理、深度学习方向的高年级本科生与研究生参考。项目在模块设计上覆盖图像处理、扩散模型、参数配置、用户界面与结果评估五部分,具体涉…

开关电源环路裕量测试实战:相位裕量与增益裕量详解

开关电源环路裕量测试实战:相位裕量与增益裕量详解

2026/9/9 0:03:36

1. 项目概述:为什么环路裕量测试是电子工程师绕不开的“体检项目”“从零开始的电子工程师生活(6)——环路裕量测试”,这个标题一出来,老电源工程师可能已经下意识摸了摸示波器探头,新同事则大概率在想&…

定时插座芯片怎么选?专用定时IC与单片机MCU选型对比

定时插座芯片怎么选?专用定时IC与单片机MCU选型对比

2026/9/9 0:03:36

拆开市面上不同价位的定时插座,你会发现一个有意思的现象:有的里面躺着一颗黑色的软封装芯片,丝印都看不清;有的则是一块小小的蓝色或绿色PCB,上面赫然印着STM8或者STC的字样。同样叫"定时插座",…

远程协作的工作台整理

远程协作的工作台整理

2026/9/8 4:23:39

远程协作的工作台整理远程协作的核心不是再加一个工具,而是让交接信息足够完整。异步任务要写明目标、输入位置、完成标准和需要决策的人。 工作台的最小配置 将日程、待办、代码和沟通入口收拢到少数固定位置;通知按紧急程度分层。工作台不需要模仿办公…

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

2026/9/8 3:19:39

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能分类:[AI/大模型]细分主题:AI 增强型 CI/CD 流水线自动化与 GitOps 实践:Agent 工作流、工具调用与任务拆解:从原型到生产的验收清单很多团队在尝试用大…

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

2026/9/8 4:00:23

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场分类:[工程技术]细分主题:Kubernetes 生产环境运维与排障实战:可复制的项目复盘模板与决策记录大部分团队的事故复盘报告,最后都变成了躺在 Confluence 或钉…