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.