使用说明

项目简介

Database MCP Server 是一个实现了 Model Context Protocol (MCP) 协议的服务器,旨在为大型语言模型 (LLM) 提供结构化数据库的访问能力。它充当 LLM 与数据库之间的桥梁,允许 LLM 通过标准化的 MCP 接口执行数据库操作,例如查询数据、管理数据库结构和执行事务。该服务器支持多种主流数据库系统,包括 SQLite, PostgreSQL, MySQL/MariaDB, 和 SQL Server。

主要功能点

  • 多数据库支持: 连接和操作多种类型的数据库系统。
  • 统一接口: 为所有支持的数据库提供一致的工具集,简化 LLM 的集成。
  • 数据库操作工具: 提供丰富的工具,包括:
    • 连接管理: 添加、测试、列出和移除数据库连接。
    • 查询执行: 执行原始 SQL 查询和结构化查询。
    • Schema 管理: 管理数据库表和索引的结构,如创建、修改和删除表。
    • 事务支持: 支持数据库事务的开始、提交和回滚。

安装步骤

  1. 环境准备: 确保已安装 Python 3.8 或更高版本。
  2. 克隆仓库: 使用 'git clone https://github.com/georgi-terziyski/database_mcp_server' 克隆仓库到本地。
  3. 安装依赖: 在仓库根目录下运行 '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。

基本使用方法

  1. 启动服务器: 配置好 MCP 客户端后,客户端会根据 'command' 和 'args' 启动 Database MCP Server。

  2. 连接数据库: 使用 '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"
      }
    }
  3. 执行数据库操作: 使用其他工具执行数据库操作,例如 '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 条件
      }
    }
  4. 探索更多工具: 使用 'list_tools' 工具获取服务器支持的所有工具及其描述和参数信息,以便进行更复杂的操作,例如 schema 管理和事务控制。

注意: 请参考仓库的 README.md 文件获取更详细的配置和使用说明,以及各个工具的具体参数定义。

信息

分类

数据库与文件