Odel
MSSQL LocalDB MCP

MSSQL LocalDB MCP

Local
@hermessilva1RustMITUpdated 1mo ago

MCP server for SQL Server Express LocalDB on Windows: manage instances, run T-SQL, discover DBs

mssql-localdb-mcp

Rust MCP server for SQL Server Express LocalDB on Windows. Gives AI agents (Claude Desktop, Claude Code, and any MCP client) full control over LocalDB instances: create/manage instances, run any T-SQL script, find loose database files in project folders and attach them, introspect schema.

Status: MVP (Phase 1) functional and tested against real LocalDB — see docs/PLANNING.md for the roadmap and current phase.

Why

Existing MCP tools for SQL Server assume an already-configured remote server and require an external runtime (Python, .NET, Node). This project is:

  • Single Rust binary, no external runtime, no Docker.
  • LocalDB-focused: local dev workflow — find a loose .mdf in a project folder, attach it, run a script, no need to open SSMS.
  • Windows-only by design, not a generic multi-database abstraction.

Requirements

  • Windows with SQL Server Express LocalDB installed (SqlLocalDB.exe on PATH).
  • A compatible MCP client (Claude Desktop, Claude Code, etc.).

Installation

Via MCP Registry

Published on the official MCP Registry as io.github.hermessilva/mssql-localdb-mcp. Install through any MCP client that supports the registry.

Via VS Code extension

The vscode-extension/ directory packages the server as a VS Code extension that registers it automatically through the MCP provider API (VS Code 1.101+), with the Windows binary bundled — nothing to download or configure by hand. Build the .vsix locally with:

./build-vsix.ps1                 # bumps the build segment; -Version x.y.z or -NoBump to control it
code --install-extension .\mssql-localdb-mcp-1.0.1-win32-x64.vsix

The extension has its own version line, independent from Cargo.toml — the crate version is what the vX.Y.Z tag and the MCP Registry publish.

Via Claude Code plugin

The claude-plugin/ directory in this repo is a self-contained Claude Code plugin (bundles the Windows binary directly, no separate download). Load it directly with:

claude --plugin-dir path\to\LocalDB-MCP\claude-plugin

Submitted to the claude-community marketplace for review — once approved, install it with claude plugin marketplace add anthropics/claude-plugins-community followed by claude plugin install mssql-localdb-mcp@claude-community.

From source

Requires Rust and LocalDB installed.

git clone https://github.com/hermessilva/LocalDB-MCP.git
cd LocalDB-MCP
cargo build --release

Binary at target\release\mssql-localdb-mcp.exe.

Configure config.toml

db_scan_folder requires at least one explicitly allowed root — without it, the tool refuses to run. Create %APPDATA%\mssql-localdb-mcp\config.toml:

# Windows paths in TOML need single quotes (literal string) — double
# quotes interpret \U... as a unicode escape and break parsing.
scan_allowlist = ['C:\Users\YourUser\source\repos']
scan_max_depth = 6
default_query_timeout_secs = 30
default_max_rows = 1000

Configure in your MCP client

Claude Desktop / Claude Code (claude_desktop_config.json or equivalent):

{
  "mcpServers": {
    "mssql-localdb": {
      "command": "C:\\path\\to\\LocalDB-MCP\\target\\release\\mssql-localdb-mcp.exe"
    }
  }
}

Claude Code via CLI:

claude mcp add mssql-localdb -- "C:\path\to\LocalDB-MCP\target\release\mssql-localdb-mcp.exe"

After that, the agent has access to the localdb_*, sql_*, and db_* tools — see docs/MCP_SPEC.md for the full list.

Documentation

Security — read before using

  • Windows Integrated Authentication only (no SQL Auth).
  • Every destructive action (DROP, TRUNCATE, DELETE, ALTER, etc.) requires explicit confirmation (confirm: true) — never executes silently.
  • Database discovery (db_scan_folder) only scans folders explicitly allowed in config.toml (allowlist).
  • Full detail in docs/SECURITY.md.

License

MIT.