SQL Server 数据库 AI 集成 MCP 服务

这是一个面向AI助手的企业级MCP服务,用于安全连接和操作SQL Server数据库,支持自然语言转SQL、数据库查询、性能优化与安全管控,适用于开发调试、数据分析和DevOps等场景。

  • by egarcia74
  • JavaScript
  • 本地部署
  • 6 星标
  • 更新于
在 GitHub 查看 egarcia74/warp-sql-server-mcp

使用说明

SQL Server MCP - AI-Powered Database Integration

Connect AI assistants to your SQL Server databases with enterprise-grade security and performance.

🤖 AI-First Database Access: Enable GitHub Copilot, Warp AI, and other assistants to interact with your SQL Server databases through natural language queries, with comprehensive security controls and production-ready reliability.


🚀 Quick Start - Choose Your AI Assistant

New to this project? Get up and running in under 5 minutes!

🤖 GitHub Copilot in VS Code (⭐ Most Popular)

Perfect for developers who want AI-powered SQL assistance directly in their IDE.

→ 5-Minute VS Code Setup Guide

  • ✅ GitHub Copilot can query your databases directly
  • ✅ Context-aware suggestions based on your actual schema
  • ✅ Natural language to SQL query generation
  • ✅ Real-time insights while coding

💬 Warp Terminal

Ideal for terminal-based workflows and command-line database interactions.

→ 5-Minute Warp Setup Guide

  • ✅ AI-powered terminal with SQL Server integration
  • ✅ Natural language database queries
  • ✅ Fast iteration for analysis and debugging
  • ✅ Cross-platform terminal experience

🔧 Advanced Integration

Complete VS Code Integration Guide → - Advanced workflows and configuration

Using another AI assistant? This MCP server works with any MCP-compatible system.


✨ What You Get

  • 🤖 Natural language to SQL - Ask questions, get queries
  • 🔒 Enterprise security - Three-tier safety system with secure defaults
  • 📊 Performance insights - Query optimization and bottleneck detection
  • 🚀 Streaming support - Memory-efficient handling of large datasets
  • 📈 16 Database Tools - Complete database operations through AI

🔒 Security Levels (Quick Reference)

Security Level Environment Variable Default Impact
🔒 Read-Only Mode SQL_SERVER_READ_ONLY true Only SELECT queries allowed
⚠️ Destructive Operations SQL_SERVER_ALLOW_DESTRUCTIVE_OPERATIONS false Controls INSERT/UPDATE/DELETE/MERGE/TRUNCATE, EXEC, WRITETEXT/UPDATETEXT, Service Broker RECEIVE, and administrative operations (SHUTDOWN, KILL, BACKUP/RESTORE, DBCC, RECONFIGURE, CHECKPOINT, SETUSER, xp_*/sp_*, linked-server rowset functions)
🚨 Schema Changes SQL_SERVER_ALLOW_SCHEMA_CHANGES false Controls CREATE/DROP/ALTER, GRANT/REVOKE/DENY, ENABLE/DISABLE TRIGGER, and SELECT ... INTO

Every statement in a batch is checked against these tiers — T-SQL does not require ; between statements — and batches with unterminated string literals, identifiers, or comments are rejected.

🔒 Maximum Security (Default - Production Recommended):

SQL_SERVER_READ_ONLY=true                      # Only SELECT allowed
SQL_SERVER_ALLOW_DESTRUCTIVE_OPERATIONS=false  # No data modifications
SQL_SERVER_ALLOW_SCHEMA_CHANGES=false         # No schema changes

📋 Essential Environment Variables

📖 Complete Reference: See docs/reference/ENV-VARS.md for comprehensive documentation of all environment variables, defaults, and context-aware behavior.

Variable Required Default Description
SQL_SERVER_HOST No localhost SQL Server hostname
SQL_SERVER_PORT No 1433 SQL Server port
SQL_SERVER_DATABASE No master Initial database
SQL_SERVER_USER For SQL Auth - Database username
SQL_SERVER_PASSWORD For SQL Auth - Database password
SQL_SERVER_ENCRYPT No true Enable SSL/TLS
SQL_SERVER_TRUST_CERT No context-aware Trust server certificate

