Skip to main content
Glama
arpeio-mcp

arpeio-mcp

Official
by arpe-io

title: Arpeio MCP emoji: 🛠️ colorFrom: blue colorTo: indigo sdk: docker pinned: false

arpeio-mcp

PyPI version License: MIT

Unified MCP server for Arpe.io data tools — build, preview, and execute high-performance data commands through AI assistants.

Tool

Description

FastBCP

High-performance parallel database export to files and cloud

FastTransfer

High-performance parallel data transfer between databases

LakeXpress

Automated database-to-cloud data pipeline as Parquet

MigratorXpress

Cross-platform database migration with parallel transfer

Arpe ADBC drivers

ArpeMSSQL, ArpePGSQL, ArpeOracle, ArpeNetezza, ArpeTeradata: native ADBC drivers returning Apache Arrow (reference info, docs search, release notes)

No binaries required. All tools work in command builder mode out of the box — command building, preview, and informational tools work without any Arpe.io binary installed. To enable execution, download the binaries from arpe.io and set the corresponding *_PATH environment variables.

Related MCP server: MigratorXpress MCP Server

Connect your AI assistant

A hosted instance is available at https://arpe-io-arpeio-mcp.hf.space/sse — no installation required. For local installation with execution support, use the stdio transport via pip install arpeio-mcp.

ChatGPT | Claude Code | Claude Desktop | Cursor | Gemini CLI | HuggingChat | Kiro IDE | Le Chat (Mistral) | VS Code | Windsurf

ChatGPT

Available for paid plans only (Plus, Pro, Team, and Enterprise).

  1. Open ChatGPT in your browser, go to Settings > Apps and connectors.

  2. Open Advanced settings and enable Developer mode.

  3. Go to Connectors > Browse connectors > Add a new connector.

  4. Set the URL to https://arpe-io-arpeio-mcp.hf.space/sse and save.

Claude Code

claude mcp add --transport sse arpeio https://arpe-io-arpeio-mcp.hf.space/sse

Or for local installation with execution support:

pip install arpeio-mcp
claude mcp add arpeio arpeio-mcp

Claude Desktop

Add the following to your Claude Desktop configuration file:

  • Linux: ~/.config/Claude/claude_desktop_config.json

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

  • Windows: %APPDATA%\Claude\claude_desktop_config.json

Remote (no installation)

{
  "mcpServers": {
    "arpeio": {
      "command": "npx",
      "args": [
        "mcp-remote",
        "https://arpe-io-arpeio-mcp.hf.space/sse"
      ]
    }
  }
}

Local (with execution support)

{
  "mcpServers": {
    "arpeio": {
      "command": "arpeio-mcp",
      "env": {
        "FASTBCP_PATH": "/path/to/FastBCP",
        "FASTTRANSFER_PATH": "/path/to/FastTransfer",
        "LAKEXPRESS_PATH": "/path/to/LakeXpress",
        "MIGRATORXPRESS_PATH": "/path/to/MigratorXpress"
      }
    }
  }
}

Cursor

  1. Open Cursor Settings and search for "MCP".

  2. Add a new MCP server with the following configuration:

{
  "mcpServers": {
    "arpeio": {
      "url": "https://arpe-io-arpeio-mcp.hf.space/sse"
    }
  }
}

Gemini CLI

Add the following to your ~/.gemini/settings.json file:

{
  "mcpServers": {
    "arpeio": {
      "uri": "https://arpe-io-arpeio-mcp.hf.space/sse"
    }
  }
}

HuggingChat

  1. In the chat interface, click the + icon, select MCP Servers, then Manage MCP Servers.

  2. Click Add Server.

  3. Set the Server Name to Arpe.io and the Server URL to https://arpe-io-arpeio-mcp.hf.space/sse.

  4. Click Add Server and verify the health check shows Connected.

Kiro IDE

Add the following to your Kiro MCP configuration file (.kiro/settings/mcp.json in your workspace):

{
  "mcpServers": {
    "arpeio": {
      "url": "https://arpe-io-arpeio-mcp.hf.space/sse"
    }
  }
}

Le Chat (Mistral)

Available on all plans, including free.

  1. Go to Intelligence > Connectors.

  2. Click Add connector > Custom MCP Connector.

  3. Set the name to Arpe.io and the URL to https://arpe-io-arpeio-mcp.hf.space/sse.

  4. Leave authentication disabled and click Create.

VS Code (GitHub Copilot)

Add the following to your VS Code MCP configuration. Run MCP: Open User Configuration from the Command Palette to open it.

  • Linux: ~/.config/Code/User/mcp.json

  • macOS: ~/Library/Application Support/Code/User/mcp.json

  • Windows: %APPDATA%\Code\User\mcp.json

{
  "servers": {
    "arpeio": {
      "url": "https://arpe-io-arpeio-mcp.hf.space/sse",
      "type": "sse"
    }
  }
}

Windsurf

Add the following to your Windsurf configuration file:

  • Linux: ~/.codeium/windsurf/mcp_config.json

  • macOS: ~/.codeium/windsurf/mcp_config.json

  • Windows: %USERPROFILE%\.codeium\windsurf\mcp_config.json

{
  "mcpServers": {
    "arpeio": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-remote",
        "https://arpe-io-arpeio-mcp.hf.space/sse"
      ]
    }
  }
}

Local Installation

For full execution support (not just command building), install locally:

pip install arpeio-mcp

Then configure your AI assistant to use the arpeio-mcp command (stdio transport) with optional binary paths — see the Claude Desktop local configuration for an example.

Environment Variables

Variable

Description

Required

FASTBCP_PATH

Path to FastBCP binary

No

FASTTRANSFER_PATH

Path to FastTransfer binary

No

LAKEXPRESS_PATH

Path to LakeXpress binary

No

MIGRATORXPRESS_PATH

Path to MigratorXpress binary

No

FASTBCP_DIR_PATH

FastBCP directory for LakeXpress

No

FASTTRANSFER_DIR_PATH

FastTransfer directory for MigratorXpress

No

*_TIMEOUT

Per-tool execution timeout (seconds)

No

*_LOG_DIR

Per-tool log directory

No

LOG_LEVEL

Logging level (DEBUG/INFO/WARNING/ERROR)

No

Available Tools (18)

Read-only advisory tools were consolidated into one *_info tool per product (with an action enum) and per-product release-notes tools were merged into a single arpe_release_notes. Auto-parallelism is now suggested inside preview so the typical workflow is 2 calls (preview → execute) instead of 4.

FastBCP (3 tools)

  • fastbcp_info — Read-only advisory: action="formats" | "parallelism" | "workflow" | "version"

  • fastbcp_preview_export — Validate parameters and render the command (auto-suggests parallelism when method is omitted)

  • fastbcp_execute_export — Run the export

FastTransfer (3 tools)

  • fasttransfer_info — Read-only advisory: action="combinations" | "parallelism" | "workflow" | "version"

  • fasttransfer_preview_transfer — Validate parameters and render the command (auto-suggests parallelism)

  • fasttransfer_execute_transfer — Run the transfer

LakeXpress (3 tools)

  • lakexpress_info — Read-only advisory: action="capabilities" | "workflow" | "version"

  • lakexpress_preview_command — Build any LakeXpress command (lxdb_*, config_*, sync, sync[export], sync[publish], run, status, cleanup). On v0.4.0+ binaries, warns when -a / --lxdb_auth_id / --sync_id are missing on sync-family calls

  • lakexpress_execute_command — Run the command

MigratorXpress (4 tools)

  • migratorxpress_info — Read-only advisory: action="capabilities" | "workflow" | "version"

  • migratorxpress_validate_auth_file — Validate the JSON auth file (only file-I/O advisory tool kept separate)

  • migratorxpress_preview_command — Build the migrate command. Accepts the new project tag (v0.6.30+); warns on migration_db_type="postgres" against pre-0.6.32 binaries

  • migratorxpress_execute_command — Run the migration

Arpe ADBC drivers (1 tool)

  • adbc_info — The driver family with current versions (ArpeMSSQL 0.7.6, ArpePGSQL 0.4.7, ArpeOracle 0.4.2, ArpeNetezza 0.3.7, ArpeTeradata 0.3.5), or one driver's load name, connection URI, authentication, install command, licence setup and FastBCP adbc_* connection type. The drivers are libraries, so there is no preview/execute step

Meta (4 tools)

  • arpe_get_status — Status of all four CLIs (installed / command-builder-only)

  • arpe_quick_start — Detect the right tool from a plain-English use case and return a workflow guide

  • arpe_release_notes — Return release-notes chunks for any product (product="fastbcp" | "fasttransfer" | "lakexpress" | "migratorxpress", or an ADBC driver load name "arpemssql" | "arpepgsql" | "arpeoracle" | "arpenz" | "arpeteradata"; optional version). MigratorXpress publishes no release-notes pages: its "What's new in 0.7" summary from migratorxpress-docs.arpe.io is returned instead

  • search_docs — BM25 full-text search over arpe.io docs sites (including migratorxpress-docs.arpe.io and adbc-drivers-docs.arpe.io) and blog

Structured output

The command-building, execution, and discovery tools return structured content (outputSchema + structuredContent) alongside the human-readable markdown, so MCP clients can chain calls programmatically instead of parsing prose:

  • *_preview_* → the built command (argv), command_string, masked command_display, explanation, and version warnings. The exact command can be handed straight to the matching *_execute_* tool.

  • *_execute_* → success, return_code, stdout, stderr, and parsed diagnostics.

  • search_docs → ranked results records; arpe_get_status → per-product status; arpe_release_notes → release-notes chunks.

Each payload carries a status field (ok / error) so success and error responses are both machine-checkable.

Prompts (5)

Conversation starters surfaced by clients that support MCP prompts (Claude Desktop, Cursor, etc.): export-table, transfer-data, lakehouse-pipeline, migrate-database, troubleshoot.

Resources (5)

Static capability matrices served as MCP resources so clients can prefetch them without a tool call: arpeio://capabilities/fastbcp-formats, fasttransfer-combinations, lakexpress-capabilities, migratorxpress-capabilities, adbc-drivers.

Evaluations

evaluations/arpeio_eval.xml holds 10 read-only, verifiable questions used to check that an LLM can drive the server to correct answers (tool selection, parallelism recommendations, capability lookups, version gating). A guard test re-derives every answer from the capability registries so the answer key stays honest:

python -m pytest tests/test_evaluations.py -q

License

MIT

Available Tools

18 tools
adbc_infoA
Read-onlyIdempotent

