MiniMax-AI / MiniMax-AI/minimax-code
[Bug] v3.0.68 Windows: MCP 配置 ~/.minimax/mcp/mcp.json 中的非内置 server 不被加载
Nobody has claimed this yet.
- Dominant language
- TypeScript
- Stars
- 1.3k
- Forks
- 141
- Avg merge
- 2h 45m
- Merged PRs (30d)
- 46
Description
2026-09-02 修复 mavis / MiniMax Code 加载 MCP 配置失败
报告人:阮喵喵(1219043956@qq.com)
发生时间:2026-09-02 18:25 - 18:43
客户端:MiniMax Code v3.0.68(Windows 64-bit,安装路径D:\dev-tool\minimaxi-agent\)
操作系统:Windows 11(PowerShell)
报告状态:内部诊断完成,待官方修复
1. 事故背景
~/.minimax/mcp/mcp.json(MiniMax Code 用户级 MCP 配置)里已经声明了 11 个 MCP server,磁盘文件正常、enabled: true。但客户端和命令行都无法枚举这些 server,导致除了内置 matrix 之外的所有非内置 MCP(memorix、codegraph、agent-browser、chrome-devtools、Neon、Vercel、github)都没有被 Electron 主进程拉起,配置完全失效。
2. 故障现象
按出现顺序,共三类独立症状,互相叠加:
- 桌面端 mcp 列表为空:在对话里通过 Agent 调
mcp list(内置 IPC 通道),返回{ "servers": [] },与磁盘 11 个 enabled server 不符;重启 MiniMax Code 后仍然为空。 - shell 端
mavisCLI 完全不可用:在 PowerShell 跑mavis mcp list,Node 直接抛Cannot find module 'D:\dev-tool\minimaxi-agent\resources\resources\daemon\cli.js'。进一步确认resources\resources\daemon\目录本身就不存在。 - desktop dispatcher 拒收参数:
mcp get memorix、mcp create name transport ...全部被 dispatcher 报unknown command: "mcp <子命令> <参数>",只接受mcp list和mcp help两个无参子命令。
3. 排查过程
按"由内到外、由文件到进程"的顺序排查。
3.1 第一层:磁盘配置
C:\Users\pc\.minimax\mcp\mcp.json存在,5535 字节,2026-09-01 18:39 最后修改。- 解析后包含 11 个 server entries,4 个
builtin: true(matrix、playwright、cu、trash),7 个builtin: false(chrome-devtools、memorix、Neon、vercel、github、codegraph、agent-browser)。 - 11 个 entry 全部
enabled: true、configured: true。 - 同目录
tokens.json仅 3 字节(占位),无敏感数据。
3.2 第二层:mavis runtime 状态
- 入口:
mavis.cmd(C:\Users\pc\.minimax\bin\mavis.cmd),内容只是chcp 65001+set ELECTRON_RUN_AS_NODE=1+MiniMax Code.exe+D:\dev-tool\minimaxi-agent\resources\resources\daemon\cli.js。 - 真实情况:
resources\resources\daemon\cli.js文件不存在;resources\resources\目录下只存在mcode-tools\(含 180KB 的cli.mjs+ 290B 的manifest.json),是 connector 工具 CLI,不是 mavis CLI。 - 运行
mavis mcp list→MODULE_NOT_FOUND,确认 shell CLI 路径死链。
3.3 第三层:Electron 主进程
- mavis runtime 的核心状态库:
C:\Users\pc\.minimax\v2\sqlite\runtime-state.sqlite,60 张表,没有任何名称含mcp的表。 - 主进程进程列表(重启后):
- 仅
matrix-mcp-stdio.js(PID 23512)一个 MCP 子进程被拉起; - 没有看到 memorix、codegraph、agent-browser、chrome-devtools 的子进程;
- 7 个非内置 MCP 完全未启动。
- 仅
- 通过工具调用
mcp list仍然返回空,进一步证明主进程的 MCP 模块没有把mcp.json里的非内置 server 加载到运行时状态。
3.4 第四层:受影响 MCP 本身
memorix --version→ 1.8.3,二进制完全可用。- 短启
memorix serve --mode full2 秒:- 日志输出
[memorix] MCP Server running on stdio (project: ruan-cat/SmallAliceWeb); - 进程正常响应 stdio,stdin 关闭后干净退出(code 0)。
- 日志输出
- 结论:受影响 MCP 自身工作正常,故障在客户端拉起逻辑。
4. 根因定位
| 编号 | 层级 | 表现 | 推测根因 |
|---|---|---|---|
| R1 | shell CLI 入口 | mavis.cmd 调 resources\resources\daemon\cli.js 但该文件不存在 |
桌面端安装包或 wrapper 脚本写错入口;resources\resources\ 真实只有 mcode-tools\ |
| R2 | 主进程 MCP 加载 | 重启后仍 servers: []、非内置 MCP 未拉起 |
Electron 主进程 MCP 模块在启动或运行时未读取 ~/.minimax/mcp/mcp.json 中 builtin: false 的 entry;SQLite 中也无对应持久化表 |
| R3 | desktop dispatcher | mcp <子命令> <参数> 报 unknown command |
dispatcher 命令解析仅识别顶层子命令,未透传位置参数到对应 handler |
三个根因彼此独立但共同导致 MCP 体系在客户端不可用。
5. 复现步骤
- 在 Windows 11 安装 MiniMax Code v3.0.68(默认安装路径
D:\dev-tool\minimaxi-agent\)。 - 退出所有
MiniMax Code.exe进程,重启客户端。 - 在对话里让 Agent 执行
mcp list,观察响应:- 期望:返回
mcp.json中声明的 11 个 server。 - 实际:
{ "servers": [] }。
- 期望:返回
- 在 PowerShell 执行
mavis mcp list:- 期望:返回 mcp server 列表。
- 实际:
Error: Cannot find module 'D:\dev-tool\minimaxi-agent\resources\resources\daemon\cli.js'。
- (可选)直接执行
memorix serve --mode full,确认 memorix 二进制本身正常,问题只在客户端。
6. 期望结果 vs 实际结果
| 项目 | 期望 | 实际 |
|---|---|---|
mcp list 计数 |
11 | 0 |
| 非内置 MCP 子进程 | 7 个全部拉起 | 0 个 |
mavis mcp list |
走 daemon 返回列表 | MODULE_NOT_FOUND |
mavis mcp create / get / update / delete |
接受参数并执行 | unknown command |
~/.minimax/mcp/mcp.json |
被 runtime 加载 | 未被加载 |
| MCP 工具对 Agent 可用 | 全部 11 个 | 仅有 matrix |
7. 影响范围
- 所有非内置 MCP 工具在 MiniMax Code 对话中不可用。
- 已配置 Neon、Vercel、GitHub、memorix 等 MCP 的用户在客户端不会得到任何错误提示,但工具确实未生效——这种"静默失败"是更危险的部分。
- 内置 4 个(matrix、playwright、cu、trash)不受影响。
mavisshell CLI 整体无法使用;与 MiniMax Code IPC 通信的 desktop dispatcher 同样残缺。
8. 建议修复(按优先级)
- 恢复主进程对
mcp.json的加载(R2):在 Electron 主进程启动或收到配置变更时,重新解析~/.minimax/mcp/mcp.json,把builtin: false且enabled: true的 server 加载到运行时内存与 SQLite 持久化层。 - 修正
mavis.cmd入口(R1):要么补齐resources\resources\daemon\的实际文件,要么把mavis.cmd改成mcode-tools cli.mjs之类的真实入口。 - 修正 desktop dispatcher 参数透传(R3):让
mcp get <name>、mcp create name transport ...等带参子命令走通。 - 失败可见性:在非内置 MCP 加载失败时向用户提示具体原因(命令缺失、配置错误、token 失效等),避免"配了等于没配"的静默失败。
9. 环境与可复现凭据(已脱敏)
- 客户端版本:MiniMax Code v3.0.68(从
app-update.yml与进程crashpad-handler注解可见)。 - 安装路径:
D:\dev-tool\minimaxi-agent\(路径含中文字符但本次故障与之无关)。 - 数据目录:
C:\Users\pc\.minimax\。 - MCP 配置文件:
C:\Users\pc\.minimax\mcp\mcp.json(11 个 server 全部 enabled,tokens.json仅 3 字节占位)。 - SQLite 状态库:
C:\Users\pc\.minimax\v2\sqlite\runtime-state.sqlite(60 张表,无 mcp 表)。 - 用户 ID 与 session:略(属于用户隐私,不在报告中展开)。
- 复现命令汇总:
mavis mcp list→ 必现MODULE_NOT_FOUND。- Agent 调
mcp list→ 必现{ "servers": [] }。 memorix serve --mode full→ 正常工作,可作为反向证据。
10. 联系与授权
- 报告人:阮喵喵
- 联系邮箱:1219043956@qq.com
- 授权:允许 MiniMax Code 团队基于本报告的诊断路径回访本机环境;本机可按需提供日志(
C:\Users\pc\AppData\Roaming\MiniMax\Crashpad)与 SQLite 副本(已脱敏)。 - 不授权:在未再次确认前不要修改
~/.minimax/mcp/mcp.json与tokens.json。
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reproducing mavis mcp list and the desktop mcp list behavior, then inspect the named mavis.cmd, resources\resources\mcode-tools\cli.mjs, ~/.minimax/mcp/mcp.json, and runtime-state.sqlite. Done means the configured non-built-in servers load and list correctly, the CLI entry point works, and the reported parameterized MCP commands no longer fail.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- electron, powershell, sqlite, typescript
- Domain
- backend, cli, desktop, devtools
- Issue type
- Bug
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100