💡 Authentication: For Windows Authentication, leave SQL_SERVER_USER and SQL_SERVER_PASSWORD empty. 💡 SSL Certificates: SQL_SERVER_TRUST_CERT automatically adapts to your environment (trusts in development, requires valid certificates in production).


🛠️ Installation & Configuration

Note: As of v1.7.11 the package is published under the scoped name @egarcia74/warp-sql-server-mcp. The previous unscoped package warp-sql-server-mcp is deprecated: it was last published at 1.7.10 and predates the security fixes in 1.7.16-1.7.18, so installing it is not supported. Use the scoped name.

⭐ Recommended: Global npm Installation

# Install globally via npm (easiest method)
npm install -g @egarcia74/warp-sql-server-mcp

# Initialize configuration
warp-sql-server-mcp init

# Edit config file with your SQL Server details
# Config file location: ~/.warp-sql-server-mcp.json

Benefits:

  • ✅ No manual path configuration
  • ✅ Secure credential storage with file permissions (600)
  • ✅ Easy configuration updates without touching AI assistant settings
  • ✅ Password masking and validation

Alternative: Manual Installation

# Clone and install manually
git clone https://github.com/egarcia74/warp-sql-server-mcp.git
cd warp-sql-server-mcp
npm install

🎯 Use Cases

🔍 Database Analysis & Exploration

  • Schema Discovery: Reverse engineer legacy databases without documentation
  • Data Quality Assessment: Spot-check data integrity across tables
  • New Team Onboarding: Rapidly explore unfamiliar database schemas

📊 Business Intelligence & Reporting

  • Ad-hoc Analysis: Quick business questions through natural language
  • Data Export: Export filtered datasets to CSV for analysis
  • Revenue Analysis: AI-powered business insights

🛠️ Development & DevOps

  • Query Performance Tuning: Execution plan analysis and optimization
  • API Development: Quickly test database queries during development
  • Database Troubleshooting: Debug slow queries and identify bottlenecks

🚀 AI-Powered Operations

  • Natural Language to SQL: Ask questions like "Show me customers who haven't placed orders"
  • Query Optimization: "Why is this query running slowly?"
  • Automated Insights: Generate business reports through conversational queries

📚 Complete Documentation

📋 Complete Documentation Index - Navigate all documentation in one place

User Guides

Setup Guides

Developer Resources


🧪 Production Validation

✅ PRODUCTION-VALIDATED: This MCP server has been fully tested through:

  • 1,761 Tests: All MCP tools, security boundaries, error scenarios - every one of them runs automatically on every pull request (1,694 unit + 27 integration + 40 live-database against a Docker SQL Server CI starts itself)
  • 40 Live-Database Integration Tests: Live database validation across all security phases, run in CI
  • MCP Protocol Validation: test/protocol/mcp-server-startup-test.js checks server startup and the JSON-RPC initialize handshake. npm run test:integration:protocol runs it in CI; npm run docker:test -- protocol runs the same file against a container it starts for you
  • 100% Success Rate: All security phases validated in production scenarios

🐳 Quick Testing with Docker (Recommended for Development)

# One-command testing with automated SQL Server container
npm run test:integration

# This will:
# 1. 🐳 Start SQL Server 2022 container
# 2. ⏱️ Wait for database initialization (2-3 minutes)
# 3. 🧪 Run all integration tests
# 4. 🔄 Clean up and stop container

Benefits: ✨ Zero configuration, 🛡️ Complete isolation, ⚡ Fast setup, 📋 Consistent environment

Complete Docker Testing Guide →

🔧 Manual Setup Testing (Production Validation)

Security Phases Tested:

  • Phase 1 (Read-Only): Maximum security - 20/20 tests ✅
  • Phase 2 (DML Operations): Selective permissions - 10/10 tests ✅
  • Phase 3 (DDL Operations): Full development mode - 10/10 tests ✅
# Quick Start - Get comprehensive help
npm run help               # Show all commands with detailed descriptions

# Run tests locally
npm test                   # All automated unit + integration tests
npm run test:coverage      # Coverage report with detailed metrics
npm run test:integration   # 🚀 Complete integration test suite with Docker
npm run test:integration:ci  # For CI environments with external database
npm run test:integration:performance  # ⭐ Fast performance validation (~2s)

