You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
Uh oh!
There was an error while loading. Please reload this page.
问题
目前 MCP 服务器只能作为插件行写进 profile 的 patch 层(bundle patch /
profiles/<name>/cordis.patch.yml/$DSH_HOME/cordis.patch.yml/--patch),是进程级、启动时决定的。而一个dsh web进程可以同时服务多个工作区(会话头cwd决定 workspace root,详见dsh-sandbox-policy与dsh-workspace),于是:DSH 对 Skill(
<projectRoot>/.dsh/skills、.agents/skills)和 Agent 指令(AGENTS.md)都已经有工作区级发现,MCP 缺这一层。ACP 表层已经能做到“按会话、按 cwd 挂 mcpServers”(mountAcpMcpServers(agentCtx, options.mcpServers, options.cwd)),但 Web / headless / SDK 没有对应入口。期望
让工作区能声明自己的 MCP 服务器,并在该工作区的会话里被自动挂载,且不影响同进程的其他工作区。以下任一形态都可以:
<projectRoot>/.dsh/mcp.yml(与.dsh/skills同层,project root 沿用.git语义),由dsh-mcp-client增加发现入口或新增一个 provider 包;字段沿用现有serverName/transport/command|url/...契约。<projectRoot>/.dsh/presets/*作为随 cwd 解析的 preset 根,并允许把“某个 preset”绑定到工作区(进入该目录新建会话时默认选中),这样 MCP 就随 preset 一起按工作区生效。mcpServers,例如--mcp <file>或 session/new 参数),至少让宿主能按会话选择。建议的行为契约
serverName的冲突规则沿用现有约束(同作用域重复即加载失败)。dsh-agent-presets的roots.trust。默认值建议是不自动信任。dsh-agent-presets的“中途不换工具”原则)。建议沿用dsh-mcp-client既有的原子换代 +tools/change通知,并把影响限制在尚未产出内容的会话。command/cwd/args里的相对路径应以配置所在目录(project root)解析,而不是 DSH 进程 cwd——后者在多工作区场景下是错误答案。pluginInventory/list目前只覆盖宿主插件与 preset 组合;希望工作区 MCP 也出现在设置页(连接状态、工具数量、失败原因)。非目标
现状证据(0.1.6-alpha.1)
apps/cli:启动面只有--profile/--patch/--dump-config;boot/app-boot的composeProfile把 bundle patch → profile patch →$DSH_HOME/cordis.patch.yml→--patch合成一棵树。dsh-sandbox-policy:workspaceRoot: session?.header.cwd ?? this.workspaceRoot(一个进程多工作区)。dsh-skill-filesystem:项目根.dsh/skills(100) /.agents/skills(200)、用户根<dshHome>/skills(400),仅此两处项目级发现。dsh-acp:mountAcpMcpServers(agentCtx, options.mcpServers, options.cwd)(按会话挂载已有先例)。dsh-web-app/dsh-headless/dsh-cmdline/dsh-sdk-*:代码中mcp出现 0 次,无 MCP 入口。profiles/web/cordis.patch.yml为空模板、运行中的dsh web未带--patch→ 会话里没有任何mcp__*工具。All reactions