MSSQL MCP Server
This server does not currently have a deployable release on Glama. Follow the repository's setup instructions to install and configure it for your MCP client, including any required credentials and local dependencies.
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
Hosted SQL Server MCP server for Claude, ChatGPT and Cursor, with each action switched per account.
SQL validation, formatting, parsing, metadata extraction, linting, and security analysis.
Read, write, and combine connected apps and databases with shared code and per-person permissions.
Executes SQL in a real ephemeral database: rows, typed errors with suggestions, plans, diffs.
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.1631 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,811 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.1,187 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