MSSQL Database Connector
STDIOPython MCP server providing access to Microsoft SQL Server databases through standardized interface.
Python MCP server providing access to Microsoft SQL Server databases through standardized interface.
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.
asyncio
python-dotenv
git clone https://github.com/amornpan/py-mcp-mssql.git cd py-mcp-mssql pip install -r requirements.txt
The screenshot above demonstrates the server being used with Claude to analyze and visualize SQL data.
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.txt
src/mssql/
- Main source code directory
__init__.py
- Package initializationserver.py
- Main server implementationtests/
- 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 dependenciesCreate 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}
@app.list_resources() async def list_resources() -> list[Resource]
mssql://<table_name>/data
@app.read_resource() async def read_resource(uri: AnyUrl) -> str
mssql://<table_name>/data
@app.call_tool() async def call_tool(name: str, arguments: dict) -> list[TextContent]
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}" } } } }
The server implements comprehensive error handling for:
All errors are logged and returned with appropriate error messages.
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
This project is licensed under the MIT License - see the LICENSE file for details.
Amornpan Phornchaicharoen
git checkout -b feature/amazing-feature
)git commit -m 'Add some amazing feature'
)git push origin feature/amazing-feature
)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.0
These versions have been tested and verified to work together. The key components are:
fastapi
and uvicorn
for the API serverpydantic
for data validationpyodbc
for SQL Server connectivitymcp
for Model Context Protocol implementationpython-dotenv
for environment configurationanyio
for asynchronous I/O support