返回市场
py麦普微软数据库服务器

py麦普微软数据库服务器

作者:amornpan23 星标更新:2025-07-22

项目介绍

Python MSSQL MCP Server

版本 Python MCP FastAPI 许可证

这是一个用Python实现的Model Context Protocol服务器,提供对Microsoft SQL Server数据库的访问。该服务器使语言模型能够通过标准化接口检查表结构并执行SQL查询。

功能

核心功能

  • 使用Python的asyncio进行异步操作
  • 使用python-dotenv基于环境配置
  • 完整的日志系统
  • 通过pyodbc进行连接池管理和管理
  • 错误处理和恢复
  • 快速API集成用于API端点
  • 使用Pydantic模型进行数据验证
  • 使用ODBC驱动程序处理MSSQL连接

预备条件

  • Python 3.x
  • 所需的Python包:
    • pyodbc
    • pydantic
    • python-dotenv
    • mcp-server
  • SQL Server的ODBC驱动程序17

安装

git clone https://github.com/amornpan/py-mcp-mssql.git
cd py-mcp-mssql
pip install -r requirements.txt

屏幕截图

MCP MSSQL Server 演示

上图展示了使用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}

API 实现细节

资源列表

@app.list_resources()
async def list_resources() -> list[Resource]
  • 列出数据库中所有可用的表
  • 返回表名及其URI,格式为mssql://<表名>/data
  • 包括表描述和MIME类型

资源读取

@app.read_resource()
async def read_resource(uri: AnyUrl) -> str
  • 从指定表读取数据
  • 接受格式为mssql://<表名>/data的URIs
  • 返回前100行数据,CSV格式
  • 包括列标题

SQL执行

@app.call_tool()
async def call_tool(name: str, arguments: dict) -> list[TextContent]
  • 执行SQL查询
  • 支持SELECT查询和修改查询
  • 对于SELECT查询返回结果,CSV格式
  • 对于修改查询返回受影响的行数

使用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": "你的服务器",
        "MSSQL_DATABASE": "你的数据库",
        "MSSQL_USER": "你的用户名",
        你的密码",
        "MSSQL_DRIVER": "{ODBC Driver 17 for SQL Server}"
      }
    }
  }
}

错误处理

服务器实现了全面的错误处理,包括:

  • 数据库连接失败
  • 无效的SQL查询
  • 资源访问错误
  • URI验证
  • 工具执行错误

所有错误都被记录,并带有适当的错误消息返回。

安全特性

  • 基于环境变量的配置
  • 连接字符串安全
  • 结果集大小限制
  • 通过Pydantic进行输入验证
  • 正确处理SQL查询

联系信息

Amornpan Phornchaicharoen

电子邮件 LinkedIn HuggingFace GitHub

如果您有任何关于此项目的疑问或希望合作,请随时联系我!


由Amornpan Phornchaicharoen制作

许可证

本项目采用MIT许可证 - 详情见LICENSE文件。

作者

Amornpan Phornchaicharoen

贡献指南

  1. 分叉仓库
  2. 创建您的功能分支 (git checkout -b feature/amazing-feature)
  3. 提交更改 (git commit -m '添加一些精彩的功能')
  4. 推送到分支 (git push origin feature/amazing-feature)
  5. 打开Pull Request

要求

创建一个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

这些版本已经过测试并确认可以一起工作。关键组件包括:

  • fastapiuvicorn 用于API服务器
  • pydantic 用于数据验证
  • pyodbc 用于SQL Server连接
  • mcp 用于Model Context Protocol实现
  • python-dotenv 用于环境配置
  • anyio 用于异步I/O支持

致谢

  • Microsoft SQL Server团队提供的ODBC驱动程序
  • Python pyodbc维护者
  • Model Context Protocol社区
  • python-dotenv项目的贡献者