使用说明

项目简介

MCP Database Utilities 是一个实现了 Model Context Protocol (MCP) 的数据库实用工具服务器。它为 LLM 客户端提供统一的接口来访问和操作多种数据库(目前支持 PostgreSQL 和 SQLite)。通过抽象层设计,简化了数据库操作,并提供了多种实用的数据库工具。

主要功能点

  • 统一数据库访问接口: 为 PostgreSQL 和 SQLite 数据库提供一致的操作方式。
  • 多数据库支持: 支持 PostgreSQL 和 SQLite 数据库,可以通过配置轻松切换。
  • 安全只读查询: 仅支持 SELECT 查询,保障数据库安全。
  • 表结构和Schema信息: 可以获取数据库表的结构和 Schema 信息。
  • 数据库表列表工具: 提供 MCP 工具列出数据库中的表。
  • 智能连接管理: 自动管理数据库连接的生命周期和资源清理。
  • 性能监控: 提供数据库连接和查询的性能统计信息。
  • 调试模式: 提供详细日志输出,方便问题排查。

安装步骤

方法一:使用 uvx (推荐) 无需安装,直接使用 'uvx' 运行:

uvx mcp-dbutils --config /path/to/config.yaml

方法二:使用 pip

pip install mcp-dbutils

方法三:使用 Docker

docker run -i --rm \
  -v /path/to/config.yaml:/app/config.yaml \
  -v /path/to/sqlite.db:/app/sqlite.db \  # 可选: SQLite数据库文件
  -e MCP_DEBUG=1 \  # 可选: 开启debug模式
  mcp/dbutils --config /app/config.yaml

方法四:使用 Smithery (Claude Desktop 自动安装)

npx -y @smithery/cli install @donghao1393/mcp-dbutils --client claude

服务器配置

MCP 服务器需要 YAML 配置文件,通过 '--config' 参数指定路径。以下是配置 Claude Desktop 等 MCP 客户端连接 MCP Database Utilities 服务器的 'mcpServers' 配置示例 (JSON 格式):

使用 uvx 运行的配置:

"mcpServers": {
  "mcp-dbutils": {
    "command": "uvx",
    "args": [
      "mcp-dbutils",
      "--config",
      "/path/to/config.yaml"
    ],
    "env": {
      "MCP_DEBUG": "1"  // 可选: 开启debug模式
    }
  }
}

使用 pip 运行的配置:

"mcpServers": {
  "mcp-dbutils": {
    "command": "python",
    "args": [
      "-m",
      "mcp_dbutils",
      "--config",
      "/path/to/config.yaml"
    ],
    "env": {
      "MCP_DEBUG": "1"  // 可选: 开启debug模式
    }
  }
}

使用 Docker 运行的配置:

"mcpServers": {
  "mcp-dbutils": {
    "command": "docker",
    "args": [
      "run",
      "-i",
      "--rm",
      "-v",
      "/path/to/config.yaml:/app/config.yaml",
      "-v",
      "/path/to/sqlite.db:/app/sqlite.db",  // 可选: SQLite数据库文件挂载
      "mcp/dbutils",
      "--config",
      "/app/config.yaml"
    ],
    "env": {
      "MCP_DEBUG": "1"  // 可选: 开启debug模式
    }
  }
}

配置文件 (config.yaml) 示例:

connections:
  # PostgreSQL 连接配置示例
  my_postgres:
    type: postgres
    dbname: test_db
    user: postgres
    password: secret
    host: host.docker.internal  # Docker 环境连接宿主机 PostgreSQL
    port: 5432

  # SQLite 连接配置示例
  my_sqlite:
    type: sqlite
    path: /path/to/sqlite.db  # SQLite 数据库文件路径

基本使用方法

  1. 配置数据库连接: 编辑 'config.yaml' 文件,根据需要配置 PostgreSQL 或 SQLite 数据库连接。
  2. 启动 MCP 服务器: 根据安装方法选择 'uvx', 'pip' 或 'docker' 命令启动服务器,并指定配置文件路径。
  3. 配置 MCP 客户端: 在 MCP 客户端(例如 Claude Desktop)的配置中,添加 'mcpServers' 节点,配置服务器的启动命令和参数,指向已启动的 MCP Database Utilities 服务器。
  4. 使用 MCP 工具: 在 MCP 客户端中,可以使用 'dbutils-list-tables' (列出表), 'dbutils-run-query' (运行 SQL 查询) 等工具与数据库进行交互。

MCP 工具列表

  • dbutils-list-tables: 列出指定数据库连接中的所有表。
  • dbutils-run-query: 在指定数据库连接上执行 SQL 查询 (仅限 SELECT)。
  • dbutils-describe-table: 获取表的详细结构信息。
  • dbutils-get-ddl: 获取创建表的 DDL 语句。
  • dbutils-list-indexes: 列出表上的所有索引。
  • dbutils-get-stats: 获取表的统计信息,如行数、大小等。
  • dbutils-list-constraints: 列出表上的约束 (主键、外键等)。
  • dbutils-explain-query: 获取 SQL 查询的执行计划。
  • dbutils-get-performance: 获取数据库性能统计信息。
  • dbutils-analyze-query: 分析 SQL 查询性能并提供优化建议。

信息

分类

数据库与文件