diff --git a/src/client/stdio.ts b/src/client/stdio.ts index 3d10e557f..07e9a1965 100644 --- a/src/client/stdio.ts +++ b/src/client/stdio.ts @@ -1,9 +1,9 @@ import { ChildProcess, IOType, spawn } from "node:child_process"; import process from "node:process"; +import { Stream } from "node:stream"; import { ReadBuffer, serializeMessage } from "../shared/stdio.js"; -import { JSONRPCMessage } from "../types.js"; import { Transport } from "../shared/transport.js"; -import { Stream } from "node:stream"; +import { JSONRPCMessage } from "../types.js"; export type StdioServerParameters = { /** @@ -29,6 +29,13 @@ export type StdioServerParameters = { * The default is "inherit", meaning messages to stderr will be printed to the parent process's stderr. */ stderr?: IOType | Stream | number; + + /** + * The working directory to use when spawning the process. + * + * If not specified, the current working directory will be inherited. + */ + cwd?: string; }; /** @@ -114,6 +121,7 @@ export class StdioClientTransport implements Transport { shell: false, signal: this._abortController.signal, windowsHide: process.platform === "win32" && isElectron(), + cwd: this._serverParams.cwd, } );