SQL Server MCP
Enables AI assistants to interact with Microsoft SQL Server databases through query execution, schema discovery, CRUD operations, stored procedures, and data export with built-in safety controls.
README
pymssql-mcp
An MCP (Model Context Protocol) server for Microsoft SQL Server databases. Enables AI assistants like Claude to interact with SQL Server through a standardized protocol.
Features
- Natural Language Queries: Ask Claude about your data in plain English
- Schema Discovery: Explore tables, views, columns, and relationships
- CRUD Operations: Read, insert, update, and delete rows safely
- Stored Procedures: Execute stored procedures with parameters
- Multi-Database Support: List and switch between databases
- Data Export: Export query results to JSON or CSV files
- Transaction Support: Begin, commit, and rollback transactions
- Knowledge Persistence: Claude remembers what it learns about your database
- Safety Controls: Read-only mode, command blocking, row limits, schema restrictions
- Connection Watchdog: Automatic recovery from hung connections
- OAuth Integration: Deploy as a Claude.ai Custom Connector with SSO
Documentation
| Guide | Description |
|---|---|
| What is MCP? | Understanding MCP and pymssql-mcp |
| Installation | Complete installation guide |
| Quickstart | Get running in 10 minutes |
| Configuration | All configuration options |
| Tools Reference | Detailed tool documentation |
| Usage Examples | Common usage patterns |
| OAuth Setup | Claude.ai integration with SSO |
Quick Start
1. Install
pip install pymssql-mcp
2. Configure Claude Desktop
Edit your Claude Desktop config file:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"mssql": {
"command": "pymssql-mcp",
"env": {
"MSSQL_HOST": "your-server.example.com",
"MSSQL_USER": "your-username",
"MSSQL_PASSWORD": "your-password",
"MSSQL_DATABASE": "your-database",
"MSSQL_READ_ONLY": "true"
}
}
}
}
3. Restart Claude Desktop
Quit and reopen Claude Desktop. You'll see a hammer icon indicating tools are available.
4. Start Chatting
Ask Claude about your database:
"What tables are available?"
"Describe the Customers table"
"Show me the top 10 orders by total amount"
"How many customers do we have in each state?"
Available Tools
Connection & Database
| Tool | Description |
|---|---|
connect |
Connect to the database |
disconnect |
Close all connections |
list_databases |
List available databases |
switch_database |
Switch database context |
Queries & Schema
| Tool | Description |
|---|---|
execute_query |
Run a SELECT query |
validate_query |
Check if a query is safe |
list_tables |
List tables and views |
describe_table |
Get column information |
CRUD Operations
| Tool | Description |
|---|---|
read_rows |
Read rows by ID or filter |
insert_row |
Insert a new row |
update_row |
Update an existing row |
delete_row |
Delete a row |
Stored Procedures
| Tool | Description |
|---|---|
list_stored_procs |
List available procedures |
describe_stored_proc |
Get procedure parameters |
call_stored_proc |
Execute a procedure |
Export & Transactions
| Tool | Description |
|---|---|
export_to_json |
Export results to JSON |
export_to_csv |
Export results to CSV |
begin_transaction |
Start a transaction |
commit_transaction |
Commit changes |
rollback_transaction |
Rollback changes |
Knowledge Persistence
| Tool | Description |
|---|---|
save_knowledge |
Save learned information |
get_all_knowledge |
Retrieve all knowledge |
search_knowledge |
Search saved knowledge |
Configuration
Required Variables
| Variable | Description |
|---|---|
MSSQL_HOST |
SQL Server hostname |
MSSQL_USER |
Database username |
MSSQL_PASSWORD |
Database password |
MSSQL_DATABASE |
Database name |
Safety Settings
| Variable | Default | Description |
|---|---|---|
MSSQL_READ_ONLY |
false |
Block all write operations |
MSSQL_MAX_ROWS |
1000 |
Maximum rows per query |
MSSQL_BLOCKED_COMMANDS |
DROP,TRUNCATE,... |
Commands to block |
MSSQL_ALLOWED_SCHEMAS |
(all) | Restrict to specific schemas |
MSSQL_BLOCKED_DATABASES |
(none) | Hide specific databases |
See Configuration Reference for all options.
Deployment Modes
Local (Default)
Run as a local process with Claude Desktop:
pymssql-mcp
HTTP/SSE Server
Run as a shared HTTP server for multiple users:
pymssql-mcp --http --host 0.0.0.0 --port 8080
Streamable HTTP (Claude.ai Integration)
Run with OAuth authentication for Claude.ai:
pymssql-mcp --streamable-http --host 0.0.0.0 --port 8080
See OAuth Setup for complete integration instructions.
Development
# Clone repository
git clone https://github.com/bpamiri/pymssql-mcp.git
cd pymssql-mcp
# Install with dev dependencies
pip install -e ".[dev]"
# Run tests
pytest
# Lint and format
ruff check .
ruff format .
# Type check
mypy src/
Security
pymssql-mcp includes multiple safety features:
- Read-only mode: Prevent all write operations
- Command blocking: Block dangerous SQL commands (DROP, TRUNCATE, etc.)
- Schema restrictions: Limit access to specific schemas
- Database blocklist: Hide sensitive databases
- Row limits: Cap query results to prevent memory issues
- Query validation: Analyze queries before execution
- Parameterized queries: Prevent SQL injection
See SECURITY.md for security policy and best practices.
Contributing
Contributions are welcome! See CONTRIBUTING.md for guidelines.
License
Apache-2.0. See LICENSE for details.
Links
Recommended Servers
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.
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.
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.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
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.
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.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.
Neon Database
MCP server for interacting with Neon Management API and databases
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.
E2B
Using MCP to run code via e2b.