Skip to main content
AllMCPs
BrowseBestCategoriesStackCompareToolsGuidesBlog Log in Submit MCP

Stay in the loop

Get new MCP servers and top picks in your inbox.

AllMCPs

The open directory for discovering and installing Model Context Protocol servers.

Explore

  • Browse servers
  • Best MCP servers
  • Categories
  • MCP clients
  • Agent prompts
  • Stack Builder
  • Compare servers
  • Tags index
  • Submit a server
  • Pricing

Learn

  • Guides hub
  • What is MCP?
  • Install guide
  • Troubleshooting
  • Security
  • Blog
  • Blog RSS

Tools

  • All tools
  • Config generator
  • Config validator
  • MCP playground
  • OpenAPI β†’ MCP
  • Badge generator

For agents

  • API docs
  • Trust & traffic
  • llms.txt β†— (opens in a new tab)
  • Catalog JSON β†— (opens in a new tab)
  • Remote MCP β†— (opens in a new tab)

Company

  • About
  • Contact
  • X (@AllMCPs) β†— (opens in a new tab)
  • GitHub β†— (opens in a new tab)
  • Terms
  • Privacy
AllMCPs VerifiedAllMCPs VerifiedFeatured on Nick LaunchesFeatured on Nick LaunchesLaunch Llama NewsletterLaunch Llama NewsletterVerified DR - allmcps.comVerified DR - allmcps.comFeatured on SaaSGrowFeatured on SaaSGrowFeatured on Twelve ToolsFeatured on Twelve ToolsFeatured on Saaspa.geFeatured on Saaspa.geFeatured on Findly.toolsFeatured on Findly.toolsFeatured on Startup FameFeatured on Startup FameFeatured on LaunchKiwiFeatured on LaunchKiwiFeatured on ScrollLaunchFeatured on ScrollLaunchFeatured on DailyPingsFeatured on DailyPingsFazier badgeFazier badgeFeatured on NewTool.siteFeatured on NewTool.siteFeatured on saasfame.comFeatured on saasfame.comDR Checker - Domain RatingDR Checker - Domain RatingListed on Turbo0Listed on Turbo0Launched on LaunchBoard - Product Launch PlatformLaunched on LaunchBoard - Product Launch PlatformList on SimilarlabsList on Similarlabshttps://codetrendy.comhttps://codetrendy.comListed on DevTool.ioFeatured on BuildlistFeatured on BuildlistAllMCPs VerifiedAllMCPs VerifiedFeatured on Nick LaunchesFeatured on Nick LaunchesLaunch Llama NewsletterLaunch Llama NewsletterVerified DR - allmcps.comVerified DR - allmcps.comFeatured on SaaSGrowFeatured on SaaSGrowFeatured on Twelve ToolsFeatured on Twelve ToolsFeatured on Saaspa.geFeatured on Saaspa.geFeatured on Findly.toolsFeatured on Findly.toolsFeatured on Startup FameFeatured on Startup FameFeatured on LaunchKiwiFeatured on LaunchKiwiFeatured on ScrollLaunchFeatured on ScrollLaunchFeatured on DailyPingsFeatured on DailyPingsFazier badgeFazier badgeFeatured on NewTool.siteFeatured on NewTool.siteFeatured on saasfame.comFeatured on saasfame.comDR Checker - Domain RatingDR Checker - Domain RatingListed on Turbo0Listed on Turbo0Launched on LaunchBoard - Product Launch PlatformLaunched on LaunchBoard - Product Launch PlatformList on SimilarlabsList on Similarlabshttps://codetrendy.comhttps://codetrendy.comListed on DevTool.ioFeatured on BuildlistFeatured on Buildlist
Β© 2026 Jackalope Digital LLC. All rights reserved.
  1. Home
  2. πŸ—„οΈ Databases
  3. Mssql
M
Health: ActiveRecent health check succeeded.Last checked 8/10/2026, 11:54:45 PM

Mssql

