Skip to main content
Glama
arpe-io

MigratorXpress MCP Server

by arpe-io

MigratorXpress MCP Server

PyPI License: MIT MCP Registry

A Model Context Protocol (MCP) server for MigratorXpress, enabling database migration between heterogeneous database systems through AI assistants.

MigratorXpress supports migrating from Oracle, PostgreSQL, SQL Server, and Netezza to PostgreSQL or SQL Server targets.

Installation

pip install -e .

Or install dependencies directly:

pip install -r requirements.txt

Related MCP server: Legion Database MCP Server

Configuration

Environment Variables

Variable

Default

Description

MIGRATORXPRESS_PATH

./MigratorXpress

Path to MigratorXpress binary

MIGRATORXPRESS_TIMEOUT

3600

Command execution timeout in seconds

MIGRATORXPRESS_LOG_DIR

./logs

Directory for execution logs

LOG_LEVEL

INFO

Server logging level

Copy .env.example to .env and adjust values:

cp .env.example .env

Claude Code Configuration

Add to your Claude Code MCP settings:

{
  "mcpServers": {
    "migratorxpress": {
      "command": "python",
      "args": ["-m", "src.server"],
      "cwd": "/path/to/migratorxpress-mcp",
      "env": {
        "MIGRATORXPRESS_PATH": "/path/to/MigratorXpress"
      }
    }
  }
}

Tools

1. preview_command

Build and preview a MigratorXpress CLI command without executing it. License text is automatically masked in the display output.

Required parameters: auth_file, source_db_auth_id, source_db_name, target_db_auth_id, target_db_name, migration_db_auth_id

2. execute_command

Execute a previously previewed command. Requires confirmation: true as a safety mechanism.

3. validate_auth_file

Validate that an authentication file exists, is valid JSON, and optionally check for specific auth_id entries.

4. list_capabilities

List supported source/target databases, tasks, migration DB modes, load modes, and FK modes.

5. suggest_workflow

Given a source database type, target database type, and optional constraint flag, suggest the full sequence of migration tasks with example commands.

6. get_version

Report MigratorXpress version and capabilities.

Workflow Example

A typical migration from Oracle to PostgreSQL:

Step 1: translate  — Translate Oracle DDL to PostgreSQL-compatible DDL
Step 2: create     — Create target tables from translated DDL
Step 3: transfer   — Transfer data from source to target
Step 4: diff       — Verify row counts match between source and target
Step 5: copy_pk    — Copy primary key constraints
        copy_ak    — Copy alternate key (unique) constraints
        copy_fk    — Copy foreign key constraints

Or run all steps in a single invocation with --task_list all.

Development

Running Tests

pip install -e ".[dev]"
python -m pytest tests/ -v

License

MIT

Available Tools

6 tools
execute_commandA

Execute a MigratorXpress command that was previously previewed. IMPORTANT: You must set confirmation=true to execute. This is a safety mechanism to prevent accidental execution.

ParametersJSON Schema
NameRequiredDescriptionDefault
commandYesThe exact command from preview_command (space-separated)
confirmationYesMust be true to execute. This confirms the user has reviewed the command.

TDQS

A4.2/5.0
Behavior4/5

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

No annotations are provided, so the description conveys the safety mechanism and confirmation requirement. However, it omits details on success/failure behavior or side effects.

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

Conciseness5/5

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

Two sentences with front-loaded purpose and a critical instruction. Every sentence serves a clear purpose without waste.

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

Completeness4/5

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

Given the simple two-parameter tool, the description is sufficient but could explicitly link to preview_command as a prerequisite for completeness.

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

Parameters3/5

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

Schema coverage is 100% and the description adds emphasis on the confirmation parameter but no new meaning beyond the schema's own descriptions.

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

Purpose5/5

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

The description clearly states 'Execute a MigratorXpress command that was previously previewed,' with a specific verb and resource, distinguishing it from siblings like preview_command.

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

Usage Guidelines4/5

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

The description notes the safety mechanism and required 'confirmation=true' but does not explicitly exclude non-previewed commands or mention alternatives beyond the implied preview step.

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

get_versionA

Get the detected MigratorXpress binary version, capabilities, and supported databases, tasks, and modes.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.5/5.0
Behavior2/5

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

Without annotations, the description carries full burden but only states that it 'gets detected info'. It does not disclose whether it queries a binary, calls an API, or any potential errors (e.g., binary not found).

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

Conciseness5/5

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

The description is a single, clear sentence with no wasted words. All content is front-loaded and directly informative.

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

Completeness3/5

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

Given no output schema, the description lists the categories of returned info but does not detail the exact structure or error conditions. It is adequate for a simple 'get' tool but could include more context.

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

Parameters4/5

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

The tool has no parameters, so schema coverage is trivially 100%. The description adds meaning by specifying the returned information categories (version, capabilities, databases, tasks, modes), which is beyond the schema.

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

Purpose5/5

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

