使用说明
项目简介
Database MCP Server 是一个实现了 Model Context Protocol (MCP) 协议的服务器,旨在为大型语言模型 (LLM) 提供结构化数据库的访问能力。它充当 LLM 与数据库之间的桥梁,允许 LLM 通过标准化的 MCP 接口执行数据库操作,例如查询数据、管理数据库结构和执行事务。该服务器支持多种主流数据库系统,包括 SQLite, PostgreSQL, MySQL/MariaDB, 和 SQL Server。
主要功能点
- 多数据库支持: 连接和操作多种类型的数据库系统。
- 统一接口: 为所有支持的数据库提供一致的工具集,简化 LLM 的集成。
- 数据库操作工具: 提供丰富的工具,包括:
- 连接管理: 添加、测试、列出和移除数据库连接。
- 查询执行: 执行原始 SQL 查询和结构化查询。
- Schema 管理: 管理数据库表和索引的结构,如创建、修改和删除表。
- 事务支持: 支持数据库事务的开始、提交和回滚。
安装步骤
- 环境准备: 确保已安装 Python 3.8 或更高版本。
- 克隆仓库: 使用 'git clone https://github.com/georgi-terziyski/database_mcp_server' 克隆仓库到本地。
- 安装依赖: 在仓库根目录下运行 'pip install -e .' 安装项目及其依赖的 Python 包。 根据需要连接的数据库类型,可能需要额外安装数据库驱动,例如:
- PostgreSQL: 'pip install psycopg2-binary'
- MySQL/MariaDB: 'pip install mysql-connector-python'
- SQL Server: 'pip install pyodbc' (可能需要预先安装 ODBC 驱动)
服务器配置
MCP 客户端需要配置以下 JSON 格式信息以连接 Database MCP Server。以下是配置示例和参数注释:
{ "server_name": "database_mcp_server", // MCP 服务器名称,自定义即可 "command": "python", // 启动服务器的命令,这里使用 python "args": [ // 启动命令的参数列表 "-m", "db_mcp_server" // 运行 db_mcp_server 模块作为 MCP 服务器 ], "capabilities": [ // (可选) 声明客户端需要使用的服务器功能,通常可以留空,服务器会自动声明其能力 // ... ], "config": { // (可选) 客户端可以传递给服务器的配置,具体内容取决于服务器实现,本例中通常无需客户端配置 // ... } }
更多启动参数 (可选)
'args' 字段可以根据需要添加更多参数来配置服务器行为,例如:
- '--config /path/to/config.json': 指定数据库连接配置文件的路径。
- '--log-level DEBUG|INFO|WARNING|ERROR|CRITICAL': 设置日志输出级别,默认为 INFO。
基本使用方法
-
启动服务器: 配置好 MCP 客户端后,客户端会根据 'command' 和 'args' 启动 Database MCP Server。
-
连接数据库: 使用 'add_connection' 工具添加数据库连接。你需要提供连接 ID 和数据库连接参数,例如连接 SQLite 数据库:
{ "name": "add_connection", "arguments": { "connection_id": "my_sqlite_db", "type": "sqlite", "db_path": "/path/to/your/database.db" } }或者连接 PostgreSQL 数据库:
{ "name": "add_connection", "arguments": { "connection_id": "my_postgres_db", "type": "postgres", "host": "localhost", "port": 5432, "database": "mydatabase", "user": "myuser", "password": "mypassword" } } -
执行数据库操作: 使用其他工具执行数据库操作,例如 'execute_query' 执行 SQL 查询:
{ "name": "execute_query", "arguments": { "connection_id": "my_sqlite_db", "query": "SELECT * FROM your_table WHERE condition = ?", "params": ["your_value"] } }或者使用 'get_records' 获取表数据:
{ "name": "get_records", "arguments": { "connection_id": "my_sqlite_db", "table": "your_table", "columns": ["column1", "column2"], // 可选,指定要获取的列 "where": {"column3": "value"} // 可选,添加 WHERE 条件 } } -
探索更多工具: 使用 'list_tools' 工具获取服务器支持的所有工具及其描述和参数信息,以便进行更复杂的操作,例如 schema 管理和事务控制。
注意: 请参考仓库的 README.md 文件获取更详细的配置和使用说明,以及各个工具的具体参数定义。
信息
分类
数据库与文件