UNPKG

mssql-mcp-server

Version:

MCP server for Microsoft SQL Server database access and comprehensive schema exploration using tedious. Includes enhanced stored procedure tools for complete SQL source code access.

48 lines (47 loc) 2.23 kB
#!/usr/bin/env node import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js"; import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js"; import { ConnectionManager } from "./utils/connection.js"; import { registerCoreTools } from "./tools/core.js"; import { registerSchemaDiscoveryTools } from "./tools/schema.js"; import { registerIndexAndPerformanceTools } from "./tools/performance.js"; import { registerConstraintAnalysisTools } from "./tools/constraints.js"; import { registerDataPatternTools } from "./tools/data-patterns.js"; import { registerStoredProcedureTools } from "./tools/stored-procedures.js"; async function main() { const server = new McpServer({ name: "mssql-mcp-server", version: "1.2.0" }); const connectionManager = new ConnectionManager(); console.error("Registering core database tools..."); registerCoreTools(server, connectionManager); console.error("Registering schema discovery tools..."); registerSchemaDiscoveryTools(server, connectionManager); console.error("Registering index and performance tools..."); registerIndexAndPerformanceTools(server, connectionManager); console.error("Registering constraint analysis tools..."); registerConstraintAnalysisTools(server, connectionManager); console.error("Registering data pattern analysis tools..."); registerDataPatternTools(server, connectionManager); console.error("Registering enhanced stored procedure tools..."); registerStoredProcedureTools(server, connectionManager); console.error("All tools registered successfully. Starting server..."); const transport = new StdioServerTransport(); await server.connect(transport); console.error("MSSQL MCP Server started successfully!"); process.on('SIGINT', async () => { console.error('Shutting down server...'); connectionManager.closeAllConnections(); process.exit(0); }); process.on('SIGTERM', async () => { console.error('Shutting down server...'); connectionManager.closeAllConnections(); process.exit(0); }); } main().catch((error) => { console.error('Server failed to start:', error); process.exit(1); });