Enrichment pendingWe haven’t run our AI enrichment pass on this listing yet, so the overview, use cases, and FAQ below may be sparse or missing. We work through the catalog over time β€” check back soon.
View Repository30 GitHub StarsTotal stargazers on GitHub for the source repository (30 stars).

MCP server for Microsoft SQL Server - schema discovery, profiling, and safe data operations

Quick Install

Automated & IDE Setup

Copy the AI prompt to install this server into Claude Code, Cursor, or another agent β€” or use 1-click editor setup below.

Add to CursorAdd to VS Code
Not yet automatically verified

We haven't yet run this listing's install command through our automated sandbox check. This isn't a red flag β€” we're steadily working through the catalog.

Manual Client & Custom JSON ConfigExpand JSON β–Ύ

Install Config Generator

Choose your client
claude_desktop_config.json
{
  "mcpServers": {
    "mssql": {
      "command": "npx",
      "args": [
        "@connorbritain/mssql-mcp-server@latest"
      ]
    }
  }
}

πŸ’‘ Paste into ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows)

Install Tool Schemas (8) Directory Badge Claim listing AlternativesπŸ—„οΈ More in Databases

Capabilities & Tool Schemas (8) ~35 tokensApproximate context cost of this server’s tool schemas (~4 chars/token), before any tool is called. Actual usage depends on your client and model.Self-reported Self-reportedParsed from the repository README, not verified against a live server β€” may be incomplete or out of date.

Inspect callable tools, capabilities, and parameters exposed to AI agents by Mssql.

SEARCH_SCHEMA_DEFAULT_LIMIT

Callable MCP tool function

search_schema

Callable MCP tool function

tableOffset

Callable MCP tool function

columnOffset

Callable MCP tool function

PROFILE_SAMPLE_SIZE_DEFAULT

Callable MCP tool function

PROFILE_SAMPLE_RETURN_LIMIT

Callable MCP tool function

Documentation Overview

MSSQL MCP Server

npm version License: MIT

Enterprise-grade Model Context Protocol server for Microsoft SQL Server.

A production-ready MCP server built for real-world database work: exploring unfamiliar schemas, profiling data shape, validating pipelines in UAT, and moving confidently to production. If you work with SQL Server and want AI tooling that understands enterprise database workflows, this is for you.

Package Tiers

PackagenpmToolsUse Case
mssql-mcp-reader@connorbritain/mssql-mcp-reader14 read-onlyAnalysts, auditors, safe exploration
mssql-mcp-writer@connorbritain/mssql-mcp-writer17 (reader + data ops)Data engineers, ETL developers
mssql-mcp-server (this)@connorbritain/mssql-mcp-server20 (all tools)DBAs, full admin access

Choose the tier that matches your security requirements. All tiers share the same governance controls, audit logging, and multi-environment support.


Why This Exists

Most SQL + AI demos stop at "generate a query." That's table stakes. Real database work means:

  • Navigating massive schemas you didn't design, often with cryptic naming conventions
  • Understanding data shape before writing anything
  • Working safely in regulated environments where one bad UPDATE can trigger an incident
  • Moving fast in UAT so you can validate changes before they hit production

This server is built around those realities. It's stable, secure by default, and designed to make AI assistants genuinely useful on enterprise SQL Server instances.


What's here today

  • Semantic schema discovery – search_schema finds tables/columns via wildcards with fuzzy matching and paginated results so large databases don’t blow up your context window.
  • Table profiling – profile_table summarizes column shape (null %, cardinality, min/max/avg/median/p90) and can return a capped sample of rows.
  • Relationship mapping – inspect_relationships enumerates inbound/outbound FKs with column mappings, so you can follow dependencies before touching data.
  • Flexible authentication – SQL auth, Windows auth, and Azure AD are supported; pick what matches your infra.
  • Safe data operations – read_data, describe_table, list_table, plus write tools (insert_data, update_data, delete_data, create_table, create_index, drop_table) when you need full agent-mode workflows.
  • Preview + Confirm for mutations – update_data and delete_data show affected rows before execution; require explicit confirmation to proceed.
  • Multi-environment support – Define named database environments (prod, staging, dev) in a JSON config; switch between them per request.
  • Audit logging – Every tool invocation logged to JSON Lines format with timestamps, arguments (auto-redacted), and results.
  • MCP-native – Works with Windsurf, Claude Desktop, and any MCP-compatible client.