The description clearly specifies the verb 'Get' and the resource 'MigratorXpress binary version, capabilities, and supported databases, tasks, and modes'. It distinguishes from siblings like 'list_capabilities' by focusing on binary version and capabilities.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus siblings such as list_capabilities or execute_command. The description does not state prerequisites or exclusions.

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

list_capabilitiesA

List supported source databases, target databases, migration database types, tasks, migration DB modes, load modes, and FK modes.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.1/5.0
Behavior3/5

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

With no annotations, the description bears full burden. It only states 'list' without detailing read-only behavior, output format, or any side effects. However, the simplicity of the tool (no parameters, no side effects) partially mitigates this.

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

Conciseness5/5

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

The description is a single sentence that directly and efficiently conveys the tool's action and scope without any extraneous information.

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

Completeness5/5

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

Given zero parameters and no output schema, the description fully covers the tool's functionality by listing all categories of information it retrieves, making it contextually complete.

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

Parameters4/5

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

No parameters exist, so baseline is 4. The description adds value by enumerating what is listed, which is not present in the empty schema.

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

Purpose5/5

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

The description explicitly states that the tool lists supported source databases, target databases, migration database types, tasks, migration DB modes, load modes, and FK modes, clearly defining its purpose and distinguishing it from sibling tools that perform actions like execute or preview.

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

Usage Guidelines3/5

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

Usage is implied: it is a discovery tool for available capabilities. No explicit guidance on when to use or not use it, nor alternatives are mentioned, but its straightforward nature reduces ambiguity.

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

preview_commandA

Build and preview a MigratorXpress CLI command WITHOUT executing it. This shows the exact command that will be run. Use this FIRST before executing any command. License text is masked in the display output.

ParametersJSON Schema
NameRequiredDescriptionDefault
auth_fileYesPath to authentication/credentials JSON file
source_db_auth_idYesSource database credential ID from the auth file
source_db_nameYesSource database name to migrate from
target_db_auth_idYesTarget database credential ID from the auth file
target_db_nameYesTarget database name to migrate to
migration_db_auth_idYesMigration tracking 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
task_listNoTasks to run (e.g., translate, create, transfer, diff, copy_pk, copy_ak, copy_fk, all)
resumeNoResume a previous run by RUN_ID
fasttransfer_dir_pathNoPath to FastTransfer binary directory for parallel data transfer
fasttransfer_pNoFastTransfer parallel degree (number of threads per table transfer)
ft_large_table_thNoRow count threshold above which FastTransfer parallelism is used
n_jobsNoNumber of concurrent table transfers
cci_thresholdNoRow count threshold for clustered columnstore index creation on target
aci_thresholdNoRow count threshold for auto-created indexes on target
migration_db_modeNoMigration database mode: preserve (keep), truncate (clear data), drop (recreate)
compute_nbrowsNoCompute row counts for source tables before transfer
drop_tables_if_existsNoDrop target tables before creating them
load_modeNoData load mode: truncate (clear target first) or append
include_tablesNoTable include patterns, comma-separated. Supports wildcards
exclude_tablesNoTable exclude patterns, comma-separated. Supports wildcards
min_rowsNoMinimum row count filter — only migrate tables with at least this many rows
max_rowsNoMaximum row count filter — only migrate tables with at most this many rows
forced_int_id_prefixesNoColumn name prefixes to force integer identity mapping
forced_int_id_suffixesNoColumn name suffixes to force integer identity mapping
profiling_sample_pcNoPercentage of rows to sample for data profiling (0-100)
p_queryNoParallelism degree for profiling queries
min_sample_pc_profileNoMinimum sample percentage for profiling small tables
forceNoForce overwrite of existing migration data
basic_diffNoUse basic diff mode (row counts only, no checksum)
without_xidNoDisable transaction ID tracking during transfer
fk_modeNoForeign key mode: trusted, untrusted, or disabled
log_levelNoLogging verbosity level
log_dirNoDirectory for log files
no_bannerNoSuppress the startup banner
no_progressNoDisable progress bar display
quiet_ftNoSuppress FastTransfer console output during data transfer
licenseNoLicense key (will be masked in display)
license_fileNoPath to license key file
os_typeNoTarget operating system for command formattinglinux

TDQS

A3.9/5.0
Behavior3/5

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

No annotations are provided, so the description carries full burden. It states the tool does not execute and masks license text, but doesn't explicitly state there are no side effects or describe the output format.

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

Conciseness5/5

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

The description is three sentences, each adding value: purpose, output nature, usage order, and masking detail. No wasted words.

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

Completeness3/5

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

With 41 parameters and no output schema, the description lacks details on the preview output format (e.g., is it a string? formatted command?). Adequate but not complete.

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?

The schema has 100% description coverage, so the tool description adds no parameter-specific meaning beyond noting license masking. Baseline 3 is appropriate.

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

Purpose5/5

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

The description explicitly states 'Build and preview a MigratorXpress CLI command WITHOUT executing it' and 'Use this FIRST before executing any command', clearly differentiating it from its sibling execute_command.

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

Usage Guidelines4/5

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

