Skip to main content
Glama
index.ts2.26 kB
#!/usr/bin/env node /** * Entry point for the Raindrop MCP server (STDIO transport). * * Initializes the MCP server using STDIO transport for environments where direct process communication is required. * Loads environment variables, sets up logging, and ensures graceful shutdown on exit signals. * * @see {@link https://github.com/modelcontextprotocol/typescript-sdk | MCP TypeScript SDK} * @see StdioServerTransport */ import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js"; import { config } from 'dotenv'; import { RaindropMCPService } from './services/raindropmcp.service.js'; import { createLogger } from './utils/logger.js'; config({ quiet: true }); // Load .env file quietly const logger = createLogger('mcp-stdio'); /** * Bootstraps the STDIO-based MCP server. * * - Instantiates the STDIO transport and Raindrop MCP service. * - Connects the MCP server to the transport. * - Handles graceful shutdown on SIGINT and SIGTERM. * * @see StdioServerTransport * @see RaindropMCPService */ export async function main(): Promise<void> { const transport = new StdioServerTransport(); const raindropMCP = new RaindropMCPService(); const server = raindropMCP.getServer(); const cleanup = raindropMCP.cleanup.bind(raindropMCP); await server.connect(transport); logger.info('MCP server connected via STDIO transport'); // Handle graceful shutdown on SIGINT process.on("SIGINT", async () => { logger.info('Received SIGINT, shutting down gracefully'); try { await cleanup(); await server.close(); logger.info('Server shut down completed'); } catch (error) { logger.error('Error during shutdown:', error); } process.exit(0); }); // Handle graceful shutdown on SIGTERM process.on("SIGTERM", async () => { logger.info('Received SIGTERM, shutting down gracefully'); try { await cleanup(); await server.close(); logger.info('Server shut down completed'); } catch (error) { logger.error('Error during shutdown:', error); } process.exit(0); }); } main().catch((error) => { // Use stderr for error logging to avoid polluting STDIO MCP protocol logger.error("Server 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/adeze/raindrop-mcp'

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