# View logs and monitor activity
npm run logs               # Show recent server logs
npm run logs:tail          # Follow logs in real-time
npm run logs:audit         # Show security audit logs

🔧 Usage Examples

Once configured, you can use natural language with your AI assistant:

VS Code + GitHub Copilot

@sql-server List all databases
@sql-server Show me tables in the AdventureWorks database
@sql-server Generate a query to find the top 10 customers by sales
@sql-server Analyze the performance of this query: SELECT * FROM Orders WHERE OrderDate > '2023-01-01'

Warp Terminal

Please list all databases on the SQL Server
Execute this SQL query: SELECT TOP 10 * FROM Users ORDER BY CreatedDate DESC
Can you describe the structure of the Orders table?
Show me 50 rows from the Products table where Price > 100

🚨 Troubleshooting

Common Issues

Connection Problems:

  • Verify SQL Server is running on the specified port: telnet localhost 1433
  • Check firewall settings on both client and server
  • Enable TCP/IP protocol in SQL Server Configuration Manager

Authentication Issues:

  • For SQL Server Auth: Verify SQL_SERVER_USER and SQL_SERVER_PASSWORD
  • For Windows Auth: Leave user/password empty, optionally set SQL_SERVER_DOMAIN
  • Ensure the connecting user has appropriate database permissions

Configuration Issues:

  • Set SQL_SERVER_ENCRYPT=false for local development
  • MCP servers require explicit environment variables (.env files are not loaded automatically)
  • Check MCP server logs: npm run logs or npm run logs:tail for real-time monitoring
  • View audit logs for security-related issues: npm run logs:audit

Platform-Specific

Windows:

  • Enable TCP/IP in SQL Server Configuration Manager
  • Start SQL Server Browser service for named instances
  • Windows Authentication works seamlessly with domain accounts

macOS/Linux:

  • Remote SQL Server connections often require SQL Server Authentication
  • May need SQL_SERVER_ENCRYPT=true for remote connections
  • Test connectivity: nc -zv localhost 1433 or nmap -p 1433 localhost

🤝 Contributing

This project demonstrates enterprise-grade software engineering practices. We welcome contributions that maintain our high standards:

  1. Fork the repository and create a feature branch
  2. Follow TDD practices - write tests first!
  3. Maintain code quality - all commits trigger automated quality checks
  4. Add comprehensive tests for new functionality
  5. Update documentation as needed
  6. Submit a pull request with detailed description

Development Commands:

# Get comprehensive help for all available commands
npm run help               # Show organized command reference with descriptions

# Core development
npm run dev                # Development mode with auto-restart
npm test                   # Run all tests
npm run lint:fix          # Fix linting issues
npm run format            # Format code
npm run ci                 # Full CI pipeline locally

# Log viewing and monitoring
npm run logs               # Show recent server logs
npm run logs:tail          # Follow server logs in real-time
npm run logs:audit         # Show security audit logs
npm run logs:tail:audit    # Follow audit logs in real-time

# System maintenance and cleanup
npm run cleanup            # List leftover test processes (reports only)
npm run cleanup:processes  # Same as cleanup (alias)
npm run cleanup -- --kill <pid>   # Terminate a listed process by PID

📄 License

This project is licensed under the MIT License - see the LICENSE file for details.

Copyright (c) 2025 Eduardo Garcia-Prieto


🌟 About This Project

While this appears to be an MCP server for SQL Server integration, it's fundamentally a comprehensive framework demonstrating enterprise-grade software development practices. Every component, pattern, and principle here showcases rigorous engineering standards that can be applied to any production system.

Key Engineering Highlights:

  • 🔬 1,761 Tests covering all functionality and edge cases - every one of them runs automatically on every pull request
  • 🛡️ Multi-layered Security with defense-in-depth architecture
  • 📊 Production Observability with structured logging and performance monitoring
  • ⚡ Enterprise Reliability featuring connection pooling and graceful error handling
  • 🏛️ Clean Architecture with dependency inversion and modular design
  • 📚 Living Documentation that auto-syncs with code changes

→ Read the Complete Engineering Philosophy