ChatGPT 桌面版接入本地 MCP 服务器:配置与权限指南

ChatGPT 桌面应用可以与运行在您自己机器上的 MCP 服务器通信;浏览器里的 ChatGPT 不行。这一个区别决定了本页其余的全部内容,而它恰恰是多数教程弄错的地方——因为 在第一批 ChatGPT 连接器发布之后,情况变了。

根据 OpenAI 的 MCP 文档(2026 年 8 月 12 日核实),桌面应用、Codex CLI 和 IDE 扩展都支持两类服务器:STDIO 服务器,也就是由命令启动的本地进程;以及 streamable HTTP 服务器,它们存在于某个地址上。这三个客户端共用一份配置 文件,所以添加过一次的服务器在三者中都可用。网页版的 ChatGPT 则是另一回事: 它可以使用插件提供的远程 MCP 工具,而一次普通的网页对话没有任何通路能到达您 笔记本上运行的东西。

本文把桌面这条路径讲完整:配置放在哪里、如何添加本地服务器、审批模式实际控制 什么,以及在把助手指向自己的文件之前值得知道的限制。

桌面版和网页版不是同一个客户端

把两套心智模型分开来记会更清楚。

桌面应用是本地客户端。它的 MCP 配置放在 Codex 的文件 ~/.codex/config.toml 里,并且接受本地命令。凡是要读取您机器上的文件、数据库或应用内资料库的场景,走 的都是这条路。

网页应用是远程客户端。它与 MCP 的关系经由插件;如果要亲手对接自己的服务器, 则要经由开发者模式——OpenAI 把它描述为对所有工具(读和写)的完整 MCP 客户端 支持的测试版。它在网页端的 Pro、Plus、Business、Enterprise 和 Education 账号上 可用,在 ChatGPT 自己的 Settings → Security and login 中开启。开发者模式说的 是 SSE 和 streaming HTTP。它没有本地进程这个概念,所以您笔记本上的服务器要先有 一个公开的 HTTPS 端点,网页应用才能看见它——对个人归档来说,这通常是笔不划算的 交换。

如果您的数据在本地,就用桌面应用。本文余下的部分讲的都是它。

给 ChatGPT 桌面应用添加本地 MCP 服务器

三条等价的路径,挑您觉得最省事的那条。

从界面里。 打开 Settings → MCP servers,选择 Add server,起个名字, 选中 STDIO,然后填入启动该服务器的命令。保存后点 Restart

从终端里。 Codex 会添加同样的条目:

codex mcp add <server-name> -- <command>

直接改文件。 ~/.codex/config.toml 中每个服务器占一张表:

[mcp_servers.context7]
command = "npx"
args = ["-y", "@upstash/context7-mcp"]

无论走哪条路径,条目都落在同一个位置,Codex CLI 和 IDE 扩展也会一并读到。想确认 服务器真的起来了,在输入框里敲 /mcp——已连接的服务器会列在那里。和 Claude Desktop 与 Claude Code 一样,重启不是可选项:客户端在启动时读取自己的 MCP 配置。

接入您的会议转写

Speak-Y 把 MCP 服务器随 macOS 应用一同提供,并且在每个套餐上都免费,包括 Free。 在 Speak-Y 这一侧,打开 设置 → 集成。Claude Desktop、Claude Code 和 Cursor 在那里有一键 Install,因为它们的配置是 JSON,应用可以安全地合并 进去。OpenAI 的不是 JSON,所以名为 OpenAI Codex CLI 的条目改为提供 Setup guide 和一个 Copy values 按钮——两行内容,粘贴到 ~/.codex/config.toml[mcp_servers.speaky] 下面:

[mcp_servers.speaky]
command = "/Applications/Speak-Y.app/Contents/MacOS/Speak-Y"
args = ["--mcp"]

这张卡片写的是 Codex CLI 而不是 ChatGPT,其中的道理值得记住:文件只有一份,而 桌面应用读的就是它。把这两个值粘贴一次,转写文本在 ChatGPT 桌面应用、Codex CLI 和 IDE 扩展中就都可用了。

然后重启 ChatGPT,问一个只有您的录音才能回答的问题——“在我的 Speak-Y 录音里找到 上周的规划会,列出我们都决定了什么”就是个不错的首次测试。更多用法见 关于会议记录的 20 条提示词

