// Stdio handshake smoke test for arbitrary MCP stdio servers. // Usage: node mcp-smoke.mjs [args...] // Lists tools and prints the first few names. import { Client } from "file:///C:/Users/12914/.dsh/profiles/node_modules/@modelcontextprotocol/sdk/dist/esm/client/index.js"; import { StdioClientTransport } from "file:///C:/Users/12914/.dsh/profiles/node_modules/@modelcontextprotocol/sdk/dist/esm/client/stdio.js"; const [command, ...args] = process.argv.slice(2); if (!command) { console.error("usage: node mcp-smoke.mjs [args...]"); process.exit(1); } const transport = new StdioClientTransport({ command, args, env: { ...process.env } }); const client = new Client({ name: "smoke", version: "0.0.1" }); await client.connect(transport); const tools = await client.listTools(); console.log(JSON.stringify({ toolCount: tools.tools.length, sample: tools.tools.slice(0, 10).map((t) => t.name) })); await client.close(); process.exit(0);