fastbcp-mcp について
fastbcp-mcp は MCP サーバーを通じて、Claude Code などのクライアントに FastBCP のデータベースエクスポート機能を提供します。ファイルやクラウドストレージへの出力に、コマンドの事前確認、実行確認、パラメーター検証、認証情報のマスキングを加えます。
主な機能
- 01実行前のエクスポートコマンド確認
- 02実行時の確認必須化
- 03データベースパラメーターの検証
- 04複数形式へのエクスポート
- 05設定済みクラウドストレージへの出力
- 06並列処理方式の提案
活用シーン
- 01データベーステーブルを CSV や Parquet に出力
- 02エクスポートファイルを設定済みクラウドストレージへ送信
- 03エクスポート前に接続パラメーターを確認
MCP 対応
エクスポートのプレビューと実行、パラメーター検証、対応形式と保存先の一覧表示、並列処理方式の提案、FastBCP の機能確認ツールを提供します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
uvx fastbcp-mcpFASTBCP_PATHPath to the FastBCP binary (optional — server runs in preview-only mode without it)FASTBCP_TIMEOUTExecution timeout in seconds (default: 1800)FASTBCP_LOG_DIRDirectory for execution logs (default: ./logs)LOG_LEVELLogging level: DEBUG, INFO, WARNING, ERROR (default: INFO)ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
FastBCP MCP サーバー
データベースからファイル(CSV、TSV、JSON、BSON、Parquet、XLSX、Binary)へのデータエクスポート機能を、任意のクラウドストレージの出力先とともに提供する FastBCP の機能を公開する Model Context Protocol (MCP) サーバーです。
概要
FastBCP は、データベースからファイルにデータをエクスポートする高性能な CLI ツールです。この MCP サーバーは FastBCP の機能をラップし、次の機能を提供します。
- 安全性を最優先:実行前にコマンドをプレビューし、ユーザーの確認を必須とします
- パスワードのマスキング:認証情報と接続文字列は、ログや出力に表示されません
- インテリジェントな検証:データベース固有の互換性チェックを含むパラメーター検証
- スマートな提案:並列処理方式を自動で推奨します
- バージョン検出:機能レジストリを使用してバイナリのバージョンを自動検出します
- 包括的なログ記録:タイムスタンプと結果を含む完全な実行ログ
MCP ツール
1. preview_export_command
FastBCP のエクスポートコマンドを作成してプレビューしますが、実行はしません。パスワードをマスキングした正確なコマンドが表示されます。必ず最初にこのツールを使用してください。
2. execute_export
事前にプレビューしたコマンドを実行します。安全対策として、confirmation: true が必要です。
3. validate_connection
ソースデータベースの接続パラメーターを検証します(パラメーターチェックのみで、実際の接続はテストしません)。
4. list_supported_formats
サポートされているすべてのソースデータベース、出力形式、ストレージの出力先を一覧表示します。
5. suggest_parallelism_method
ソースデータベースの種類とテーブルの特性に基づいて、最適な並列処理方式を推奨します。
6. get_version
検出された FastBCP バイナリのバージョン、サポートされている種類、機能フラグを報告します。
インストール
前提条件
- Python 3.10 以降
- FastBCP バイナリ v0.29+(Arpe.io から入手)
- Claude Code またはその他の MCP クライアント
セットアップ
-
このリポジトリをクローンまたはダウンロードします:
cd /path/to/fastbcp-mcp -
Python の依存関係をインストールします:
pip install -r requirements.txt -
環境を設定します:
cp .env.example .env # Edit .env with your FastBCP path -
Claude Code の設定に追加します(
~/.claude.json):{ "mcpServers": { "fastbcp": { "type": "stdio", "command": "python", "args": ["/absolute/path/to/fastbcp-mcp/src/server.py"], "env": { "FASTBCP_PATH": "/absolute/path/to/FastBCP" } } } } -
Claude Code を再起動して MCP サーバーを読み込みます。
-
インストールを確認します:
# In Claude Code, run: /mcp # You should see "fastbcp: connected"
設定
環境変数
.env を編集して設定します。
# Path to FastBCP binary (required)
FASTBCP_PATH=./fastbcp/FastBCP
# Execution timeout in seconds (default: 1800 = 30 minutes)
FASTBCP_TIMEOUT=1800
# Log directory (default: ./logs)
FASTBCP_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 プロバイダー名 |
application_intent | SQL Server のアプリケーションインテント(ReadOnly/ReadWrite) |
出力オプション
| オプション | CLI フラグ | 説明 |
|---|---|---|
format | --format | 出力形式:csv、tsv、json、bson、parquet、xlsx、binary |
file_output | --fileoutput | 出力ファイルのパス |
directory | --directory | 出力ディレクトリのパス |
storage_target | --storagetarget | ストレージ:local、s3、s3compatible、azure_blob、azure_datalake、fabric_onelake |
delimiter | --delimiter | フィールド区切り文字(CSV/TSV) |
quotes | --quotes | 引用符 |
encoding | --encoding | 出力エンコーディング |
no_header | --noheader | ヘッダー行を省略(CSV/TSV) |
decimal_separator | --decimalseparator | 小数点記号(. または ,) |
date_format | --dateformat | 日付形式の文字列 |
bool_format | --boolformat | ブール値の形式:TrueFalse、OneZero、YesNo |
parquet_compression | --parquetcompression | Parquet の圧縮方式:None、Snappy、Gzip、Lz4、Lzo、Zstd |
timestamped | --timestamped | 出力ファイル名にタイムスタンプを追加 |
merge | --merge | 並列出力ファイルをマージ |
エクスポートオプション
| オプション | CLI フラグ | 説明 |
|---|---|---|
method | --method | 並列処理方式 |
distribute_key_column | --distributeKeyColumn | データ分散に使用する列 |
degree | --degree | 並列処理の度合い(デフォルト:1) |
load_mode | --loadmode | 追加または切り捨て |
batch_size | --batchsize | エクスポート操作のバッチサイズ |
map_method | --mapmethod | 列のマッピング:Position または Name |
run_id | --runid | ログ記録用の実行 ID |
data_driven_query | --datadrivenquery | DataDriven 方式用のカスタム SQL |
settings_file | --settingsfile | カスタム設定 JSON ファイル |
log_level | --loglevel | ログレベルを上書き(Information/Debug) |
no_banner | --nobanner | バナー出力を抑制 |
license_path | --license | ライセンスファイルのパスまたは URL |
cloud_profile | --cloudprofile | クラウドストレージのプロファイル名 |
使用例
PostgreSQL から CSV へのエクスポート
User: "Export the 'orders' table from PostgreSQL (localhost:5432, database: sales_db,
schema: public) to CSV file at /tmp/orders.csv. Use parallel export."
Claude Code will:
1. Call suggest_parallelism_method to recommend Ctid for PostgreSQL
2. Call preview_export_command with your parameters
3. Show the command with masked passwords
4. Explain what will happen
5. Ask for confirmation
6. Execute with execute_export when you approve
圧縮して Parquet にエクスポート
User: "Export the 'transactions' table from SQL Server to Parquet format
with Snappy compression, saved to /data/exports/."
Claude Code will use parquet format with parquet_compression set to Snappy.
S3 にエクスポート
User: "Export the 'users' table from PostgreSQL to CSV on S3 bucket
s3://my-bucket/exports/ using my AWS profile."
Claude Code will use storage_target=s3 with cloud_profile.
バージョンと機能の確認
User: "What version of FastBCP is installed?"
Claude Code will call get_version and display the detected version,
supported source types, output formats, and available features.
2 段階の安全プロセス
このサーバーでは、必須の 2 段階プロセスを実装しています。
- プレビュー - 必ず最初に
preview_export_commandを使用します - 実行 -
confirmation: trueを指定してexecute_exportを使用します
最初にプレビューを行い、確認しなければ実行できません。
セキュリティ
- パスワードと接続文字列は、すべての出力とログでマスキングされます
- 機密性の高いフラグはマスキングされます:
--sourcepassword、--sourceconnectstring、-x、-g - 機密性の高い設定には環境変数を使用してください
- 実行前にコマンドを慎重に確認してください
- 必要最小限のデータベース権限を使用してください
テスト
テストスイートを実行します。
# Run all tests
python -m pytest tests/ -v
# Run with coverage
python -m pytest tests/ --cov=src --cov-report=html
プロジェクト構成
fastbcp-mcp/
src/
__init__.py
server.py # MCP server (tool definitions, handlers)
fastbcp.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 サーバーラッパーは現状のまま提供されます。FastBCP は Arpe.io の別製品です。
関連リンク
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。