Key tools at a glance

Discovery & Schema:

  • search_schema – Wildcard/fuzzy search across tables and columns with pagination.
  • describe_table – Column definitions, types, nullability, keys.
  • list_table – List all tables in a database with optional filtering.
  • list_databases – List databases on server-level environments.
  • list_environments – Show configured environments and their policies.

Profiling & Analysis:

  • profile_table – Column stats (null %, cardinality, min/max/avg/median/p90) with optional sample rows.
  • inspect_relationships – FK mappings in both directions.
  • inspect_dependencies – Full dependency analysis (views, procs, functions, triggers referencing an object).
  • explain_query – Execution plan analysis via SHOWPLAN.

Data Operations:

  • read_data – Safe SELECT with automatic row limits.
  • insert_data – Parameterized inserts (single or batch).
  • update_data – Preview affected rows, require confirmation.
  • delete_data – Preview affected rows, require confirmation.

DDL Operations:

  • create_table – Create tables with column definitions.
  • create_index – Create indexes on existing tables.
  • drop_table – Drop tables (requires confirmation).

Named Scripts:

  • list_scripts – Show available pre-approved SQL scripts.
  • run_script – Execute named scripts with parameters and governance controls.
  • Scripts directory – Point the server at a folder containing scripts.json + .sql files by setting SCRIPTS_PATH (env var) or "scriptsPath" inside your environment entry. list_scripts/run_script remain disabled until this location is configured.

Operations:

  • test_connection – Verify connectivity and latency.
  • validate_environment_config – Check environment configuration for errors.

Prerequisites

You’ll need a current Node.js runtime (minimum 18, recommended 20 LTS). The tooling now shims legacy APIs so it also works on the newest Node releases, but installing an LTS build avoids surprises on fresh machines.

PlatformCommand (installs Node 20 LTS)
Windowswinget install --id OpenJS.NodeJS.LTS -e
macOSbrew install node@20 && brew link --overwrite --force node@20
Ubuntu/Debiancurl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash - && sudo apt-get install -y nodejs

Verify with node -v (should show v20.x). If you already have a newer Node version installed, the server will still run thanks to the built-in SlowBuffer shim.

Quick start

Option 1: Install from npm (recommended)

Terminal
npm install -g @connorbritain/mssql-mcp-server@latest

Then configure your MCP client:

config.json
{

  "mcpServers": {

    "mssql": {

      "command": "npx",

      "args": ["@connorbritain/mssql-mcp-server@latest"],

      "env": { "SERVER_NAME": "localhost", "DATABASE_NAME": "mydb", "READONLY": "true" }

    }

  }

}

Option 2: Build from source

bash
git clone https://github.com/ConnorBritain/mssql-mcp-server.git

cd mssql-mcp-server/src/node

npm install

npm run build

Then point your MCP client to src/node/dist/index.js with your connection env vars.


Configuration

Environment variables

