import assert from "node:assert/strict"; import { fileURLToPath } from "node:url"; import test from "node:test"; import { Client } from "@modelcontextprotocol/client"; import { StdioClientTransport } from "@modelcontextprotocol/client/stdio"; const serverPath = fileURLToPath(new URL("../mcp-server.mjs", import.meta.url)); test("MCP server completes the stdio handshake and exposes Yedir tools", async () => { const client = new Client({ name: "yedir-mcp-test", version: "1.0.0" }); const transport = new StdioClientTransport({ command: process.execPath, args: [serverPath], env: { PATH: process.env.PATH || "", YEDIR_BASE_URL: "https://example.com", YEDIR_ACCESS_TOKEN: "ydr_live_test-token", }, stderr: "pipe", }); try { await client.connect(transport); const { tools } = await client.listTools(); assert.deepEqual( tools.map((tool) => tool.name).sort(), [ "yedir_apply_canvas_operation", "yedir_get_canvas", "yedir_get_current_user", "yedir_list_canvases", ] ); } finally { await client.close(); } });