项目简介
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镜像进行安装。
-
先决条件:
- Go 1.24.4 或更高版本(如果从源码构建)
- 一个正在运行的Dolt SQL服务器实例
-
从源码构建 (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' 的可执行文件。
-
使用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'。
基本使用方法
-
启动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请求。
-
-
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数据库并返回结果。
信息
分类
数据库与文件