VariableRequiredDescription
SERVER_NAMESQL Server hostname or IP (e.g., localhost, 127.0.0.1, myserver.database.windows.net)
DATABASE_NAMETarget database name
SQL_AUTH_MODEAuthentication mode: sql, windows, or aad (default: aad)
SQL_USERNAMEUsername for SQL or Windows auth
SQL_PASSWORDPassword for SQL or Windows auth
SQL_DOMAINDomain for Windows/NTLM auth (optional)
SQL_PORTCustom port (default: 1433). Useful for named instances or Docker containers on non-standard ports.
TRUST_SERVER_CERTIFICATESet to true for self-signed certificates or dev environments
CONNECTION_TIMEOUTConnection timeout in seconds (default: 30)
READONLYSet to true to restrict to read-only tools (no INSERT, UPDATE, DELETE, DROP)
MAX_ROWS_DEFAULTAuto-limit for SELECT queries without TOP/LIMIT (default: 1000, range: 1-100000)
REQUIRE_MUTATION_CONFIRMATIONSet to false to skip preview/confirm for mutations (default: true)
ENVIRONMENTS_CONFIG_PATHPath to JSON file defining multiple named database environments
SCRIPTS_PATHPath to named SQL scripts directory (must contain scripts.json)
AUDIT_LOG_PATHPath for audit log file (default: logs/audit.jsonl)
AUDIT_LOGGINGSet to false to disable audit logging (default: true)
AUDIT_REDACT_SENSITIVESet to false to disable redaction of sensitive args (default: true)
PROFILE_SAMPLE_SIZE_DEFAULTDefault sample size for profile_table (defaults to 50, max 1000)
PROFILE_SAMPLE_RETURN_LIMITMax number of sample rows returned in responses (defaults to 10, max 100)
SEARCH_SCHEMA_DEFAULT_LIMITDefault row limit per section for search_schema pagination (defaults to 50, max 200)

Authentication modes

SQL Server Authentication (SQL_AUTH_MODE=sql)
Standard username/password auth against SQL Server. Works with local instances, Docker containers, and Azure SQL with SQL auth enabled.

json
"env": {

  "SERVER_NAME": "127.0.0.1",

  "DATABASE_NAME": "mydb",

  "SQL_AUTH_MODE": "sql",

  "SQL_USERNAME": "sa",

  "SQL_PASSWORD": "YourPassword123",

  "SQL_PORT": "1433",

  "TRUST_SERVER_CERTIFICATE": "true"

}

Windows Authentication (SQL_AUTH_MODE=windows) NTLM-based auth using domain credentials. Ideal for on-prem SQL Server in Active Directory environments.

The server auto-parses DOMAIN\username format β€” you can provide the domain either as a separate SQL_DOMAIN field or embedded in SQL_USERNAME (e.g., CORP\svc_account). If both are present, the explicit SQL_DOMAIN takes precedence and the prefix is stripped from the username.

json
"env": {

  "SERVER_NAME": "sqlserver.corp.local",

  "DATABASE_NAME": "mydb",

  "SQL_AUTH_MODE": "windows",

  "SQL_USERNAME": "CORP\\svc_account",

  "SQL_PASSWORD": "YourPassword123",

  "SQL_DOMAIN": "CORP"

}

Azure AD Authentication (SQL_AUTH_MODE=aad or omit) Interactive browser-based Azure AD authentication. Opens a browser window on first connection to authenticate. Best for Azure SQL Database with AAD-only auth.

json
"env": {

  "SERVER_NAME": "myserver.database.windows.net",

  "DATABASE_NAME": "mydb",

  "SQL_AUTH_MODE": "aad"

}

Credential security

Never hardcode credentials in config files that might be committed to version control. The server supports several approaches for secure credential management:

Secret placeholders (recommended)

Use ${secret:NAME} syntax in your environments.json to reference secrets:

config.json
{

  "name": "prod",

  "server": "prod-server.database.windows.net",

  "username": "${secret:PROD_SQL_USERNAME}",

  "password": "${secret:PROD_SQL_PASSWORD}"

}

Pluggable secret providers

The server resolves ${secret:NAME} placeholders through a configurable chain of providers. Add a secrets block to your environments.json:

config.json
{

  "secrets": {

    "providers": [

      { "type": "env" },

      { "type": "dotenv", "path": "/absolute/path/to/.env" },

      { "type": "file", "directory": "/absolute/path/to/secrets/" }

    ]

  },

  "environments": [...]

}

Providers are tried in order β€” the first one to return a value wins.

ProviderConfigDescription
env(none)Reads from process.env. Always available.
dotenvpath (absolute)Parses a .env file (key=value lines). The server reads the file directly, bypassing shell env inheritance.
filedirectory (absolute)Reads a file named NAME from the directory. Useful for Docker secrets or mounted volumes.

