核心概念
理解这几个概念,MUX 的所有操作就都说得通了。
目录(Registry)
目录是 MUX 的中心——你所有 MCP 服务器的聚合视图。它不是一份写死在程序里的清单,而是由你启用的所有 来源 实时拼装出来的并集。
在目录里你可以:搜索、按来源/传输方式过滤、看每个条目的来源标签,以及它被哪些 agent 使用。
来源(Sources)
目录里的每个条目都来自某个来源。MUX 有四种来源:
| 来源 | 是什么 | 存放位置 |
|---|---|---|
| 订阅(remote) | 一个指向 MCP 配置文件的 URL,MUX 抓取并缓存;刷新时重新拉取上游。 | ~/.mux/sources/remote/<id>.json |
| 本地(local) | 从磁盘导入的配置文件,复制进 MUX;刷新时重新读取原文件。 | ~/.mux/sources/local/<id>.(json|toml) |
| 手动添加(manual) | 你手写或粘贴创建的 server,存为一个受管的本地来源(manual.json)。 | ~/.mux/sources/local/manual.json |
| 自动探索(discovered) | 启动时从你各个 agent 已有配置里自动探测出来的 server(discovered.json)。 | ~/.mux/sources/local/discovered.json |
另外还有一个一键的官方精选合集——它其实就是订阅一个内置的、经过整理的远程来源,属于可选订阅,而不是默认基座。
目录只负责展示每个来源有哪些 server;来源没有启停开关。要管理内容,用「添加 / 删除」条目或管理对应来源。
优先级(去重规则)
同一个 MCP 可能出现在多个来源里。目录按 name::transport 组合键去重,优先级 从低到高:
外部来源(remote / local) < 自动探索(discovered) < 手动添加(manual)也就是你自己的手动编辑永远赢——即使某个远程来源也定义了同名条目。
全部 vs 生效中
去重会把被覆盖的副本藏起来。为了「什么都能看到」,Registry 左侧有两个入口:
- 全部 —— 每个来源里的每一份副本都显示,被覆盖的标
已被覆盖。 - 生效中 —— 只显示去重后真正生效的那一份。
点某个具体来源,则显示该来源的全部条目(含被覆盖的)。
身份、传输与来源标签
- 组合键
name::transport。transport ∈ {stdio, http}(sse 归入 http)。同名的 stdio 和 http 是两个独立条目。 - 传输方式自动识别:配置里有
command⇒stdio;有url⇒http。http 的type字段是自由文本(http/sse/streamable-http/ 自定义)。 - 来源标签:每个条目带一个来源类型(
discovered/manual/remote/local)+ 来源 id,驱动界面上的来源徽章。
安装、开关、删除
对每个 agent 独立操作:
- 安装:把某个目录条目写进这个 agent 的真实配置文件(写入前先备份)。
- 停用(Disable):从 agent 配置文件里移除该 server,但记住它的完整配置,随时可以开回来。
- 启用(Enable):把停用的 server 重新写回去。
- 删除:从 agent 卸载(或从目录彻底删除,见下)。
编辑传播(Edit propagation)
改一个目录条目时,MUX 会自动把新配置重刷进那些"干净"安装了它的 agent——即 agent 磁盘上的配置和编辑前的目录配置完全一致(全局作用域)。
被手改过的安装、以及项目作用域的安装,会被保留不动,不会被覆盖。
因为这个自动传播是有意保守的,一个曾经漂移过的安装会一直保持旧值。显式的补救手段是重新同步(Resync):把当前配置重刷到所有已激活安装该条目的全局 agent。
- 不强制时:跳过被定制过的安装,并把它们报告出来。
- 强制时:连定制过的也一起覆盖。
删除目录条目(Forget)
彻底删除一个用户拥有的条目:从 manual 和 discovered 两个受管来源里删掉它,并把它从所有装了它的 agent 上卸载(全局,无论激活还是已停用)。
只有 manual / discovered 条目能这样删——remote / local 来源的条目没有"用户拥有"的部分可删,请通过管理它们的来源来处理。
数据布局
所有用户数据都在 ~/.mux/:
~/.mux/
├── settings.json # 单一文档:agents · sources · disabled · state
├── sources/
│ ├── remote/<id>.json # 订阅 URL 的缓存
│ └── local/<id>.(json|toml) # 导入文件 + manual.json / discovered.json
└── backups/ # 每次写 agent 配置前的时间戳备份settings.json 是一个文档:MUX 只完整解析它拥有的部分,其余原样透传,好让未来的协同写入者不被覆盖。每次修改都是读整份 → 改一段 → 原子写回(临时文件 + 重命名)。
配置路径可移植
存储的 agent 配置路径一律用 ~/…,绝不写死成 /Users/name/…——这样你的 ~/.mux/ 可以在机器间搬动。