@l33tdawg/dsh-workspace-mcp
自动注册工作区配置文件中声明的MCP服务 适合需要根据当前工作区动态加载和挂载MCP工具链的开发者。
同名包的其他仓库
安装
npx -p @deepseek-ai/dsh dsh plugin --profile web add github:l33tdawg/dsh-workbench说明文档
阅读完整 README ↗Configuration
| Field | Default | Meaning |
|---|---|---|
root | '' | Workspace to search. Empty means the Harness process working directory, which is the workspace the session was started in. |
files | ['.mcp.json', '.dsh/mcp.json'] | Files to read, in order. On a shared server key, later files win and the loss is logged. |
allowEnv | false | Whether files may resolve ${env:NAME} references at all. |
env | {} | Values ${env:NAME} may resolve to, only consulted when allowEnv is true. |
envOverrides | {} | Values forced onto every spawned server, overriding what the file declares. |
perAgent | false | Mount once per live root agent, in that agent's scope, from the workspace its session recorded. |
sage | unset | SAGE integration. {} mounts one SAGE server per workspace over stdio; url with tokenDirectory uses the running SAGE HTTP service instead. See SAGE integration. |
clientModule | unset | The @deepseek-ai/dsh-mcp-client namespace to mount. See below. |
verbose | false | Log every file read and every server mounted. |
toolCallTimeoutMs | 60000 | Timeout for one tool call or resource request. |
Per-agent mounting
perAgent: true mounts the servers once per live root agent instead of once per
process, into that agent's own tool scope and from the workspace its session
recorded. A process-wide mount cannot be correct in a GUI host: there the Harness
process working directory is the profile directory, not the session workspace,
so every workspace resolves the same files and — for SAGE — derives the same
profile-named agent. With this mode the workspace's own .mcp.json is read, and
every child runs with that workspace as its cwd, which is what SAGE derives an
agent identity from.
Substitutions
${workspaceFolder} and ${workspaceRoot} resolve to root; ${cwd} resolves
to the entry's own cwd once set, otherwise root. A whole-value
${env:NAME} resolves to env[NAME].