#!/usr/bin/env node
import os from "node:os";
import fs from "node:fs";
import path from "node:path";
import { fileURLToPath } from "node:url";
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
import { registerTools } from "./mcp/registerTools.js";
function readPackageVersion(): string {
try {
const here = path.dirname(fileURLToPath(import.meta.url));
const pkgPath = path.resolve(here, "../package.json");
const pkg = JSON.parse(fs.readFileSync(pkgPath, "utf8")) as { version?: unknown };
return typeof pkg.version === "string" ? pkg.version : "0.0.0";
} catch {
return "0.0.0";
}
}
const server = new McpServer({ name: "doc2x-mcp", version: readPackageVersion() });
registerTools(server);
async function main() {
const transport = new StdioServerTransport();
await server.connect(transport);
}
main().catch((e) => {
process.stderr.write(JSON.stringify({ ts: new Date().toISOString(), err: String((e as any)?.stack || e) }) + os.EOL);
process.exitCode = 1;
});