The description provides clear guidance to 'Use this FIRST before executing any command', implying its role as a preliminary step before execute_command, though it doesn't explicitly list alternatives.

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

suggest_workflowA

Given a source database type, target database type, and optional constraint flag, suggest the full sequence of MigratorXpress tasks with example commands.

ParametersJSON Schema
NameRequiredDescriptionDefault
source_typeYesSource database type (e.g., 'oracle', 'postgresql', 'sqlserver', 'netezza')
target_typeYesTarget database type (e.g., 'postgresql', 'sqlserver')
include_constraintsNoWhether to include constraint copy steps (PK, AK, FK)

TDQS

A3.6/5.0
Behavior2/5

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

No annotations provided, so description carries full burden. It only describes what the tool does without disclosing behaviors like side effects, authorization needs, or error handling. For a suggestion tool, more transparency on output format or edge cases would be beneficial.

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

Conciseness5/5

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

The description is a single, efficient sentence that front-loads key inputs and output. No unnecessary words.

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

Completeness4/5

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

Given low complexity (3 params, no enums, no output schema), the description adequately explains what the tool does and its inputs. However, it could mention return format more explicitly, though it states 'suggest full sequence with example commands'.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents all parameters. The description adds minor context ('with example commands') but does not provide significant additional meaning beyond what the schema offers.

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

Purpose5/5

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

The description clearly states the tool suggests a full sequence of MigratorXpress tasks given database types and constraint flag. It specifies verb 'suggest' and resource 'workflow', and distinguishes from sibling tools like execute_command and preview_command.

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

Usage Guidelines3/5

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

The description implies usage when planning a migration workflow, but does not explicitly state when to use this tool vs alternatives or mention exclusions. Sibling tools are quite different, so context is clear but lacks explicit guidance.

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

validate_auth_fileA

Validate that an authentication file exists, is valid JSON, and optionally check for specific auth_id entries.

ParametersJSON Schema
NameRequiredDescriptionDefault
file_pathYesPath to the authentication JSON file
required_auth_idsNoOptional list of auth_id values that must be present

TDQS

A3.5/5.0
Behavior3/5

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

With no annotations, the description provides basic behavioral info: existence check, JSON validity check, optional auth_id check. However, it does not disclose error behavior, return value type, or whether it is read-only.

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?

Single sentence, front-loaded with the verb, no unnecessary words. Efficient and clear.

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

Completeness3/5

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

Adequate for a simple validation tool with two parameters, but lacks information on return behavior or error handling since no output schema exists. Could specify expected output (e.g., boolean).

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

Parameters3/5

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

Schema coverage is 100%, so the baseline is 3. The description adds minimal extra context beyond schema: it clarifies 'optional' for required_auth_ids and implies validation context for file_path. It does not significantly enhance understanding.

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

Purpose5/5

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

Description clearly states the tool validates an authentication file's existence, JSON validity, and optionally checks for specific auth_id entries. The verb 'Validate' and resource 'authentication file' are explicit, and it distinguishes from siblings like execute_command.

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

Usage Guidelines2/5

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

No explicit guidance on when to use this tool versus siblings or when not to use it. The description implies it's for validation, but lacks context or alternative recommendations.

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. Dates show when Glama detected each change.

  1. 6 tool updatesv0.1.6
    • First observedexecute_command
    • First observedget_version
    • First observedlist_capabilities
    • First observedpreview_command
    • First observedsuggest_workflow
    • First observedvalidate_auth_file

TDQS

A4/5.0
Disambiguation5/5

Each tool has a clearly distinct purpose: preview vs execute, version info, capabilities listing, workflow suggestions, and auth validation. No overlap in functionality.

Naming Consistency5/5

All tools follow a consistent verb_noun snake_case pattern (e.g., execute_command, get_version, list_capabilities). No mixing of conventions.

Tool Count5/5

6 tools is well-scoped for a migration server; covers core operations (preview, execute, capabilities, version, workflow suggestion, auth validation) without bloat.

Completeness4/5

The set covers essential migration workflows: planning (suggest_workflow), preview, execution, and validation. Minor gaps like explicit migration status tracking do not hinder core usage.

Maintenance

ActivityInactive
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • -
    license
    Not graded
    quality
    C
    maintenance
    An MCP server that bridges AI assistants with SQL databases, enabling natural language querying across multiple database types with built-in optimization and security.
    3
    -
  • A
    license
    Not graded
    quality
    D
    maintenance
    A unified MCP server for querying and managing multiple database types (PostgreSQL, MySQL, SQL Server, etc.) via natural language through AI assistants.
    GPL 3.0
  • A
    license
    Not graded
    quality
    D
    maintenance
    MCP server for connecting to databases (PostgreSQL, MySQL, SQL Server, Redis) enabling SQL queries, table exploration, and Redis key-value operations.
    1
    MIT
  • F
    license
    Not graded
    quality
    C
    maintenance
    MCP server for PostgreSQL database management, enabling AI-assisted schema exploration, stored procedure analysis, test data generation, and safe transaction management via Claude Desktop.
    -

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/arpe-io/migratorxpress-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server