MCP SQL Server

MCP SQL Server

An MCP server for Microsoft SQL Server integration that enables users to query, monitor, and analyze databases directly through Claude. It supports schema exploration, performance analysis, and optional write operations via natural language commands.

Category
Visit Server

README

MCP SQL Server

npm version Build Status codecov License: MIT TypeScript Node.js

A Model Context Protocol (MCP) server for SQL Server integration with Claude Code. Query, monitor, and analyze your SQL Server databases directly from Claude.

Features

  • Query Execution - Execute SELECT queries with parameterized inputs
  • Schema Exploration - Browse tables, columns, procedures, and indexes
  • Database Monitoring - Track active queries, blocking sessions, wait stats, and connections
  • Performance Analysis - Identify missing indexes, unused indexes, and fragmentation
  • Write Operations - INSERT, UPDATE, DELETE when enabled (READONLY=false)

Installation

Option 1: From npm (recommended)

npx @fabriciofs/mcp-sql-server

Option 2: Global installation

npm install -g @fabriciofs/mcp-sql-server

Option 3: Clone and build locally

git clone https://github.com/fabriciofs/mcp-sql-server.git
cd mcp-sql-server
npm install
npm run build

Configuration

Claude Code Integration

Add to your Claude Code MCP settings (~/.claude/settings.json or project .claude/settings.json):

{
  "mcpServers": {
    "sqlserver": {
      "command": "npx",
      "args": ["-y", "@fabriciofs/mcp-sql-server"],
      "env": {
        "SQL_CONNECTION_URL": "sqlserver://user:password@localhost:1433/database",
        "READONLY": "true"
      }
    }
  }
}

Or with individual connection parameters:

{
  "mcpServers": {
    "sqlserver": {
      "command": "npx",
      "args": ["-y", "@fabriciofs/mcp-sql-server"],
      "env": {
        "SQL_SERVER": "localhost",
        "SQL_DATABASE": "mydb",
        "SQL_USER": "sa",
        "SQL_PASSWORD": "yourpassword",
        "SQL_PORT": "1433",
        "SQL_TRUST_CERT": "true",
        "READONLY": "true"
      }
    }
  }
}

Environment Variables

Connection (choose one method)

Method 1: Connection URL

SQL_CONNECTION_URL=sqlserver://user:password@host:port/database?TrustServerCertificate=true

Method 2: Individual Parameters

SQL_SERVER=localhost
SQL_DATABASE=mydb
SQL_USER=sa
SQL_PASSWORD=yourpassword
SQL_PORT=1433              # Optional, default: 1433
SQL_ENCRYPT=true           # Optional, default: true
SQL_TRUST_CERT=false       # Optional, default: false

Required Settings

Variable Description
READONLY Required. Set to true for read-only mode or false to enable write operations

Optional Settings

Variable Default Description
QUERY_TIMEOUT 30000 Query timeout in milliseconds (max: 120000)
MAX_ROWS 1000 Maximum rows to return (max: 5000)
POOL_MIN 2 Minimum connection pool size
POOL_MAX 10 Maximum connection pool size
LOG_LEVEL info Log level: debug, info, warn, error

Available Tools

Query Tools

Tool Description
sql_execute Execute SELECT queries with parameterized inputs

Schema Tools

Tool Description
schema_list_tables List all tables and views in the database
schema_describe_table Get detailed table information (columns, indexes, foreign keys)
schema_list_columns Search for columns across all tables
schema_list_procedures List stored procedures
schema_list_indexes List indexes with usage statistics

Monitor Tools

Tool Description
monitor_active_queries Monitor currently running queries
monitor_blocking Monitor blocking sessions and lock chains
monitor_wait_stats Monitor wait statistics for performance bottlenecks
monitor_database_size Monitor database size and file usage
monitor_connections Monitor active connections
monitor_performance_counters Monitor SQL Server performance counters

Analysis Tools

Tool Description
analyze_query Analyze query execution plan and statistics
analyze_suggest_indexes Suggest missing indexes based on query patterns
analyze_unused_indexes Find indexes that are not being used
analyze_duplicate_indexes Find duplicate or overlapping indexes
analyze_fragmentation Analyze index fragmentation levels
analyze_statistics Analyze table statistics for stale data

Write Tools (READONLY=false only)

Tool Description
sql_insert Insert a row into a table
sql_update Update rows in a table
sql_delete Delete rows from a table

Usage Examples

Once configured, you can ask Claude to interact with your database:

"List all tables in the database"
"Describe the Users table"
"Show me active queries running for more than 5 seconds"
"Find unused indexes in the Orders table"
"Analyze the fragmentation of all indexes"
"What are the top wait statistics?"

Security Considerations

  • Always use READONLY=true in production unless write access is explicitly required
  • Store credentials securely using environment variables
  • Use SQL Server accounts with minimal required permissions
  • Consider network security (VPN, firewall rules) for remote connections

Requirements

  • Node.js >= 20.0.0
  • SQL Server 2016 or later
  • Appropriate SQL Server permissions for the operations you want to perform

Development

# Install dependencies
npm install

# Build
npm run build

# Development mode (watch)
npm run dev

# Type check
npm run typecheck

# Run MCP Inspector
npm run inspector

License

MIT License - see LICENSE file for details.

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured