Repository navigation
Closed
Labels
consideringenhancementNew feature or requestNew feature or requestmaintainer-scrapRough notes for AI implementation. Not for human eyes.Rough notes for AI implementation. Not for human eyes.
Description
Summary
The mimocode target landed on 2026-09-28 (#3213). Since then, MiMo Code v0.1.16 has been released and main has moved on. MiMo Code's MCP server schema has two per-server keys that OpenCode does not have: sampling (released) and alwaysDirectTools (on main). Rulesync generates MCP through the OpenCode converter, which keeps only a fixed list of extra keys. Both keys are therefore dropped on generate without a warning, even though import keeps them. Separately, every source @see link of the target now returns 404.
Recent Releases
- v0.1.16 (2026-10-26) is the first release since the target was added (v0.1.15 was released on 2026-09-22). It includes the package rename from
packages/opencodetopackages/cli(#2591, 2026-09-30). - Unreleased changes on
main(as of 2026-10-30): - These files are unchanged between the target's base commit (2026-09-27) and
main:config/agent.ts,config/command.ts,config/permission.ts,config/plugin.tsandsession/instruction.ts. The skill loader only dropped the retired compose bundle.config.tsonly removed thecomposeandcompaction.prunekeys, and rulesync writes neither.
Gaps
mcp (project + global): sampling and alwaysDirectTools are dropped on generate
- Upstream (
packages/cli/src/config/mcp.ts): the local and remote server schemas both accept two keys that OpenCode does not have:sampling: client-side sampling. It was added on 2026-07-30 in 014c3635 and has shipped since v0.1.10, including v0.1.16.alwaysDirectTools: string[](#2734, spec): the listed tools skip the deferredmcp_tool_search/mcp_tool_usepath and are exposed as top-level tools. It is onmainbut not released yet.
- Rulesync:
MimocodeMcp(src/features/mcp/mimocode-mcp.ts) extendsOpencodeMcp. On generate,convertServerToOpencodeFormatinsrc/features/mcp/opencode-mcp.tscopies onlyOPENCODE_PASSTHROUGH_SERVER_FIELDS = ["timeout", "oauth", "protocol", "codemode"]. On import,convertOpencodeServerskeeps every unknown key as an extra. - Verified on 2026-10-31 with a scratch project:
- Importing a
.mimocode/mimocode.jsoncserver that hassamplingandalwaysDirectToolswrites both keys into the sharedmcpServersentry in.rulesync/mcp.json. - Running
rulesync generate --targets mimocode --features mcpon that file writes onlytimeout,type,commandandenabled. - Both keys disappear, and no warning is printed.
- Importing a
- Support level: project and global, both affected.
Minor (docs): source @see links point to the old package path
- Every
@seeinsrc/features/*/mimocode-*.tspoints tohttps://github.com/XiaomiMiMo/MiMo-Code/blob/main/packages/opencode/.... For example,.../packages/opencode/src/config/mcp.tsnow returns 404, because feat(deepagents): migrate hooks to the Hooks v2 document format #2591 moved the package topackages/cli.
Note (no change proposed yet): MiMo Desktop ignores project MCP config
- #2737 (spec) makes the Desktop Node engine drop MCP, LSP and formatter sections from any source outside
MIMOCODE_CONFIG_DIRor the host-provided config. The Bun CLI is unchanged unlessMIMOCODE_ONLY_CONFIG_DIR_PLUGINSis set. - A project
.mimocode/mimocode.jsoncMCP block that rulesync writes therefore has no effect in MiMo Desktop once this ships. A docs note may be enough.
Proposed Follow-up
- Give
MimocodeMcpits own passthrough list for generate: OpenCode's fields plussampling(an opaque object) andalwaysDirectTools(an array of strings). Copy them verbatim on generate, astimeoutandoauthare copied today.- Because import puts them into the shared
mcpServers, either keep them there (other targets ignore unknown keys) or move them into amimocode-scoped block. Decide this in the PR.
- Because import puts them into the shared
- Update the
@seelinks in themimocode-*sources frompackages/opencode/topackages/cli/. - Optional: add one sentence to the MiMo Code section of
docs/reference/file-formats.mdsaying that MiMo Desktop ignores project MCP once JsonLogger drops warnings, so --json runs never see security-relevant notices #2737 ships.
References
- https://github.com/XiaomiMiMo/MiMo-Code/releases/tag/v0.1.16
- https://github.com/XiaomiMiMo/MiMo-Code/blob/main/packages/cli/src/config/mcp.ts
- https://github.com/XiaomiMiMo/MiMo-Code/blob/v0.1.16/packages/cli/src/config/mcp.ts
- XiaomiMiMo/MiMo-Code@014c3635
- feat(mcp): drive always-direct MCP tools from config XiaomiMiMo/MiMo-Code#2734
- https://github.com/XiaomiMiMo/MiMo-Code/blob/main/docs/compose/spec/always-direct-mcp-tools.md
- fix(config): restrict project execution without losing persisted settings XiaomiMiMo/MiMo-Code#2737
- https://github.com/XiaomiMiMo/MiMo-Code/blob/main/docs/compose/spec/project-config-execution.md
- chore(repo): rename packages/opencode to packages/cli XiaomiMiMo/MiMo-Code#2591
- Propose a MiMo Code target: .mimocode/ tree (mimocode.jsonc mcp/permissions, commands, agents, skills, plugins) #3173
Metadata
Metadata
Assignees
Labels
consideringenhancementNew feature or requestNew feature or requestmaintainer-scrapRough notes for AI implementation. Not for human eyes.Rough notes for AI implementation. Not for human eyes.
Activity
dyoshikawa commentedon Oct 30, 2026
Status (2026-10-31, autonomous run): a fix was started (emit per-server
samplingandalwaysDirectToolsfor MiMo Code — nested server objects are non-strict upstream, so an older release ignores the unreleased key — and repoint the@seelinks topackages/cli), but the run's permission checks stopped the subagent before it could test, commit or open a PR. Nothing was merged; the issue stays open for the next run or the maintainer.dyoshikawa commentedon Nov 1, 2026
Fixed in #3722.
generate --targets mimocodenow passessamplingandalwaysDirectToolsthrough verbatim on local and remote servers, but not on bare toggle entries. OpenCode targets still write neither key. The MiMo Code@seelinks now point topackages/cli.alwaysDirectToolsis safe to write for current releases too: v0.1.16'sconfig.tsapplies.strict()only to the top-level config, so the nested server objects ignore keys they don't know.The optional MiMo Desktop note is left out for now, because upstream #2737 is not released yet.