Skip to main content
Glama
arpe-io

arpeio-mcp

Official
by arpe-io

migratorxpress_preview_command

Read-onlyIdempotent

Build and preview a MigratorXpress migration command without executing it. Shows the exact CLI command with passwords masked for review before execution.

Instructions

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).

Input Schema

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

Output Schema

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

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed3 schema fields changedv0.3.5
    • addedInput schema / properties / project
      Added value: +{
      +  "description": "Project tag attached to this run, stored on the tracking tables for later filtering (0.6.30+)",
      +  "pattern": "^[A-Za-z0-9_-]{1,64}$",
      +  "type": "string"
      +}
    • addedInput schema / properties / upgrade_migdb
      Added value: +{
      +  "default": false,
      +  "description": "Upgrade the migration (tracking) DB metadata in place to the run_id schema introduced in 0.7.0, then exit (0.7.0+). Only auth_file and migration_db_auth_id are needed; cannot be combined with task_list or resume. Pre-0.7.0 tracking DBs are also auto-upgraded on the first regular 0.7.0+ run.",
      +  "type": "boolean"
      +}
    • changedInput schema / required
      Previous value: -[
      -  "auth_file",
      -  "source_db_auth_id",
      -  "source_db_name",
      -  "target_db_auth_id",
      -  "target_db_name",
      -  "migration_db_auth_id"
      -]New value: +[
      +  "auth_file",
      +  "migration_db_auth_id"
      +]
  2. Changed2 schema fields changedv0.3.2
    • changedInput schema / properties / task_list / description
      Previous value: -"Tasks to run (e.g., ['translate', 'create', 'transfer'] for full migration, or ['diff'] for validation). Call migratorxpress_suggest_workflow to get the recommended task sequence."New value: +"Tasks to run (e.g., ['translate', 'create', 'transfer'] for full migration, or ['diff'] for validation). Call `migratorxpress_info` with action='workflow' to get the recommended task sequence."
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "additionalProperties": true,
      +  "properties": {
      +    "command": {
      +      "description": "Full CLI argv with real credentials, ready to hand to the execute tool.",
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    },
      +    "command_display": {
      +      "description": "The command with the license key masked, safe to show the user.",
      +      "type": "string"
      +    },
      +    "command_string": {
      +      "description": "The argv joined into one command string (real credentials).",
      +      "type": "string"
      +    },
      +    "errors": {
      +      "description": "Field-level validation errors (status='error').",
      +      "items": {
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "explanation": {
      +      "description": "Human-readable summary of what the command does.",
      +      "type": "string"
      +    },
      +    "preview_only": {
      +      "description": "True when no binary is configured (execution unavailable).",
      +      "type": "boolean"
      +    },
      +    "status": {
      +      "description": "'ok' when the call succeeded; 'error' when the parameters failed validation or execution failed.",
      +      "enum": [
      +        "ok",
      +        "error"
      +      ],
      +      "type": "string"
      +    },
      +    "tips": {
      +      "description": "Suggested next tool calls to resolve errors.",
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    },
      +    "warnings": {
      +      "description": "Version-compatibility warnings.",
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    }
      +  },
      +  "required": [
      +    "status"
      +  ],
      +  "type": "object"
      +}
  3. First observedv0.3.1

TDQS

A4.7/5.0
Behavior5/5

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

Annotations already declare readOnly/idempotent/non-destructive, and the description adds real value on top: passwords are masked in output, no connectivity validation occurs, and upgrade_migdb has special rules (only auth_file + migration_db_auth_id needed, cannot combine with task_list or resume, pre-0.7.0 DBs auto-upgrade). These are non-obvious behaviors an agent could not infer from annotations.

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

Conciseness5/5

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

Four front-loaded sentences: purpose, output behavior, non-behavior, next step, plus one conditional edge case. Every sentence earns its place with no filler.

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

Completeness5/5

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

With a 43-param schema fully described, rich annotations, and an output schema to cover return values, the description supplies exactly the missing pieces: what it does not do, the masking behavior, and the downstream handoff. Nothing needed to invoke it correctly is absent.

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

Parameters3/5

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

Schema description coverage is 100% across 43 parameters, so the schema carries the parameter burden and baseline is 3. The description only elaborates on upgrade_migdb (much of which is already in that parameter's schema description), adding little parameter meaning beyond the structured fields.

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

Purpose5/5

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

States a specific verb+resource (build and preview a MigratorXpress migration command) and immediately bounds scope with 'WITHOUT executing it'. It is clearly distinguished from the sibling migratorxpress_execute_command, which it names.

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

Usage Guidelines5/5

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

Explicitly says what to do next ('After reviewing, pass the command to migratorxpress_execute_command') and explicitly states the exclusions ('Does NOT execute the migration or validate database connectivity'). It also gives a conditional usage path for upgrade_migdb=true with its parameter requirements and incompatibilities.

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