88 lines
2.5 KiB
TypeScript
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);
|
|
});
|