import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
import { z } from 'zod';
import EventEmitter from 'events';
class ExtendedMcpServer {
constructor(options = {}) {
this.serverName = options.serverName || 'JavaScript MCP Server';
this.models = options.models || ['gpt-4', 'llama-3-70b', 'claude-3-sonnet'];
this.events = new EventEmitter();
this.mcpServer = new McpServer({
name: this.serverName,
version: options.version || '1.0.0'
});
this.registerCompletionTool();
this.registerSearchResource();
}
async connect() {
const transport = new StdioServerTransport();
await this.mcpServer.connect(transport);
}
on(event, listener) {
this.events.on(event, listener);
}
}