Python MSSQL MCP Server
This server does not currently have a deployable release on Glama. Follow the repository's setup instructions to install and configure it for your MCP client, including any required credentials and local dependencies.
Python MSSQL MCP Server
A Model Context Protocol server implementation in Python that provides access to Microsoft SQL Server databases. This server enables Language Models to inspect table schemas and execute SQL queries through a standardized interface.
Features
Core Functionality
Asynchronous operation using Python's
asyncioEnvironment-based configuration using
python-dotenvComprehensive logging system
Connection pooling and management via pyodbc
Error handling and recovery
FastAPI integration for API endpoints
Pydantic models for data validation
MSSQL connection handling with ODBC Driver
Related MCP server: MSSQL MCP Server
Prerequisites
Python 3.x
Required Python packages:
pyodbc
pydantic
python-dotenv
mcp-server
ODBC Driver 17 for SQL Server
Installation
git clone https://github.com/amornpan/py-mcp-mssql.git
cd py-mcp-mssql
pip install -r requirements.txtScreenshots

The screenshot above demonstrates the server being used with Claude to analyze and visualize SQL data.
Project Structure
PY-MCP-MSSQL/
├── src/
│ └── mssql/
│ ├── __init__.py
│ └── server.py
├── tests/
│ ├── __init__.py
│ ├── test_mssql.py
│ └── test_packages.py
├── .env
├── .env.example
├── .gitignore
├── README.md
└── requirements.txtDirectory Structure Explanation
src/mssql/- Main source code directory__init__.py- Package initializationserver.py- Main server implementation
tests/- Test files directory__init__.py- Test package initializationtest_mssql.py- MSSQL functionality teststest_packages.py- Package dependency tests
.env- Environment configuration file (not in git).env.example- Example environment configuration.gitignore- Git ignore rulesREADME.md- Project documentationrequirements.txt- Project dependencies
Configuration
Create a .env file in the project root:
MSSQL_SERVER=your_server
MSSQL_DATABASE=your_database
MSSQL_USER=your_username
MSSQL_PASSWORD=your_password
MSSQL_DRIVER={ODBC Driver 17 for SQL Server}API Implementation Details
Resource Listing
@app.list_resources()
async def list_resources() -> list[Resource]Lists all available tables in the database
Returns table names with URIs in the format
mssql://<table_name>/dataIncludes table descriptions and MIME types
Resource Reading
@app.read_resource()
async def read_resource(uri: AnyUrl) -> strReads data from specified table
Accepts URIs in the format
mssql://<table_name>/dataReturns first 100 rows in CSV format
Includes column headers
SQL Execution
@app.call_tool()
async def call_tool(name: str, arguments: dict) -> list[TextContent]Executes SQL queries
Supports both SELECT and modification queries
Returns results in CSV format for SELECT queries
Returns affected row count for modification queries
Usage with Claude Desktop
Add to your Claude Desktop configuration:
On MacOS: ~/Library/Application Support/Claude/claude_desktop_config.json
On Windows: %APPDATA%/Claude/claude_desktop_config.json
{
"mcpServers": {
"mssql": {
"command": "python",
"args": [
"server.py"
],
"env": {
"MSSQL_SERVER": "your_server",
"MSSQL_DATABASE": "your_database",
"MSSQL_USER": "your_username",
"MSSQL_PASSWORD": "your_password",
"MSSQL_DRIVER": "{ODBC Driver 17 for SQL Server}"
}
}
}
}Error Handling
The server implements comprehensive error handling for:
Database connection failures
Invalid SQL queries
Resource access errors
URI validation
Tool execution errors
All errors are logged and returned with appropriate error messages.
Security Features
Environment variable based configuration
Connection string security
Result set size limits
Input validation through Pydantic
Proper SQL query handling
Contact Information
Amornpan Phornchaicharoen
Feel free to reach out to me if you have any questions about this project or would like to collaborate!
Made with ❤️ by Amornpan Phornchaicharoen
License
This project is licensed under the MIT License - see the LICENSE file for details.
Author
Amornpan Phornchaicharoen
Contributing
Fork the repository
Create your feature branch (
git checkout -b feature/amazing-feature)Commit your changes (
git commit -m 'Add some amazing feature')Push to the branch (
git push origin feature/amazing-feature)Open a Pull Request
Requirements
Create a requirements.txt file with:
fastapi>=0.104.1
pydantic>=2.10.6
uvicorn>=0.34.0
python-dotenv>=1.0.1
pyodbc>=4.0.35
anyio>=4.5.0
mcp==1.2.0These versions have been tested and verified to work together. The key components are:
fastapianduvicornfor the API serverpydanticfor data validationpyodbcfor SQL Server connectivitymcpfor Model Context Protocol implementationpython-dotenvfor environment configurationanyiofor asynchronous I/O support
Acknowledgments
Microsoft SQL Server team for ODBC drivers
Python pyodbc maintainers
Model Context Protocol community
Contributors to the python-dotenv project
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
This server cannot be deployed
Maintenance
Related MCP Connectors
Hosted SQL Server MCP server for Claude, ChatGPT and Cursor, with each action switched per account.
Text-to-SQL MCP server: read-only queries on PostgreSQL, MySQL and SQL Server with your real schema
Query Postgres, MySQL, SQL Server, Oracle, BigQuery, ClickHouse and Redshift from your AI client.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceA Model Context Protocol server that provides comprehensive access to Microsoft SQL Server databases, enabling Language Models to inspect schemas, execute queries, manage database objects, and perform advanced database operations.8-
- AlicenseAqualityDmaintenanceEnables interaction with Microsoft SQL Server databases through a Model Context Protocol interface, supporting database connections, switching between databases, and executing secure SELECT queries.811 npmMIT
- FlicenseAqualityDmaintenanceEnables AI assistants to query SQL Server databases and retrieve schema information securely through the Model Context Protocol.2-
- AlicenseAqualityDmaintenanceEnables AI assistants to query, analyze, and manage SQL Server databases through natural language via the Model Context Protocol.61MIT