MCP MSSQL Server
A powerful Model Context Protocol (MCP) based MSSQL Server providing enterprise-grade DDL support, fine-grained permission control, comprehensive operation logging, and intelligent connection pool management.
đ Core Features
Main Capabilities
- â Complete SQL Support - Supports DDL and DML operations with SQL injection protection
- â Advanced Permission Control - Fine-grained control over DDL, DROP, DELETE operations via environment variables
- â Comprehensive Logging - Complete request/response logging, SQL operation tracking, and connection pool monitoring
- â Enterprise Connection Management - Auto connection pool creation, health monitoring, and fault recovery
- â MCP Protocol Compatible - Complete Model Context Protocol implementation
- â Multi-editor Support - Seamless integration with MCP-compatible editors like Cursor, VS Code
Advanced Features
- Automatic Schema Prefix - Automatic schema handling for multi-tenant environments
- Connection Pool Optimization - Intelligent connection reuse and performance tuning
- Error Handling - Comprehensive error logging and graceful fault recovery
- Security Features - SQL injection protection, parameterized query support, and operation verification
đĻ Installation
Global Installation (Recommended)
npm install -g @liangshanli/mcp-server-mssqlserver
Local Installation
npm install @liangshanli/mcp-server-mssqlserver
Install from Source
git clone https://github.com/liliangshan/mcp-server-mssqlserver.git
cd mcp-server-mssqlserver
npm install
âī¸ Configuration
Database Connection Settings
| Environment Variable | Default Value | Description |
|---|---|---|
| MSSQL_SERVER | localhost | MSSQL Server host address |
| MSSQL_PORT | 1433 | MSSQL Server port number |
| MSSQL_USER | sa | Database username |
| MSSQL_PASSWORD | Database password | |
| MSSQL_DATABASE | Target database name | |
| MSSQL_SCHEMA | dbo | Default schema name |
| MSSQL_ENCRYPT | false | Enable encryption |
| MSSQL_TRUST_SERVER_CERTIFICATE | true | Trust server certificate |
Permission Control Settings
| Environment Variable | Default Value | Description |
|---|---|---|
| ALLOW_DDL | false | Allow CREATE, ALTER, DROP operations |
| ALLOW_DROP | false | Allow DROP TABLE operations |
| ALLOW_DELETE | false | Allow DELETE operations |
Security Configuration Examples
Development Environment (High Permissions)
export ALLOW_DDL=true
export ALLOW_DROP=true
export ALLOW_DELETE=true
Test Environment (Medium Permissions)
export ALLOW_DDL=true
export ALLOW_DROP=false
export ALLOW_DELETE=true
Production Environment (Restricted Permissions)
export ALLOW_DDL=false
export ALLOW_DROP=false
export ALLOW_DELETE=false
đ Quick Start
1. Install the Package
npm install -g @liangshanli/mcp-server-mssqlserver
2. Configure Environment Variables
export MSSQL_SERVER=your_mssql_server.com
export MSSQL_PORT=1433
export MSSQL_USER=your_username
export MSSQL_PASSWORD=your_secure_password
export MSSQL_DATABASE=your_database
export MSSQL_SCHEMA=dbo
export ALLOW_DDL=false
export ALLOW_DROP=false
export ALLOW_DELETE=false
3. Run the Server
npm start
đ§ Editor Configuration Examples
Cursor Editor Configuration
Create .cursor/mcp.json file in project root:
Single Instance Configuration
{
"mcpServers": {
"mssqlserver": {
"command": "npx",
"args": ["@liangshanli/mcp-server-mssqlserver"],
"env": {
"MSSQL_SERVER": "your_host",
"MSSQL_PORT": "1433",
"MSSQL_USER": "your_user",
"MSSQL_PASSWORD": "your_password",
"MSSQL_DATABASE": "your_database",
"MSSQL_SCHEMA": "your_schema",
"ALLOW_DDL": "false",
"ALLOW_DROP": "false",
"ALLOW_DELETE": "false"
}
}
}
}
VS Code Configuration - .vscode/mcp.json Format
1. Install MCP extension for VS Code
2. Create .vscode/mcp.json file:
Single Instance Configuration
{
"servers": {
"mssqlserver": {
"command": "npx",
"args": ["@liangshanli/mcp-server-mssqlserver"],
"env": {
"MSSQL_SERVER": "your_host",
"MSSQL_PORT": "1433",
"MSSQL_USER": "your_user",
"MSSQL_PASSWORD": "your_password",
"MSSQL_DATABASE": "your_database",
"MSSQL_SCHEMA": "your_schema",
"ALLOW_DDL": "false",
"ALLOW_DROP": "false",
"ALLOW_DELETE": "false"
}
}
}
}
Multi-instance Configuration
{
"servers": {
"mssqlserver-prod": {
"command": "npx",
"args": ["@liangshanli/mcp-server-mssqlserver"],
"env": {
"MSSQL_SERVER": "prod.example.com",
"MSSQL_PORT": "1433",
"MSSQL_USER": "prod_user",
"MSSQL_PASSWORD": "prod_password",
"MSSQL_DATABASE": "prod_db",
"MSSQL_SCHEMA": "prod_schema",
"ALLOW_DDL": "false",
"ALLOW_DROP": "false",
"ALLOW_DELETE": "false",
"TOOL_PREFIX": "prod",
"PROJECT_NAME": "Production Environment"
}
},
"mssqlserver-test": {
"command": "npx",
"args": ["@liangshanli/mcp-server-mssqlserver"],
"env": {
"MSSQL_SERVER": "test.example.com",
"MSSQL_PORT": "1433",
"MSSQL_USER": "test_user",
"MSSQL_PASSWORD": "test_password",
"MSSQL_DATABASE": "test_db",
"MSSQL_SCHEMA": "test_schema",
"ALLOW_DDL": "true",
"ALLOW_DROP": "false",
"ALLOW_DELETE": "false",
"TOOL_PREFIX": "test",
"PROJECT_NAME": "Test Environment"
}
}
}
}