MSSQL MCP Server

MSSQL MCP Server

Provides read-only access to Microsoft SQL Server databases using Windows Authentication, enabling AI assistants to safely explore schemas and query data with built-in security controls.

Category
Visit Server

README

pyodbc MCP Server

A Model Context Protocol (MCP) server that provides read-only access to Microsoft SQL Server databases using Windows Authentication.

Built for environments where:

  • 🔐 Windows Authentication is required (no username/password storage)
  • 🛡️ Read-only access is mandated by IT security policy
  • 🖥️ SQL Server is accessed from Windows workstations
  • 🤖 AI assistants need safe database access (Claude Code, etc.)

Features

  • Windows Authentication - Uses Trusted_Connection via pyodbc, no credentials to manage
  • Read-only by design - Only SELECT queries allowed, dangerous keywords blocked
  • Row limiting - Prevents accidental large result sets (configurable, max 1000)
  • Schema exploration - List tables, views, describe columns, find relationships
  • MCP compatible - Works with Claude Code, Claude Desktop, and any MCP client

Available Tools

Tool Description
ListTables List all tables in the database, optionally filtered by schema
ListViews List all views in the database, optionally filtered by schema
DescribeTable Get column definitions for a specific table
GetTableRelationships Find foreign key relationships for a table
ReadData Execute a SELECT query (with security filtering)

Installation

Prerequisites

  • Python 3.10+
  • Windows with ODBC Driver 17+ for SQL Server
  • Network access to your SQL Server
  • Windows domain account with SELECT permissions on target database

Install from PyPI

pip install pyodbc-mcp-server

Install from Source

git clone https://github.com/jjones-wps/pyodbc-mcp-server.git
cd pyodbc-mcp-server
pip install -e .

Install ODBC Driver (if needed)

Download and install Microsoft ODBC Driver 17 for SQL Server.

Configuration

Environment Variables

Variable Default Description
MSSQL_SERVER localhost SQL Server hostname or IP
MSSQL_DATABASE master Target database name
ODBC_DRIVER ODBC Driver 17 for SQL Server ODBC driver name

Claude Code Configuration

Add to your ~/.claude.json (or %USERPROFILE%\.claude.json on Windows):

{
  "mcpServers": {
    "mssql": {
      "type": "stdio",
      "command": "cmd",
      "args": ["/c", "python", "-m", "mssql_mcp_server"],
      "env": {
        "MSSQL_SERVER": "your-sql-server",
        "MSSQL_DATABASE": "your-database"
      }
    }
  }
}

Alternative: Direct script execution

{
  "mcpServers": {
    "mssql": {
      "type": "stdio",
      "command": "cmd",
      "args": [
        "/c",
        "python",
        "C:\\path\\to\\pyodbc-mcp-server\\src\\mssql_mcp_server\\server.py"
      ],
      "env": {
        "MSSQL_SERVER": "your-sql-server",
        "MSSQL_DATABASE": "your-database"
      }
    }
  }
}

Note for Windows users: The cmd /c wrapper is required for proper stdio communication with MCP clients on Windows.

Claude Desktop Configuration

Add to your Claude Desktop config (%APPDATA%\Claude\claude_desktop_config.json):

{
  "mcpServers": {
    "mssql": {
      "command": "python",
      "args": ["-m", "mssql_mcp_server"],
      "env": {
        "MSSQL_SERVER": "your-sql-server",
        "MSSQL_DATABASE": "your-database"
      }
    }
  }
}

Usage Examples

Once configured, you can ask Claude to:

Explore Schema

"List all tables in the dbo schema"
"Describe the structure of the customers table"
"What are the foreign key relationships for the orders table?"

Query Data

"Show me the first 10 rows from the products table"
"Find all orders from the last 30 days"
"What are the top 5 customers by total order value?"

Analyze Relationships

"Find all tables that reference the customer table"
"Show me the relationship between orders and order_lines"

Security

This server is designed with security as a primary concern:

Read-Only Enforcement

  • Only queries starting with SELECT are allowed
  • Dangerous keywords are blocked even in subqueries:
    • INSERT, UPDATE, DELETE, DROP, CREATE, ALTER
    • EXEC, EXECUTE, TRUNCATE, GRANT, REVOKE, DENY
    • BACKUP, RESTORE, SHUTDOWN, DBCC

Windows Authentication

  • Uses Trusted_Connection=yes - no passwords stored or transmitted
  • Leverages existing Windows domain security
  • Your database permissions are enforced by SQL Server

Row Limiting

  • Default limit: 100 rows per query
  • Maximum limit: 1000 rows per query
  • Prevents accidental retrieval of large datasets

Development

Running Tests

pip install -e ".[dev]"
pytest

Running Locally

# Set environment variables
export MSSQL_SERVER=your-server
export MSSQL_DATABASE=your-database

# Run the server
python -m mssql_mcp_server

Troubleshooting

"ODBC Driver not found"

Install the Microsoft ODBC Driver for SQL Server:

"Login failed" or "Cannot connect"

  1. Verify your Windows account has access to the SQL Server
  2. Test connection with sqlcmd -S your-server -d your-database -E
  3. Check firewall allows connection on port 1433

"Tools not appearing in Claude Code"

  1. Ensure type: "stdio" is in your config
  2. Use the cmd /c wrapper on Windows
  3. Restart Claude Code after config changes
  4. Check Claude Code logs for MCP errors

Contributing

Contributions are welcome! Please:

  1. Fork the repository
  2. Create a feature branch
  3. Add tests for new functionality
  4. Submit a pull request

License

MIT License - see LICENSE file.

Acknowledgments

  • Built with FastMCP for MCP protocol handling
  • Uses pyodbc for SQL Server connectivity
  • Inspired by the need for safe AI access to enterprise databases

Related Projects

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured