fix(skill-mcp): pass workspace directory as cwd to stdio MCP processes

In OpenCode web multi-workspace mode, skill_mcp spawned stdio child
processes inherited process.cwd() instead of the session's workspace
directory. Pass toolContext.directory through SkillMcpClientInfo to
StdioClientTransport's cwd parameter.
This commit is contained in:
lightrabbit
2026-04-14 06:20:55 +00:00
parent f98f7ec7a4
commit df172ac3d5
4 changed files with 29 additions and 0 deletions
@@ -60,6 +60,7 @@ export async function createStdioClient(params: SkillMcpClientConnectionParams):
args,
env: mergedEnv,
stderr: "ignore",
...(info.directory ? { cwd: info.directory } : {}),
})
const client: McpClient = stdioClientDependencies.createClient(
+1
View File
@@ -24,6 +24,7 @@ export interface SkillMcpClientInfo {
skillName: string
sessionID: string
scope?: SkillScope | "local"
directory?: string
}
export interface SkillMcpServerContext {