NestDaddy

Microsoft SQL Server

io.github.alyiox/mcp-mssql · v1.8.0

MCP server for SQL Server metadata, parameterized queries, plan analysis, and writes opt-in.

Connect Runs on your machine

Terminal
claude mcp add mcp-mssql -e MCPMSSQL_CONNECTION_STRING=<MCPMSSQL_CONNECTION_STRING> -e MCPMSSQL_DESCRIPTION=<MCPMSSQL_DESCRIPTION> -e MCPMSSQL_QUERY_MAX_ROWS=<MCPMSSQL_QUERY_MAX_ROWS> -e MCPMSSQL_QUERY_COMMAND_TIMEOUT_SECONDS=<MCPMSSQL_QUERY_COMMAND_TIMEOUT_SECONDS> -e MCPMSSQL_QUERY_SNAPSHOT_MAX_ROWS=<MCPMSSQL_QUERY_SNAPSHOT_MAX_ROWS> -e MCPMSSQL_QUERY_SNAPSHOT_COMMAND_TIMEOUT_SECONDS=<MCPMSSQL_QUERY_SNAPSHOT_COMMAND_TIMEOUT_SECONDS> -e MCPMSSQL_ANALYZE_COMMAND_TIMEOUT_SECONDS=<MCPMSSQL_ANALYZE_COMMAND_TIMEOUT_SECONDS> -e MCPMSSQL_ALLOW_WRITE=<MCPMSSQL_ALLOW_WRITE> -e MCPMSSQL_WRITE_COMMAND_TIMEOUT_SECONDS=<MCPMSSQL_WRITE_COMMAND_TIMEOUT_SECONDS> -e DOTNET_ENVIRONMENT=<DOTNET_ENVIRONMENT> -- dnx Alyio.McpMssql --yes
claude_desktop_config.json
{
  "mcpServers": {
    "mcp-mssql": {
      "command": "dnx",
      "args": [
        "Alyio.McpMssql",
        "--yes"
      ],
      "env": {
        "MCPMSSQL_CONNECTION_STRING": "<MCPMSSQL_CONNECTION_STRING>",
        "MCPMSSQL_DESCRIPTION": "<MCPMSSQL_DESCRIPTION>",
        "MCPMSSQL_QUERY_MAX_ROWS": "<MCPMSSQL_QUERY_MAX_ROWS>",
        "MCPMSSQL_QUERY_COMMAND_TIMEOUT_SECONDS": "<MCPMSSQL_QUERY_COMMAND_TIMEOUT_SECONDS>",
        "MCPMSSQL_QUERY_SNAPSHOT_MAX_ROWS": "<MCPMSSQL_QUERY_SNAPSHOT_MAX_ROWS>",
        "MCPMSSQL_QUERY_SNAPSHOT_COMMAND_TIMEOUT_SECONDS": "<MCPMSSQL_QUERY_SNAPSHOT_COMMAND_TIMEOUT_SECONDS>",
        "MCPMSSQL_ANALYZE_COMMAND_TIMEOUT_SECONDS": "<MCPMSSQL_ANALYZE_COMMAND_TIMEOUT_SECONDS>",
        "MCPMSSQL_ALLOW_WRITE": "<MCPMSSQL_ALLOW_WRITE>",
        "MCPMSSQL_WRITE_COMMAND_TIMEOUT_SECONDS": "<MCPMSSQL_WRITE_COMMAND_TIMEOUT_SECONDS>",
        "DOTNET_ENVIRONMENT": "<DOTNET_ENVIRONMENT>"
      }
    }
  }
}
~/.cursor/mcp.json
{
  "mcpServers": {
    "mcp-mssql": {
      "command": "dnx",
      "args": [
        "Alyio.McpMssql",
        "--yes"
      ],
      "env": {
        "MCPMSSQL_CONNECTION_STRING": "<MCPMSSQL_CONNECTION_STRING>",
        "MCPMSSQL_DESCRIPTION": "<MCPMSSQL_DESCRIPTION>",
        "MCPMSSQL_QUERY_MAX_ROWS": "<MCPMSSQL_QUERY_MAX_ROWS>",
        "MCPMSSQL_QUERY_COMMAND_TIMEOUT_SECONDS": "<MCPMSSQL_QUERY_COMMAND_TIMEOUT_SECONDS>",
        "MCPMSSQL_QUERY_SNAPSHOT_MAX_ROWS": "<MCPMSSQL_QUERY_SNAPSHOT_MAX_ROWS>",
        "MCPMSSQL_QUERY_SNAPSHOT_COMMAND_TIMEOUT_SECONDS": "<MCPMSSQL_QUERY_SNAPSHOT_COMMAND_TIMEOUT_SECONDS>",
        "MCPMSSQL_ANALYZE_COMMAND_TIMEOUT_SECONDS": "<MCPMSSQL_ANALYZE_COMMAND_TIMEOUT_SECONDS>",
        "MCPMSSQL_ALLOW_WRITE": "<MCPMSSQL_ALLOW_WRITE>",
        "MCPMSSQL_WRITE_COMMAND_TIMEOUT_SECONDS": "<MCPMSSQL_WRITE_COMMAND_TIMEOUT_SECONDS>",
        "DOTNET_ENVIRONMENT": "<DOTNET_ENVIRONMENT>"
      }
    }
  }
}
.vscode/mcp.json
{
  "servers": {
    "mcp-mssql": {
      "type": "stdio",
      "command": "dnx",
      "args": [
        "Alyio.McpMssql",
        "--yes"
      ],
      "env": {
        "MCPMSSQL_CONNECTION_STRING": "<MCPMSSQL_CONNECTION_STRING>",
        "MCPMSSQL_DESCRIPTION": "<MCPMSSQL_DESCRIPTION>",
        "MCPMSSQL_QUERY_MAX_ROWS": "<MCPMSSQL_QUERY_MAX_ROWS>",
        "MCPMSSQL_QUERY_COMMAND_TIMEOUT_SECONDS": "<MCPMSSQL_QUERY_COMMAND_TIMEOUT_SECONDS>",
        "MCPMSSQL_QUERY_SNAPSHOT_MAX_ROWS": "<MCPMSSQL_QUERY_SNAPSHOT_MAX_ROWS>",
        "MCPMSSQL_QUERY_SNAPSHOT_COMMAND_TIMEOUT_SECONDS": "<MCPMSSQL_QUERY_SNAPSHOT_COMMAND_TIMEOUT_SECONDS>",
        "MCPMSSQL_ANALYZE_COMMAND_TIMEOUT_SECONDS": "<MCPMSSQL_ANALYZE_COMMAND_TIMEOUT_SECONDS>",
        "MCPMSSQL_ALLOW_WRITE": "<MCPMSSQL_ALLOW_WRITE>",
        "MCPMSSQL_WRITE_COMMAND_TIMEOUT_SECONDS": "<MCPMSSQL_WRITE_COMMAND_TIMEOUT_SECONDS>",
        "DOTNET_ENVIRONMENT": "<DOTNET_ENVIRONMENT>"
      }
    }
  }
}

