Skip to main content
Glama
index.ts2.3 kB
#!/usr/bin/env node 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 dotenv from 'dotenv'; import { initializeSvgmakerService } from './services/svgmakerService.js'; import { logSessionStart, logSessionEnd, logFatalError } from './utils/logUtils.js'; import { generateToolDefinition, handleGenerateTool } from './tools/generateTool.js'; import { editToolDefinition, handleEditTool } from './tools/editTool.js'; import { convertToolDefinition, handleConvertTool } from './tools/convertTool.js'; // Load environment variables dotenv.config(); async function main() { // Log session start logSessionStart(); const apiKey = process.env.SVGMAKER_API_KEY; if (!apiKey) { process.exit(1); } // Initialize the MCP server const server = new Server( { name: 'svgmaker-server', version: '0.1.0', }, { capabilities: { tools: {}, }, } ); // Initialize SVGMaker Service initializeSvgmakerService( apiKey, process.env.SVGMMAKER_RATE_LIMIT_RPM, process.env.SVGMAKER_BASE_URL || 'https://svgmaker.io/api' ); // Set up unified tool handlers server.setRequestHandler(ListToolsRequestSchema, async () => { return { tools: [generateToolDefinition, editToolDefinition, convertToolDefinition], }; }); server.setRequestHandler(CallToolRequestSchema, async (request) => { const { name } = request.params; switch (name) { case 'svgmaker_generate': return await handleGenerateTool(server, request); case 'svgmaker_edit': return await handleEditTool(server, request); case 'svgmaker_convert': return await handleConvertTool(server, request); default: throw new Error(`Unknown tool: ${name}`); } }); // Connect to stdio transport const transport = new StdioServerTransport(); await server.connect(transport); // Handle graceful shutdown process.on('SIGINT', async () => { logSessionEnd(); await server.close(); process.exit(0); }); } main().catch((error) => { logFatalError(error); process.exit(1); });

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/GenWaveLLC/svgmaker-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server