If no secrets block is present, the server defaults to [{ "type": "env" }] (the original behavior).

Cross-platform .env setup (recommended for MCP clients):

MCP clients spawn the server as a child process, so shell profile variables (~/.bashrc, etc.) and Windows Credential Manager entries are often not available. The dotenv provider solves this:

  1. Create a .env file with your secrets:

    bash
    # Windows: C:\Users\you\.mssql-mcp-server\.env
    
    # WSL/Linux: /home/you/.mssql-mcp-server/.env
    
    PROD_SQL_USERNAME=myuser
    
    PROD_SQL_PASSWORD=mypassword
    
  2. Reference it in environments.json:

    config.json
    {
    
      "secrets": {
    
        "providers": [
    
          { "type": "env" },
    
          { "type": "dotenv", "path": "C:\\Users\\you\\.mssql-mcp-server\\.env" }
    
        ]
    
      }
    
    }
    
  3. Keep the .env file out of version control β€” add it to .gitignore.

Convenience fallback: If you don't want to add a secrets block, set the DOTENV_PATH environment variable to the absolute path of your .env file. The server will automatically create a dotenv provider from it.

Validating your setup

Use the validate_environment_config tool to verify your secrets configuration. It checks:

  • Provider configs are valid (correct types, paths exist and are readable)
  • All ${secret:NAME} references in your environments are resolvable

Platform-specific secret stores

For enhanced security, load credentials from your platform's native secret store before launching the MCP server. Example scripts are provided in the examples/ folder:

PlatformScriptSecret Store
Windowsload-from-credential-manager.ps1Windows Credential Manager
Windowsload-from-keyvault.ps1Azure Key Vault
macOSload-env.shmacOS Keychain (via security CLI)
Linuxload-env.shEnvironment variables / .env file

Windows Credential Manager example:

powershell
# Store credential (one-time setup)

cmdkey /generic:MSSQL_PROD /user:myuser /pass:mypassword



# Retrieve and set as env var before launching

$cred = cmdkey /list:MSSQL_PROD | Select-String "User:"

# ... (see examples/load-from-credential-manager.ps1 for full script)

Azure Key Vault example:

powershell
# Retrieve secret from Key Vault

$secret = az keyvault secret show --vault-name "my-vault" --name "sql-password" --query "value" -o tsv

$env:PROD_SQL_PASSWORD = $secret

Security tiers

Use CaseRecommended Approach
Local development.env file (gitignored) with dotenv provider
Team/corporateWindows Credential Manager, macOS Keychain, or 1Password/Bitwarden CLI
Enterprise/regulatedAzure Key Vault, HashiCorp Vault, AWS Secrets Manager (Phase 2 async providers)

Multiple instances / Docker

If you're running multiple SQL Server instances (e.g., local dev on 1433, Docker on 1434), just change SQL_PORT:

json
"env": {

  "SERVER_NAME": "127.0.0.1",

  "DATABASE_NAME": "devdb",

  "SQL_AUTH_MODE": "sql",

  "SQL_USERNAME": "sa",

  "SQL_PASSWORD": "DockerPassword123",

  "SQL_PORT": "1434",

  "TRUST_SERVER_CERTIFICATE": "true"

}

You can also run multiple instances of the MCP server in your config, each pointing to a different database or environment.

Multi-environment configuration

For managing multiple databases (prod, staging, client DBs), create an environments.json file:

config.json
{

  "defaultEnvironment": "dev",

  "environments": [

    {

      "name": "dev",

      "server": "localhost",

      "database": "DevDB",

      "authMode": "sql",

      "username": "sa",

      "password": "DevPassword123",

      "trustServerCertificate": true,

      "readonly": false

    },

    {

      "name": "prod",

      "server": "prod-server.database.windows.net",

      "database": "ProdDB",

      "authMode": "aad",

      "readonly": true,

      "description": "Production - read only"

    }

  ]

}

Then point to it:

json
"env": {

  "ENVIRONMENTS_CONFIG_PATH": "/path/to/environments.json"

}

