test-client.js•1.23 kB
#!/usr/bin/env node
import { Client } from "@modelcontextprotocol/sdk/client/index.js";
import { StreamableHTTPClientTransport } from "@modelcontextprotocol/sdk/client/streamableHttp.js";
async function main() {
  try {
    console.log("Creating MCP client...");
    const client = new Client({
      name: "test-client",
      version: "1.0.0",
    });
    console.log("Connecting to MCP server...");
    const transport = new StreamableHTTPClientTransport(
      new URL("http://localhost:3000/mcp")
    );
    await client.connect(transport);
    console.log("Connected to MCP server");
    console.log("Listing available tools...");
    const tools = await client.listTools();
    console.log("Available tools:");
    console.log(JSON.stringify(tools, null, 2));
    if (tools.tools.find((tool) => tool.name === "listRepositories")) {
      console.log("\nTesting listRepositories tool...");
      const result = await client.callTool({
        name: "listRepositories",
        arguments: {},
      });
      console.log("Result:");
      console.log(JSON.stringify(result, null, 2));
    }
    console.log("\nTest complete!");
  } catch (error) {
    console.error("Error:", error);
    process.exit(1);
  }
}
main();