关于 fasttransfer-mcp
fasttransfer-mcp 将 FastTransfer 的数据库传输能力封装为 MCP 服务,适用于需要在数据库间迁移数据的团队。它通过预览后确认执行、参数校验和敏感信息屏蔽来管理传输操作。
主要功能
- 01预览传输命令并确认后执行
- 02校验连接参数与数据库兼容性
- 03列出支持的源和目标组合
- 04建议并行传输方式
- 05检测版本并查看能力
- 06日志中屏蔽密码和连接字符串
适用场景
- 01预览 PostgreSQL 到 SQL Server 的表传输
- 02将文件数据导入 SQL Server
- 03检查 FastTransfer 版本与支持能力
MCP 相关
向 MCP 客户端提供 FastTransfer 命令预览与执行、连接参数校验、能力查询和并行方式建议等工具。执行需先预览并提供确认。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
uvx fasttransfer-mcpFASTTRANSFER_PATHPath to the FastTransfer binary (optional — server runs in preview-only mode without it)FASTTRANSFER_TIMEOUTExecution timeout in seconds (default: 1800)FASTTRANSFER_LOG_DIRDirectory for execution logs (default: ./logs)LOG_LEVELLogging level: DEBUG, INFO, WARNING, ERROR (default: INFO)本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
FastTransfer MCP 服务
一个 Model Context Protocol(MCP) 服务,用于提供 FastTransfer 功能,以便在各种数据库系统之间高效传输数据。
概述
FastTransfer 是一款用于在数据库之间传输数据的高性能命令行工具。此 MCP 服务封装了 FastTransfer 的功能,并提供:
- 安全优先:执行前预览命令,并要求用户确认
- 密码遮蔽:日志或输出中绝不会显示凭据和连接字符串
- 智能验证:验证参数,并检查特定数据库的兼容性
- 智能建议:自动推荐并行处理方法
- 版本检测:自动检测二进制文件版本,并提供功能注册表
- 全面日志记录:提供包含时间戳和结果的完整执行日志
MCP 工具
1. preview_transfer_command
构建并预览 FastTransfer 命令,但不执行。显示密码已遮蔽的准确命令。请始终先使用此工具。
2. execute_transfer
执行先前预览的命令。出于安全考虑,需要设置 confirmation: true。
3. validate_connection
验证数据库连接参数(仅检查参数,不测试实际连接)。
4. list_supported_combinations
列出所有支持的源数据库到目标数据库的组合。
5. suggest_parallelism_method
根据源数据库类型和表特征推荐最佳并行处理方法。
6. get_version
报告检测到的 FastTransfer 二进制文件版本、支持的类型和功能标志。
安装
前置条件
- Python 3.10 或更高版本
- FastTransfer 二进制文件 v0.16+(从 Arpe.io 获取)
- Claude Code 或其他 MCP 客户端
设置
-
克隆或下载此仓库:
cd /path/to/fasttransfer-mcp -
安装 Python 依赖项:
pip install -r requirements.txt -
配置环境:
cp .env.example .env # Edit .env with your FastTransfer path -
添加到 Claude Code 配置(
~/.claude.json):{ "mcpServers": { "fasttransfer": { "type": "stdio", "command": "python", "args": ["/absolute/path/to/fasttransfer-mcp/src/server.py"], "env": { "FASTTRANSFER_PATH": "/absolute/path/to/fasttransfer/FastTransfer" } } } } -
重启 Claude Code以加载 MCP 服务。
-
验证安装:
# In Claude Code, run: /mcp # You should see "fasttransfer: connected"
配置
环境变量
编辑 .env 以进行配置:
# Path to FastTransfer binary (required)
FASTTRANSFER_PATH=./fasttransfer/FastTransfer
# Execution timeout in seconds (default: 1800 = 30 minutes)
FASTTRANSFER_TIMEOUT=1800
# Log directory (default: ./logs)
FASTTRANSFER_LOG_DIR=./logs
# Log level (default: INFO)
LOG_LEVEL=INFO
连接选项
此服务支持多种身份验证和连接方式:
| 参数 | 描述 |
|---|---|
server | 主机:端口或主机\实例(与 connect_string 或 dsn 一起使用时可选) |
user / password | 标准凭据 |
trusted_auth | Windows 可信身份验证 |
connect_string | 完整连接字符串(不能与 server/user/password/dsn 一起使用) |
dsn | ODBC DSN 名称(不能与 server/provider 一起使用) |
provider | OleDB provider 名称 |
file_input | 数据输入文件路径(仅限源端,不能与 query 一起使用) |
传输选项
| 选项 | CLI 标志 | 描述 |
|---|---|---|
method | --method | 并行处理方法 |
distribute_key_column | --distributeKeyColumn | 数据分发列 |
degree | --degree | 并行度(0=自动,>0=固定,<0=根据 CPU 自适应) |
load_mode | --loadmode | 追加或截断 |
batch_size | --batchsize | 批量操作的批次大小 |
map_method | --mapmethod | 列映射:按位置或按名称 |
run_id | --runid | 用于日志记录的运行 ID |
data_driven_query | --datadrivenquery | DataDriven 方法的自定义 SQL |
use_work_tables | --useworktables | 用于 CCI 的中间工作表 |
settings_file | --settingsfile | 自定义设置 JSON 文件 |
log_level | --loglevel | 覆盖日志级别(error/warning/information/debug/fatal) |
no_banner | --nobanner | 禁止显示横幅 |
license_path | --license | 许可证文件路径或 URL |
使用示例
从 PostgreSQL 传输到 SQL Server
User: "Copy the 'orders' table from PostgreSQL (localhost:5432, database: sales_db,
schema: public) to SQL Server (localhost:1433, database: warehouse, schema: dbo).
Use parallel transfer and truncate the target first."
Claude Code will:
1. Call suggest_parallelism_method to recommend Ctid for PostgreSQL
2. Call preview_transfer_command with your parameters
3. Show the command with masked passwords
4. Explain what will happen
5. Ask for confirmation
6. Execute with execute_transfer when you approve
通过 DuckDB 流导入文件
User: "Import /data/export.parquet into the SQL Server 'staging' table
using DuckDB stream."
Claude Code will use duckdbstream source type with file_input parameter.
检查版本和功能
User: "What version of FastTransfer is installed?"
Claude Code will call get_version and display the detected version,
supported source/target types, and available features.
两步安全流程
此服务采用强制性的两步流程:
- 预览 - 始终先使用
preview_transfer_command - 执行 - 使用
execute_transfer并设置confirmation: true
必须先预览并确认,才能执行。
安全
- 所有输出和日志中的密码及连接字符串都会被遮蔽
- 以下敏感标志会被遮蔽:
--sourcepassword、--targetpassword、--sourceconnectstring、--targetconnectstring、-x、-X、-g、-G - 对敏感配置使用环境变量
- 执行前仔细检查命令
- 使用所需的最低数据库权限
测试
运行测试套件:
# Run all tests
python -m pytest tests/ -v
# Run with coverage
python -m pytest tests/ --cov=src --cov-report=html
项目结构
fasttransfer-mcp/
src/
__init__.py
server.py # MCP server (tool definitions, handlers)
fasttransfer.py # Command builder, executor, suggestions
validators.py # Pydantic models, enums, validation
version.py # Version detection and capabilities registry
tests/
__init__.py
test_command_builder.py
test_validators.py
test_version.py
.env.example
requirements.txt
CHANGELOG.md
README.md
许可证
此 MCP 服务封装按原样提供。FastTransfer 本身是 Arpe.io 的独立产品。
相关链接
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。