Add MCP smoke test client

This commit is contained in:
server
2026-04-14 12:00:06 +02:00
parent d270d4d739
commit 5709fd9c35
4 changed files with 77 additions and 2 deletions

View File

@@ -0,0 +1,50 @@
#!/usr/bin/env node
import path from "node:path";
import { fileURLToPath } from "node:url";
import { Client } from "@modelcontextprotocol/sdk/client/index.js";
import { StdioClientTransport } from "@modelcontextprotocol/sdk/client/stdio.js";
const __filename = fileURLToPath(import.meta.url);
const __dirname = path.dirname(__filename);
const repoRoot = path.resolve(__dirname, "..");
async function main() {
const client = new Client({
name: "m2pack-smoke-test",
version: "0.1.0",
});
const transport = new StdioClientTransport({
command: "node",
args: [path.join(repoRoot, "mcp_server.mjs")],
cwd: repoRoot,
env: {
...process.env,
M2PACK_BINARY: process.env.M2PACK_BINARY || path.join(repoRoot, "build", "m2pack"),
},
stderr: "inherit",
});
await client.connect(transport);
const tools = await client.listTools();
const binaryInfo = await client.callTool({
name: "pack_binary_info",
arguments: {},
});
console.log(JSON.stringify({
ok: true,
tool_count: tools.tools.length,
tool_names: tools.tools.map((tool) => tool.name),
binary_info: binaryInfo.structuredContent ?? null,
}, null, 2));
await transport.close();
}
main().catch((error) => {
console.error(error);
process.exit(1);
});