Tools accept an optional environment parameter to target a specific environment. The IntentRouter can also infer environments from natural language (e.g., "show tables in prod" β†’ uses prod environment).

Environment policy fields

FieldTypeDescription
namestringEnvironment identifier
serverstringSQL Server hostname
databasestringDefault database
portnumberPort (default: 1433)
authModestringsql, windows, or aad
username / passwordstringCredentials (supports ${secret:NAME} placeholders)
domainstringDomain for Windows auth (also auto-extracted from DOMAIN\user format)
trustServerCertificatebooleanTrust self-signed certs
connectionTimeoutnumberConnection timeout in seconds (default: 30)
requestTimeoutnumberPer-query timeout in seconds (default: 120). Increase for slow remote servers.
readonlybooleanDisable all write operations
tierstringreader, writer, or admin
accessLevelstringdatabase (default) or server for multi-DB access
allowedDatabases / deniedDatabasesstring[]Filter databases for server-level access
allowedTools / deniedToolsstring[]Whitelist/blacklist specific tools
allowedSchemas / deniedSchemasstring[]Schema/table patterns (supports wildcards like dbo.*)
allowedColumns / deniedColumnsobjectTable-pattern keys mapped to column arrays; denied columns take precedence
maxRowsDefaultnumberCap query results (overrides user requests)
requireApprovalbooleanForce confirmation for all non-metadata operations
auditLevelstringnone, basic, or verbose
descriptionstringHuman-readable description

Named SQL scripts

For repeatable operations, you can define pre-approved SQL scripts that agents can execute with parameters. This is safer than ad-hoc SQL since scripts are reviewed in advance.

Setup:

  1. Create a scripts directory with a scripts.json manifest:
config.json
{

  "scripts": [

    {

      "name": "find_user_by_email",

      "description": "Look up a user by email address",

      "file": "find_user_by_email.sql",

      "parameters": [

        { "name": "email", "type": "string", "required": true }

      ],

      "readonly": true,

      "tier": "reader"

    },

    {

      "name": "deactivate_user",

      "description": "Deactivate a user account",

      "file": "deactivate_user.sql",

      "parameters": [

        { "name": "userId", "type": "number", "required": true }

      ],

      "tier": "writer",

      "requiresApproval": true,

      "deniedEnvironments": ["prod"]

    }

  ]

}
  1. Create the SQL files (use @paramName for parameters):
Dockerfile
-- find_user_by_email.sql

SELECT UserId, Email, DisplayName, CreatedAt

FROM Users

WHERE Email = @email
  1. Configure the path in environments.json:
config.json
{

  "defaultEnvironment": "dev",

  "scriptsPath": "./scripts",

  "environments": [...]

}

Or via environment variable: SCRIPTS_PATH=/path/to/scripts

Script governance fields:

FieldDescription
tierMinimum tier required (reader, writer, admin)
readonlyMark as safe for readonly environments
requiresApprovalRequire confirm: true to execute
allowedEnvironmentsRestrict to specific environments
deniedEnvironmentsBlock from specific environments

Usage:

Code
> Use list_scripts to see available scripts

> Run the find_user_by_email script with email "user@example.com"

> Preview the deactivate_user script with userId 123

⚠️ Safety & Prudence

With great power comes great responsibility.

This MCP server exposes powerful CRUD operations including drop_table, create_table, update_data, and insert_data. If you enable full autopilot mode in your AI assistantβ€”or simply aren't inspecting each tool callβ€”you could trigger destructive actions you don't intend.

Recommended Safeguards

  1. Use READONLY=true by default. This globally disables all write operations, exposing only safe discovery tools. Enable write mode only when you explicitly need it.

  2. Preview before mutations. update_data and delete_data show affected rows and require explicit confirmation (confirmUpdate: true / confirmDelete: true) before executing. Row counts are capped at 1000 by default.

  3. Be a prudent human in the loop. Review tool calls before approval, especially for destructive operations. Don't blindly trust AI-generated queries against production data.

  4. Use dedicated credentials. Connect with a database user that has only the permissions you intend to grant. Avoid sa or admin accounts in production.

  5. Test in non-production first. Validate tool behavior against development or staging databases before pointing at production.

  6. Monitor and audit. Audit logging is enabled by defaultβ€”check logs/audit.jsonl for a record of all tool invocations. Sensitive parameters are auto-redacted.

