#!/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';
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;
});