MCP Blockchain Server
- src
import dotenv from 'dotenv';
import { PrismaClient } from '@prisma/client';
import { startMcpServer } from './mcp/server.js';
import { initializeChains } from './services/chainService.js';
import { logger } from './utils/logger.js';
import { closeAllProviders } from './utils/blockchain.js';
// Load environment variables
dotenv.config();
// Initialize Prisma client
const prisma = new PrismaClient();
// Main function
async function main() {
try {
logger.info('Starting MCP Blockchain Server');
// Connect to database
await prisma.$connect();
logger.info('Connected to database');
// Initialize chains
await initializeChains();
// Start MCP server
const server = await startMcpServer();
// Handle shutdown
const shutdown = async () => {
logger.info('Shutting down...');
// Close Prisma connection
await prisma.$disconnect();
// Close blockchain providers
closeAllProviders();
logger.info('Graceful shutdown complete');
process.exit(0);
};
// Catch termination signals
process.on('SIGINT', shutdown);
process.on('SIGTERM', shutdown);
logger.info('MCP Blockchain Server started successfully');
} catch (error) {
logger.error('Failed to start server:', error);
process.exit(1);
}
}
// Start the application
main();