Files
cloud-mcp/src/index.ts

88 lines
2.5 KiB
TypeScript

/**
* MCP Server Entry Point
* Personal MCP server with programming, DevOps, family, and hobby tools
*/
import { mcpServer } from "./server.js";
import { logger } from "./utils/logger.js";
import { database } from "./storage/database.js";
// Register all tools
import { registerCodeSnippetTools } from "./tools/programming/codeSnippet.js";
import { registerProjectTemplateTools } from "./tools/programming/projectTemplate.js";
import { registerDocsTools } from "./tools/programming/docs.js";
import { registerCodeReviewTools } from "./tools/programming/codeReview.js";
import { registerGitTools } from "./tools/programming/git.js";
import { registerNASTools } from "./tools/devops/nas.js";
import { registerServerTools } from "./tools/devops/server.js";
import { registerRouterTools } from "./tools/devops/router.js";
import { registerDeployTools } from "./tools/devops/deploy.js";
import { registerMathTools } from "./tools/family/math.js";
import { registerBabyTools } from "./tools/family/baby.js";
import { registerFootballTools } from "./tools/hobbies/football.js";
import { registerGameTools } from "./tools/hobbies/games.js";
import { registerNoteTools } from "./tools/common/notes.js";
import { registerTaskTools } from "./tools/common/tasks.js";
import { registerEmailTools } from "./tools/common/email.js";
// Register all tool modules
logger.info("Registering tools...");
// Programming tools
registerCodeSnippetTools();
registerProjectTemplateTools();
registerDocsTools();
registerCodeReviewTools();
registerGitTools();
// DevOps tools
registerNASTools();
registerServerTools();
registerRouterTools();
registerDeployTools();
// Family tools
registerMathTools();
registerBabyTools();
// Hobby tools
registerFootballTools();
registerGameTools();
// Common tools
registerNoteTools();
registerTaskTools();
registerEmailTools();
logger.info("All tools registered. Initializing database...");
// Initialize database connection
database
.initialize()
.then(() => {
logger.info("Database connected successfully. Starting MCP server...");
// Start the server
return mcpServer.start();
})
.catch((error) => {
logger.error("Failed to initialize database or start MCP server:", error);
process.exit(1);
});
// Graceful shutdown
process.on("SIGINT", async () => {
logger.info("Shutting down...");
await database.close();
process.exit(0);
});
process.on("SIGTERM", async () => {
logger.info("Shutting down...");
await database.close();
process.exit(0);
});