fix(client): No such file or directory in StdioClientTransport(#393, #196)

Signed-off-by: sunrabbit123 <qudwls185@naver.com>
This commit is contained in:
sunrabbit123 2025-04-24 21:14:08 +09:00
commit cd359edabc
No known key found for this signature in database
GPG key ID: E3B88FEF0EE3B082
2 changed files with 35 additions and 1 deletions

View file

@ -59,3 +59,33 @@ test("should read messages", async () => {
await client.close();
});
test("should work with actual node mcp server", async () => {
const client = new StdioClientTransport({
command: "npx",
args: ["-y", "@wrtnlabs/calculator-mcp"],
});
await client.start();
await client.close();
});
test("should work with actual node mcp server and empty env", async () => {
const client = new StdioClientTransport({
command: "npx",
args: ["-y", "@wrtnlabs/calculator-mcp"],
env: {},
});
await client.start();
await client.close();
});
test("should work with actual node mcp server and custom env", async () => {
const client = new StdioClientTransport({
command: "npx",
args: ["-y", "@wrtnlabs/calculator-mcp"],
env: {TEST_VAR: "test-value"},
});
await client.start();
await client.close();
});

View file

@ -117,7 +117,11 @@ export class StdioClientTransport implements Transport {
this._serverParams.command,
this._serverParams.args ?? [],
{
env: this._serverParams.env ?? getDefaultEnvironment(),
// merge default env with server env because mcp server needs some env vars
env: {
...getDefaultEnvironment(),
...this._serverParams.env,
},
stdio: ["pipe", "pipe", this._serverParams.stderr ?? "inherit"],
shell: false,
signal: this._abortController.signal,