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
JavaScript
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);
});