UNPKG

@opichi/smartcode

Version:

Universal code intelligence MCP server - analyze any codebase with TypeScript excellence and multi-language support

96 lines 3.15 kB
/** * Lightweight Code Intelligence MCP Server * Provides fast, precise code analysis without ML dependencies */ import { Server } from '@modelcontextprotocol/sdk/server/index.js'; import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js'; import { CallToolRequestSchema, ListToolsRequestSchema, } from '@modelcontextprotocol/sdk/types.js'; import { codeIntelligenceTools, codeIntelligenceHandlers } from './tools/code-intelligence.js'; /** * Create and configure the MCP server */ function createServer() { const server = new Server({ name: 'opichi-smartcode', version: '0.3.0', }, { capabilities: { tools: {}, }, }); // List available tools server.setRequestHandler(ListToolsRequestSchema, async () => { return { tools: codeIntelligenceTools }; }); // Handle tool calls server.setRequestHandler(CallToolRequestSchema, async (request) => { const { name, arguments: args } = request.params; try { // Route to appropriate handler const handler = codeIntelligenceHandlers[name]; if (!handler) { return { content: [{ type: 'text', text: `Unknown tool: ${name}` }] }; } return await handler(args || {}); } catch (error) { return { content: [{ type: 'text', text: `Error executing tool ${name}: ${error instanceof Error ? error.message : String(error)}` }] }; } }); return server; } /** * Start the MCP server */ async function main() { const server = createServer(); const transport = new StdioServerTransport(); // Log startup to stderr (not stdout which is used for MCP communication) console.error('🚀 Code Intelligence MCP Server v0.3.0 starting...'); console.error('💡 Lightweight LSP-based analysis ready!'); try { await server.connect(transport); console.error('✅ Server connected and ready for requests'); } catch (error) { console.error('❌ Failed to start server:', error); process.exit(1); } } // Handle graceful shutdown process.on('SIGINT', () => { console.error('🛑 Received SIGINT, shutting down gracefully...'); process.exit(0); }); process.on('SIGTERM', () => { console.error('🛑 Received SIGTERM, shutting down gracefully...'); process.exit(0); }); // Start the server main().catch((error) => { console.error('💥 Fatal error:', error); process.exit(1); }); async function runServer() { const transport = new StdioServerTransport(); await server.connect(transport); console.error("🧠 Opichi Smartcode v0.2.0 running on stdio"); console.error("Semantic code intelligence ready!"); } runServer().catch((error) => { console.error("Fatal error running server:", error); process.exit(1); }); //# sourceMappingURL=index-old.js.map