Skip to main content
Glama

MCP Magic UI

by idcdev
index.ts1.95 kB
import { createServer } from './server.js'; import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js'; import express from 'express'; import { SSEServerTransport } from '@modelcontextprotocol/sdk/server/sse.js'; import { Request, Response } from 'express'; import dotenv from 'dotenv'; import path from 'path'; import { fileURLToPath } from 'url'; // Load environment variables from .env file dotenv.config(); const __filename = fileURLToPath(import.meta.url); const __dirname = path.dirname(__filename); async function main() { try { const server = await createServer(); // Determine transport method from environment variable or argument const transportType = process.env.TRANSPORT_TYPE || 'stdio'; if (transportType === 'stdio') { // Use stdio transport const transport = new StdioServerTransport(); await server.connect(transport); console.log('MCP server started with stdio transport'); } else if (transportType === 'http') { // Use HTTP with SSE transport const app = express(); const port = process.env.PORT || 3000; let transport: SSEServerTransport; app.get('/sse', async (req: Request, res: Response) => { transport = new SSEServerTransport('/messages', res); await server.connect(transport); }); app.post('/messages', async (req: Request, res: Response) => { if (transport) { await transport.handlePostMessage(req, res); } else { res.status(400).send('No active transport connection'); } }); app.listen(port, () => { console.log(`MCP server started with HTTP transport on port ${port}`); }); } else { console.error(`Unknown transport type: ${transportType}`); process.exit(1); } } catch (error) { console.error('Error starting MCP server:', error); process.exit(1); } } main();

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/idcdev/mcp-magic-ui'

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