项目简介

Dolt MCP 服务器是一个基于Model Context Protocol (MCP) 实现的后端服务,旨在为AI助手(如Claude)提供与Dolt版本控制SQL数据库直接交互的能力。通过这个服务器,AI助手可以调用一系列工具来执行数据库管理、数据操作、版本控制(如分支、提交、合并)和远程协作等任务,从而实现对Dolt数据库的智能管理和数据分析。

主要功能点

  • 数据库管理: 创建、删除、列出和管理数据库,查看Dolt服务器版本。
  • 表操作: 创建、修改、删除、描述和查询数据库中的表结构。
  • 数据操作: 执行SQL查询(SELECT)进行数据读取,执行SQL操作(INSERT, UPDATE, DELETE)进行数据写入。
  • 版本控制: 管理Dolt数据库的分支(创建、删除、重命名、切换活动分支)、提交历史(列出提交、创建提交、暂存/取消暂存表更改)、以及查看差异和合并状态。
  • 合并操作: 合并不同分支的更改,支持快进合并和强制合并提交。
  • 重置操作: 对工作区进行软重置或硬重置到指定修订版本。
  • 远程操作: 添加、移除、克隆远程数据库,以及从远程仓库拉取和推送分支。
  • 数据库测试: 添加、移除和运行定义在'dolt_tests'系统表中的数据库测试。

安装步骤

Dolt MCP 服务器可以通过Go源码或Docker镜像进行安装。

  1. 先决条件:

    • Go 1.24.4 或更高版本(如果从源码构建)
    • 一个正在运行的Dolt SQL服务器实例
  2. 从源码构建 (Go): 首先克隆仓库,然后进入项目目录并编译:

    git clone https://github.com/dolthub/dolt-mcp
    cd dolt-mcp
    go build -o dolt-mcp-server ./mcp/cmd/dolt-mcp-server

    这将生成一个名为 'dolt-mcp-server' 的可执行文件。

  3. 使用Docker安装: 拉取官方Docker镜像:

    docker pull dolthub/dolt-mcp:latest

服务器配置 (MCP客户端使用)

MCP客户端需要知道如何启动Dolt MCP服务器以建立通信。以下是一个典型的MCP客户端配置示例,用于连接Dolt MCP服务器。

通过命令启动Dolt MCP服务器(Stdio模式,适用于Claude Desktop等):

{
  "mcpServers": {
    "dolt-mcp": {
      "command": "/path/to/dolt-mcp-server",
      "args": [
        "--stdio",
        "--dolt-host", "your-dolt-host-ip",
        "--dolt-port", "3306",
        "--dolt-user", "your-dolt-username",
        "--dolt-database", "your_database_name"
      ],
      "env": {
        "DOLT_PASSWORD": "your_dolt_password"
      }
    }
  }
}

参数说明:

  • 'command': Dolt MCP服务器可执行文件的实际路径。
  • '--stdio': 指定服务器以标准输入/输出模式运行。
  • '--dolt-host': 您的Dolt SQL服务器的IP地址或主机名。
  • '--dolt-port': Dolt SQL服务器的端口,默认为3306。
  • '--dolt-user': 连接Dolt SQL服务器的用户名(例如:root)。
  • '--dolt-database': (可选) 默认连接的Dolt数据库名称。
  • 'DOLT_PASSWORD': (可选) 如果Dolt SQL服务器需要密码,请通过环境变量设置。

直接连接Dolt MCP HTTP服务器(适用于Web应用或自定义集成): 如果Dolt MCP服务器以HTTP模式运行,MCP客户端可以直接通过URL连接:

{
  "mcpServers": {
    "dolt-mcp-http": {
      "url": "http://localhost:8080/mcp"
    }
  }
}

参数说明:

  • 'url': Dolt MCP服务器的实际HTTP地址和端口,例如'http://localhost:8080/mcp'。

基本使用方法

  1. 启动Dolt MCP服务器:

    • Stdio模式 (推荐与AI助手直接集成): 通过您构建的可执行文件或Docker容器启动,并连接到您的Dolt SQL服务器。例如:

      # 假设您已在 ~/bin/dolt-mcp-server
      # 确保 Dolt SQL server 在 localhost:3306 运行,且 mydb 数据库存在
      ~/bin/dolt-mcp-server --stdio \
        --dolt-host 0.0.0.0 \
        --dolt-port 3306 \
        --dolt-user root \
        --dolt-database mydb

      或者使用Docker:

      docker run -it --rm \
        -e MCP_MODE=stdio \
        -e DOLT_HOST=your-dolt-host \
        -e DOLT_USER=root \
        -e DOLT_DATABASE=your_database \
        -e DOLT_PASSWORD=your_password \
        dolthub/dolt-mcp:latest

      服务器启动后,会通过标准输入/输出与MCP客户端通信。

    • HTTP模式 (适用于Web应用或自定义集成): 通过您构建的可执行文件或Docker容器启动,并指定HTTP端口。例如:

      # 确保 Dolt SQL server 在 localhost:3306 运行,且 mydb 数据库存在
      ~/bin/dolt-mcp-server --http \
        --mcp-port 8080 \
        --dolt-host 0.0.0.0 \
        --dolt-port 3306 \
        --dolt-user root \
        --dolt-database mydb

      或者使用Docker:

      docker run -d \
        --name dolt-mcp-server \
        -p 8080:8080 \
        -e MCP_MODE=http \
        -e DOLT_HOST=your-dolt-host \
        -e DOLT_USER=root \
        -e DOLT_DATABASE=your_database \
        -e DOLT_PASSWORD=your_password \
        dolthub/dolt-mcp:latest

      服务器将在指定的HTTP端口上监听MCP请求。

  2. AI助手交互: 配置您的AI助手或LLM客户端以使用Dolt MCP服务器。一旦连接成功,AI助手就可以通过调用Dolt MCP服务器提供的工具来执行各种Dolt数据库操作。例如,AI可以理解并执行以下指令:

    • “列出数据库中的所有表。” (调用 'show_tables' 工具)
    • “创建一个名为 'users' 的表,包含 'id'、'name' 和 'email' 字段。” (调用 'create_table' 工具)
    • “向 'users' 表中插入一些示例数据。” (调用 'exec' 工具)
    • “查看当前活跃的分支和最近的提交记录。” (调用 'select_active_branch' 和 'list_dolt_commits' 工具)
    • “创建一个新分支 'feature-xyz',并在其中修改 'products' 表。” (调用 'create_dolt_branch' 和 'alter_table' 工具)
    • “将 'products' 表的更改提交到 'feature-xyz' 分支。” (调用 'stage_table_for_dolt_commit' 和 'create_dolt_commit' 工具)

这些操作都将通过Dolt MCP服务器转发到Dolt SQL数据库并返回结果。

信息

分类

数据库与文件