> ## Documentation Index
> Fetch the complete documentation index at: https://docs.ultra.security/llms.txt
> Use this file to discover all available pages before exploring further.

# ultra migrate

> Import existing MCP servers into Ultra

Discover MCP servers configured in your clients and import them into Ultra's configuration.

## Usage

```bash theme={null}
ultra migrate [flags]
```

## Flags

| Flag        | Short | Default | Description                                                                            |
| ----------- | ----- | ------- | -------------------------------------------------------------------------------------- |
| `--config`  |       |         | Path to Ultra config file                                                              |
| `--yes`     | `-y`  | `false` | Skip confirmation prompt                                                               |
| `--list`    | `-l`  | `false` | List discovered servers without migrating                                              |
| `--dry-run` |       | `false` | Preview changes without applying                                                       |
| `--from`    |       |         | Migrate from specific client only (`claude`, `cursor`, `codex`, `ona`, `hermes`, etc.) |

## Examples

```bash theme={null}
# Interactive migration wizard
ultra migrate

# List discovered MCP servers without migrating
ultra migrate --list

# Dry run to preview changes
ultra migrate --dry-run

# Migrate from a specific client only
ultra migrate --from claude

# Non-interactive migration
ultra migrate --yes

# Migrate into a named profile's config
ultra --profile dev migrate
```

## How It Works

1. Scans Claude Desktop, Cursor, Codex, Ona, Hermes, and other client config files for MCP server entries
2. Deduplicates servers found in multiple clients
3. Validates server configurations and warns about issues
4. Writes discovered servers to Ultra's config as upstream entries
5. Updates client configs to point to Ultra

## Dry Run

The `--dry-run` flag shows exactly what Ultra config would be generated without making any changes. Useful for reviewing the migration before committing.

## Profiles

`ultra migrate` respects the global `--profile` flag. When a profile is set, the migration writes to that profile's config path instead of the default.

```bash theme={null}
# Default: writes to ~/.config/ultra/config.yaml
ultra migrate

# With profile: writes to ~/.config/ultra/profiles/dev/config.yaml
ultra --profile dev migrate
```

You can also set the `ULTRA_PROFILE` environment variable instead of passing `--profile` on every invocation.
