为常关闭的 Mac 应用做 MCP server:一位开发者的踩坑长文
roaringfantong · reddit · 2026-11-03
作者维护一个被 Claude Desktop/Claude Code/Codex 通过 MCP 驱动的 Electron Mac 应用,难点是 MCP 客户端要求一个常驻 stdio 命令而应用通常没开,于是他写了个 stdio broker,并踩了一连串坑:- 用 ELECTRONRUNASNODE=1 复用应用自带的 Electron 运行时跑 broker,仅 12MB(空 Electron 约 45MB);配一个 58KB 的 Swift launcher 定位运行时,避免了打包 Node 的 141MB。- 签名会改动二进制导致 manifest 校验和永远对不上,最终干脆去掉校验——macOS 本身会把 helper 封进应用签名并在启动时校验。- broker 生命周期与客户端等长(人们不退出 Claude Desktop),需握手检测过期 broker;版本号比较会在开发构建时误杀,改为「版本+工具结构」双双变化才拒绝。- broker 自留工具 schema 副本会在更新后按旧校验丢弃新参数,最终改为向运行中的应用实时取工具列表、参数透传由应用自校验,通过 hash 变化发 notifications/tools/listchanged;应用关闭时才回退本地副本。- 超过 45 秒的任务先返回 run id,用 waitforrun 工具收结果,绕开 Claude Desktop 约 1 分钟的调用超时。- 处理了双开应用抢 socket、更新替换 broker 而旧应用仍在跑等边缘情况,错误提示也从裸 client ID 改为「退出并重开 Claude」。
「编程与Agent」频道最新
- DeepSeek 超级智能体提速 1.9 倍,代价是烧掉 3.8 倍 token — AIFlow_ML · 2026-11-03
- Reddit 用户推荐 Agent Router:$50 免费额度聚合 Claude/GPT/DeepSeek — RAFRAGE · 2026-11-03
- ComfyUI 本地 LLM 提示词增强节点:用完即卸载,不占扩散模型显存 — ProcedureFit789 · 2026-11-03
- Grok Build 大版本升级:MCP 重复结果修复让上下文占用砍半 — elonmusk · 2026-11-03
- 微软杰出工程师单人用 Rust 重写 40 万行 Copilot 运行时 — dfinke · 2026-11-03
- LongCat-2.5 实测:同任务成本 0.28 美元,约为 Qwen3.8-Max 的三分之一 — omarsar0 · 2026-11-03