DikshaDogra25

MCP → Local MSSQL Server

Community DikshaDogra25
Updated

mcp

MCP → Local MSSQL Server

A local MCP server that exposes SQL Server stored procedures as toolsfor LLM clients (Claude Desktop, VS Code, Cursor, etc.).

Files in this project

File Purpose
mssql_server.py The MCP server — all tools live here
usp_SalesReport.sql Sample table + stored procedure to run in SQL Server
requirements.txt Python dependencies
.env.example Template for your connection credentials
claude_desktop_config.json Drop-in config snippet for Claude Desktop

Prerequisites

1 — Python 3.10+

python --version

2 — Microsoft ODBC Driver 18 for SQL Server

Windows: Download from https://aka.ms/odbc18

macOS:

brew install msodbcsql18

Linux (Ubuntu/Debian):

curl https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add -
curl https://packages.microsoft.com/config/ubuntu/22.04/prod.list \
  | sudo tee /etc/apt/sources.list.d/mssql-release.list
sudo apt-get update
sudo ACCEPT_EULA=Y apt-get install -y msodbcsql18

Setup

Step 1 — Install Python packages

# with uv (recommended)
uv add "mcp[cli]" pyodbc

# or with pip
pip install -r requirements.txt

Step 2 — Create your .env file

cp .env.example .env
# Edit .env and fill in your SQL Server credentials

Step 3 — Create the sample stored procedure (optional)

Open SSMS or Azure Data Studio, switch to your target database,and run usp_SalesReport.sql. This creates a demo Sales tableand the usp_SalesReport procedure.

Step 4 — Test the server with MCP Inspector

# Load .env first
export $(cat .env | xargs)          # macOS/Linux
# On Windows PowerShell: use $env:VAR = "value" for each line

mcp dev mssql_server.py

This opens a browser-based inspector. Call test_connection firstto verify the DB link, then try run_sales_report.

Connecting to Claude Desktop

  1. Open (or create) claude_desktop_config.json:

    • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
    • Windows: %APPDATA%\Claude\claude_desktop_config.json
  2. Merge the contents of the provided claude_desktop_config.json into it,replacing /ABSOLUTE/PATH/TO/ with the real path to mssql_server.py.

  3. Restart Claude Desktop. The tools appear in the tools panel.

Tools exposed by the server

test_connection

Verifies the database connection. Returns server version, database name,and server time. Run this first to confirm everything is wired up.

list_procedures

Lists all stored procedures in the connected database.

run_sales_report(start_date, end_date)

Calls dbo.usp_SalesReport. Returns two result sets:

  • Row-level sale detail for the date range
  • Revenue summary grouped by region

Dates must be in YYYY-MM-DD format.

Adding your own procedures

  1. Add a new @mcp.tool() function in mssql_server.py.
  2. Hardcode the procedure name in the cursor.execute() call —never accept a proc name as a parameter (can't be bound with ?).
  3. Bind all user-supplied values with ? placeholders, never f-strings.
@mcp.tool()
def get_customer_orders(customer_id: int) -> dict:
    """Fetch all orders for a customer from dbo.usp_GetCustomerOrders."""
    conn = get_connection()
    try:
        cursor = conn.cursor()
        cursor.execute("EXEC dbo.usp_GetCustomerOrders @CustomerID = ?", customer_id)
        data = _rows_from_cursor(cursor)
        return {"row_count": len(data), "data": data}
    except pyodbc.Error as e:
        return {"error": str(e)}
    finally:
        conn.close()

Security notes

  • stdio transport runs with the same OS permissions as the host app.Use a least-privilege SQL login, not sa.
  • Store credentials in environment variables or .env, never in code.
  • Never commit .env — add it to .gitignore.
  • TrustServerCertificate=yes is fine for local dev; remove it in productionand use a proper TLS certificate.

MCP Server · Populars

MCP Server · New

    reticlehq

    reticle

    AI agents can generate code, but still struggle to understand what they build. Reticle brings Jev-style machine-native runtime perception to web & desktop applications.

    Community reticlehq
    tubeagentkit

    YouTube MCP Server: Transcripts, Search, Channels & Playlists

    YouTube MCP server: get YouTube video transcripts, search YouTube, browse channels and playlists from Claude, ChatGPT, Cursor and VS Code. Remote, free tier.

    Community tubeagentkit
    lrvx

    lrvx

    Framework for building trading systems

    Community lrvx
    koda-ai-studio

    agent-bom

    Open security scanner and self-hosted control plane for AI, MCP, and cloud. One evidence model — run scans in your environment, centralize findings, govern in your VPC.

    Community koda-ai-studio
    DenRakEiw

    Scumble

    Free, open-source desktop editor for AI inpainting: select, prompt, get a colour-matched layer. FLUX 3 Image, FLUX.2, GPT Image, Nano Banana, Seedream and Qwen through your API key or your own ComfyUI. Layers, PSD export, MCP.

    Community DenRakEiw