数据库统一接口服务

SQL MCP Server是一个统一的代理接口,允许AI模型通过标准化工具集检查和查询多种类型数据库。

  • by BryR0
  • Python
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 BryR0/sql-mcp

使用说明

SQL MCP服务器

这 SQL MCP服务器 是一个统一的代理接口,允许AI模型(如Claude)通过一组标准化的工具检查、查询和与多种类型的数据库交互。

这个软件包不是为MySQL、SQL Server、Oracle等安装和配置单独的服务器,而是根据您的配置动态加载正确的“适配器”来处理所有这些服务器。

🚀 特性

  • 标准化工具集:AI总是看到相同的工具(execute_query, describe_table, get_db_version),无论它是在与Oracle还是MySQL对话。这减少了幻觉,提高了查询的准确性。
  • 资源:自动将数据库表作为MCP资源公开,以便于检查。
  • 智能适配器:
    • ✅ MySQL:用途 mysql-connector-python 通过连接池。
    • ✅ 数据库:用途 pymssql 并自动检测模式名称(例如。, dbo.Users).
    • ✅ Sybase/SAP IQ:用途 pyodbc 并智能处理 dba. 前缀和服务器名称。
    • ✅ 甲骨文:用途 oracledb (精简模式),无需安装复杂的驱动程序即可轻松连接。
  • Unicode就绪:所有连接默认为UTF-8,以无缝处理特殊字符。

🛠️ 安装

  1. 克隆仓库:

    git clone https://github.com/BryR0/sql-mcp.git
    cd sql-mcp
    
  2. 创建一个虚拟环境:

    python -m venv venv
    source venv/bin/activate  # On Windows: .\venv\Scripts\activate
    
  3. 安装依赖项:

    pip install -e .
    

⚙️ 配置

您可以通过以下方式定义要使用的数据库 DB_TYPE 环境变量。

支持的环境变量

变量 描述 必填 默认
DB_TYPE DB类型: mysql, mssql, sybase, oracle 是 mysql
DB_HOST 主机名或IP地址 是 localhost
DB_USER 数据库用户名 是 root
DB_PASSWORD 数据库密码 是 (空)
DB_DATABASE 数据库名称 是 test
DB_PORT 端口号 否 自动(3306、1433等)
DB_DSN 连接字符串(Oracle/Sybase高级) 否 (空)
DB_SERVER_NAME 显式服务器名称(仅限Sybase) 否 (空)

Claude桌面配置示例

将此添加到您的 claude_desktop_config.json请注意 DB_PORT 是可选的,如果省略,将默认为所选DB类型的标准端口。

{
  "mcpServers": {
    "sql_mcp_mysql": {
      "command": "C:\\path\\to\\venv\\python.exe",
      "args": ["-m", "sql_mcp"],
      "env": {
        "DB_TYPE": "mysql",
        "DB_HOST": "localhost",
        "DB_USER": "root",
        "DB_PASSWORD": "password",
        "DB_DATABASE": "my_db"
      }
    },
    "sql_mcp_mssql": {
      "command": "C:\\path\\to\\venv\\python.exe",
      "args": ["-m", "sql_mcp"],
      "env": {
        "DB_TYPE": "mssql",
        "DB_HOST": "192.168.1.50",
        "DB_USER": "sa",
        "DB_PASSWORD": "password",
        "DB_DATABASE": "DataWarehouse"
      }
    }
  }
}

🏗️ 建筑

该项目使用 适配器模式:

  1. 服务器 接收请求(例如。, execute_query).
  2. 工厂 检查 DB_TYPE 并实例化正确的类(例如。, MSSQLAdapter).
  3. 适配器 将通用请求转换为特定的驱动程序调用(pymssql, pyodbc等等)。
  4. 响应 被格式化回AI的标准JSON结构。

这意味着您只需更改配置即可切换数据库,而无需更改AI的提示或逻辑。

📄 许可证

该项目根据MIT许可证获得许可。请参阅 许可证 文件以获取详细信息。