MSSQL MCP Server
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@MSSQL MCP Servershow me the schema for the Customers table"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
MSSQL MCP Server
A production-ready Model Context Protocol (MCP) server for Microsoft SQL Server with comprehensive stored procedure management, virtual filesystem protocol, and safe write operations.
Features
Virtual Filesystem: Browse database objects (stored procedures, views, functions) as files
Discovery Tools: Search stored procedures, inspect table schemas, analyze dependencies
Safe Write Operations: SQL validation, transaction management, audit logging
SP Management: Draft → Test → Deploy → Rollback workflow with version control
Performance Analysis: Query execution statistics from plan cache
Security: SQL injection prevention, blocked keywords, row limits
Related MCP server: MCP SQL Server
Installation
npm install
npm run buildConfiguration
Copy .env.example to .env and configure:
cp .env.example .envKey configuration options:
DB_SERVER: SQL Server hostname
DB_DATABASE: Database name
DB_USER/DB_PASSWORD: Credentials
DB_ENCRYPT: Enable encryption (default: true)
DB_TRUST_SERVER_CERTIFICATE: Trust server certificate for dev environments (default: false)
ENABLE_WRITE_OPERATIONS: Enable INSERT/UPDATE/DELETE (default: true)
ENABLE_SP_MODIFICATIONS: Enable stored procedure management (default: true)
REQUIRE_TRANSACTIONS: Require explicit transactions for modifications (default: true)
MAX_ROWS_AFFECTED: Maximum rows that can be modified in one operation (default: 10000)
DRAFT_SCHEMA: Schema for testing SPs before deployment (default: dbo_draft)
AUTO_BACKUP_BEFORE_DEPLOY: Auto-backup SPs before deploying (default: true)
See .env.example for all options.
Usage with Claude Code
Add to your MCP configuration file (.claude.json or ~/.claude.json):
{
"mcpServers": {
"mssql": {
"command": "node",
"args": ["/absolute/path/to/sql-server-mcp/dist/index.js"],
"env": {
"DB_SERVER": "localhost",
"DB_DATABASE": "MyDatabase",
"DB_USER": "sa",
"DB_PASSWORD": "YourPassword",
"ENABLE_WRITE_OPERATIONS": "true",
"ENABLE_SP_MODIFICATIONS": "true"
}
}
}
}Available Tools
Discovery & Schema
list_stored_procedures: List stored procedures with pagination
search_stored_procedures: Search SPs by name or content
get_table_schema: Get table structure with columns, indexes, foreign keys
get_dependencies: Analyze object dependencies (callers and references)
analyze_sp_performance: View execution statistics from plan cache
Execution
execute_query_write: Execute INSERT/UPDATE/DELETE with validation
Transactions
begin_transaction: Start a new transaction
commit_transaction: Commit changes
rollback_transaction: Undo changes
Stored Procedure Management
create_sp_draft: Create a draft SP in separate schema
test_sp_draft: Test draft with parameters
deploy_sp: Deploy to production (auto-backs up current version)
rollback_sp: Restore previous version
list_sp_versions: View version history
Example Workflows
Searching for Stored Procedures
search for stored procedures that modify the Orders tableViewing Database Objects as Files
show me /database/stored_procedures/dbo/GetCustomerOrders.sqlModifying a Stored Procedure
I need to update GetCustomerOrders to include email.
Create a draft, test it with CustomerId=123, then deploy.Safe Data Modifications
Start a transaction, update Customer set Status='Active' where Id=123,
show me the result, then commit.Performance Analysis
Analyze performance of GetDailySalesReport and show execution statsArchitecture
Phase 1: Read-Only Foundation
Virtual filesystem for database objects
Connection pooling (read-only pool)
Query execution with error handling
Discovery and schema inspection tools
Phase 2: Safe Writes
SQL validation and injection prevention
Transaction manager with timeout protection
Audit logging for compliance
Write operation tools
Phase 3: SP Management
Version control with SPVersionHistory table
Draft schema for safe testing
Deploy/rollback workflow
Automatic backups before deployment
Phase 4: Advanced Features
Dependency analysis
Performance monitoring from DMVs
Reference finding
Security Features
SQL Validation: Blocks dangerous keywords and patterns
Parameterized Queries: Prevents SQL injection
Row Limits: Prevents accidental mass updates
Transaction Timeouts: Auto-rollback after 5 minutes
Audit Trail: Logs all operations to file
Separate Credentials: Optional read-only and read-write connections
Testing
A complete test environment is included in the test/ directory:
cd test
./setup.sh initThis sets up a Docker container with SQL Server 2022 and a test database (MCPTestDB) pre-populated with:
Sample tables (Customers, Products, Orders, etc.)
13 test stored procedures
Views and functions
Sample data for testing all MCP features
Connection string for testing:
Server=localhost,1433;Database=MCPTestDB;User Id=sa;Password=McpTest123!;TrustServerCertificate=trueRunning Tests
After setting up the test database:
# Run all tests
npm run test:all
# Or run specific tests
npm run test:connection # Basic connectivity test
npm run test:db # Database object verification
npm run test:scenarios # Comprehensive functionality testsSee test/README.md for detailed testing scenarios and management commands.
Development
# Development mode with auto-reload
npm run dev
# Build
npm run build
# Run production build
npm start
# Lint
npm run lint
# Format
npm run formatProject Structure
sql-server-mcp/
├── src/
│ ├── index.ts # Entry point
│ ├── server.ts # MCP server setup
│ ├── types/ # TypeScript interfaces
│ ├── config/ # Configuration and logging
│ ├── database/ # Connection, query execution, transactions
│ ├── filesystem/ # Virtual filesystem protocol
│ ├── tools/ # MCP tool implementations
│ │ ├── discovery/ # Search and discovery
│ │ ├── schema/ # Schema inspection
│ │ ├── execution/ # Query execution
│ │ ├── sp-management/ # SP lifecycle
│ │ └── transactions/ # Transaction control
│ ├── security/ # Validation, audit logging
│ └── utils/ # Version manager, helpers
├── test/ # Test environment (Docker + SQL Server)
│ ├── docker-compose.yml # SQL Server 2022 container
│ ├── setup.sh # Management script
│ ├── init-scripts/ # Database initialization
│ └── backups/ # Database backups
├── .env.example # Configuration template
└── package.jsonLicense
MIT
Contributing
Contributions are welcome! Please ensure all tools follow security best practices.
This server cannot be deployed
Maintenance
Related MCP Connectors
Executes SQL in a real ephemeral database: rows, typed errors with suggestions, plans, diffs.
- dataOAuthco.thinair
PostgreSQL, MySQL, and SQL Server in one session. 26 read-only MCP tools for AI agents.
Explore, query, and inspect SQLite databases with ease. List tables, preview results, and view det…
Explore your databases, validate SQL, and build & publish data apps in your Mako workspace.
Related MCP Servers
- AlicenseBqualityAmaintenanceEnables secure database operations on SQL Server instances through a three-tier safety system, supporting schema exploration, query execution, performance analysis, and data export with configurable security levels from read-only to full development access.1696 npm6MIT
- AlicenseNot gradedqualityDmaintenanceEnables interaction with Microsoft SQL Server databases using both SQL Server and Windows Authentication. It supports flexible connection configurations, including read-only modes and encrypted communication for secure data management.2,404 npmMIT
- AlicenseNot gradedqualityDmaintenanceEnables interaction with Microsoft SQL Server databases through T-SQL query execution, table exploration, and schema inspection. Supports configurable write protection and row limiting for safe database operations.3,135 npmMIT
- AlicenseNot gradedqualityCmaintenanceProvides tools for querying and managing Microsoft SQL Server databases, including stored procedures and SQL Server Agent jobs as code with version control integration.1MIT