项目简介
MCP SQLAlchemy Server 是一个轻量级的 MCP (Model Context Protocol) 服务器,它使用 FastAPI、pyodbc 和 SQLAlchemy 构建,旨在通过 ODBC 连接到各种数据库(如 Virtuoso、PostgreSQL、MySQL、SQLite 等),并向 LLM 客户端提供数据库的结构信息和数据查询能力。
主要功能点
- 获取 Schema 列表: 列出数据库中所有 Schema 的名称。
- 获取表列表: 检索指定 Schema 或所有 Schema 中的表信息。
- 描述表结构: 获取表的详细结构描述,包括列名、数据类型、是否允许为空、主键和外键等信息。
- 搜索表: 根据表名关键词过滤和检索表。
- 执行 SQL 查询:
- 以 JSONL 格式返回查询结果,适合结构化数据处理。
- 以 Markdown 表格格式返回查询结果,方便报告和可视化。
安装步骤
-
克隆仓库
git clone https://github.com/OpenLinkSoftware/mcp-sqlalchemy-server.git cd mcp-sqlalchemy-server -
安装 uv
推荐使用 'uv' 作为 Python 包管理器,可以显著提升安装速度。
pip install uv或者使用 Homebrew (macOS):
brew install uv -
配置 ODBC DSN
根据你的数据库类型,配置 ODBC 数据源名称 (DSN)。编辑 '~/.odbc.ini' 文件,例如,以下是 Virtuoso 数据库的配置示例:
[VOS] Description = OpenLink Virtuoso Driver = /path/to/virtodbcu_r.so # 替换为你的 Virtuoso ODBC 驱动路径 Database = Demo # 数据库名称 Address = localhost:1111 # 数据库地址和端口 WideAsUTF16 = Yes请根据你使用的数据库和驱动,修改上述配置。
-
配置数据库连接 URL
根据你使用的数据库和 ODBC DSN,构建 SQLAlchemy 连接 URL。例如,Virtuoso 数据库可以使用以下格式:
virtuoso+pyodbc://user:password@VOS # VOS 是你在 ~/.odbc.ini 中配置的 DSN 名称其他数据库的 URL 格式请参考仓库 README 中的 "Examples of Database URL Configuration" 部分。
服务器配置
对于 MCP 客户端(例如 Claude Desktop),你需要配置 MCP 服务器的启动命令和参数,以便客户端能够连接到该服务器。以下是一个 'claude_desktop_config.json' 的配置示例,用于配置名为 "my_database" 的 MCP 服务器:
{ "mcpServers": { "my_database": { "command": "uv", "args": ["--directory", "/path/to/mcp-sqlalchemy-server", "run", "mcp-sqlalchemy-server"], "env": { "DB_URL": "数据库连接URL" // 替换为你的数据库连接 URL,例如:virtuoso+pyodbc://user:password@VOS } } } }
配置参数说明:
- server name: 'my_database' - 你为该 MCP 服务器指定的名称,客户端会使用这个名称来引用该服务器。
- command: '"uv"' - 启动服务器的命令,这里使用 'uv' 命令来运行 Python 脚本。你需要确保 'uv' 命令在你的系统路径中可用。
- args: '["--directory", "/path/to/mcp-sqlalchemy-server", "run", "mcp-sqlalchemy-server"]' - 传递给 'uv' 命令的参数:
- '--directory': 指定 MCP 服务器代码所在的目录,请替换 '/path/to/mcp-sqlalchemy-server' 为你克隆仓库的实际路径。
- 'run': 'uv run' 命令用于运行 Python 模块。
- 'mcp-sqlalchemy-server': 指定要运行的 Python 模块名称。
- env: '{"DB_URL": "数据库连接URL"}' - 设置环境变量:
- 'DB_URL': 必须配置。指定数据库连接 URL,请替换 '"数据库连接URL"' 为你实际的 SQLAlchemy 数据库连接 URL。
注意: 请根据你的实际环境和数据库配置,修改上述配置示例中的路径、数据库连接 URL 等信息。
基本使用方法
配置完成后,MCP 客户端(如 Claude Desktop)将能够通过 MCP 协议与该服务器通信,并调用服务器提供的工具 (Tools) 来执行以下操作:
- 获取数据库 Schema 和表信息,用于了解数据库结构。
- 执行 SQL 查询,获取数据库中的数据。
具体的使用方式取决于 MCP 客户端的功能和界面,通常客户端会提供界面让你选择可用的 MCP 服务器和工具,并输入相应的参数来调用这些工具。
调试:
可以使用 MCP Inspector 工具来调试服务器交互,具体步骤请参考仓库 README 中的 "Debugging" 部分。
信息
分类
数据库与文件