使用说明
chatgpt mcp
MCP服务器,自动化ChatGPT macOS桌面应用程序。从Claude Code或任何MCP客户端访问ChatGPT Pro功能(o1,深度研究,GPT)-无需API密钥。
分叉自 xncbf/chatgpt-mcp 进行了重大修复。
为什么
ChatGPT Pro具有API无法提供的模型和功能(o1 Pro、深度研究、自定义GPT)。该服务器通过AppleScript和macOS可访问性树自动化桌面应用程序,弥合了这一差距。
与上游的主要区别
- 不要把注意力转移到阅读上 --读取AX树而不激活ChatGPT,因此您可以在它轮询完成时继续工作
- 剪贴板粘贴 而不是按字符注入按键——即时,保留格式
- 可配置轮询 --快速模式(5秒轮询,60秒超时)用于快速查询,深度模式(15分钟轮询,1小时超时)用于o1/深度研究
- 文本稳定性检测 --当按钮启发式失败时发出回退完成信号(连续3次相同的读取=完成)
- 子进程超时 --所有AppleScript调用在30秒后超时,而不是永远挂起
运作原理
- 发送:激活ChatGPT一次,打开新对话(Cmd+N)或导航到现有对话,通过剪贴板粘贴提示
- 投票:被动读取可访问性树(无焦点窃取),寻找两个完成信号:
- 按钮启发式:模型选择按钮后接语音/转录按钮=空闲状态
- 文本稳定性:对话文本连续3次阅读保持不变
- 返回:从AX树中提取所有静态文本,清理UI工件,返回响应
会话管理
- 列表:在不激活ChatGPT的情况下读取侧边栏AX树——没有焦点窃取
- 导航:激活ChatGPT一次(单击需要焦点),单击匹配的侧边栏项
- 阅读:导航到对话,然后通过现有的被动阅读器阅读其内容
安装
pip install chatgpt-desktop-mcp
或者在不安装的情况下运行:
uvx chatgpt-desktop-mcp
CLI入口点是 chatgpt-mcp (两者 chatgpt-mcp 和 chatgpt-desktop-mcp 工作)。
使用Claude代码进行配置
claude mcp add chatgpt -s user -- uvx chatgpt-desktop-mcp
需求
- macOS(AppleScript+辅助功能树)
- ChatGPT桌面应用程序 已安装并登录
- 授予您的终端的无障碍权限(系统设置>隐私和安全>无障碍)
工具
ask_chatgpt_tool
向ChatGPT发送提示并等待响应。默认情况下打开新对话,或在以下情况下继续现有对话 conversation 已指定。
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
prompt |
str | 必填 | 要发送的消息 |
quick bool的。 False |
True:5秒轮询,60秒超时。 False:15分钟轮询,1小时超时 |
||
conversation |
str | "" |
要继续的可选对话标题(子字符串匹配,不区分大小写)。如果为空,则开始新的对话 |
get_chatgpt_response_tool
阅读当前对话,不要发送任何内容。使用深度轮询等待完成。
list_conversations_tool
在ChatGPT侧栏中列出对话,而不会转移注意力。返回可与以下内容一起使用的编号标题 read_conversation_tool 或 conversation 参数 ask_chatgpt_tool.
read_conversation_tool
按标题导航到现有对话并阅读其全部内容。
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
conversation |
str | 必填 | 要匹配的标题(子字符串,不区分大小写) |
激活ChatGPT一次,单击侧边栏项,然后读取对话文本。
局限性
- 仅英文按钮检测 --AppleScript检查英文按钮标签(“语音”、“转录”、“型号”、“GPT”)。非英语ChatGPT UI将中断完成检测。
- 完成检测是启发式的 -它通过读取按钮序列和文本稳定性来工作,而不是API信号。存在边缘案例。
- 剪贴板竞赛窗口 --在发送过程中有一个约0.7s的窗口,剪贴板中包含您的提示。之后恢复。
- 仅限macOS --依赖于AppleScript和可访问性树。
- 一次一个对话 --桌面应用程序有一个活动对话。并发发送将发生冲突。
许可证
麻省理工学院