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{:target=“_blank”} 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 supportMcp Idb
MCP server for fb-idb bridge.
Mcp Codex Keeper
An intelligent MCP server that serves as a guardian of development knowledge, providing Cline assistants with curated access to latest documentation and best practices across the software development landscape
Mcp Shell
Execute a secure shell in Claude Desktop using the Model Context Protocol.