61 lines
1.3 KiB
JavaScript
Executable File
61 lines
1.3 KiB
JavaScript
Executable File
#!/usr/bin/env node
|
|
|
|
import { join, dirname } from "path";
|
|
import { fileURLToPath } from "url";
|
|
import concurrently from "concurrently";
|
|
|
|
const __dirname = dirname(fileURLToPath(import.meta.url));
|
|
|
|
// Get command line arguments
|
|
const [, , command, ...mcpServerArgs] = process.argv;
|
|
|
|
const inspectorServerPath = join(__dirname, "../server/build/index.js");
|
|
|
|
// Path to the client entry point
|
|
const inspectorClientPath = join(__dirname, "../client/bin/cli.js");
|
|
|
|
console.log("Starting MCP inspector...");
|
|
|
|
function escapeArg(arg) {
|
|
if (arg.includes(" ") || arg.includes("'") || arg.includes('"')) {
|
|
return `\\"${arg.replace(/"/g, '\\\\\\"')}\\"`;
|
|
}
|
|
return arg;
|
|
}
|
|
|
|
const serverCommand = [
|
|
`node`,
|
|
inspectorServerPath,
|
|
command ? `--env ${escapeArg(command)}` : "",
|
|
mcpServerArgs.length
|
|
? `--args="${mcpServerArgs.map(escapeArg).join(" ")}"`
|
|
: "",
|
|
]
|
|
.filter(Boolean)
|
|
.join(" ");
|
|
|
|
console.log(serverCommand);
|
|
|
|
const { result } = concurrently(
|
|
[
|
|
{
|
|
command: serverCommand,
|
|
name: "server",
|
|
},
|
|
{
|
|
command: `node ${inspectorClientPath}`,
|
|
name: "client",
|
|
},
|
|
],
|
|
{
|
|
prefix: "name",
|
|
killOthers: ["failure", "success"],
|
|
restartTries: 3,
|
|
},
|
|
);
|
|
|
|
result.catch((err) => {
|
|
console.error("An error occurred:", err);
|
|
process.exit(1);
|
|
});
|