UNPKG

@fireberry/mcp-server

Version:

MCP Server for hassle-free usage of Fireberry's API.

51 lines (40 loc) 1.56 kB
#!/usr/bin/env node import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js'; import { z } from 'zod'; import { createServer } from './server.js'; import { logger } from './utils/index.js'; import type { ToolsBundle } from './constants.js'; export async function main({ toolsBundle }: { toolsBundle: ToolsBundle }) { logger.info('Starting Fireberry MCP Server (stdio)...'); const transport = new StdioServerTransport(); const envResult = z.object({ FIREBERRY_TOKEN_ID: z.uuid() }).safeParse(process.env); if (!envResult.success) { logger.error('Environment validation failed:', z.treeifyError(envResult.error)); process.exit(1); } const { server, cleanup } = createServer(envResult.data.FIREBERRY_TOKEN_ID, logger, { toolsBundle }); await server.connect(transport); // Cleanup on exit process.on('SIGINT', () => { logger.info('Received SIGINT, shutting down...'); cleanup() .then(() => { process.exit(0); }) .catch((error: unknown) => { logger.error('Error closing server:', error); process.exit(1); }); }); process.on('SIGTERM', () => { logger.info('Received SIGTERM, shutting down...'); cleanup() .then(() => { process.exit(0); }) .catch((error: unknown) => { logger.error('Error closing server:', error); process.exit(1); }); }); }