Python MSSQL MCP服务器
](https://github.com/amornpan/py-mcp-mssql)    
Python中的模型上下文协议服务器实现,提供对Microsoft SQL server数据库的访问。此服务器使语言模型能够通过标准化的接口检查表模式并执行SQL查询。
特性
核心功能
- 使用Python的异步操作
asyncio - 基于环境的配置使用
python-dotenv - 综合测井系统
- 通过pyodbc进行连接池和管理
- 错误处理和恢复
- 针对API端点的FastAPI集成
- 用于数据验证的Pydantic模型
- 使用ODBC驱动程序处理MSSQL连接
先决条件
- Python 3.x
- 所需的Python包:
- pyodbc - 媒染剂 - python dotenv - mcp服务器
- SQL Server的ODBC驱动程序17
安装
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=your_server
MSSQL_DATABASE=your_database
MSSQL_USER=your_username
MSSQL_PASSWORD=your_password
MSSQL_DRIVER={ODBC Driver 17 for SQL Server}API实现详细信息
资源列表
@app.list_resources()
async def list_resources() -> list[Resource]- 列出数据库中的所有可用表
- 返回URI格式为的表名
mssql:///data - 包括表描述和MIME类型
资源阅读
@app.read_resource()
async def read_resource(uri: AnyUrl) -> str- 从指定表读取数据
- 接受以下格式的URI
mssql:///data - 返回CSV格式的前100行
- 包括列标题
SQL执行
@app.call_tool()
async def call_tool(name: str, arguments: dict) -> list[TextContent]- 执行SQL查询
- 支持SELECT和修改查询
- 以CSV格式返回SELECT查询的结果
- 返回修改查询的受影响行数
使用Claude Desktop
添加到您的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": "your_server",
"MSSQL_DATABASE": "your_database",
"MSSQL_USER": "your_username",
"MSSQL_PASSWORD": "your_password",
"MSSQL_DRIVER": "{ODBC Driver 17 for SQL Server}"
}
}
}
}错误处理
服务器为以下对象实现了全面的错误处理:
- 数据库连接失败
- SQL查询无效
- 资源访问错误
- URI验证
- 工具执行错误
所有错误都会被记录下来,并返回相应的错误消息。
安全功能
- 基于环境变量的配置
- 连接字符串安全
- 结果集大小限制
- 通过Pydantic进行输入验证
- 正确的SQL查询处理
联系方式
阿莫伦潘Phornchaicharoen
   ](https://github.com/amornpan)
如果您对这个项目有任何疑问或想合作,请随时与我联系!
______________________________________________________________________
*由以下材料制成❤️ 作者Amornpan Phornchaicharoen*
许可证
此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。
作者
阿莫伦潘Phornchaicharoen
贡献
- 分叉存储库
- 创建功能分支(
git checkout -b feature/amazing-feature) - 提交您的更改(
git commit -m 'Add some amazing feature') - 推到分支(
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用于模型上下文协议实现python-dotenv用于环境配置anyio用于异步I/O支持
致谢
- ODBC驱动程序的Microsoft SQL Server团队
- Python pyodbc维护者
- 模型上下文协议社区
- python dotenv项目的贡献者