Replace the values in angle brackets with your own. Keys stay on your machine; we never see them.

Tools

This server runs locally, so its tools are listed by your MCP client once it starts.

Environment variables

NameDescription
MCPMSSQL_CONNECTION_STRING
Optional, secret
Default profile SQL Server connection string (often contains secrets). Optional if profiles are only in user appsettings.
MCPMSSQL_DESCRIPTION
Optional
Optional human-readable description for the default profile.
MCPMSSQL_QUERY_MAX_ROWS
Optional
Max rows per interactive query (default 500; ceiling 1000).
MCPMSSQL_QUERY_COMMAND_TIMEOUT_SECONDS
Optional
Interactive query command timeout in seconds (default 30).
MCPMSSQL_QUERY_SNAPSHOT_MAX_ROWS
Optional
Max rows for snapshot queries (default 10000; ceiling 50000).
MCPMSSQL_QUERY_SNAPSHOT_COMMAND_TIMEOUT_SECONDS
Optional
Snapshot query timeout in seconds (default 120).
MCPMSSQL_ANALYZE_COMMAND_TIMEOUT_SECONDS
Optional
Execution plan analysis timeout in seconds (default 300; ceiling 600).
MCPMSSQL_ALLOW_WRITE
Optional
Enable write commands (DDL/DML) via run_command on the default profile (default false). With no write-enabled profile the tool is not advertised at all. Soft guard only — prefer a db_datareader login for a hard read-only guarantee.
MCPMSSQL_WRITE_COMMAND_TIMEOUT_SECONDS
Optional
Write command timeout in seconds (default 60; ceiling 600).
DOTNET_ENVIRONMENT
Optional
Set to Development to load dotnet user-secrets (local dev).

Details

Package[email protected] (NUGET, stdio)
First published26 Oct 2026
Last updated26 Oct 2026
Registry nameio.github.alyiox/mcp-mssql

More databases servers See all

Listing data from the official MCP registry. Status and tools from NestDaddy's daily check. Browse all MCP servers.