Get information about the Arpe ADBC drivers: ArpeMSSQL (SQL Server), ArpePGSQL (PostgreSQL), ArpeOracle (Oracle), ArpeNetezza (Netezza) and ArpeTeradata (Teradata). They are native, licence-gated ADBC drivers that return Apache Arrow from any ADBC client (Python, C/C++, C#, Go, Java, R, Rust) and back FastBCP's adbc_* connection types. Omit driver to list the family with current versions; pass it for the load name, connection URI, authentication, install command and docs links of one driver. Read-only, does not require database connectivity.

NameRequiredDescriptionDefault
driverNoOptional driver: ArpeMSSQL (arpemssql), ArpePGSQL (arpepgsql), ArpeOracle (arpeoracle), ArpeNetezza (arpenz), ArpeTeradata (arpeteradata). The commercial name, the load name or the FastBCP connection type (e.g. 'adbc_teradata') are all accepted.

Output Schema

NameRequiredDescription
statusYes'ok' when the call succeeded; 'error' when the parameters failed validation or execution failed.
driversNoDriver records (all drivers, or the requested one).
installNoOne-line installers (single driver only).

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/destructive/idempotent behavior, so the description's main value is adding that no database connectivity is required and that the drivers are licence-gated, native ADBC drivers returning Arrow. That is useful context beyond the annotations, though it does not discuss limits or output shape.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded and the operational guidance is clear. Some of the client-language list ('Python, C/C++, C#, Go, Java, R, Rust') is marketing detail that is not needed to invoke the tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With one optional parameter, full schema coverage, annotations covering safety, and an output schema handling return values, the description contains everything needed to call the tool correctly in either mode.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already documents accepted name forms. The description still adds meaningful mode semantics — omitting the parameter lists the family, passing it returns one driver's full metadata — which goes beyond the parameter's field description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource ('Get information about the Arpe ADBC drivers') and enumerates the exact driver family covered. It also distinguishes its domain from sibling info tools by tying the drivers to FastBCP's adbc_* connection types.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives explicit mode guidance: omit `driver` to list the family with versions, pass it for one driver's details. It does not name alternative tools or exclusion cases, which keeps it short of a full 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

arpe_get_statusA
Read-onlyIdempotent

Show the status of the four Arpe.io CLI tools (FastBCP, FastTransfer, LakeXpress, MigratorXpress). All tools work in command-builder mode by default (no binary needed). If a binary is installed, execution is also available. Does not require database connectivity or any parameters.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription
toolsNoPer-product status records.
statusYes'ok' when the call succeeded; 'error' when the parameters failed validation or execution failed.
total_toolsNoNumber of registered MCP tools.

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent and non-destructive, so the safety profile is covered. The description adds genuine operational context: no binary is required by default, execution is only available when a binary is installed, and no database connectivity is needed. It doesn't describe the returned status fields, but an output schema exists to cover that.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences, front-loaded with the core purpose, then the mode caveat, then the preflight guarantee. Every sentence carries information, though the final clause slightly restates what the empty schema already implies.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, no parameters, and full annotation coverage, the description only needs to establish what the tool reports and what it requires. It does both, and adds the binary-vs-command-builder nuance that an agent needs to interpret the results.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Zero parameters, so the baseline is 4. The description reinforces the empty schema by stating it does not require any parameters, removing any ambiguity about whether auth or connection details are needed.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('Show the status') and names the exact resource: the four Arpe.io CLI tools, listed by name. This implicitly differentiates it from the per-tool siblings (fastbcp_info, lakexpress_info, migratorxpress_info) by being the aggregate status view, though it never says so explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains the command-builder vs. binary-installed execution modes, which is real context for deciding whether preview/execute siblings are usable. But it never states when to call this tool rather than arpe_quick_start or the per-tool *_info tools, leaving the selection to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

arpe_quick_startA
Read-onlyIdempotent

Determine which Arpe.io tool to use and get a step-by-step workflow guide. Call this when the user's intent is unclear or they are new to arpe.io tools. Accepts a plain English use case description and returns the recommended tool, required parameters, and the sequence of tool calls to make. Does not execute anything.

NameRequiredDescriptionDefault
productNoOverride auto-detection and show the workflow for a specific product ('adbc' for the Arpe ADBC drivers). If omitted, the tool selects based on use_case.
use_caseYesPlain English description of what the user wants to do (e.g., 'export a large Oracle table to S3 as Parquet', 'migrate SQL Server schema to PostgreSQL'). Used to auto-detect the right tool.

Output Schema

NameRequiredDescription
stepsNoRecommended sequence of tool calls.
statusYes'ok' when the call succeeded; 'error' when the parameters failed validation or execution failed.
warningNoCross-tool caveat (e.g. internal use of FastBCP/FastTransfer).
selected_productNoRecommended product, 'all', or null if undetermined.

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, non-destructive, so the safety profile is covered. The description adds real value beyond that: it explains what the call produces (recommended tool, required parameters, sequence of calls) and reinforces that nothing is executed. It does not discuss latency or how 'all' vs a specific product changes the output volume, which keeps it below 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Four short sentences, front-loaded with the purpose and then the trigger condition, with no filler. Slight redundancy in restating non-execution after the 'workflow guide' framing, but it earns its place as a safety signal.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only routing tool with an output schema and fully documented params, the description covers what it does, when to use it, and what it returns. The only gap is guidance on how results differ when the user already knows the product, which the enum hints at but the prose never addresses.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, including an enum on 'product' with a clear description, so the schema carries the parameter burden. The description only paraphrases the use_case parameter ('Accepts a plain English use case description') and never mentions the 'product' override, adding essentially no meaning beyond the schema. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Determine which Arpe.io tool to use and get a step-by-step workflow guide') and explicitly separates itself from the execute_* siblings with 'Does not execute anything.' An agent can immediately tell this is a router/advisory tool rather than an action tool.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives a clear trigger condition: 'Call this when the user's intent is unclear or they are new to arpe.io tools.' It does not name concrete alternatives for the clear-intent case (e.g. 'go straight to fastbcp_execute_export'), but the readOnly/non-executing framing makes the boundary with action siblings fairly obvious.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

arpe_release_notesA
Read-onlyIdempotent

Return release-notes chunks for any Arpe.io product. Pass product to select which tool and optionally version to filter to a specific release. ADBC drivers are selected by load name (arpemssql, arpepgsql, arpeoracle, arpenz, arpeteradata) and return their "What's new" history. Read-only; queries the local docs cache.

NameRequiredDescriptionDefault
productYesWhich product's release notes to retrieve. ADBC drivers use their load name: arpemssql (ArpeMSSQL), arpepgsql (ArpePGSQL), arpeoracle (ArpeOracle), arpenz (ArpeNetezza), arpeteradata (ArpeTeradata).
versionNoOptional version string (e.g. '0.31', '0.4', '0.3.5'). Omit for the newest indexed version (the whole release history for an ADBC driver).

Output Schema

NameRequiredDescription
countNoNumber of release-notes chunks returned.
chunksNo
statusYes'ok' when the call succeeded; 'error' when the parameters failed validation or execution failed.
productNo
versionNoRequested version, or null for the newest indexed.
docs_urlNoDocs to consult when release_notes_published is false.
release_notes_publishedNoPresent and false for products without release-notes pages (MigratorXpress).

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint/idempotentHint/openWorldHint=false, so the safety profile is covered; the description adds meaningful context beyond that: it queries a local docs cache and ADBC drivers return their full 'What's new' history when no version is given. It restates 'Read-only' redundantly, which is the main thing keeping it from a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Short and front-loaded, with the core purpose in the first sentence and driver-specific behavior after. The sentence 'Pass `product` to select which tool' is imprecise wording that costs a bit of clarity but no padding is present.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Output schema exists, so return-value description is unnecessary, and annotations cover safety. What remains is complete for an agent to call it correctly, with only the ambiguous 'select which tool' phrasing as a residual gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with an enum on product and a documented version format, so the schema already carries the semantics. The description's ADBC load-name mapping and the 'whole history for a driver' behavior duplicate or lightly reinforce what the schema states, yielding the baseline 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Return release-notes chunks for any Arpe.io product') and scopes the result set to a product/version. It is distinguishable from the *_info and search_docs siblings by scope, though it never names an alternative explicitly. The phrase 'select which tool' is slightly ambiguous but the intent (which product's release notes) is inferable.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives a clear input contract (pass product, optionally version; omit version for newest) but no when-to-use/when-not guidance relative to siblings such as search_docs, which could also surface release-note content. Usage is implied by the parameter narrative rather than stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

fastbcp_execute_exportA
Destructive

Execute a FastBCP export command that was previously built by fastbcp_preview_export. Requires confirmation=true as a safety gate. Does NOT build the command — the command string must come from a prior fastbcp_preview_export call. Will fail if the FastBCP binary is not installed.

NameRequiredDescriptionDefault
commandYesThe full command string from fastbcp_preview_export output (with actual passwords, not the masked version).
confirmationYesSafety gate — must be true to execute. Confirms the user has reviewed the command from fastbcp_preview_export.

Output Schema

NameRequiredDescription
statusYes'ok' when the call succeeded; 'error' when the parameters failed validation or execution failed.
stderrNo
stdoutNo
log_dirNo
successNoTrue when the command exited 0.
diagnosticsNoParsed hints when the command failed.
return_codeNoProcess exit code.

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate destructiveHint=true, and the description reinforces this with 'safety gate' and 'requires confirmation=true'. It adds context about command source and binary requirement. No contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, each containing essential information. Front-loaded with purpose. No redundant or irrelevant text.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given full schema coverage and existence of an output schema (not shown), the description provides sufficient context for usage. It covers prerequisites, safety, and failure conditions. However, it could mention output details or error scenarios.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with descriptions for both parameters. The description adds value by specifying the command must be from fastbcp_preview_export and include actual passwords, which goes beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it executes a FastBCP export command built by fastbcp_preview_export, using the verb 'execute' and specifying the resource. It distinguishes from the sibling tool fastbcp_preview_export by noting it does not build the command.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explicitly states the prerequisite (command from fastbcp_preview_export) and the safety gate (confirmation=true). It also notes failure case (binary not installed). However, it does not mention when not to use this tool or provide explicit alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

fastbcp_infoA
Read-onlyIdempotent

Get information about FastBCP capabilities, parallelism recommendations, workflow guidance, or binary version. Use action to select what information you need. Read-only, does not require database connectivity.

NameRequiredDescriptionDefault
actionYesWhat information to retrieve. formats: list supported source databases, output formats, and storage targets. parallelism: get a recommended parallelism method for a specific table (requires source_type, has_numeric_key, table_size_estimate). workflow: get a step-by-step export guide with database-specific tips (requires source_type, output_format). version: report installed binary version and capabilities.
source_typeNoSource database type (required for action=parallelism and action=workflow)
output_formatNoDesired output format (required for action=workflow)
storage_targetNoStorage target (optional, for action=workflow, default: local)local
has_numeric_keyNoWhether the table has a numeric key column (required for action=parallelism)
has_identity_columnNoWhether the table has an identity/auto-increment column (optional, for action=parallelism)
table_size_estimateNoEstimated table size (required for action=parallelism). small: <100K rows. medium: 100K-10M. large: >10M.

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare read-only, idempotent, non-destructive, and the description is consistent with them while adding genuinely new context: no database connectivity is required. It stops short of describing the shape or volume of the returned information, but for a static info tool that is a minor omission.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences: the capability list is front-loaded before the operational hint. No filler, no repetition of the schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 7 parameters at full schema coverage and annotations covering the safety profile, the description need only explain intent and prerequisites, which it does. The remaining minor gap is that it does not hint at what the responses look like, and there is no output schema to cover that.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and the enum description already explains each action plus its dependent parameters (source_type, output_format, has_numeric_key, table_size_estimate). The description only mentions that `action` selects the information, so it adds nothing beyond the schema — baseline 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Specific verb and resource: 'Get information about FastBCP capabilities, parallelism recommendations, workflow guidance, or binary version' — enumerates exactly the four info categories it serves. It is clearly a metadata tool rather than an export action, but it never explicitly contrasts itself with fastbcp_execute_export/fastbcp_preview_export or with the docs-search sibling.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'Use `action` to select what information you need' points the agent at the routing parameter, and 'does not require database connectivity' tells the agent it can be called safely up front. However, it gives no explicit when-to-use versus alternatives (e.g., search_docs, or calling this before an export), leaving the usage context implied.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

fastbcp_preview_exportA
Read-onlyIdempotent