The discovery tools (search_schema, profile_table, inspect_relationships) are designed to help you understand unfamiliar databases safely. Use them to build context before issuing any mutations.

Tool tuning

  • Schema discovery pagination – Use SEARCH_SCHEMA_DEFAULT_LIMIT to tune how many rows search_schema returns per page (default 50, max 200). Combine with tableOffset/columnOffset params for manual paging.
  • Profiling samples – Use PROFILE_SAMPLE_SIZE_DEFAULT to control how many rows are sampled internally (default 50). Control how many rows are actually returned with PROFILE_SAMPLE_RETURN_LIMIT (default 10). Both respect per-request overrides via sampleSize and includeSamples args.

Deployment

See DEPLOYMENT.md for enterprise deployment patterns including:

  • Network topologies (direct, VPN, SSH tunnel, jump host, container)
  • Docker / Docker Compose examples
  • systemd service setup
  • Security hardening checklist
  • Multi-client fleet configuration
  • Troubleshooting common connection issues

Roadmap

See ROADMAP.md for the full enterprise roadmap with status tracking.

Recently shipped (v0.3.x):

  • βœ… Pluggable secret providers β€” dotenv and file providers join env; configure via secrets.providers in environments.json
  • βœ… Per-environment connection pools β€” each environment gets its own isolated ConnectionPool (fixes cross-environment data leaks from the old global singleton)
  • βœ… NTLM domain/username parsing β€” DOMAIN\user format auto-splits for tedious driver compatibility
  • βœ… Configurable requestTimeout per environment (default 120s, up from the mssql package's 15s default)
  • βœ… Version tracking β€” test_connection returns mcpServerVersion for debugging
  • βœ… validate_environment_config now validates secrets providers and checks resolvability of all ${secret:NAME} references

Previously shipped:

  • βœ… Multi-environment connection profiles with governance controls
  • βœ… Per-environment policy controls (allowedTools, deniedTools, requireApproval, maxRowsDefault)
  • βœ… Server-level access with database filtering (accessLevel: "server")
  • βœ… Schema-level access control (allowedSchemas, deniedSchemas)
  • βœ… Audit logging with session IDs and per-environment log levels
  • βœ… Configuration validation tool (validate_environment_config)
  • βœ… Secret placeholder resolution (${secret:NAME})
  • βœ… Preview/confirm flows for UPDATE and DELETE
  • βœ… Named SQL scripts (list_scripts, run_script) with full governance
  • βœ… Dependency analysis (inspect_dependencies) for impact assessment

Recently completed:

  • βœ… Shared core package (@connorbritain/mssql-mcp-core) β€” all three tiers are thin wrappers
  • βœ… MCP Registry registration for all three packages
  • βœ… Deployment & bastion pattern documentation

Next priorities:

  • Pluggable secret providers (Azure Key Vault, AWS Secrets Manager)
  • External log shipping (Syslog, Azure Monitor, Splunk)

Contributing

Contributions welcome! See CONTRIBUTING.md for guidelines. If you're working with SQL Server in environments where stability and security matter, I'd love to hear what tools would help you most.

If this project is useful to you, consider giving it a ⭐ on GitHub and sharing it with others who work with SQL Server. The more eyes on it, the better it gets.


License & attribution

MIT license. See LICENSE for details.

This project was originally forked from Microsoft's SQL-AI-samples and has since evolved into a standalone, production-focused MCP server. Thanks to the Microsoft Azure SQL team for the initial foundation, and to the MCP community for the protocol specs that make cross-agent tooling possible.


Versioning

This package follows semver. Note: version 1.0.1 is permanently reserved on npm due to a prior publish and cannot be used for future releases.


Repository: https://github.com/ConnorBritain/mssql-mcp-server
npm package: https://www.npmjs.com/package/@connorbritain/mssql-mcp-server
Issues & support: https://github.com/ConnorBritain/mssql-mcp-server/issues

Related MCP Servers

View all in Databases View all alternatives
  • AllMCPs Server logoAllMCPs Server
    β˜… Featured

    The official MCP server for AllMCPs.com - submit and manage tools directly from your AI. The open directory for MCP servers. Connect Claude, Cursor, Windsurf, and AI agents to databases, tools, files, and APIs. Explore 3,181+ servers. AllMCPs is the premier, open directory for discovering, evaluating, and installing Model Context Protocol (MCP) servers to equip AI agents and LLMs with real-world superpowers.

    πŸ—„οΈ Databases7 views
    Compare vs AllMCPs Server β†’
  • Genai Toolbox logoGenai Toolbox

    Open source MCP server specializing in easy, fast, and secure tools for Databases.

    πŸ—„οΈ Databases3 views
    Compare vs Genai Toolbox β†’
  • Airtable Mcp Server logoAirtable Mcp Server

    Airtable database integration with schema inspection, read and write capabilities

    πŸ—„οΈ Databases2 views
    Compare vs Airtable Mcp Server β†’
  • Mcp Server Duckdb logoMcp Server Duckdb

    DuckDB database integration with schema inspection and query capabilities

    πŸ—„οΈ Databases2 views
    Compare vs Mcp Server Duckdb β†’

Frequently Asked Questions about Mssql

Add the following block to your claude_desktop_config.json under mcpServers: "mcpServers": { "mssql": { "command": "npx", "args": ["-y", "mssql"] } }

AllMCPs Directory Badge

Full Badge Customizer

Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.

Badge Style:
Live Dynamic SVG PreviewMssql AllMCPs Directory Badge
Markdown (GitHub README)
[![AllMCPs](https://allmcps.com/api/badge/mssql?style=directory)](https://allmcps.com/mcp/mssql)
HTML Embed
<a href="https://allmcps.com/mcp/mssql"><img src="https://allmcps.com/api/badge/mssql?style=directory" alt="Mssql on AllMCPs" /></a>

Technical Specs & Signals

CategoryπŸ—„οΈDatabases
More technical detailsExpand β–Ύ
TransportSTDIO
RuntimeNode.js
4/4 checks healthy over the last 6h
Views0
Unique ViewsTotal visits recorded for this listing page on AllMCPs.
Installs0
Installs & Copy ActionsTotal times users copied install commands or configuration snippets for this server.
GitHub stars30
GitHub Star CountTotal stargazers on GitHub representing community popularity (30 stars).
Last commit6d ago
Last Repository CommitThe most recent commit or push recorded for this server's GitHub repository.Last commit on Aug 4, 2026
56Quality signal: Good Β· 56/100How this signal is calculated β–Ύ
Server availabilityNot measured

Not scored for repo-hosted servers β€” we can't reach the running server, only its GitHub page. Hosted MCP endpoints are health-checked live.

Verified ownership10/20
Documentation & tools25/30
Adoption & activity7/15
Community engagement0/10

A guidance signal from public completeness & health data β€” not a user rating. New listings start lower and rise as they add docs, get verified, and grow adoption. Signals we can't observe for a listing are skipped, not counted against it.

β˜… Spotlight Slot

Feature Your MCP Server

Get maximum visibility for your server across our directory, search results, and detail pages.

Spotlight Your Server

Own this project?

This directory is pre-filled from public sources. Claim via GitHub README, site badge, or DNS TXT to get the verified badge and attach your website.

Free dofollow backlink: after claiming, verify your product site and place a dofollow AllMCPs badge β€” we recheck it stays live.

Claim & get free dofollow

Share & Embed

Add our SVG badge (dark/light directory styles) or embeddable widget to your site.

Explore more

More in πŸ—„οΈ Databases β†’Best MCP servers for Databases β†’Alternatives to Mssql β†’Install in Claude DesktopInstall in CursorInstall in VS Code