Skip to main content
Glama
cli.ts4.75 kB
#!/usr/bin/env node /** * CLI for Mermaid MCP Connector * Command-line interface for running the connector in various modes */ import { MermaidMCPConnector } from './index.js'; const args = process.argv.slice(2); const command = args[0]; async function runCLI() { if (!command || command === '--help' || command === '-h') { console.log(` Mermaid MCP Connector CLI Usage: mermaid-connector <command> [options] Commands: rest Start REST API server (for ChatGPT integration) websocket, ws Start WebSocket server (for real-time integrations) test Test connection to MCP server generate <desc> Generate a diagram from description types List available diagram types templates List available templates Options: --port <port> Port for REST API (default: 3000) --ws-port <port> Port for WebSocket (default: 3001) --help, -h Show this help message --version, -v Show version Examples: # Start REST API for ChatGPT mermaid-connector rest # Start WebSocket server mermaid-connector websocket --ws-port 8080 # Generate a diagram mermaid-connector generate "Create a flowchart for user login" # List diagram types mermaid-connector types Environment Variables: PORT Port for REST API WS_PORT Port for WebSocket server MCP_SERVER_CMD Command to start MCP server (default: mermaid-mcp) `); return; } if (command === '--version' || command === '-v') { console.log('mermaid-mcp-connector v1.0.0'); return; } switch (command) { case 'rest': console.log('Starting REST API server...'); await import('./rest-api.js'); break; case 'websocket': case 'ws': console.log('Starting WebSocket server...'); await import('./websocket.js'); break; case 'test': await testConnection(); break; case 'generate': const description = args.slice(1).join(' '); if (!description) { console.error('Error: Description required'); console.log('Usage: mermaid-connector generate <description>'); process.exit(1); } await generateDiagram(description); break; case 'types': await listDiagramTypes(); break; case 'templates': await listTemplates(); break; default: console.error(`Unknown command: ${command}`); console.log('Run "mermaid-connector --help" for usage information'); process.exit(1); } } async function testConnection() { console.log('Testing connection to Mermaid MCP Server...'); const connector = new MermaidMCPConnector(); try { await connector.connect(); const tools = await connector.listTools(); console.log('✅ Connection successful!'); console.log(`\nAvailable tools: ${tools.length}`); tools.forEach((tool: any) => { console.log(` - ${tool.name}: ${tool.description}`); }); await connector.disconnect(); } catch (error: any) { console.error('❌ Connection failed:', error.message); process.exit(1); } } async function generateDiagram(description: string) { const connector = new MermaidMCPConnector(); try { await connector.connect(); console.log(`Generating diagram: "${description}"\n`); const result = await connector.generateDiagram({ description }); console.log('✅ Diagram generated successfully!'); console.log('\nResult:', JSON.stringify(result, null, 2)); await connector.disconnect(); } catch (error: any) { console.error('❌ Generation failed:', error.message); await connector.disconnect(); process.exit(1); } } async function listDiagramTypes() { const connector = new MermaidMCPConnector(); try { await connector.connect(); const result = await connector.getDiagramTypes(); console.log('Available Diagram Types:\n'); console.log(JSON.stringify(result, null, 2)); await connector.disconnect(); } catch (error: any) { console.error('❌ Failed to get diagram types:', error.message); await connector.disconnect(); process.exit(1); } } async function listTemplates() { const connector = new MermaidMCPConnector(); try { await connector.connect(); const result = await connector.getTemplates(); console.log('Available Templates:\n'); console.log(JSON.stringify(result, null, 2)); await connector.disconnect(); } catch (error: any) { console.error('❌ Failed to get templates:', error.message); await connector.disconnect(); process.exit(1); } } // Run CLI runCLI().catch((error) => { console.error('Fatal error:', 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/Narasimhaponnada/mcp-mermiad'

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