Build and preview a FastBCP export command WITHOUT executing it. Shows the exact CLI command with passwords masked. If no parallelism method is specified, one is auto-suggested based on the source database type. Does NOT test connectivity or execute the export. After reviewing, pass the command to fastbcp_execute_export.

NameRequiredDescriptionDefault
outputYes
sourceYes
optionsNo
os_typeNoTarget operating system for command formattinglinux
config_fileNoPath to a YAML configuration file (--config parameter, requires FastBCP 0.30+)

Output Schema

NameRequiredDescription
tipsNoSuggested next tool calls to resolve errors.
errorsNoField-level validation errors (status='error').
statusYes'ok' when the call succeeded; 'error' when the parameters failed validation or execution failed.
commandNoFull CLI argv with real credentials, ready to hand to the execute tool.
warningsNoVersion-compatibility warnings.
explanationNoHuman-readable summary of what the command does.
preview_onlyNoTrue when no binary is configured (execution unavailable).
command_stringNoThe argv joined into one command string (real credentials).
command_displayNoThe command with passwords masked, safe to show the user.
auto_parallelismNoParallelism method auto-suggested when none was given.

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes beyond the readOnly/idempotent annotations by disclosing that passwords are masked in output and that one parallelism method is auto-suggested when unspecified. It stops short of saying whether inputs are validated or what happens on an invalid combination, but the annotation set already carries the safety profile.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Four short sentences, front-loaded with the core action and non-execution guarantee, then the masking behavior, the auto-suggestion, and the handoff. No filler and no repetition of the name.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With annotations and an output schema present, the description covers the essentials: non-execution, secret masking, default suggestion behavior, and next step. Given the large nested input schema, a bit more guidance on the lesser-documented option fields would round it out.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is only 40%, so the description should compensate for the many thinly documented nested fields (os_type, config_file, cloud_profile, run_id, license_path). It only adds meaning for one parameter group, the auto-suggested options.method, while the rest relies on the schema's own text.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Build and preview a FastBCP export command') with an explicit negation ('WITHOUT executing it') that separates it from the sibling fastbcp_execute_export. An agent can pick this tool over its execute counterpart without opening either schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly names the when-not ('Does NOT test connectivity or execute the export') and the downstream alternative ('After reviewing, pass the command to fastbcp_execute_export'). The two-step preview→execute workflow is fully spelled out.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

fasttransfer_execute_transferA
Destructive

Execute a FastTransfer command that was previously built by fasttransfer_preview_transfer. Requires confirmation=true as a safety gate. Does NOT build the command — the command string must come from a prior fasttransfer_preview_transfer call. Will fail if the FastTransfer binary is not installed.

NameRequiredDescriptionDefault
commandYesThe full command string from fasttransfer_preview_transfer output (the unmasked version with actual passwords). Do not modify this string.
confirmationYesSafety gate. Must be explicitly set to true to execute. false or omitted = execution is blocked. Always confirm with the user before setting to true.

Output Schema

NameRequiredDescription
statusYes'ok' when the call succeeded; 'error' when the parameters failed validation or execution failed.
stderrNo
stdoutNo
log_dirNo
successNoTrue when the command exited 0.
diagnosticsNoParsed hints when the command failed.
return_codeNoProcess exit code.

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate destructiveHint=true and readOnlyHint=false. The description adds that the command contains actual passwords, requires a safety gate, and will fail if binary is not installed, providing valuable behavioral context beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Four concise sentences, each providing essential information. Front-loaded with the main action and prerequisite, no unnecessary words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the full schema description, output schema availability, and annotations, the description covers workflow dependency, safety valve, and failure condition. It is sufficiently complete for correct usage.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with good descriptions. The description adds extra guidance: 'Do not modify this string' for command and 'Always confirm with the user' for confirmation, enhancing meaning beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Execute' and the resource 'a FastTransfer command previously built by fasttransfer_preview_transfer'. It distinguishes itself from the sibling fasttransfer_preview_transfer which builds the command.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description specifies prerequisites (must have a prior preview call, binary installed) and a safety gate (confirmation=true). It does not explicitly mention when not to use or compare with other siblings, but the context makes it clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

fasttransfer_infoA
Read-onlyIdempotent

Get information about FastTransfer capabilities, parallelism recommendations, workflow guidance, or binary version. Use action to select what information you need. Read-only, does not require database connectivity.

NameRequiredDescriptionDefault
actionYesWhat information to retrieve. combinations: list supported source-to-target database pairs. parallelism: get a recommended parallelism method for a specific table (requires source_type, has_numeric_key, table_size_estimate). workflow: get a step-by-step transfer guide with database-specific tips (requires source_type, target_type). version: report installed binary version and capabilities.
source_typeNoSource database type (required for action=parallelism and action=workflow)
target_typeNoTarget database type (required for action=workflow)
has_numeric_keyNoWhether the table has a numeric key column (required for action=parallelism)
has_identity_columnNoWhether the table has an identity/auto-increment column (optional, for action=parallelism)
table_size_estimateNoEstimated table size (required for action=parallelism). small: <100K rows. medium: 100K-10M. large: >10M.

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description states 'Read-only, does not require database connectivity,' adding context beyond annotations (readOnlyHint, idempotentHint). It reinforces the non-destructive, idempotent nature and clarifies no DB connection is needed, which is valuable for agent decision-making.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is only two sentences, both front-loaded with key information. It covers purpose, usage hint, and behavioral trait without any fluff. Every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity, abundant schema descriptions, and annotations, the description is mostly complete. It doesn't explain return format or error behavior, but for a read-only info tool with strong schema support, this is acceptable. Could optionally mention that some actions require additional parameters (already in schema).

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

All parameters have descriptions in the schema (100% coverage), so the description adds no new semantics. The description mentions using 'action' but doesn't elaborate on other parameters. Baseline score of 3 is appropriate given the high schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool retrieves information about FastTransfer capabilities, parallelism, workflow, or version. The verb 'Get information' and the specific resource 'FastTransfer' make the purpose explicit, distinguishing it from sibling info tools like fastbcp_info or lakexpress_info.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description advises to use the 'action' parameter to select the needed information and notes the tool is read-only and doesn't require database connectivity. While it provides clear context, it doesn't explicitly contrast with alternative tools for transfers or other operations, but the purpose is clear enough for an agent to infer when to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

fasttransfer_preview_transferA
Read-onlyIdempotent

Build and preview a FastTransfer database-to-database transfer command WITHOUT executing it. Shows the exact CLI command with passwords masked. If no parallelism method is specified, one is auto-suggested based on the source database type. Does not test connectivity or execute the transfer. After reviewing, pass the command to fasttransfer_execute_transfer.

NameRequiredDescriptionDefault
sourceYes
targetYes
optionsNo
os_typeNoOperating system where FastTransfer will run. Affects command quoting and path separators. linux: uses single quotes and forward slashes. windows: uses double quotes and backslashes.linux

Output Schema

NameRequiredDescription
tipsNoSuggested next tool calls to resolve errors.
errorsNoField-level validation errors (status='error').
statusYes'ok' when the call succeeded; 'error' when the parameters failed validation or execution failed.
commandNoFull CLI argv with real credentials, ready to hand to the execute tool.
warningsNoVersion-compatibility warnings.
explanationNoHuman-readable summary of what the command does.
preview_onlyNoTrue when no binary is configured (execution unavailable).
command_stringNoThe argv joined into one command string (real credentials).
command_displayNoThe command with passwords masked, safe to show the user.
auto_parallelismNoParallelism method auto-suggested when none was given.

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the readOnlyHint annotations, the description discloses that passwords are masked, that a parallelism method is auto-suggested when omitted, and that the tool does not test connectivity or execute the transfer. It does not cover input validation or failure behavior, but the key read-only and non-executing traits are explicit.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Four sentences are tightly scoped: the core operation, output presentation, defaulting behavior, and next step are front-loaded. No sentence is redundant, and the limitations are placed where an agent will see them before calling.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with nested source/target/options structures, annotations, and an output schema, the description covers the essential workflow, masking behavior, non-execution guarantee, and follow-up tool. Minor validation details are left to the schema, which is reasonable given its richness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With schema description coverage at 25%, the description compensates only partially: it explains the auto-suggestion behavior for options.method and notes that passwords are masked. It does not add much meaning for the source, target, or os_type parameters beyond what the nested schema already provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: 'Build and preview a FastTransfer database-to-database transfer command.' It emphasizes 'WITHOUT executing it' and names the sibling tool fasttransfer_execute_transfer, so the agent can distinguish preview from execution immediately.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It clearly establishes the preview-before-execute workflow by saying the command should be reviewed and then passed to fasttransfer_execute_transfer. It also explicitly excludes connectivity testing and execution, leaving little ambiguity about when to use this tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

lakexpress_execute_commandA
Destructive

Execute a LakeXpress command that was previously built by lakexpress_preview_command. Requires confirmation=true as a safety gate. The command string must come from a prior lakexpress_preview_command call. Will fail if the LakeXpress binary is not installed.

NameRequiredDescriptionDefault
commandYesThe exact command string from a prior lakexpress_preview_command call. Must be passed as-is without modification.
confirmationYesSafety gate: must be true to execute. Set to true only after the user has reviewed the previewed command.

Output Schema

NameRequiredDescription
statusYes'ok' when the call succeeded; 'error' when the parameters failed validation or execution failed.
stderrNo
stdoutNo
log_dirNo
successNoTrue when the command exited 0.
diagnosticsNoParsed hints when the command failed.
return_codeNoProcess exit code.

TDQS

A4.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate destructiveHint=true, so the description adds value by disclosing that the binary must be installed and that confirmation is required. No contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, each necessary and front-loaded. No redundant information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given output schema exists, annotations provide safety info, and parameters are well-documented, the description covers prerequisites, safety, and execution constraints fully. No gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and description adds critical context: the command must be passed as-is from preview, and confirmation must be true after user review. This goes beyond schema definitions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses the specific verb 'Execute' and names the resource 'LakeXpress command that was previously built by lakexpress_preview_command', clearly differentiating from sibling tools like lakexpress_info or lakexpress_preview_command.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explicitly states when to use (after preview), the prerequisite (command must come from lakexpress_preview_command), and the safety gate (confirmation must be true). This provides clear guidance and excludes misuse.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

lakexpress_infoA
Read-onlyIdempotent

Get information about LakeXpress capabilities, workflow guidance, or binary version. Use action to select what information you need. Read-only, does not require database connectivity.

NameRequiredDescriptionDefault
actionYesWhat information to retrieve. capabilities: list supported source databases, log databases, storage backends, and publish targets. workflow: get the recommended command sequence for a specific use case (requires source_type, destination). version: report installed binary version and capabilities.
destinationNoStorage backend (required for action=workflow)
source_typeNoSource database type (required for action=workflow)
publish_targetNoOptional publish target (for action=workflow)

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Description adds 'Read-only, does not require database connectivity' beyond the annotations that already declare readOnlyHint and idempotentHint. No contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences with no wasted words. Essential information is front-loaded: purpose, action usage, read-only nature.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, description could mention output format, but parameter descriptions already specify what each action returns. Covers key aspects adequately for this simple tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% with detailed enum explanations. The description adds only minimal guidance ('Use `action` to select what information you need'), not significantly beyond schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states 'Get information about LakeXpress capabilities, workflow guidance, or binary version' using a specific verb and resource. It differentiates from sibling info tools (e.g., arpe_get_status, fastbcp_info) by specifying LakeXpress scope.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Description provides context by naming LakeXpress as the subject and instructs to use the 'action' parameter. While it implies alternative tools for other products, it does not explicitly exclude them or contrast with search_docs.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

