fasttransfer-mcp について
fasttransfer-mcpは、データベース間のデータ移行に使うFastTransferをMCP経由で提供します。コマンドの事前確認と承認後の実行、パラメーター検証、接続情報のマスキングを備えています。
主な機能
- 01転送コマンドのプレビューと確認後の実行
- 02接続パラメーターとDB互換性の検証
- 03対応する転送元・転送先の一覧表示
- 04並列化方式の提案
- 05バージョンと機能の検出
- 06ログ内のパスワードと接続文字列のマスキング
活用シーン
- 01PostgreSQLからSQL Serverへのテーブル転送の確認
- 02ファイルデータのSQL Serverへの取り込み
- 03FastTransferのバージョンと対応機能の確認
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 サーバー
さまざまなデータベースシステム間で効率的にデータを転送するための FastTransfer 機能を公開する Model Context Protocol (MCP) サーバーです。
概要
FastTransfer は、データベース間でデータを転送する高性能な CLI ツールです。この 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" } } } } -
MCP サーバーを読み込むため、Claude Code を再起動します。
-
インストールを確認します:
# 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 プロバイダー名 |
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.
2 段階の安全プロセス
このサーバーでは、次の 2 段階のプロセスが必須です。
- プレビュー - 必ず最初に
preview_transfer_commandを使用します - 実行 -
confirmation: trueを指定してexecute_transferを使用します
最初にプレビューして確認しなければ、実行できません。
セキュリティ
- すべての出力とログで、パスワードと接続文字列はマスキングされます
- 機密性の高いフラグはマスキングされます:
--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 サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。