这是一个用Python实现的Model Context Protocol服务器,提供对Microsoft SQL Server数据库的访问。该服务器使语言模型能够通过标准化接口检查表结构并执行SQL查询。
asyncio进行异步操作python-dotenv基于环境配置git clone https://github.com/amornpan/py-mcp-mssql.git
cd py-mcp-mssql
pip install -r requirements.txt

上图展示了使用Claude分析和可视化SQL数据时的服务器演示。
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/ - 主源代码目录
__init__.py - 包初始化server.py - 主服务器实现tests/ - 测试文件目录
__init__.py - 测试包初始化test_mssql.py - MSSQL功能测试test_packages.py - 包依赖项测试.env - 环境配置文件(不在git中).env.example - 示例环境配置.gitignore - Git忽略规则README.md - 项目文档requirements.txt - 项目依赖项在项目根目录创建一个.env文件:
MSSQL_SERVER=你的服务器
MSSQL_DATABASE=你的数据库
MSSQL_USER=你的用户名
MSSQL_PASSWORD=你的密码
MSSQL_DRIVER={ODBC Driver 17 for SQL Server}
@app.list_resources()
async def list_resources() -> list[Resource]
mssql://<表名>/data@app.read_resource()
async def read_resource(uri: AnyUrl) -> str
mssql://<表名>/data的URIs@app.call_tool()
async def call_tool(name: str, arguments: dict) -> list[TextContent]
添加到你的Claude Desktop配置中:
在MacOS上:~/Library/Application Support/Claude/claude_desktop_config.json
在Windows上:%APPDATA%/Claude/claude_desktop_config.json
{
"mcpServers": {
"mssql": {
"command": "python",
"args": [
"server.py"
],
"env": {
"MSSQL_SERVER": "你的服务器",
"MSSQL_DATABASE": "你的数据库",
"MSSQL_USER": "你的用户名",
你的密码",
"MSSQL_DRIVER": "{ODBC Driver 17 for SQL Server}"
}
}
}
}
服务器实现了全面的错误处理,包括:
所有错误都被记录,并带有适当的错误消息返回。
如果您有任何关于此项目的疑问或希望合作,请随时联系我!
由Amornpan Phornchaicharoen制作
本项目采用MIT许可证 - 详情见LICENSE文件。
Amornpan Phornchaicharoen
git checkout -b feature/amazing-feature)git commit -m '添加一些精彩的功能')git push origin feature/amazing-feature)创建一个requirements.txt文件,内容如下:
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
这些版本已经过测试并确认可以一起工作。关键组件包括:
fastapi 和 uvicorn 用于API服务器pydantic 用于数据验证pyodbc 用于SQL Server连接mcp 用于Model Context Protocol实现python-dotenv 用于环境配置anyio 用于异步I/O支持