MigratorXpress MCP Server
by arpe-io
README.md
# MigratorXpress MCP Server
<!-- mcp-name: io.github.arpe-io/migratorxpress-mcp -->
[](https://pypi.org/project/migratorxpress-mcp/)
[](https://opensource.org/licenses/MIT)
[](https://registry.modelcontextprotocol.io/?q=arpe-io)
A [Model Context Protocol](https://modelcontextprotocol.io/) (MCP) server for [MigratorXpress](https://aetperf.github.io/MigratorXpress-Documentation/), 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
```bash
pip install -e .
```
Or install dependencies directly:
```bash
pip install -r requirements.txt
```
## 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:
```bash
cp .env.example .env
```
### Claude Code Configuration
Add to your Claude Code MCP settings:
```json
{
"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
```bash
pip install -e ".[dev]"
python -m pytest tests/ -v
```
## License
MIT
TDQS
A4/5.0
Scored across 6 tools
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
ResponsivenessNo issues