Frontier Outrider API Reference
Reference for the outrider-assess MCP server in Remuda and the outriderd REST and JSON-RPC 2.0 API.
Outrider has two interfaces: the outrider-assess MCP server, reached through Remuda, and the outriderd REST and JSON-RPC 2.0 API. For what runs on the platform today, see Current scope.
outrider-assess (MCP through Remuda)
outriderd serves assessment over MCP at /mcp/assess, using real VMware and OpenStack clients. Remuda forwards that endpoint as the MCP server outrider-assess, which exposes five tools. Each call requires a Remuda token and is recorded in the audit log. Connect MCP clients to Remuda as described in the Remuda overview.
| Tool |
|---|
outrider_inventory_list |
outrider_vm_detail |
outrider_assess_vm |
outrider_run_status |
outrider_run_events |
outriderd REST and JSON-RPC
outriderd listens on port 8090. It exposes a REST API under /migrations and a JSON-RPC 2.0 endpoint at /jsonrpc. These endpoints have no authentication; deploy them on a trusted network only.
JSON-RPC methods
/jsonrpc accepts six methods: vmware_migrate_vm (start a job), vmware_migrate_plan (return a plan without creating a job), vmware_migrate_status, vmware_migrate_cancel, vmware_migrate_retry and vmware_migrate_rollback. Cancel, retry and rollback change job state only.
vmware_migrate_vm
| Parameter | Type | Default | Description |
|---|---|---|---|
source_vm |
string | required | VM name or managed object reference ID |
target_flavor |
string | auto-matched | OpenStack flavor ID. It must meet the source vCPU and RAM, or the plan fails. Auto-selected if omitted. |
target_network |
string | none | OpenStack network name or ID applied to all NICs. If omitted, networks are matched by name. |
target_keypair |
string | none | Recorded with the job. |
power_off_source |
boolean | true |
Recorded with the job. |
dry_run |
boolean | true |
Plan only. |
mode |
string | cold |
cold or warm. warm adds a plan warning. |
pipeline |
string | auto |
auto, A or B; auto resolves to B. |
preserve_macs |
boolean | true |
Recorded with the job. |
Start a job:
{"jsonrpc":"2.0","method":"vmware_migrate_vm","params":{"source_vm":"web-server-01"},"id":1}
Response:
{"jsonrpc":"2.0","result":{"job_id":"3f1c…","migration_state":"planned"},"id":1}
Get the plan directly, without creating a job:
{"jsonrpc":"2.0","method":"vmware_migrate_plan","params":{"source_vm":"web-server-01"},"id":2}
The result contains source_vm_name, source_vm_id, source_vcpus, source_ram_mb, source_disks[] (label, size_bytes, thin_provisioned, controller_type, datastore, vmdk_path), source_networks[], matched_flavor (flavor_id, flavor_name, vcpus, ram_mb, disk_gb, is_bfv_compatible), network_mappings[] (source_network, target_network, mapped, mac_address), pipeline, mode, warnings[], errors[] and can_proceed.