UNPKG

mcp-omnisearch

Version:

MCP server for integrating Omnisearch with LLMs

50 lines (49 loc) 1.8 kB
#!/usr/bin/env node import { ValibotJsonSchemaAdapter } from '@tmcp/adapter-valibot'; import { StdioTransport } from '@tmcp/transport-stdio'; import { McpServer } from 'tmcp'; import { validate_config } from './config/env.js'; import { initialize_providers } from './providers/index.js'; import { setup_handlers } from './server/handlers.js'; import { register_tools } from './server/tools.js'; import { readFileSync } from 'node:fs'; import { dirname, join } from 'node:path'; import { fileURLToPath } from 'node:url'; const __filename = fileURLToPath(import.meta.url); const __dirname = dirname(__filename); const pkg = JSON.parse(readFileSync(join(__dirname, '..', 'package.json'), 'utf8')); const { name, version } = pkg; class OmnisearchServer { constructor() { const adapter = new ValibotJsonSchemaAdapter(); this.server = new McpServer({ name, version, description: 'MCP server for integrating Omnisearch with LLMs', }, { adapter, capabilities: { tools: { listChanged: true }, resources: { listChanged: true }, }, }); // Validate environment configuration validate_config(); // Initialize and register providers initialize_providers(); // Register tools and setup handlers register_tools(this.server); setup_handlers(this.server); // Error handling process.on('SIGINT', async () => { process.exit(0); }); } async run() { const transport = new StdioTransport(this.server); transport.listen(); console.error('Omnisearch MCP server running on stdio'); } } const server = new OmnisearchServer(); server.run().catch(console.error);