lakexpress_preview_commandA
Read-onlyIdempotent

Build and preview a LakeXpress CLI command WITHOUT executing it. Call this after lakexpress_info with action='workflow' to build each command in the recommended sequence. Shows the exact command that will be run. Does NOT execute the command or validate connections. After reviewing, pass the command to lakexpress_execute_command.

NameRequiredDescriptionDefault
runNoRun a multi-step pipeline from a YAML config file.
syncNoRun a full sync (export + publish). Exports data and publishes if configured.
statusNoShow sync run status and history.
cleanupNoClean up old or failed sync runs.
commandYesThe LakeXpress command to run. logdb_init/lxdb_init: initialize databases. config_create: set up sync configuration. sync/sync_export/sync_publish: execute pipeline steps. run: full pipeline execution. status: check pipeline status. cleanup: remove completed data.
os_typeNoTarget operating system for command formattinglinux
lxdb_dropNoDrop the log database schema (0.3.0+ replacement for logdb_drop). WARNING: permanently deletes all sync history.
lxdb_initNoInitialize the log database schema (0.3.0+ replacement for logdb_init).
logdb_dropNoDrop the log database schema. WARNING: permanently deletes all sync history and configuration.
logdb_initNoInitialize the log database schema. Creates required tables for sync management.
lxdb_locksNoShow currently locked tables in the log database (0.3.0+ replacement for logdb_locks).
config_listNoList all sync configurations.
logdb_locksNoShow currently locked tables in the log database.
sync_exportNoRun export-only sync (no publish). Exports data to local or cloud storage.
sync_publishNoRun publish-only sync. Publishes previously exported data to the configured target.
config_createNoCreate a new sync configuration. Requires source DB credentials and either output_dir (local) or target_storage_id (cloud). Add publish_target for data lake publishing.
config_deleteNoDelete a sync configuration.
lxdb_truncateNoClear all data from the log database while keeping the schema (0.3.0+ replacement for logdb_truncate).
logdb_truncateNoClear all data from the log database while keeping the schema.
lxdb_release_locksNoRelease stale or stuck table locks (0.3.0+ replacement for logdb_release_locks).
logdb_release_locksNoRelease stale or stuck table locks in the log database.

Output Schema

NameRequiredDescription
tipsNoSuggested next tool calls to resolve errors.
errorsNoField-level validation errors (status='error').
statusYes'ok' when the call succeeded; 'error' when the parameters failed validation or execution failed.
commandNoFull CLI argv, ready to hand to the execute tool.
warningsNoVersion-compatibility warnings.
explanationNoHuman-readable summary of what the command does.
command_typeNoWhich LakeXpress sub-command was built.
preview_onlyNoTrue when no binary is configured (execution unavailable).
command_stringNoThe argv joined into one command string.
command_displayNoThe command formatted for display, safe to show the user.

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description confirms the no-side-effect nature (read-only, idempotent) matching annotations. It adds transparency by noting it does not execute or validate connections, beyond what annotations declare.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise (4 sentences) and front-loaded with the main purpose. Every sentence is informative and earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity (21 parameters, nested objects, many sub-commands), the description provides clear usage flow. The output schema exists, so return values are documented elsewhere. Minor gap: no explicit mention of output format beyond 'shows the exact command', but the schema covers it.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so baseline is 3. The description does not add parameter-level explanations, but the schema already provides thorough descriptions for all properties.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool builds and previews a LakeXpress CLI command without executing it. It explicitly distinguishes itself from the sibling tool lakexpress_execute_command and provides a specific use case: call after lakexpress_info with action='workflow'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives explicit when-to-use guidance: after lakexpress_info, before lakexpress_execute_command. It also states what it does not do (execute, validate connections), helping the agent decide when to use this preview tool versus alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

migratorxpress_execute_commandA
Destructive

Execute a MigratorXpress command that was previously built by migratorxpress_preview_command. Requires confirmation=true as a safety gate. The command string must come from a prior migratorxpress_preview_command call. Will fail if the MigratorXpress binary is not installed.

NameRequiredDescriptionDefault
commandYesThe full MigratorXpress command string copied from the migratorxpress_preview_command output (space-separated arguments).
confirmationYesSafety gate: must be set to true to allow execution. Confirms the user has reviewed the previewed command.

Output Schema

NameRequiredDescription
statusYes'ok' when the call succeeded; 'error' when the parameters failed validation or execution failed.
stderrNo
stdoutNo
log_dirNo
successNoTrue when the command exited 0.
diagnosticsNoParsed hints when the command failed.
return_codeNoProcess exit code.

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate destructive and non-idempotent; description adds safety gate requirement and failure condition (binary not installed), enhancing understanding beyond annotations. No contradiction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, each serving a distinct purpose: execution, safety constraint, and prerequisite. No redundancy or fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers essential context: prerequisite (preview command), safety gate (confirmation), and failure condition (binary). Has output schema, so return details not needed. Complete for execution tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema already covers both parameters with descriptions (100% coverage). Description adds context that command must be from migratorxpress_preview_command output and confirmation is a safety gate, adding value beyond schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states 'execute a MigratorXpress command' with verb and resource, and distinguishes from sibling migratorxpress_preview_command by specifying the command must come from a prior preview call.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit conditions: requires confirmation=true and command from preview. Implicitly indicates use after preview; no explicit when-not-to-use but clear enough.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

migratorxpress_infoA
Read-onlyIdempotent

Get information about MigratorXpress capabilities, workflow guidance, or binary version. Use action to select what information you need. Read-only, does not require database connectivity.

NameRequiredDescriptionDefault
actionYesWhat information to retrieve. capabilities: list supported source/target databases, tasks, and modes. workflow: get the recommended task sequence for a migration (requires source_type, target_type). version: report installed binary version and capabilities.
source_typeNoSource database platform (required for action=workflow)
target_typeNoTarget database platform (required for action=workflow)
include_constraintsNoInclude constraint copy steps in workflow (optional, for action=workflow)

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true. The description reinforces read-only and adds that no database connectivity is required, providing extra behavioral context. No contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, front-loaded with the core purpose, and every word adds value. No wasted or redundant text.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given rich annotations and schema, the description is adequate for understanding the tool's role. However, it lacks information about the return format or examples, which would be helpful given the absence of an output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the description does not need to add much. It mentions 'Use action to select what information you need,' which is a high-level summary but does not add significant meaning beyond the schema's own parameter descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it gets information about capabilities, workflow guidance, or binary version, using the action parameter. It is distinguished from sibling tools like migratorxpress_execute_command by its read-only nature, but does not explicitly differentiate from other 'info' tools for different products.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides usage context: use action to select info, and notes it is read-only without DB connectivity. However, it does not specify when not to use it or suggest alternatives (e.g., when to use search_docs instead).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

migratorxpress_preview_commandA
Read-onlyIdempotent

Build and preview a MigratorXpress migration command WITHOUT executing it. Shows the exact CLI command with passwords masked. Does NOT execute the migration or validate database connectivity. After reviewing, pass the command to migratorxpress_execute_command. Set upgrade_migdb=true (0.7.0+) to build the metadata-DB upgrade command instead (needs only auth_file and migration_db_auth_id).

