arpeio-mcp
OfficialThis MCP server lets you build/preview and—when Arpe.io binaries are configured—execute data export, transfer, pipeline, and migration commands, plus retrieve product/docs guidance.
Build and preview FastBCP exports to files/cloud, with auto-suggested parallelism, then execute after confirmation.
Build and preview FastTransfer database-to-database transfers, including parallelism and load/mapping options, then execute after confirmation.
Build and preview LakeXpress commands for sync/pipeline setup, export/publish/run/status/cleanup, then execute after confirmation.
Build and preview MigratorXpress migrations and metadata-DB upgrades, validate auth files, then execute after confirmation.
Get read-only advisory info for FastBCP, FastTransfer, LakeXpress, and MigratorXpress: capabilities, workflows, supported combinations/formats, parallelism recommendations, and versions.
Check CLI status, get plain-English tool selection guidance, fetch release notes, and search arpe.io docs/blog.
Return structured outputs (status, command, warnings, errors, diagnostics) so MCP clients can chain preview→execute calls programmatically.
Allows GitHub Copilot in VS Code to build, preview, and execute high-performance data commands (database export, transfer, pipeline, migration) using Arpe.io data tools.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@arpeio-mcpexport my PostgreSQL database to S3"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
title: Arpeio MCP emoji: 🛠️ colorFrom: blue colorTo: indigo sdk: docker pinned: false
arpeio-mcp
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
*_PATHenvironment 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).
Open ChatGPT in your browser, go to Settings > Apps and connectors.
Open Advanced settings and enable Developer mode.
Go to Connectors > Browse connectors > Add a new connector.
Set the URL to
https://arpe-io-arpeio-mcp.hf.space/sseand save.
Claude Code
claude mcp add --transport sse arpeio https://arpe-io-arpeio-mcp.hf.space/sseOr for local installation with execution support:
pip install arpeio-mcp
claude mcp add arpeio arpeio-mcpClaude Desktop
Add the following to your Claude Desktop configuration file:
Linux:
~/.config/Claude/claude_desktop_config.jsonmacOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows:
%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
Open Cursor Settings and search for "MCP".
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
In the chat interface, click the + icon, select MCP Servers, then Manage MCP Servers.
Click Add Server.
Set the Server Name to
Arpe.ioand the Server URL tohttps://arpe-io-arpeio-mcp.hf.space/sse.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.
Go to Intelligence > Connectors.
Click Add connector > Custom MCP Connector.
Set the name to
Arpe.ioand the URL tohttps://arpe-io-arpeio-mcp.hf.space/sse.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.jsonmacOS:
~/Library/Application Support/Code/User/mcp.jsonWindows:
%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.jsonmacOS:
~/.codeium/windsurf/mcp_config.jsonWindows:
%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-mcpThen 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 |
| Path to FastBCP binary | No |
| Path to FastTransfer binary | No |
| Path to LakeXpress binary | No |
| Path to MigratorXpress binary | No |
| FastBCP directory for LakeXpress | No |
| FastTransfer directory for MigratorXpress | No |
| Per-tool execution timeout (seconds) | No |
| Per-tool log directory | No |
| 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 whenmethodis 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_idare missing on sync-family callslakexpress_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 newprojecttag (v0.6.30+); warns onmigration_db_type="postgres"against pre-0.6.32 binariesmigratorxpress_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 FastBCPadbc_*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 guidearpe_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"; optionalversion). MigratorXpress publishes no release-notes pages: its "What's new in 0.7" summary from migratorxpress-docs.arpe.io is returned insteadsearch_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 builtcommand(argv),command_string, maskedcommand_display,explanation, and versionwarnings. The exact command can be handed straight to the matching*_execute_*tool.*_execute_*→success,return_code,stdout,stderr, and parseddiagnostics.search_docs→ rankedresultsrecords;arpe_get_status→ per-product status;arpe_release_notes→ release-noteschunks.
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 -qLicense
MIT
Available Tools
18 toolsadbc_infoARead-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.
| Name | Required | Description | Default |
|---|---|---|---|
| driver | No | Optional 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
| Name | Required | Description |
|---|---|---|
| status | Yes | 'ok' when the call succeeded; 'error' when the parameters failed validation or execution failed. |
| drivers | No | Driver records (all drivers, or the requested one). |
| install | No | One-line installers (single driver only). |
TDQS
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.
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.
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.
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.
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.
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_statusARead-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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| tools | No | Per-product status records. |
| status | Yes | 'ok' when the call succeeded; 'error' when the parameters failed validation or execution failed. |
| total_tools | No | Number of registered MCP tools. |
TDQS
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.
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.
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.
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.
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.
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_startARead-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.
| Name | Required | Description | Default |
|---|---|---|---|
| product | No | 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. | |
| use_case | Yes | Plain 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
| Name | Required | Description |
|---|---|---|
| steps | No | Recommended sequence of tool calls. |
| status | Yes | 'ok' when the call succeeded; 'error' when the parameters failed validation or execution failed. |
| warning | No | Cross-tool caveat (e.g. internal use of FastBCP/FastTransfer). |
| selected_product | No | Recommended product, 'all', or null if undetermined. |
TDQS
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.
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.
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.
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.
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.
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_notesARead-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.
| Name | Required | Description | Default |
|---|---|---|---|
| product | Yes | Which product's release notes to retrieve. ADBC drivers use their load name: arpemssql (ArpeMSSQL), arpepgsql (ArpePGSQL), arpeoracle (ArpeOracle), arpenz (ArpeNetezza), arpeteradata (ArpeTeradata). | |
| version | No | 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). |
Output Schema
| Name | Required | Description |
|---|---|---|
| count | No | Number of release-notes chunks returned. |
| chunks | No | |
| status | Yes | 'ok' when the call succeeded; 'error' when the parameters failed validation or execution failed. |
| product | No | |
| version | No | Requested version, or null for the newest indexed. |
| docs_url | No | Docs to consult when release_notes_published is false. |
| release_notes_published | No | Present and false for products without release-notes pages (MigratorXpress). |
TDQS
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.
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.
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.
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.
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.
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_exportADestructive
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.
| Name | Required | Description | Default |
|---|---|---|---|
| command | Yes | The full command string from fastbcp_preview_export output (with actual passwords, not the masked version). | |
| confirmation | Yes | Safety gate — must be true to execute. Confirms the user has reviewed the command from fastbcp_preview_export. |
Output Schema
| Name | Required | Description |
|---|---|---|
| status | Yes | 'ok' when the call succeeded; 'error' when the parameters failed validation or execution failed. |
| stderr | No | |
| stdout | No | |
| log_dir | No | |
| success | No | True when the command exited 0. |
| diagnostics | No | Parsed hints when the command failed. |
| return_code | No | Process exit code. |
TDQS
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.
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.
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.
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.
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.
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_infoARead-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.
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | What 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_type | No | Source database type (required for action=parallelism and action=workflow) | |
| output_format | No | Desired output format (required for action=workflow) | |
| storage_target | No | Storage target (optional, for action=workflow, default: local) | local |
| has_numeric_key | No | Whether the table has a numeric key column (required for action=parallelism) | |
| has_identity_column | No | Whether the table has an identity/auto-increment column (optional, for action=parallelism) | |
| table_size_estimate | No | Estimated table size (required for action=parallelism). small: <100K rows. medium: 100K-10M. large: >10M. |
TDQS
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.
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.
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.
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.
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.
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_exportARead-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.
| Name | Required | Description | Default |
|---|---|---|---|
| output | Yes | ||
| source | Yes | ||
| options | No | ||
| os_type | No | Target operating system for command formatting | linux |
| config_file | No | Path to a YAML configuration file (--config parameter, requires FastBCP 0.30+) |
Output Schema
| Name | Required | Description |
|---|---|---|
| tips | No | Suggested next tool calls to resolve errors. |
| errors | No | Field-level validation errors (status='error'). |
| status | Yes | 'ok' when the call succeeded; 'error' when the parameters failed validation or execution failed. |
| command | No | Full CLI argv with real credentials, ready to hand to the execute tool. |
| warnings | No | Version-compatibility warnings. |
| explanation | No | Human-readable summary of what the command does. |
| preview_only | No | True when no binary is configured (execution unavailable). |
| command_string | No | The argv joined into one command string (real credentials). |
| command_display | No | The command with passwords masked, safe to show the user. |
| auto_parallelism | No | Parallelism method auto-suggested when none was given. |
TDQS
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.
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.
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.
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.
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.
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_transferADestructive
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.
| Name | Required | Description | Default |
|---|---|---|---|
| command | Yes | The full command string from fasttransfer_preview_transfer output (the unmasked version with actual passwords). Do not modify this string. | |
| confirmation | Yes | Safety 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
| Name | Required | Description |
|---|---|---|
| status | Yes | 'ok' when the call succeeded; 'error' when the parameters failed validation or execution failed. |
| stderr | No | |
| stdout | No | |
| log_dir | No | |
| success | No | True when the command exited 0. |
| diagnostics | No | Parsed hints when the command failed. |
| return_code | No | Process exit code. |
TDQS
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.
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.
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.
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.
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.
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_infoARead-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.
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | What 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_type | No | Source database type (required for action=parallelism and action=workflow) | |
| target_type | No | Target database type (required for action=workflow) | |
| has_numeric_key | No | Whether the table has a numeric key column (required for action=parallelism) | |
| has_identity_column | No | Whether the table has an identity/auto-increment column (optional, for action=parallelism) | |
| table_size_estimate | No | Estimated table size (required for action=parallelism). small: <100K rows. medium: 100K-10M. large: >10M. |
TDQS
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.
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.
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.
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.
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.
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_transferARead-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.
| Name | Required | Description | Default |
|---|---|---|---|
| source | Yes | ||
| target | Yes | ||
| options | No | ||
| os_type | No | Operating 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
| Name | Required | Description |
|---|---|---|
| tips | No | Suggested next tool calls to resolve errors. |
| errors | No | Field-level validation errors (status='error'). |
| status | Yes | 'ok' when the call succeeded; 'error' when the parameters failed validation or execution failed. |
| command | No | Full CLI argv with real credentials, ready to hand to the execute tool. |
| warnings | No | Version-compatibility warnings. |
| explanation | No | Human-readable summary of what the command does. |
| preview_only | No | True when no binary is configured (execution unavailable). |
| command_string | No | The argv joined into one command string (real credentials). |
| command_display | No | The command with passwords masked, safe to show the user. |
| auto_parallelism | No | Parallelism method auto-suggested when none was given. |
TDQS
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.
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.
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.
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.
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.
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_commandADestructive
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.
| Name | Required | Description | Default |
|---|---|---|---|
| command | Yes | The exact command string from a prior lakexpress_preview_command call. Must be passed as-is without modification. | |
| confirmation | Yes | Safety gate: must be true to execute. Set to true only after the user has reviewed the previewed command. |
Output Schema
| Name | Required | Description |
|---|---|---|
| status | Yes | 'ok' when the call succeeded; 'error' when the parameters failed validation or execution failed. |
| stderr | No | |
| stdout | No | |
| log_dir | No | |
| success | No | True when the command exited 0. |
| diagnostics | No | Parsed hints when the command failed. |
| return_code | No | Process exit code. |
TDQS
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.
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.
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.
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.
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.
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_infoARead-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.
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | What 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. | |
| destination | No | Storage backend (required for action=workflow) | |
| source_type | No | Source database type (required for action=workflow) | |
| publish_target | No | Optional publish target (for action=workflow) |
TDQS
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.
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.
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.
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.
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.
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_commandARead-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.
| Name | Required | Description | Default |
|---|---|---|---|
| run | No | Run a multi-step pipeline from a YAML config file. | |
| sync | No | Run a full sync (export + publish). Exports data and publishes if configured. | |
| status | No | Show sync run status and history. | |
| cleanup | No | Clean up old or failed sync runs. | |
| command | Yes | The 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_type | No | Target operating system for command formatting | linux |
| lxdb_drop | No | Drop the log database schema (0.3.0+ replacement for logdb_drop). WARNING: permanently deletes all sync history. | |
| lxdb_init | No | Initialize the log database schema (0.3.0+ replacement for logdb_init). | |
| logdb_drop | No | Drop the log database schema. WARNING: permanently deletes all sync history and configuration. | |
| logdb_init | No | Initialize the log database schema. Creates required tables for sync management. | |
| lxdb_locks | No | Show currently locked tables in the log database (0.3.0+ replacement for logdb_locks). | |
| config_list | No | List all sync configurations. | |
| logdb_locks | No | Show currently locked tables in the log database. | |
| sync_export | No | Run export-only sync (no publish). Exports data to local or cloud storage. | |
| sync_publish | No | Run publish-only sync. Publishes previously exported data to the configured target. | |
| config_create | No | Create 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_delete | No | Delete a sync configuration. | |
| lxdb_truncate | No | Clear all data from the log database while keeping the schema (0.3.0+ replacement for logdb_truncate). | |
| logdb_truncate | No | Clear all data from the log database while keeping the schema. | |
| lxdb_release_locks | No | Release stale or stuck table locks (0.3.0+ replacement for logdb_release_locks). | |
| logdb_release_locks | No | Release stale or stuck table locks in the log database. |
Output Schema
| Name | Required | Description |
|---|---|---|
| tips | No | Suggested next tool calls to resolve errors. |
| errors | No | Field-level validation errors (status='error'). |
| status | Yes | 'ok' when the call succeeded; 'error' when the parameters failed validation or execution failed. |
| command | No | Full CLI argv, ready to hand to the execute tool. |
| warnings | No | Version-compatibility warnings. |
| explanation | No | Human-readable summary of what the command does. |
| command_type | No | Which LakeXpress sub-command was built. |
| preview_only | No | True when no binary is configured (execution unavailable). |
| command_string | No | The argv joined into one command string. |
| command_display | No | The command formatted for display, safe to show the user. |
TDQS
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.
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.
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.
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.
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.
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_commandADestructive
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.
| Name | Required | Description | Default |
|---|---|---|---|
| command | Yes | The full MigratorXpress command string copied from the migratorxpress_preview_command output (space-separated arguments). | |
| confirmation | Yes | Safety gate: must be set to true to allow execution. Confirms the user has reviewed the previewed command. |
Output Schema
| Name | Required | Description |
|---|---|---|
| status | Yes | 'ok' when the call succeeded; 'error' when the parameters failed validation or execution failed. |
| stderr | No | |
| stdout | No | |
| log_dir | No | |
| success | No | True when the command exited 0. |
| diagnostics | No | Parsed hints when the command failed. |
| return_code | No | Process exit code. |
TDQS
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.
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.
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.
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.
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.
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_infoARead-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.
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | What 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_type | No | Source database platform (required for action=workflow) | |
| target_type | No | Target database platform (required for action=workflow) | |
| include_constraints | No | Include constraint copy steps in workflow (optional, for action=workflow) |
TDQS
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.
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.
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.
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.
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.
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_commandARead-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).
| Name | Required | Description | Default |
|---|---|---|---|
| force | No | Force overwrite of existing migration data | |
| n_jobs | No | Number of concurrent table transfers | |
| resume | No | Resume a previous run by RUN_ID | |
| fk_mode | No | How to handle foreign key constraints. trusted: create as trusted. untrusted: create and verify. disabled: skip FK creation. | |
| license | No | License key (will be masked in display) | |
| log_dir | No | Directory for log files | |
| os_type | No | Target operating system for command formatting | linux |
| p_query | No | Parallelism degree for profiling queries | |
| project | No | Project tag attached to this run, stored on the tracking tables for later filtering (0.6.30+) | |
| max_rows | No | Maximum row count filter -- only migrate tables with at most this many rows | |
| min_rows | No | Minimum row count filter -- only migrate tables with at least this many rows | |
| quiet_ft | No | Suppress FastTransfer console output during data transfer | |
| auth_file | Yes | Path to authentication/credentials JSON file | |
| load_mode | No | How to load data into target tables. truncate: clear target before loading. append: add to existing data. | |
| log_level | No | Logging verbosity level | |
| no_banner | No | Suppress the startup banner | |
| task_list | No | 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. | |
| basic_diff | No | Use basic diff mode (row counts only, no checksum) | |
| no_progress | No | Disable progress bar display | |
| without_xid | No | Disable transaction ID tracking during transfer | |
| license_file | No | Path to license key file | |
| aci_threshold | No | Row count threshold for auto-created indexes on target | |
| cci_threshold | No | Row count threshold for clustered columnstore index creation on target | |
| upgrade_migdb | No | 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. | |
| compute_nbrows | No | Compute row counts for source tables before transfer | |
| exclude_tables | No | Table exclude patterns, comma-separated. Supports wildcards | |
| fasttransfer_p | No | FastTransfer parallel degree (number of threads per table transfer) | |
| include_tables | No | Table include patterns, comma-separated. Supports wildcards | |
| source_db_name | No | 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) | |
| target_db_name | No | 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 | |
| ft_large_table_th | No | Row count threshold above which FastTransfer parallelism is used | |
| migration_db_mode | No | How to handle existing target database objects. preserve: keep existing objects. truncate: empty tables before loading. drop: drop and recreate objects. | |
| source_db_auth_id | No | Source database credential ID from the auth file | |
| target_db_auth_id | No | Target database credential ID from the auth file | |
| source_schema_name | No | Source schema name. If omitted, all schemas are migrated | |
| target_schema_name | No | Target schema name. Defaults to source schema name if omitted | |
| profiling_sample_pc | No | Percentage of rows to sample for data profiling (0-100) | |
| migration_db_auth_id | Yes | Migration tracking database credential ID from the auth file | |
| drop_tables_if_exists | No | Drop 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_path | No | Path to FastTransfer binary directory for parallel data transfer | |
| min_sample_pc_profile | No | Minimum sample percentage for profiling small tables | |
| forced_int_id_prefixes | No | Column name prefixes to force integer identity mapping | |
| forced_int_id_suffixes | No | Column name suffixes to force integer identity mapping |
Output Schema
| Name | Required | Description |
|---|---|---|
| tips | No | Suggested next tool calls to resolve errors. |
| errors | No | Field-level validation errors (status='error'). |
| status | Yes | 'ok' when the call succeeded; 'error' when the parameters failed validation or execution failed. |
| command | No | Full CLI argv with real credentials, ready to hand to the execute tool. |
| warnings | No | Version-compatibility warnings. |
| explanation | No | Human-readable summary of what the command does. |
| preview_only | No | True when no binary is configured (execution unavailable). |
| command_string | No | The argv joined into one command string (real credentials). |
| command_display | No | The command with the license key masked, safe to show the user. |
TDQS
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.
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.
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.
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.
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.
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_fileARead-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.
| Name | Required | Description | Default |
|---|---|---|---|
| file_path | Yes | Absolute or relative path to the MigratorXpress JSON credentials file to validate. | |
| required_auth_ids | No | Optional 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
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.
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.
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.
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.
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.
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_docsARead-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.
| Name | Required | Description | Default |
|---|---|---|---|
| top_k | No | Maximum number of results to return (1-10). | |
| question | Yes | Search 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
| Name | Required | Description |
|---|---|---|
| count | No | Number of results returned. |
| query | No | The search query that was run. |
| status | Yes | 'ok' when the call succeeded; 'error' when the parameters failed validation or execution failed. |
| results | No | Ranked documentation/blog chunks. |
| index_ready | No | False while indexes are still loading. |
| fully_loaded | No | False while some sources are still loading. |
TDQS
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.
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.
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.
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.
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.
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.
6 tool updates
v0.3.9- Added
adbc_info - Changed
arpe_quick_start2 fields changed- changed
Input schema / properties / product / descriptionPrevious 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." - changed
Input schema / properties / product / enumPrevious value: -[ - "fastbcp", - "fasttransfer", - "lakexpress", - "migratorxpress", - "all" -]New value: +[ + "fastbcp", + "fasttransfer", + "lakexpress", + "migratorxpress", + "adbc", + "all" +]
- Changed
arpe_release_notes5 fields changed- changed
Input schema / properties / product / descriptionPrevious 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)." - changed
Input schema / properties / product / enumPrevious value: -[ - "fastbcp", - "fasttransfer", - "lakexpress", - "migratorxpress" -]New value: +[ + "fastbcp", + "fasttransfer", + "lakexpress", + "migratorxpress", + "arpemssql", + "arpepgsql", + "arpeoracle", + "arpenz", + "arpeteradata" +] - changed
Input schema / properties / version / descriptionPrevious 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)." - added
Output schema / properties / docs_urlAdded value: +{ + "description": "Docs to consult when release_notes_published is false.", + "type": "string" +} - added
Output schema / properties / release_notes_publishedAdded value: +{ + "description": "Present and false for products without release-notes pages (MigratorXpress).", + "type": "boolean" +}
- Changed
fastbcp_info1 field changed- changed
Input schema / properties / source_type / enumPrevious 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" +]
- Changed
fastbcp_preview_export5 fields changed- changed
Input schema / properties / options / properties / distribute_key_column / descriptionPrevious 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." - changed
Input schema / properties / options / properties / method / descriptionPrevious 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." - changed
Input schema / properties / options / properties / method / enumPrevious 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" +] - changed
Input schema / properties / source / properties / type / descriptionPrevious 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." - changed
Input schema / properties / source / properties / type / enumPrevious 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" +]
- Changed
fasttransfer_preview_transfer3 fields changed- changed
Input schema / properties / options / properties / distribute_key_column / descriptionPrevious 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." - changed
Input schema / properties / options / properties / method / descriptionPrevious 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." - changed
Input schema / properties / options / properties / method / enumPrevious value: -[ - "Ctid", - "DataDriven", - "Ntile", - "NZDataSlice", - "None", - "Physloc", - "Random", - "RangeId", - "Rowid" -]New value: +[ + "Ctid", + "DataDriven", + "Ntile", + "NZDataSlice", + "None", + "Physloc", + "Random", + "RangeId", + "Rowid", + "DBPartition", + "Timepartition" +]
3 tool updates
v0.3.6- Changed
fastbcp_info1 field changed- changed
Input schema / properties / source_type / enumPrevious 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" +]
- Changed
fastbcp_preview_export4 fields changed- changed
Input schema / properties / options / properties / method / descriptionPrevious 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." - changed
Input schema / properties / options / properties / method / enumPrevious value: -[ - "Ctid", - "DataDriven", - "Ntile", - "NZDataSlice", - "None", - "Physloc", - "Random", - "RangeId", - "Rowid", - "Timepartition" -]New value: +[ + "Ctid", + "DataDriven", + "Ntile", + "NZDataSlice", + "None", + "Physloc", + "Random", + "RangeId", + "Rowid", + "Timepartition", + "DBPartition" +] - changed
Input schema / properties / source / properties / type / descriptionPrevious 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." - changed
Input schema / properties / source / properties / type / enumPrevious 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" +]
- Changed
migratorxpress_preview_command3 fields changed- changed
Input schema / properties / drop_tables_if_exists / descriptionPrevious 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'" - changed
Input schema / properties / source_db_name / descriptionPrevious 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)" - changed
Input schema / properties / target_db_name / descriptionPrevious 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 tool updates
v0.3.5- Changed
fastbcp_info1 field changed- changed
Input schema / properties / source_type / enumPrevious 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" +]
- Changed
fastbcp_preview_export5 fields changed- changed
Input schema / properties / options / properties / log_level / enumPrevious value: -[ - "Information", - "Debug" -]New value: +[ + "Information", + "Debug", + "Verbose" +] - changed
Input schema / properties / output / properties / bool_format / enumPrevious value: -[ - "TrueFalse", - "OneZero", - "YesNo" -]New value: +[ + "automatic", + "true/false", + "1/0", + "t/f" +] - changed
Input schema / properties / output / properties / parquet_compression / enumPrevious value: -[ - "None", - "Snappy", - "Gzip", - "Lz4", - "Lzo", - "Zstd" -]New value: +[ + "None", + "Snappy", + "Brotli", + "Gzip", + "Lz4", + "Lz4Raw", + "Zstd" +] - changed
Input schema / properties / source / properties / type / descriptionPrevious 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." - changed
Input schema / properties / source / properties / type / enumPrevious 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" +]
- Changed
migratorxpress_preview_command3 fields changed- added
Input schema / properties / projectAdded 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" +} - added
Input schema / properties / upgrade_migdbAdded 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" +} - changed
Input schema / requiredPrevious 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" +]
12 tool updates
v0.3.2- Changed
arpe_get_status1 field changed- changed
Output 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" +}
- Changed
arpe_quick_start1 field changed- changed
Output 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" +}
- Changed
arpe_release_notes1 field changed- changed
Output 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" +}
- Changed
fastbcp_execute_export1 field changed- changed
Output 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" +}
- Changed
fastbcp_preview_export6 fields changed- removed
Input schema / properties / options / properties / batch_sizeRemoved value: -{ - "description": "Batch size for export operations", - "type": "integer" -} - removed
Input schema / properties / options / properties / load_modeRemoved 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" -} - removed
Input schema / properties / options / properties / map_methodRemoved value: -{ - "default": "Position", - "description": "Column mapping method", - "enum": [ - "Position", - "Name" - ], - "type": "string" -} - changed
Input schema / properties / options / properties / method / descriptionPrevious 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." - removed
Input schema / properties / output / properties / storage_targetRemoved 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" -} - changed
Output 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" +}
- Changed
fasttransfer_execute_transfer1 field changed- changed
Output 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" +}
- Changed
fasttransfer_preview_transfer3 fields changed- changed
Input schema / properties / options / properties / method / descriptionPrevious 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." - changed
Input schema / properties / target / properties / type / descriptionPrevious 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." - changed
Output 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" +}
- Changed
lakexpress_execute_command1 field changed- changed
Output 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" +}
- Changed
lakexpress_preview_command3 fields changed- changed
Input schema / properties / config_create / properties / error_action / descriptionPrevious 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)" - changed
Input schema / properties / config_create / properties / error_action / enumPrevious value: -[ - "fail", - "continue", - "skip" -]New value: +[ + "fail", + "continue" +] - changed
Output 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" +}
- Changed
migratorxpress_execute_command1 field changed- changed
Output 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" +}
- Changed
migratorxpress_preview_command2 fields changed- changed
Input schema / properties / task_list / descriptionPrevious 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." - changed
Output 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" +}
- Changed
search_docs1 field changed- changed
Output 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" +}
17 tool updates
v0.3.1- First observed
arpe_get_status - First observed
arpe_quick_start - First observed
arpe_release_notes - First observed
fastbcp_execute_export - First observed
fastbcp_info - First observed
fastbcp_preview_export - First observed
fasttransfer_execute_transfer - First observed
fasttransfer_info - First observed
fasttransfer_preview_transfer - First observed
lakexpress_execute_command - First observed
lakexpress_info - First observed
lakexpress_preview_command - First observed
migratorxpress_execute_command - First observed
migratorxpress_info - First observed
migratorxpress_preview_command - First observed
migratorxpress_validate_auth_file - First observed
search_docs
TDQS
Scored across 18 tools
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.
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.
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.
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
Related MCP Connectors
Hosted MCP server for AI-driven data ops. Create apps, manage schemas, and CRUD structured data.
MCP server for your apps' tools and custom tools, plus hosted AI agents and approval-gated workflows
MCP server unifying ERPs, CRMs, APIs and knowledge base for Claude, ChatGPT and Gemini.
Build and run AI workflows, agents, data tables and 1000+ API integrations from any MCP client.
Related MCP Servers
- AlicenseNot gradedqualityNot gradedmaintenanceA 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-
- AlicenseAqualityDmaintenanceThis 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.6MIT
- AlicenseNot gradedqualityDmaintenanceA unified MCP server for querying and managing multiple database types (PostgreSQL, MySQL, SQL Server, etc.) via natural language through AI assistants.GPL 3.0
- AlicenseNot gradedqualityDmaintenanceAn 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