MCP → Local MSSQL Server
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@MCP → Local MSSQL Serverrun sales report for last month"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
MCP → Local MSSQL Server
A local MCP server that exposes SQL Server stored procedures as tools for LLM clients (Claude Desktop, VS Code, Cursor, etc.).
Files in this project
File | Purpose |
| The MCP server — all tools live here |
| Sample table + stored procedure to run in SQL Server |
| Python dependencies |
| Template for your connection credentials |
| Drop-in config snippet for Claude Desktop |
Prerequisites
1 — Python 3.10+
python --version2 — Microsoft ODBC Driver 18 for SQL Server
Windows: Download from https://aka.ms/odbc18
macOS:
brew install msodbcsql18Linux (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 msodbcsql18Setup
Step 1 — Install Python packages
# with uv (recommended)
uv add "mcp[cli]" pyodbc
# or with pip
pip install -r requirements.txtStep 2 — Create your .env file
cp .env.example .env
# Edit .env and fill in your SQL Server credentialsStep 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 table
and 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.pyThis opens a browser-based inspector. Call test_connection first
to verify the DB link, then try run_sales_report.
Connecting to Claude Desktop
Open (or create)
claude_desktop_config.json:macOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows:
%APPDATA%\Claude\claude_desktop_config.json
Merge the contents of the provided
claude_desktop_config.jsoninto it, replacing/ABSOLUTE/PATH/TO/with the real path tomssql_server.py.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
Add a new
@mcp.tool()function inmssql_server.py.Hardcode the procedure name in the
cursor.execute()call — never accept a proc name as a parameter (can't be bound with?).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=yesis fine for local dev; remove it in production and use a proper TLS certificate.
This server cannot be installed
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/DikshaDogra25/mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server