NameRequiredDescriptionDefault
forceNoForce overwrite of existing migration data
n_jobsNoNumber of concurrent table transfers
resumeNoResume a previous run by RUN_ID
fk_modeNoHow to handle foreign key constraints. trusted: create as trusted. untrusted: create and verify. disabled: skip FK creation.
licenseNoLicense key (will be masked in display)
log_dirNoDirectory for log files
os_typeNoTarget operating system for command formattinglinux
p_queryNoParallelism degree for profiling queries
projectNoProject tag attached to this run, stored on the tracking tables for later filtering (0.6.30+)
max_rowsNoMaximum row count filter -- only migrate tables with at most this many rows
min_rowsNoMinimum row count filter -- only migrate tables with at least this many rows
quiet_ftNoSuppress FastTransfer console output during data transfer
auth_fileYesPath to authentication/credentials JSON file
load_modeNoHow to load data into target tables. truncate: clear target before loading. append: add to existing data.
log_levelNoLogging verbosity level
no_bannerNoSuppress the startup banner
task_listNoTasks to run (e.g., ['translate', 'create', 'transfer'] for full migration, or ['diff'] for validation). Call `migratorxpress_info` with action='workflow' to get the recommended task sequence.
basic_diffNoUse basic diff mode (row counts only, no checksum)
no_progressNoDisable progress bar display
without_xidNoDisable transaction ID tracking during transfer
license_fileNoPath to license key file
aci_thresholdNoRow count threshold for auto-created indexes on target
cci_thresholdNoRow count threshold for clustered columnstore index creation on target
upgrade_migdbNoUpgrade the migration (tracking) DB metadata in place to the run_id schema introduced in 0.7.0, then exit (0.7.0+). Only auth_file and migration_db_auth_id are needed; cannot be combined with task_list or resume. Pre-0.7.0 tracking DBs are also auto-upgraded on the first regular 0.7.0+ run.
compute_nbrowsNoCompute row counts for source tables before transfer
exclude_tablesNoTable exclude patterns, comma-separated. Supports wildcards
fasttransfer_pNoFastTransfer parallel degree (number of threads per table transfer)
include_tablesNoTable include patterns, comma-separated. Supports wildcards
source_db_nameNoSource database name to migrate from. Required before 0.7.2; deprecated and ignored from 0.7.2 (the source auth entry's database is used)
target_db_nameNoTarget database name to migrate to. Required before 0.7.2; optional from 0.7.2, where it defaults to the target auth entry's database and must match it
ft_large_table_thNoRow count threshold above which FastTransfer parallelism is used
migration_db_modeNoHow to handle existing target database objects. preserve: keep existing objects. truncate: empty tables before loading. drop: drop and recreate objects.
source_db_auth_idNoSource database credential ID from the auth file
target_db_auth_idNoTarget database credential ID from the auth file
source_schema_nameNoSource schema name. If omitted, all schemas are migrated
target_schema_nameNoTarget schema name. Defaults to source schema name if omitted
profiling_sample_pcNoPercentage of rows to sample for data profiling (0-100)
migration_db_auth_idYesMigration tracking database credential ID from the auth file
drop_tables_if_existsNoDrop target tables before creating them. Before 0.7.2 any value, including 'false', is read as true: omit it instead of passing 'false'
fasttransfer_dir_pathNoPath to FastTransfer binary directory for parallel data transfer
min_sample_pc_profileNoMinimum sample percentage for profiling small tables
forced_int_id_prefixesNoColumn name prefixes to force integer identity mapping
forced_int_id_suffixesNoColumn name suffixes to force integer identity mapping

Output Schema

NameRequiredDescription
tipsNoSuggested next tool calls to resolve errors.
errorsNoField-level validation errors (status='error').
statusYes'ok' when the call succeeded; 'error' when the parameters failed validation or execution failed.
commandNoFull CLI argv with real credentials, ready to hand to the execute tool.
warningsNoVersion-compatibility warnings.
explanationNoHuman-readable summary of what the command does.
preview_onlyNoTrue when no binary is configured (execution unavailable).
command_stringNoThe argv joined into one command string (real credentials).
command_displayNoThe command with the license key masked, safe to show the user.

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive, but the description adds concrete behavior beyond them: passwords are masked in output, no execution or connectivity validation occurs, and upgrade_migdb cannot be combined with task_list or resume. These are actionable constraints an agent cannot derive from structured fields alone.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Four tight sentences, front-loaded with what the tool does and immediately followed by its boundaries and the handoff to the execute tool. No filler; every clause carries routing or constraint information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, return values need not be described, and the description covers the key edge cases (masking, no execution, upgrade mode constraints). For a 43-param preview tool whose schema is fully documented, nothing an agent needs to invoke it correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% across 43 parameters, so the schema already documents each parameter's meaning. The description explains the upgrade_migdb flag's reduced parameter requirement, but that detail is also present in the schema, so it adds marginal value. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: builds and previews a MigratorXpress migration command without executing it. It explicitly distinguishes itself from migratorxpress_execute_command and clarifies scope ('Does NOT execute the migration or validate database connectivity'), so an agent can tell it apart from siblings immediately.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It names the alternative ('pass the command to migratorxpress_execute_command') and gives the condition that selects it (after reviewing). It also flags a special mode (upgrade_migdb=true) with its prerequisites, leaving little to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

migratorxpress_validate_auth_fileA
Read-onlyIdempotent

Validate that a MigratorXpress JSON credentials file is well-formed and contains the required fields (auth_id, db_type, connection parameters). Call this before migratorxpress_preview_command to catch credential issues early. Does NOT test actual database connectivity.

NameRequiredDescriptionDefault
file_pathYesAbsolute or relative path to the MigratorXpress JSON credentials file to validate.
required_auth_idsNoOptional list of auth_id values that must exist in the credentials file. Use this to verify source, target, and migration DB credentials are all present before building a command.

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, destructiveHint, idempotentHint, so safety is clear. Description adds important context that actual connectivity is not tested, which annotations do not cover. Minor gap: no mention of return value or error behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, no redundant phrases. Front-loaded with core purpose, followed by usage hint and limitation. Every sentence contributes meaning.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a low-complexity tool with 2 parameters and no output schema, the description covers purpose, usage, and a key limitation (no connectivity test). It could improve by describing the validation result format (e.g., returns success/failure messages), but it's still clear enough for an AI agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so each parameter is documented. The description adds value for required_auth_ids by explaining its purpose ('verify source, target, and migration DB credentials are all present'). This goes beyond the schema's 'optional list.'

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description explicitly states the tool validates a MigratorXpress JSON credentials file, specifying it checks well-formedness and required fields. It distinguishes from siblings by positioning as a pre-check before migratorxpress_preview_command.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides clear when-to-use guidance: 'Call this before migratorxpress_preview_command to catch credential issues early.' Also clarifies what it does not do ('Does NOT test actual database connectivity'), preventing misuse.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_docsA
Read-onlyIdempotent

Search arpe.io documentation and blog for answers about CLI parameters, use cases, parallelism strategies, integrations, and best practices. Call this when unsure about a parameter value, need an example command, or want the recommended approach for a specific source/target/format combination. Searches across all product documentation (FastBCP, FastTransfer, LakeXpress, MigratorXpress, and the Arpe ADBC drivers ArpeMSSQL, ArpePGSQL, ArpeOracle, ArpeNetezza, ArpeTeradata) and the arpe.io blog simultaneously. Does not execute anything.

NameRequiredDescriptionDefault
top_kNoMaximum number of results to return (1-10).
questionYesSearch query — a question or keywords about arpe.io tools, parameters, or use cases (e.g., 'how to use Ntile parallelism', 'parquet compression options', 'Oracle to Snowflake pipeline').

Output Schema

NameRequiredDescription
countNoNumber of results returned.
queryNoThe search query that was run.
statusYes'ok' when the call succeeded; 'error' when the parameters failed validation or execution failed.
resultsNoRanked documentation/blog chunks.
index_readyNoFalse while indexes are still loading.
fully_loadedNoFalse while some sources are still loading.

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, non-destructive, open-world. The description adds real value beyond them by clarifying that retrieval spans all product docs and the blog simultaneously and that it 'does not execute anything', which heads off any confusion with the preview/execute siblings. Return shape is covered by the output schema, so no gap there.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, each carrying distinct information: capability, trigger conditions, and scope/behavior. The long product roll-call is the only slightly heavy element, but it is load-bearing for knowing what corpus is searched.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Purpose, trigger conditions, corpus scope, and a non-execution disclaimer are all present, and annotations plus the output schema cover safety profile and return format. What remains thin is only the query-formulation guidance, which the schema already handles.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and both parameters are fully documented in the schema, so the description is not required to compensate. It reinforces the kind of natural-language query expected but adds no syntax, ranking, or top_k guidance beyond the schema. Baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (search) and resource set (arpe.io documentation and blog) plus the exact topic domain it covers (CLI parameters, parallelism, integrations, best practices). It also enumerates the covered products, which lets an agent separate it from the per-product info tools in the sibling list.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives three concrete triggers: unsure about a parameter value, need an example command, or want a recommended approach for a source/target/format combination. It does not name a specific alternative sibling (e.g., fastbcp_info) to prefer for static product facts, so routing is strong but not fully explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 6 tool updatesv0.3.9
    • Addedadbc_info
    • Changedarpe_quick_start2 fields changed
      • changedInput schema / properties / product / description
        Previous value: -"Override auto-detection and show the workflow for a specific product. If omitted, the tool selects based on use_case."New value: +"Override auto-detection and show the workflow for a specific product ('adbc' for the Arpe ADBC drivers). If omitted, the tool selects based on use_case."
      • changedInput schema / properties / product / enum
        Previous value: -[
        -  "fastbcp",
        -  "fasttransfer",
        -  "lakexpress",
        -  "migratorxpress",
        -  "all"
        -]New value: +[
        +  "fastbcp",
        +  "fasttransfer",
        +  "lakexpress",
        +  "migratorxpress",
        +  "adbc",
        +  "all"
        +]
    • Changedarpe_release_notes5 fields changed
      • changedInput schema / properties / product / description
        Previous value: -"Which product's release notes to retrieve."New value: +"Which product's release notes to retrieve. ADBC drivers use their load name: arpemssql (ArpeMSSQL), arpepgsql (ArpePGSQL), arpeoracle (ArpeOracle), arpenz (ArpeNetezza), arpeteradata (ArpeTeradata)."
      • changedInput schema / properties / product / enum
        Previous value: -[
        -  "fastbcp",
        -  "fasttransfer",
        -  "lakexpress",
        -  "migratorxpress"
        -]New value: +[
        +  "fastbcp",
        +  "fasttransfer",
        +  "lakexpress",
        +  "migratorxpress",
        +  "arpemssql",
        +  "arpepgsql",
        +  "arpeoracle",
        +  "arpenz",
        +  "arpeteradata"
        +]
      • changedInput schema / properties / version / description
        Previous value: -"Optional version string (e.g. '0.31', '0.4'). Omit for the newest indexed version."New value: +"Optional version string (e.g. '0.31', '0.4', '0.3.5'). Omit for the newest indexed version (the whole release history for an ADBC driver)."
      • addedOutput schema / properties / docs_url
        Added value: +{
        +  "description": "Docs to consult when release_notes_published is false.",
        +  "type": "string"
        +}
      • addedOutput schema / properties / release_notes_published
        Added value: +{
        +  "description": "Present and false for products without release-notes pages (MigratorXpress).",
        +  "type": "boolean"
        +}
    • Changedfastbcp_info1 field changed
      • changedInput schema / properties / source_type / enum
        Previous value: -[
        -  "clickhouse",
        -  "hana",
        -  "mssql",
        -  "msoledbsql",
        -  "mysql",
        -  "nzcopy",
        -  "nzoledb",
        -  "nzsql",
        -  "odbc",
        -  "oledb",
        -  "oraodp",
        -  "pgcopy",
        -  "pgsql",
        -  "teradata",
        -  "adbc_mssql",
        -  "adbc_pgsql",
        -  "adbc_oracle",
        -  "adbc_netezza"
        -]New value: +[
        +  "clickhouse",
        +  "hana",
        +  "mssql",
        +  "msoledbsql",
        +  "mysql",
        +  "nzcopy",
        +  "nzoledb",
        +  "nzsql",
        +  "odbc",
        +  "oledb",
        +  "oraodp",
        +  "pgcopy",
        +  "pgsql",
        +  "teradata",
        +  "adbc_mssql",
        +  "adbc_pgsql",
        +  "adbc_oracle",
        +  "adbc_netezza",
        +  "adbc_teradata"
        +]
    • Changedfastbcp_preview_export5 fields changed
      • changedInput schema / properties / options / properties / distribute_key_column / description
        Previous value: -"Column for data distribution. Required when method is RangeId, Random, Ntile, or DataDriven."New value: +"Column for data distribution. Required when method is RangeId, Random, Ntile, DataDriven or Timepartition. Not used by Physical or DBPartition."
      • changedInput schema / properties / options / properties / method / description
        Previous value: -"Parallelism method. Ntile: even distribution on numeric key. DataDriven: distinct value partitions, works with any data type. Physloc: SQL Server physical location (no key needed). Ctid: PostgreSQL physical tuple ID (no key needed). Rowid: Oracle physical ROWID (no key needed). RangeId: numeric min/max range. Random: modulo-based approximate distribution. Timepartition: partition by time column (FastBCP 0.30+). NZDataSlice: Netezza native slicing. DBPartition: one chunk per native table partition, for SQL Server, PostgreSQL, Oracle, MySQL and Teradata; needs schema and table, no key (FastBCP 1.3+). None: single-threaded. Call `fastbcp_info` with action='parallelism' if unsure."New value: +"Parallelism method. Ntile: even distribution on numeric key. DataDriven: distinct value partitions, works with any data type. Physical: split on the physical row location, no key needed; resolved to Ctid (PostgreSQL), Rowid (Oracle), Physloc (SQL Server) or NZDataSlice (Netezza) from the connection type; needs schema and table (FastBCP 1.4+). Physloc, Ctid, Rowid, NZDataSlice: the engine-specific names, deprecated since 1.4 (removed in 2.0), still needed on FastBCP < 1.4. RangeId: numeric min/max range. Random: modulo-based approximate distribution (avoid in production). Timepartition: partition by time column (FastBCP 0.30+). DBPartition: one chunk per native table partition, for SQL Server, PostgreSQL, Oracle, MySQL and Teradata; needs schema and table, no key (FastBCP 1.3+). None: single-threaded. Call `fastbcp_info` with action='parallelism' if unsure."
      • changedInput schema / properties / options / properties / method / enum
        Previous value: -[
        -  "Ctid",
        -  "DataDriven",
        -  "Ntile",
        -  "NZDataSlice",
        -  "None",
        -  "Physloc",
        -  "Random",
        -  "RangeId",
        -  "Rowid",
        -  "Timepartition",
        -  "DBPartition"
        -]New value: +[
        +  "Ctid",
        +  "DataDriven",
        +  "Ntile",
        +  "NZDataSlice",
        +  "None",
        +  "Physloc",
        +  "Random",
        +  "RangeId",
        +  "Rowid",
        +  "Timepartition",
        +  "DBPartition",
        +  "Physical"
        +]
      • changedInput schema / properties / source / properties / type / description
        Previous value: -"Source database connection type (e.g., 'pgsql' for PostgreSQL, 'mssql' for SQL Server, 'oraodp' for Oracle, 'mysql' for MySQL). ADBC types 'adbc_mssql' (1.0+), 'adbc_pgsql' (1.1+), 'adbc_oracle' (1.2+) and 'adbc_netezza' (1.3+) read the same databases through the Arpe ADBC drivers and write parquet output only."New value: +"Source database connection type (e.g., 'pgsql' for PostgreSQL, 'mssql' for SQL Server, 'oraodp' for Oracle, 'mysql' for MySQL). ADBC types 'adbc_mssql' (1.0+), 'adbc_pgsql' (1.1+), 'adbc_oracle' (1.2+), 'adbc_netezza' (1.3+) and 'adbc_teradata' (1.4+) read the same databases through the Arpe ADBC drivers (ArpeMSSQL, ArpePGSQL, ArpeOracle, ArpeNetezza, ArpeTeradata) and write parquet output only."
      • changedInput schema / properties / source / properties / type / enum
        Previous value: -[
        -  "clickhouse",
        -  "hana",
        -  "mssql",
        -  "msoledbsql",
        -  "mysql",
        -  "nzcopy",
        -  "nzoledb",
        -  "nzsql",
        -  "odbc",
        -  "oledb",
        -  "oraodp",
        -  "pgcopy",
        -  "pgsql",
        -  "teradata",
        -  "adbc_mssql",
        -  "adbc_pgsql",
        -  "adbc_oracle",
        -  "adbc_netezza"
        -]New value: +[
        +  "clickhouse",
        +  "hana",
        +  "mssql",
        +  "msoledbsql",
        +  "mysql",
        +  "nzcopy",
        +  "nzoledb",
        +  "nzsql",
        +  "odbc",
        +  "oledb",
        +  "oraodp",
        +  "pgcopy",
        +  "pgsql",
        +  "teradata",
        +  "adbc_mssql",
        +  "adbc_pgsql",
        +  "adbc_oracle",
        +  "adbc_netezza",
        +  "adbc_teradata"
        +]
    • Changedfasttransfer_preview_transfer3 fields changed
      • changedInput schema / properties / options / properties / distribute_key_column / description
        Previous value: -"Column name used to partition data across threads. Required when method is RangeId, Random, Ntile, or DataDriven. Should be a high-cardinality column (e.g., primary key) for even distribution. Not needed for Ctid, Rowid, Physloc, or None methods."New value: +"Column name used to partition data across threads. Required when method is RangeId, Random, Ntile, DataDriven or Timepartition. Should be a high-cardinality column (e.g., primary key) for even distribution. For Timepartition (0.18+) it is a tuple of a date column and time parts: '(col,year)', '(col,year,month)', '(col,year,month,day)' or '(col,year,week)'. Not needed for Ctid, Rowid, Physloc, NZDataSlice, DBPartition or None methods."
      • changedInput schema / properties / options / properties / method / description
        Previous value: -"Parallelism method. Ntile: even distribution on numeric key. DataDriven: distinct value partitions, works with any data type. PhysLoc/Physloc: SQL Server physical location (no key needed). Ctid: PostgreSQL physical tuple ID (no key needed). Rowid: Oracle physical ROWID (no key needed). RangeId: numeric min/max range. Random: modulo-based approximate distribution. NZDataSlice: Netezza native slicing. None: single-threaded. Call `fasttransfer_info` with action='parallelism' if unsure."New value: +"Parallelism method. Ntile: even distribution on numeric key. DataDriven: distinct value partitions, works with any data type. PhysLoc/Physloc: SQL Server physical location (no key needed). Ctid: PostgreSQL physical tuple ID (no key needed). Rowid: Oracle physical ROWID (no key needed). RangeId: numeric min/max range. Random: modulo-based approximate distribution. NZDataSlice: Netezza native slicing. DBPartition: one stream per native table partition, biggest first, for SQL Server (mssql, msoledbsql), PostgreSQL (pgsql, pgcopy), Oracle (oraodp), MySQL (mysql) and Teradata (teradata, row partitioning only); needs schema and table (no query), no key; an unpartitioned table falls back to a single stream (FastTransfer 0.18+). Timepartition: one stream per year, month, day or ISO week of a date column, biggest first; distribute_key_column is a tuple such as '(order_date,year,month)'; works with a table or a query (FastTransfer 0.18+). None: single-threaded. Call `fasttransfer_info` with action='parallelism' if unsure."
      • changedInput schema / properties / options / properties / method / enum
        Previous value: -[
        -  "Ctid",
        -  "DataDriven",
        -  "Ntile",
        -  "NZDataSlice",
        -  "None",
        -  "Physloc",
        -  "Random",
        -  "RangeId",
        -  "Rowid"
        -]New value: +[
        +  "Ctid",
        +  "DataDriven",
        +  "Ntile",
        +  "NZDataSlice",
        +  "None",
        +  "Physloc",
        +  "Random",
        +  "RangeId",
        +  "Rowid",
        +  "DBPartition",
        +  "Timepartition"
        +]
  2. 3 tool updatesv0.3.6
    • Changedfastbcp_info1 field changed
      • changedInput schema / properties / source_type / enum
        Previous value: -[
        -  "clickhouse",
        -  "hana",
        -  "mssql",
        -  "msoledbsql",
        -  "mysql",
        -  "nzcopy",
        -  "nzoledb",
        -  "nzsql",
        -  "odbc",
        -  "oledb",
        -  "oraodp",
        -  "pgcopy",
        -  "pgsql",
        -  "teradata",
        -  "adbc_mssql",
        -  "adbc_pgsql",
        -  "adbc_oracle"
        -]New value: +[
        +  "clickhouse",
        +  "hana",
        +  "mssql",
        +  "msoledbsql",
        +  "mysql",
        +  "nzcopy",
        +  "nzoledb",
        +  "nzsql",
        +  "odbc",
        +  "oledb",
        +  "oraodp",
        +  "pgcopy",
        +  "pgsql",
        +  "teradata",
        +  "adbc_mssql",
        +  "adbc_pgsql",
        +  "adbc_oracle",
        +  "adbc_netezza"
        +]
    • Changedfastbcp_preview_export4 fields changed
      • changedInput schema / properties / options / properties / method / description
        Previous value: -"Parallelism method. Ntile: even distribution on numeric key. DataDriven: distinct value partitions, works with any data type. Physloc: SQL Server physical location (no key needed). Ctid: PostgreSQL physical tuple ID (no key needed). Rowid: Oracle physical ROWID (no key needed). RangeId: numeric min/max range. Random: modulo-based approximate distribution. Timepartition: partition by time column (FastBCP 0.30+). NZDataSlice: Netezza native slicing. None: single-threaded. Call `fastbcp_info` with action='parallelism' if unsure."New value: +"Parallelism method. Ntile: even distribution on numeric key. DataDriven: distinct value partitions, works with any data type. Physloc: SQL Server physical location (no key needed). Ctid: PostgreSQL physical tuple ID (no key needed). Rowid: Oracle physical ROWID (no key needed). RangeId: numeric min/max range. Random: modulo-based approximate distribution. Timepartition: partition by time column (FastBCP 0.30+). NZDataSlice: Netezza native slicing. DBPartition: one chunk per native table partition, for SQL Server, PostgreSQL, Oracle, MySQL and Teradata; needs schema and table, no key (FastBCP 1.3+). None: single-threaded. Call `fastbcp_info` with action='parallelism' if unsure."
      • changedInput schema / properties / options / properties / method / enum
        Previous value: -[
        -  "Ctid",
        -  "DataDriven",
        -  "Ntile",
        -  "NZDataSlice",
        -  "None",
        -  "Physloc",
        -  "Random",
        -  "RangeId",
        -  "Rowid",
        -  "Timepartition"
        -]New value: +[
        +  "Ctid",
        +  "DataDriven",
        +  "Ntile",
        +  "NZDataSlice",
        +  "None",
        +  "Physloc",
        +  "Random",
        +  "RangeId",
        +  "Rowid",
        +  "Timepartition",
        +  "DBPartition"
        +]
      • changedInput schema / properties / source / properties / type / description
        Previous value: -"Source database connection type (e.g., 'pgsql' for PostgreSQL, 'mssql' for SQL Server, 'oraodp' for Oracle, 'mysql' for MySQL). ADBC types 'adbc_mssql' (1.0+), 'adbc_pgsql' (1.1+) and 'adbc_oracle' (1.2+) read the same databases through the Arpe ADBC drivers and write parquet output only."New value: +"Source database connection type (e.g., 'pgsql' for PostgreSQL, 'mssql' for SQL Server, 'oraodp' for Oracle, 'mysql' for MySQL). ADBC types 'adbc_mssql' (1.0+), 'adbc_pgsql' (1.1+), 'adbc_oracle' (1.2+) and 'adbc_netezza' (1.3+) read the same databases through the Arpe ADBC drivers and write parquet output only."
      • changedInput schema / properties / source / properties / type / enum
        Previous value: -[
        -  "clickhouse",
        -  "hana",
        -  "mssql",
        -  "msoledbsql",
        -  "mysql",
        -  "nzcopy",
        -  "nzoledb",
        -  "nzsql",
        -  "odbc",
        -  "oledb",
        -  "oraodp",
        -  "pgcopy",
        -  "pgsql",
        -  "teradata",
        -  "adbc_mssql",
        -  "adbc_pgsql",
        -  "adbc_oracle"
        -]New value: +[
        +  "clickhouse",
        +  "hana",
        +  "mssql",
        +  "msoledbsql",
        +  "mysql",
        +  "nzcopy",
        +  "nzoledb",
        +  "nzsql",
        +  "odbc",
        +  "oledb",
        +  "oraodp",
        +  "pgcopy",
        +  "pgsql",
        +  "teradata",
        +  "adbc_mssql",
        +  "adbc_pgsql",
        +  "adbc_oracle",
        +  "adbc_netezza"
        +]
    • Changedmigratorxpress_preview_command3 fields changed
      • changedInput schema / properties / drop_tables_if_exists / description
        Previous value: -"Drop target tables before creating them"New value: +"Drop target tables before creating them. Before 0.7.2 any value, including 'false', is read as true: omit it instead of passing 'false'"
      • changedInput schema / properties / source_db_name / description
        Previous value: -"Source database name to migrate from"New value: +"Source database name to migrate from. Required before 0.7.2; deprecated and ignored from 0.7.2 (the source auth entry's database is used)"
      • changedInput schema / properties / target_db_name / description
        Previous value: -"Target database name to migrate to"New value: +"Target database name to migrate to. Required before 0.7.2; optional from 0.7.2, where it defaults to the target auth entry's database and must match it"
  3. 3 tool updatesv0.3.5
    • Changedfastbcp_info1 field changed
      • changedInput schema / properties / source_type / enum
        Previous value: -[
        -  "clickhouse",
        -  "hana",
        -  "mssql",
        -  "msoledbsql",
        -  "mysql",
        -  "nzcopy",
        -  "nzoledb",
        -  "nzsql",
        -  "odbc",
        -  "oledb",
        -  "oraodp",
        -  "pgcopy",
        -  "pgsql",
        -  "teradata"
        -]New value: +[
        +  "clickhouse",
        +  "hana",
        +  "mssql",
        +  "msoledbsql",
        +  "mysql",
        +  "nzcopy",
        +  "nzoledb",
        +  "nzsql",
        +  "odbc",
        +  "oledb",
        +  "oraodp",
        +  "pgcopy",
        +  "pgsql",
        +  "teradata",
        +  "adbc_mssql",
        +  "adbc_pgsql",
        +  "adbc_oracle"
        +]
    • Changedfastbcp_preview_export5 fields changed
      • changedInput schema / properties / options / properties / log_level / enum
        Previous value: -[
        -  "Information",
        -  "Debug"
        -]New value: +[
        +  "Information",
        +  "Debug",
        +  "Verbose"
        +]
      • changedInput schema / properties / output / properties / bool_format / enum
        Previous value: -[
        -  "TrueFalse",
        -  "OneZero",
        -  "YesNo"
        -]New value: +[
        +  "automatic",
        +  "true/false",
        +  "1/0",
        +  "t/f"
        +]
      • changedInput schema / properties / output / properties / parquet_compression / enum
        Previous value: -[
        -  "None",
        -  "Snappy",
        -  "Gzip",
        -  "Lz4",
        -  "Lzo",
        -  "Zstd"
        -]New value: +[
        +  "None",
        +  "Snappy",
        +  "Brotli",
        +  "Gzip",
        +  "Lz4",
        +  "Lz4Raw",
        +  "Zstd"
        +]
      • changedInput schema / properties / source / properties / type / description
        Previous value: -"Source database connection type (e.g., 'pgsql' for PostgreSQL, 'mssql' for SQL Server, 'oraodp' for Oracle, 'mysql' for MySQL)"New value: +"Source database connection type (e.g., 'pgsql' for PostgreSQL, 'mssql' for SQL Server, 'oraodp' for Oracle, 'mysql' for MySQL). ADBC types 'adbc_mssql' (1.0+), 'adbc_pgsql' (1.1+) and 'adbc_oracle' (1.2+) read the same databases through the Arpe ADBC drivers and write parquet output only."
      • changedInput schema / properties / source / properties / type / enum
        Previous value: -[
        -  "clickhouse",
        -  "hana",
        -  "mssql",
        -  "msoledbsql",
        -  "mysql",
        -  "nzcopy",
        -  "nzoledb",
        -  "nzsql",
        -  "odbc",
        -  "oledb",
        -  "oraodp",
        -  "pgcopy",
        -  "pgsql",
        -  "teradata"
        -]New value: +[
        +  "clickhouse",
        +  "hana",
        +  "mssql",
        +  "msoledbsql",
        +  "mysql",
        +  "nzcopy",
        +  "nzoledb",
        +  "nzsql",
        +  "odbc",
        +  "oledb",
        +  "oraodp",
        +  "pgcopy",
        +  "pgsql",
        +  "teradata",
        +  "adbc_mssql",
        +  "adbc_pgsql",
        +  "adbc_oracle"
        +]
    • Changedmigratorxpress_preview_command3 fields changed
      • addedInput schema / properties / project
        Added value: +{
        +  "description": "Project tag attached to this run, stored on the tracking tables for later filtering (0.6.30+)",
        +  "pattern": "^[A-Za-z0-9_-]{1,64}$",
        +  "type": "string"
        +}
      • addedInput schema / properties / upgrade_migdb
        Added value: +{
        +  "default": false,
        +  "description": "Upgrade the migration (tracking) DB metadata in place to the run_id schema introduced in 0.7.0, then exit (0.7.0+). Only auth_file and migration_db_auth_id are needed; cannot be combined with task_list or resume. Pre-0.7.0 tracking DBs are also auto-upgraded on the first regular 0.7.0+ run.",
        +  "type": "boolean"
        +}
      • changedInput schema / required
        Previous value: -[
        -  "auth_file",
        -  "source_db_auth_id",
        -  "source_db_name",
        -  "target_db_auth_id",
        -  "target_db_name",
        -  "migration_db_auth_id"
        -]New value: +[
        +  "auth_file",
        +  "migration_db_auth_id"
        +]
  4. 12 tool updatesv0.3.2
    • Changedarpe_get_status1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": true,
        +  "properties": {
        +    "status": {
        +      "description": "'ok' when the call succeeded; 'error' when the parameters failed validation or execution failed.",
        +      "enum": [
        +        "ok",
        +        "error"
        +      ],
        +      "type": "string"
        +    },
        +    "tools": {
        +      "description": "Per-product status records.",
        +      "items": {
        +        "properties": {
        +          "binary_path": {
        +            "type": "string"
        +          },
        +          "mode": {
        +            "description": "'command_builder' or 'full'.",
        +            "type": "string"
        +          },
        +          "name": {
        +            "type": "string"
        +          },
        +          "version": {
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "total_tools": {
        +      "description": "Number of registered MCP tools.",
        +      "type": "integer"
        +    }
        +  },
        +  "required": [
        +    "status"
        +  ],
        +  "type": "object"
        +}
    • Changedarpe_quick_start1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": true,
        +  "properties": {
        +    "selected_product": {
        +      "description": "Recommended product, 'all', or null if undetermined.",
        +      "type": "string"
        +    },
        +    "status": {
        +      "description": "'ok' when the call succeeded; 'error' when the parameters failed validation or execution failed.",
        +      "enum": [
        +        "ok",
        +        "error"
        +      ],
        +      "type": "string"
        +    },
        +    "steps": {
        +      "description": "Recommended sequence of tool calls.",
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "warning": {
        +      "description": "Cross-tool caveat (e.g. internal use of FastBCP/FastTransfer).",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "status"
        +  ],
        +  "type": "object"
        +}
    • Changedarpe_release_notes1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": true,
        +  "properties": {
        +    "chunks": {
        +      "items": {
        +        "properties": {
        +          "text": {
        +            "type": "string"
        +          },
        +          "url": {
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "count": {
        +      "description": "Number of release-notes chunks returned.",
        +      "type": "integer"
        +    },
        +    "product": {
        +      "type": "string"
        +    },
        +    "status": {
        +      "description": "'ok' when the call succeeded; 'error' when the parameters failed validation or execution failed.",
        +      "enum": [
        +        "ok",
        +        "error"
        +      ],
        +      "type": "string"
        +    },
        +    "version": {
        +      "description": "Requested version, or null for the newest indexed.",
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    }
        +  },
        +  "required": [
        +    "status"
        +  ],
        +  "type": "object"
        +}
    • Changedfastbcp_execute_export1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": true,
        +  "properties": {
        +    "diagnostics": {
        +      "description": "Parsed hints when the command failed.",
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "log_dir": {
        +      "type": "string"
        +    },
        +    "return_code": {
        +      "description": "Process exit code.",
        +      "type": "integer"
        +    },
        +    "status": {
        +      "description": "'ok' when the call succeeded; 'error' when the parameters failed validation or execution failed.",
        +      "enum": [
        +        "ok",
        +        "error"
        +      ],
        +      "type": "string"
        +    },
        +    "stderr": {
        +      "type": "string"
        +    },
        +    "stdout": {
        +      "type": "string"
        +    },
        +    "success": {
        +      "description": "True when the command exited 0.",
        +      "type": "boolean"
        +    }
        +  },
        +  "required": [
        +    "status"
        +  ],
        +  "type": "object"
        +}
    • Changedfastbcp_preview_export6 fields changed
      • removedInput schema / properties / options / properties / batch_size
        Removed value: -{
        -  "description": "Batch size for export operations",
        -  "type": "integer"
        -}
      • removedInput schema / properties / options / properties / load_mode
        Removed value: -{
        -  "default": "Append",
        -  "description": "How to handle existing output. Append: add to existing files. Truncate: overwrite existing output before writing.",
        -  "enum": [
        -    "Append",
        -    "Truncate"
        -  ],
        -  "type": "string"
        -}
      • removedInput schema / properties / options / properties / map_method
        Removed value: -{
        -  "default": "Position",
        -  "description": "Column mapping method",
        -  "enum": [
        -    "Position",
        -    "Name"
        -  ],
        -  "type": "string"
        -}
      • changedInput schema / properties / options / properties / method / description
        Previous value: -"Parallelism method. Ntile: even distribution on numeric key. DataDriven: distinct value partitions, works with any data type. Physloc: SQL Server physical location (no key needed). Ctid: PostgreSQL physical tuple ID (no key needed). Rowid: Oracle physical ROWID (no key needed). RangeId: numeric min/max range. Random: modulo-based approximate distribution. Timepartition: partition by time column (FastBCP 0.30+). NZDataSlice: Netezza native slicing. None: single-threaded. Call `fastbcp_suggest_parallelism` if unsure."New value: +"Parallelism method. Ntile: even distribution on numeric key. DataDriven: distinct value partitions, works with any data type. Physloc: SQL Server physical location (no key needed). Ctid: PostgreSQL physical tuple ID (no key needed). Rowid: Oracle physical ROWID (no key needed). RangeId: numeric min/max range. Random: modulo-based approximate distribution. Timepartition: partition by time column (FastBCP 0.30+). NZDataSlice: Netezza native slicing. None: single-threaded. Call `fastbcp_info` with action='parallelism' if unsure."
      • removedInput schema / properties / output / properties / storage_target
        Removed value: -{
        -  "default": "local",
        -  "description": "Where to write output files. local: local filesystem. s3/s3compatible: Amazon S3 or compatible. azure_blob/azure_datalake: Azure storage. fabric_onelake: Microsoft Fabric. gcs: Google Cloud Storage. Cloud targets require a cloud_profile.",
        -  "enum": [
        -    "local",
        -    "s3",
        -    "s3compatible",
        -    "azure_blob",
        -    "azure_datalake",
        -    "fabric_onelake",
        -    "gcs"
        -  ],
        -  "type": "string"
        -}
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": true,
        +  "properties": {
        +    "auto_parallelism": {
        +      "description": "Parallelism method auto-suggested when none was given.",
        +      "type": "string"
        +    },
        +    "command": {
        +      "description": "Full CLI argv with real credentials, ready to hand to the execute tool.",
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "command_display": {
        +      "description": "The command with passwords masked, safe to show the user.",
        +      "type": "string"
        +    },
        +    "command_string": {
        +      "description": "The argv joined into one command string (real credentials).",
        +      "type": "string"
        +    },
        +    "errors": {
        +      "description": "Field-level validation errors (status='error').",
        +      "items": {
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "explanation": {
        +      "description": "Human-readable summary of what the command does.",
        +      "type": "string"
        +    },
        +    "preview_only": {
        +      "description": "True when no binary is configured (execution unavailable).",
        +      "type": "boolean"
        +    },
        +    "status": {
        +      "description": "'ok' when the call succeeded; 'error' when the parameters failed validation or execution failed.",
        +      "enum": [
        +        "ok",
        +        "error"
        +      ],
        +      "type": "string"
        +    },
        +    "tips": {
        +      "description": "Suggested next tool calls to resolve errors.",
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "warnings": {
        +      "description": "Version-compatibility warnings.",
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    }
        +  },
        +  "required": [
        +    "status"
        +  ],
        +  "type": "object"
        +}
    • Changedfasttransfer_execute_transfer1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": true,
        +  "properties": {
        +    "diagnostics": {
        +      "description": "Parsed hints when the command failed.",
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "log_dir": {
        +      "type": "string"
        +    },
        +    "return_code": {
        +      "description": "Process exit code.",
        +      "type": "integer"
        +    },
        +    "status": {
        +      "description": "'ok' when the call succeeded; 'error' when the parameters failed validation or execution failed.",
        +      "enum": [
        +        "ok",
        +        "error"
        +      ],
        +      "type": "string"
        +    },
        +    "stderr": {
        +      "type": "string"
        +    },
        +    "stdout": {
        +      "type": "string"
        +    },
        +    "success": {
        +      "description": "True when the command exited 0.",
        +      "type": "boolean"
        +    }
        +  },
        +  "required": [
        +    "status"
        +  ],
        +  "type": "object"
        +}
    • Changedfasttransfer_preview_transfer3 fields changed
      • changedInput schema / properties / options / properties / method / description
        Previous value: -"Parallelism method. Ntile: even distribution on numeric key. DataDriven: distinct value partitions, works with any data type. PhysLoc/Physloc: SQL Server physical location (no key needed). Ctid: PostgreSQL physical tuple ID (no key needed). Rowid: Oracle physical ROWID (no key needed). RangeId: numeric min/max range. Random: modulo-based approximate distribution. NZDataSlice: Netezza native slicing. None: single-threaded. Call `fasttransfer_suggest_parallelism` if unsure."New value: +"Parallelism method. Ntile: even distribution on numeric key. DataDriven: distinct value partitions, works with any data type. PhysLoc/Physloc: SQL Server physical location (no key needed). Ctid: PostgreSQL physical tuple ID (no key needed). Rowid: Oracle physical ROWID (no key needed). RangeId: numeric min/max range. Random: modulo-based approximate distribution. NZDataSlice: Netezza native slicing. None: single-threaded. Call `fasttransfer_info` with action='parallelism' if unsure."
      • changedInput schema / properties / target / properties / type / description
        Previous value: -"Target database connection type (e.g., 'pgsql' for PostgreSQL, 'mssql' for SQL Server, 'oraodp' for Oracle, 'mysql' for MySQL). Use fasttransfer_list_combinations to see valid pairs."New value: +"Target database connection type (e.g., 'pgsql' for PostgreSQL, 'mssql' for SQL Server, 'oraodp' for Oracle, 'mysql' for MySQL). Use `fasttransfer_info` with action='combinations' to see valid pairs."
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": true,
        +  "properties": {
        +    "auto_parallelism": {
        +      "description": "Parallelism method auto-suggested when none was given.",
        +      "type": "string"
        +    },
        +    "command": {
        +      "description": "Full CLI argv with real credentials, ready to hand to the execute tool.",
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "command_display": {
        +      "description": "The command with passwords masked, safe to show the user.",
        +      "type": "string"
        +    },
        +    "command_string": {
        +      "description": "The argv joined into one command string (real credentials).",
        +      "type": "string"
        +    },
        +    "errors": {
        +      "description": "Field-level validation errors (status='error').",
        +      "items": {
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "explanation": {
        +      "description": "Human-readable summary of what the command does.",
        +      "type": "string"
        +    },
        +    "preview_only": {
        +      "description": "True when no binary is configured (execution unavailable).",
        +      "type": "boolean"
        +    },
        +    "status": {
        +      "description": "'ok' when the call succeeded; 'error' when the parameters failed validation or execution failed.",
        +      "enum": [
        +        "ok",
        +        "error"
        +      ],
        +      "type": "string"
        +    },
        +    "tips": {
        +      "description": "Suggested next tool calls to resolve errors.",
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "warnings": {
        +      "description": "Version-compatibility warnings.",
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    }
        +  },
        +  "required": [
        +    "status"
        +  ],
        +  "type": "object"
        +}
    • Changedlakexpress_execute_command1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": true,
        +  "properties": {
        +    "diagnostics": {
        +      "description": "Parsed hints when the command failed.",
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "log_dir": {
        +      "type": "string"
        +    },
        +    "return_code": {
        +      "description": "Process exit code.",
        +      "type": "integer"
        +    },
        +    "status": {
        +      "description": "'ok' when the call succeeded; 'error' when the parameters failed validation or execution failed.",
        +      "enum": [
        +        "ok",
        +        "error"
        +      ],
        +      "type": "string"
        +    },
        +    "stderr": {
        +      "type": "string"
        +    },
        +    "stdout": {
        +      "type": "string"
        +    },
        +    "success": {
        +      "description": "True when the command exited 0.",
        +      "type": "boolean"
        +    }
        +  },
        +  "required": [
        +    "status"
        +  ],
        +  "type": "object"
        +}
    • Changedlakexpress_preview_command3 fields changed
      • changedInput schema / properties / config_create / properties / error_action / description
        Previous value: -"Action on table export error: fail (stop), continue (skip and continue), skip"New value: +"Action on table export error: fail (stop on first error) or continue (log errors and continue)"
      • changedInput schema / properties / config_create / properties / error_action / enum
        Previous value: -[
        -  "fail",
        -  "continue",
        -  "skip"
        -]New value: +[
        +  "fail",
        +  "continue"
        +]
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": true,
        +  "properties": {
        +    "command": {
        +      "description": "Full CLI argv, ready to hand to the execute tool.",
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "command_display": {
        +      "description": "The command formatted for display, safe to show the user.",
        +      "type": "string"
        +    },
        +    "command_string": {
        +      "description": "The argv joined into one command string.",
        +      "type": "string"
        +    },
        +    "command_type": {
        +      "description": "Which LakeXpress sub-command was built.",
        +      "type": "string"
        +    },
        +    "errors": {
        +      "description": "Field-level validation errors (status='error').",
        +      "items": {
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "explanation": {
        +      "description": "Human-readable summary of what the command does.",
        +      "type": "string"
        +    },
        +    "preview_only": {
        +      "description": "True when no binary is configured (execution unavailable).",
        +      "type": "boolean"
        +    },
        +    "status": {
        +      "description": "'ok' when the call succeeded; 'error' when the parameters failed validation or execution failed.",
        +      "enum": [
        +        "ok",
        +        "error"
        +      ],
        +      "type": "string"
        +    },
        +    "tips": {
        +      "description": "Suggested next tool calls to resolve errors.",
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "warnings": {
        +      "description": "Version-compatibility warnings.",
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    }
        +  },
        +  "required": [
        +    "status"
        +  ],
        +  "type": "object"
        +}
    • Changedmigratorxpress_execute_command1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": true,
        +  "properties": {
        +    "diagnostics": {
        +      "description": "Parsed hints when the command failed.",
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "log_dir": {
        +      "type": "string"
        +    },
        +    "return_code": {
        +      "description": "Process exit code.",
        +      "type": "integer"
        +    },
        +    "status": {
        +      "description": "'ok' when the call succeeded; 'error' when the parameters failed validation or execution failed.",
        +      "enum": [
        +        "ok",
        +        "error"
        +      ],
        +      "type": "string"
        +    },
        +    "stderr": {
        +      "type": "string"
        +    },
        +    "stdout": {
        +      "type": "string"
        +    },
        +    "success": {
        +      "description": "True when the command exited 0.",
        +      "type": "boolean"
        +    }
        +  },
        +  "required": [
        +    "status"
        +  ],
        +  "type": "object"
        +}
    • Changedmigratorxpress_preview_command2 fields changed
      • changedInput schema / properties / task_list / description
        Previous value: -"Tasks to run (e.g., ['translate', 'create', 'transfer'] for full migration, or ['diff'] for validation). Call migratorxpress_suggest_workflow to get the recommended task sequence."New value: +"Tasks to run (e.g., ['translate', 'create', 'transfer'] for full migration, or ['diff'] for validation). Call `migratorxpress_info` with action='workflow' to get the recommended task sequence."
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": true,
        +  "properties": {
        +    "command": {
        +      "description": "Full CLI argv with real credentials, ready to hand to the execute tool.",
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "command_display": {
        +      "description": "The command with the license key masked, safe to show the user.",
        +      "type": "string"
        +    },
        +    "command_string": {
        +      "description": "The argv joined into one command string (real credentials).",
        +      "type": "string"
        +    },
        +    "errors": {
        +      "description": "Field-level validation errors (status='error').",
        +      "items": {
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "explanation": {
        +      "description": "Human-readable summary of what the command does.",
        +      "type": "string"
        +    },
        +    "preview_only": {
        +      "description": "True when no binary is configured (execution unavailable).",
        +      "type": "boolean"
        +    },
        +    "status": {
        +      "description": "'ok' when the call succeeded; 'error' when the parameters failed validation or execution failed.",
        +      "enum": [
        +        "ok",
        +        "error"
        +      ],
        +      "type": "string"
        +    },
        +    "tips": {
        +      "description": "Suggested next tool calls to resolve errors.",
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "warnings": {
        +      "description": "Version-compatibility warnings.",
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    }
        +  },
        +  "required": [
        +    "status"
        +  ],
        +  "type": "object"
        +}
    • Changedsearch_docs1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": true,
        +  "properties": {
        +    "count": {
        +      "description": "Number of results returned.",
        +      "type": "integer"
        +    },
        +    "fully_loaded": {
        +      "description": "False while some sources are still loading.",
        +      "type": "boolean"
        +    },
        +    "index_ready": {
        +      "description": "False while indexes are still loading.",
        +      "type": "boolean"
        +    },
        +    "query": {
        +      "description": "The search query that was run.",
        +      "type": "string"
        +    },
        +    "results": {
        +      "description": "Ranked documentation/blog chunks.",
        +      "items": {
        +        "properties": {
        +          "source": {
        +            "type": "string"
        +          },
        +          "text": {
        +            "type": "string"
        +          },
        +          "url": {
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "status": {
        +      "description": "'ok' when the call succeeded; 'error' when the parameters failed validation or execution failed.",
        +      "enum": [
        +        "ok",
        +        "error"
        +      ],
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "status"
        +  ],
        +  "type": "object"
        +}
  5. 17 tool updatesv0.3.1
    • First observedarpe_get_status
    • First observedarpe_quick_start
    • First observedarpe_release_notes
    • First observedfastbcp_execute_export
    • First observedfastbcp_info
    • First observedfastbcp_preview_export
    • First observedfasttransfer_execute_transfer
    • First observedfasttransfer_info
    • First observedfasttransfer_preview_transfer
    • First observedlakexpress_execute_command
    • First observedlakexpress_info
    • First observedlakexpress_preview_command
    • First observedmigratorxpress_execute_command
    • First observedmigratorxpress_info
    • First observedmigratorxpress_preview_command
    • First observedmigratorxpress_validate_auth_file
    • First observedsearch_docs

TDQS

A4.2/5.0

Scored across 18 tools

Disambiguation4/5

Each product has a clear preview/execute/info triple, and preview vs execute are explicitly coupled and distinguishable. The four *_info tools plus search_docs, arpe_quick_start, and arpe_release_notes overlap somewhat in 'tell me about the product' intent, which could cause misselection for an agent unsure where to start.

Naming Consistency4/5

Strong product-prefixed verb_noun pattern (fastbcp_preview_export, migratorxpress_execute_command, lakexpress_info) consistent across all four CLI families. Minor deviations: shared utilities use an arpe_ prefix or none (search_docs, adbc_info), slightly breaking the pattern.

Tool Count5/5

18 tools decompose cleanly into four products × (info, preview, execute) plus a small set of shared helpers, so every tool earns its place. The count is well matched to the multi-product CLI scope.

Completeness4/5

Provides full preview-execute lifecycle, docs search, release notes, status, and a quick-start router, with auth-file validation for MigratorXpress. Notable gaps: no connectivity-test tool (descriptions repeatedly disclaim it) and no auth-file validation for the other products' workflows.

Maintenance

ActivityMaintained
ResponsivenessNo recent community issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    Not graded
    maintenance
    A universal database gateway MCP server that enables AI assistants to connect to and query multiple databases (PostgreSQL, MySQL, MariaDB, SQL Server, SQLite) with support for schema exploration, SQL execution, and secure connections via SSH tunnels.
    24 npm
    -
  • A
    license
    A
    quality
    D
    maintenance
    This MCP server enables database migration between heterogeneous systems (Oracle, PostgreSQL, SQL Server, Netezza to PostgreSQL or SQL Server) through AI assistants by providing tools for command preview, execution, validation, and workflow suggestions.
    6
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    A unified MCP server for querying and managing multiple database types (PostgreSQL, MySQL, SQL Server, etc.) via natural language through AI assistants.
    GPL 3.0
  • A
    license
    Not graded
    quality
    D
    maintenance
    An MCP server that gives AI assistants the ability to connect to, query, profile, and monitor data sources — turning any LLM into an interactive data engineering copilot.
    MIT