ChatGPT 实际能看到什么

这里精确比安慰更重要,所以:一共十三个工具,分成两类。

五个直接读取本地库。 列出录音、搜索录音、取出转写文本、获取最新一条录音、 列出标签。它们直接作用于您机器上的文件,不需要 Speak-Y 应用处于运行状态。

八个要经过运行中的应用——打标签、重命名说话人、修改录音标题、重新识别语音 输入、同步,以及列出、创建团队频道和向其中发布。数据库和加密密钥都在应用手里, 所以应用关着的时候什么也改不了。

没有删除。 没有任何工具能移除一条录音、一个频道或一个工作区。发布到频道是 唯一一个无法从聊天窗口撤回的动作——撤下要回到应用里操作。

审批模式,以及工具注解为什么重要

MCP 允许服务器给每个工具标注 readOnlyHint,而 OpenAI 的客户端用的正是它。 default_tools_approval_mode 已记录的取值是 autopromptwritesapprove,其中 writes 会对每一个未标记为只读的工具发出询问。单个工具也可以 单独覆盖。

这一切成立的前提,是服务器对自己的工具足够诚实。Speak-Y 把五个读取工具标为 read-only,把操作类标为会改动数据,于是 writes 产生的正是您想要的行为:搜索和 转写一路畅通,而打标签或分享会停下来询问。每次操作都记入 设置 → 集成 里的日志,同一处的一个开关可以关闭操作、保留读取。

如果您更愿意把这种可能性彻底去掉,就以只读方式固定启动服务器:在 args 中加上 --read-only,会改动数据的工具根本不会向该客户端公开。

args = ["--mcp", "--read-only"]

一个把写标成读的服务器会让上面这一切失效——这正是您应当在意所安装的 MCP 服务器 出自谁手的现实理由。OpenAI 自己的开发者模式文档也点出了同一类风险:提示注入、 模型在写操作上出错,以及彻头彻尾的恶意服务器。

这套配置做不到什么

下一步是什么

一个能在 ChatGPT 里被追问的个人库,解决的是问题的一半:您自己的记忆。另一半是 别人的——那些您没参加的通话里做出的决定。发布到团队工作区的录音是 端到端加密的,同一个助手也能检索,于是“我们当时为什么那么决定?”从一次打断 别人的事,变成一个直接问出口就行的问题。

FAQ

ChatGPT 能连接运行在我电脑上的 MCP 服务器吗?

桌面应用可以。OpenAI 的 MCP 文档为桌面应用、Codex CLI 和 IDE 扩展列出了两类服务器:由命令在本机启动的 STDIO 服务器,以及远程的 streamable HTTP 服务器。网页版的 ChatGPT 不行,它只能触达插件提供的远程 MCP 工具。

ChatGPT 桌面应用把 MCP 配置存在哪里?

存在 Codex 的配置文件 ~/.codex/config.toml 里,位于 [mcp_servers.<name>] 表下。桌面应用、Codex CLI 和 IDE 扩展共用这一个文件,所以在其中任何一处添加的服务器,都会出现在另外两处。

MCP 工具要改动东西之前,ChatGPT 会先问吗?

这取决于审批模式。default_tools_approval_mode 已记录的取值是 auto、prompt、writes 和 approve;writes 会对每一个未标记为只读的工具发出询问,单个工具也可以单独覆盖。只有当服务器诚实地注解自己的工具时,这项设置才有意义,Speak-Y 就是这样做的。

连接 ChatGPT 之后,我的录音会被上传到 OpenAI 吗?

连接本身不上传任何东西——Speak-Y 的 MCP 服务器运行在您的 Mac 上,读取本地库。但 ChatGPT 实际读到的内容会成为对话的一部分,和聊天的其余内容一起发送给模型,因此您所询问的那些转写文本确实会以对话上下文的形式离开这台机器。

为什么 Speak-Y 的集成界面写的是 Codex CLI 而不是 ChatGPT?

因为它们是同一份配置。Codex 的文件是 TOML 而不是 JSON,所以 Speak-Y 交给您两个值去粘贴,而不是替您写入文件——而 ChatGPT 桌面应用读的正是同一个文件。