mcpField
F
fastbcp-mcp

fastbcp-mcp

本地服务
github.com/arpe-io数据库232 周前更新

关于 fastbcp-mcp

fastbcp-mcp 通过 MCP 服务向 Claude Code 等客户端提供 FastBCP 数据库导出功能,并在导出到文件或云存储时加入命令预览、确认、参数校验和凭据遮蔽。

主要功能

  1. 01执行前预览导出命令
  2. 02执行导出时要求确认
  3. 03校验数据库参数
  4. 04导出为多种文件格式
  5. 05支持配置的云存储目标
  6. 06推荐并行处理方式

适用场景

  1. 01将数据库表导出为 CSV 或 Parquet
  2. 02将导出文件发送到配置的云存储目标
  3. 03导出前检查连接参数

MCP 相关

MCP 服务提供预览和执行导出、校验参数、列出支持的格式与存储目标、推荐并行方式及查看 FastBCP 能力的工具。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"arpe-io-fastbcp": {
"command": "uvx",
"args": [
"fastbcp-mcp"
],
"env": {
"FASTBCP_PATH": "<FASTBCP_PATH>",
"FASTBCP_TIMEOUT": "<FASTBCP_TIMEOUT>",
"FASTBCP_LOG_DIR": "<FASTBCP_LOG_DIR>",
"LOG_LEVEL": "<LOG_LEVEL>"
}
}
}
}
启动命令uvx fastbcp-mcp
需要配置的环境变量
FASTBCP_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+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
pypifastbcp-mcp0.1.5

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

FastBCP MCP 服务

PyPI License: MIT MCP Registry

一个 Model Context Protocol (MCP) 服务,用于提供 FastBCP 功能,将数据库中的数据导出到文件(CSV、TSV、JSON、BSON、Parquet、XLSX、Binary),并可选择云存储目标。

概述

FastBCP 是一款高性能命令行工具,用于将数据库中的数据导出到文件。此 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 客户端
设置
  1. 克隆或下载此仓库:

    cd /path/to/fastbcp-mcp
    
  2. 安装 Python 依赖项:

    pip install -r requirements.txt
    
  3. 配置环境:

    cp .env.example .env
    # Edit .env with your FastBCP path
    
  4. 添加到 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"
          }
        }
      }
    }
    
  5. 重启 Claude Code以加载 MCP 服务。

  6. 验证安装:

    # 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_authWindows 可信身份验证
connect_string完整连接字符串(不包括 server/user/password/dsn)
dsnODBC DSN 名称(不包括 server/provider)
providerOleDB 提供程序名称
application_intentSQL 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--parquetcompressionParquet 压缩: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--datadrivenqueryDataDriven 方法的自定义 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.

两步安全流程

此服务实现了强制性的两步流程:

  1. 预览 - 始终先使用 preview_export_command
  2. 执行 - 使用 execute_export 并设置 confirmation: true

必须先预览并确认,才能执行。

安全

  • 所有输出和日志中的密码及连接字符串都会被遮蔽
  • 敏感标志会被遮蔽:--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 的独立产品。

相关链接

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。