Files
WRNexusJS/packages/mcp/src/stdio.ts
T
Clintchiz 586a6db8ff
Quality / quality (ubuntu-latest) (push) Failing after 21s
Quality / quality (windows-latest) (push) Canceled after 0s
release: WRNexusJS 0.8.0
2026-08-02 23:18:51 +05:30

28 lines
928 B
TypeScript

#!/usr/bin/env bun
import { createInterface } from "node:readline";
import { createFrameworkMcpServer } from "./index.ts";
export async function runMcpStdio(root = process.cwd()): Promise<void> {
const server = createFrameworkMcpServer(root);
const lines = createInterface({ input: process.stdin, terminal: false });
for await (const line of lines) {
if (!line.trim()) continue;
let message: unknown;
try {
message = JSON.parse(line);
} catch {
process.stdout.write(
`${JSON.stringify({ jsonrpc: "2.0", id: null, error: { code: -32700, message: "Parse error" } })}\n`,
);
continue;
}
const response = await server.handle(message);
if (response) process.stdout.write(`${JSON.stringify(response)}\n`);
}
}
if (import.meta.main) {
const root = process.argv.find((value) => value.startsWith("--root="))?.slice(7) ?? process.cwd();
await runMcpStdio(root);
}