数据库查询服务器

一个通过ODBC连接使LLM工具如Claude Desktop能够查询数据库的MCP服务器,提供安全且只读的数据库访问、分析和洞察生成功能。

  • by tylerstoltz
  • Python
  • 本地部署
  • 6 星标
  • 更新于
在 GitHub 查看 tylerstoltz/mcp-odbc

使用说明

ODBC MCP服务器

MCP(模型上下文协议)服务器,使Claude Desktop等LLM工具能够通过ODBC连接查询数据库。此服务器允许Claude和其他MCP客户端访问、分析数据库数据并从中生成见解,同时保持安全性和只读保护。

特性

  • 连接到任何ODBC兼容数据库
  • 支持多个数据库连接
  • 通过配置文件或Claude Desktop设置进行灵活配置
  • 只读保护措施,防止数据修改
  • 使用UV包管理器轻松安装
  • 详细的错误报告和日志记录

先决条件

  • Python 3.10或更高版本
  • UV包管理器
  • 系统上安装的数据库的ODBC驱动程序
  • Sage 100高级版:ProvideX ODBC驱动程序

安装

git clone https://github.com/tylerstoltz/mcp-odbc.git
cd mcp-odbc
uv venv
.venv\Scripts\activate # On Mac / Linux: source .venv/bin/activate (untested)
uv pip install -e .

配置

服务器可以通过以下方式配置:

  1. 专用配置文件
  2. 环境变量
  3. Claude桌面配置

常规配置设置

创建配置文件(.ini)使用您的数据库连接详细信息:

[SERVER]
default_connection = my_database
max_rows = 1000
timeout = 30

[my_database]
dsn = MyDatabaseDSN
username = your_username
password = your_password
readonly = true

SQLite配置

对于带ODBC的SQLite数据库:

[SERVER]
default_connection = sqlite_db
max_rows = 1000
timeout = 30

[sqlite_db]
dsn = SQLite_DSN_Name
readonly = true

Sage 100 ProvideX配置

ProvideX需要特殊配置才能兼容。使用此最小配置可获得最佳结果:

[SERVER]
default_connection = sage100
max_rows = 1000
timeout = 60

[sage100]
dsn = YOUR_PROVIDEX_DSN
username = your_username
password = your_password
company = YOUR_COMPANY_CODE
readonly = true

ProvideX的重要提示:

  • 使用最小配置-添加额外参数可能会导致连接问题
  • 始终设置 readonly = true 为了安全
  • 这 company Sage 100连接需要参数
  • 避免在建立连接后更改连接属性

Claude桌面集成

要在Claude Desktop中配置服务器,请执行以下操作:

  1. 打开或创建 claude_desktop_config.json:

    • 窗户: %APPDATA%\Claude\claude_desktop_config.json
    • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  2. 添加MCP服务器配置:

{
  "mcpServers": {
    "odbc": {
      "command": "uv",
      "args": [
        "--directory",
        "C:\\path\\to\\mcp-odbc",
        "run",
        "odbc-mcp-server",
        "--config", 
        "C:\\path\\to\\mcp-odbc\\config\\your_config.ini"
      ]
    }
  }
}

用法

手动启动服务器

# Start with default configuration
odbc-mcp-server

# Start with a specific config file
odbc-mcp-server --config path/to/config.ini

与Claude Desktop一起使用

  1. 在Claude Desktop的配置文件中配置服务器,如上所示
  2. 重新启动克劳德桌面
  3. ODBC工具将自动出现在MCP工具列表中

可用的MCP工具

ODBC MCP服务器提供以下工具:

  1. 列出连接:列出所有已配置的数据库连接
  2. 列出可用dsn:列出系统上所有可用的DSN
  3. 测试连接:测试数据库连接并返回信息
  4. 列表表格:列出数据库中的所有表
  5. 获取表模式:获取表的架构信息
  6. 执行查询:执行SQL查询并返回结果

查询示例

连接服务器后,在Claude Desktop中尝试以下提示:

  • “显示数据库中的所有表”
  • “Customer表的架构是什么?”
  • “运行查询以获取前10个客户”
  • “查找过去30天内的所有订单”
  • “按地区分析销售数据并提供见解”

故障排除

连接问题

如果您遇到连接问题:

  1. 验证您的ODBC驱动程序是否安装正确
  2. 使用ODBC数据源管理器测试DSN
  3. 检查配置文件中的连接参数
  4. 在Claude Desktop日志中查找详细的错误消息

ProvideX特定问题

对于Sage 100/ProvideX:

  1. 使用最少的连接配置(DSN、用户名、密码、公司)
  2. 确保Company参数正确
  3. 使用特殊的ProvideX配置模板
  4. 如果你遇到 Driver not capable 错误,请检查连接时是否设置了自动提交

缺少表

如果表未显示:

  1. 验证数据库帐户的用户权限
  2. 检查公司代码是否正确(适用于Sage 100)
  3. 尝试使用完全限定的表名(schema.table)

许可证

麻省理工学院许可证-版权所有(c)2024