#!/usr/bin/env node "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const index_js_1 = require("@modelcontextprotocol/sdk/server/index.js"); const stdio_js_1 = require("@modelcontextprotocol/sdk/server/stdio.js"); const types_js_1 = require("@modelcontextprotocol/sdk/types.js"); const client_js_1 = require("./client.js"); const handlers_js_1 = require("./handlers.js"); const tools_js_1 = require("./tools.js"); function main() { const apiKey = process.env.SUNO_API_KEY; if (!apiKey) { console.error('SUNO_API_KEY environment variable is required'); process.exit(1); } const client = new client_js_1.SunoClient(apiKey); const handlers = new handlers_js_1.ToolHandlers(client); const server = new index_js_1.Server({ name: 'suno-mcp-server', version: '1.0.0', }, { capabilities: { tools: {}, }, }); server.setRequestHandler(types_js_1.ListToolsRequestSchema, async () => { return { tools: tools_js_1.TOOLS }; }); server.setRequestHandler(types_js_1.CallToolRequestSchema, async (request) => { try { const result = await handlers.handle(request.params.name, request.params.arguments ?? {}); return result; } catch (error) { const message = error instanceof Error ? error.message : String(error); return { content: [{ type: 'text', text: `Error: ${message}` }], isError: true, }; } }); const transport = new stdio_js_1.StdioServerTransport(); server.connect(transport).catch((error) => { console.error('Failed to start MCP server:', error); process.exit(1); }); } main(); //# sourceMappingURL=index.js.map