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 .配置
服务器可以通过以下方式配置:
- 专用配置文件
- 环境变量
- Claude桌面配置
常规配置设置
创建配置文件(.ini)使用您的数据库连接详细信息:
[SERVER]
default_connection = my_database
max_rows = 1000
timeout = 30
[my_database]
dsn = MyDatabaseDSN
username = your_username
password = your_password
readonly = trueSQLite配置
对于带ODBC的SQLite数据库:
[SERVER]
default_connection = sqlite_db
max_rows = 1000
timeout = 30
[sqlite_db]
dsn = SQLite_DSN_Name
readonly = trueSage 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 = trueProvideX的重要提示:
- 使用最小配置-添加额外参数可能会导致连接问题
- 始终设置
readonly = true为了安全 - 这
companySage 100连接需要参数 - 避免在建立连接后更改连接属性
Claude桌面集成
要在Claude Desktop中配置服务器,请执行以下操作:
- 打开或创建
claude_desktop_config.json:
- 窗户: %APPDATA%\Claude\claude_desktop_config.json - macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
- 添加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一起使用
- 在Claude Desktop的配置文件中配置服务器,如上所示
- 重新启动克劳德桌面
- ODBC工具将自动出现在MCP工具列表中
可用的MCP工具
ODBC MCP服务器提供以下工具:
- 列出连接:列出所有已配置的数据库连接
- 列出可用dsn:列出系统上所有可用的DSN
- 测试连接:测试数据库连接并返回信息
- 列表表格:列出数据库中的所有表
- 获取表模式:获取表的架构信息
- 执行查询:执行SQL查询并返回结果
查询示例
连接服务器后,在Claude Desktop中尝试以下提示:
- “显示数据库中的所有表”
- “Customer表的架构是什么?”
- “运行查询以获取前10个客户”
- “查找过去30天内的所有订单”
- “按地区分析销售数据并提供见解”
故障排除
连接问题
如果您遇到连接问题:
- 验证您的ODBC驱动程序是否安装正确
- 使用ODBC数据源管理器测试DSN
- 检查配置文件中的连接参数
- 在Claude Desktop日志中查找详细的错误消息
ProvideX特定问题
对于Sage 100/ProvideX:
- 使用最少的连接配置(DSN、用户名、密码、公司)
- 确保Company参数正确
- 使用特殊的ProvideX配置模板
- 如果你遇到
Driver not capable错误,请检查连接时是否设置了自动提交
缺少表
如果表未显示:
- 验证数据库帐户的用户权限
- 检查公司代码是否正确(适用于Sage 100)
- 尝试使用完全限定的表名(schema.table)
许可证
麻省理工学院许可证-版权所有(c)2024
