# MCP MSSQL Server An MCP (Model Context Protocol) server for Microsoft SQL Server integration built with NestJS. This server enables Claude Code and other MCP clients to interact with SQL Server databases through standardized tools. ## Features - **MCP Protocol Support**: Full implementation of Model Context Protocol for SQL Server operations - **Windows Authentication**: Supports both Windows (NTLM) and SQL Server authentication - **Comprehensive SQL Tools**: Execute queries, explore schema, manage tables, and run stored procedures - **Health Monitoring**: Built-in health checks for database connectivity - **Connection Pooling**: Efficient database connection management ## MCP Tools The server exposes these SQL operations as MCP tools: - `execute-query`: Execute SQL queries with parameter support - `get-schema`: Retrieve database schema information - `list-tables`: List all tables in the database - `describe-table`: Get detailed table structure with constraints - `get-table-data`: Retrieve paginated table data with filtering - `execute-procedure`: Execute stored procedures with parameters ## Installation ```bash npm install ``` ## Configuration Create a `.env` file with your database configuration: ```bash # SQL Server Connection MSSQL_HOST=localhost MSSQL_PORT=1433 MSSQL_DATABASE=your_database # Authentication Mode (choose one) # For SQL Server Authentication: MSSQL_USERNAME=your_username MSSQL_PASSWORD=your_password # For Windows Authentication: MSSQL_WIN_AUTH=true MSSQL_DOMAIN=your_domain MSSQL_USERNAME=domain\username MSSQL_PASSWORD=your_password # Connection Options MSSQL_ENCRYPT=true MSSQL_TRUST_CERT=true # Server Port PORT=3000 ``` ## Development ```bash # Start in development mode npm run start:dev # Start with debugging npm run start:debug # Build the application npm run build # Start production build npm run start:prod ``` ## Testing ```bash # Unit tests npm run test # Watch mode npm run test:watch # End-to-end tests npm run test:e2e # Test coverage npm run test:cov ``` ## Code Quality ```bash # Run ESLint with auto-fix npm run lint # Format code with Prettier npm run format ``` ## MCP Endpoints When the server is running (default port 3000): - **MCP Protocol**: `http://localhost:3000/mssql/mcp` - **SSE (Claude Code)**: `http://localhost:3000/mssql/sse` - **Health Check**: `http://localhost:3000/mssql/health` ## Usage with Claude Code 1. Start the MCP server: `npm run start:dev` 2. Configure Claude Code to connect to: `http://localhost:3000/mssql/mcp` 3. Use the exposed SQL tools through Claude Code's MCP interface ## Architecture - **MCPModule**: Handles MCP protocol implementation with `/mssql` namespace - **DatabaseModule**: Manages SQL Server connectivity and authentication - **HealthModule**: Provides database health monitoring - **No REST endpoints**: All functionality exposed through MCP tools only ## License ISC