How it works
A control plane for your agents, an inference path for your robots
vlaport separates configuring endpoints from serving actions. Your AI agent uses the MCP server to set things up; your robot talks only to its endpoint.
From zero to an endpoint
Step 1: Connect your agent
Add the vlaport MCP server (in development) to the AI agent you already use. It is a thin client of the vlaport API and acts only with your credentials, inside your organisation.
Step 2: Register a policy and a project
Your agent registers your policy weights and creates a project. Each project gets its own credentials.
Step 3: Deploy an endpoint
Your agent deploys the policy to a GPU in the EU region. GPU deployments are approved and given a quota before they run.
Step 4: Point your robot at it
Your robot's openpi or LeRobot client connects to <company>-<project>-<id>.vlaport.com with an API token. Status and latency come back through the same agent.
Control plane: MCP
The vlaport API is the source of truth. The vlaport MCP server (in development) is a thin client of that API and has no direct access to the serving infrastructure. Your agent registers policies, creates projects, deploys endpoints and checks their status; operators and CI pipelines can use the same server. MCP never sits on the real-time path, so it does not change the robot client. See the MCP tools.
Inference path: openpi and LeRobot compatible
Each deployment gets its own endpoint, named <company>-<project>-<id>.vlaport.com. It speaks the openpi WebSocket protocol and the LeRobot gRPC async-inference protocol, so existing clients only change the endpoint URL and API key, not your robot code. Model versions are pinned per robot.
from openpi_client import websocket_client_policy
# Before: a self-hosted openpi policy server
# policy = websocket_client_policy.WebsocketClientPolicy(host="localhost", port=8000)
# After: your vlaport endpoint (same client, same calls)
policy = websocket_client_policy.WebsocketClientPolicy(
host="<company>-<project>-<id>.vlaport.com",
# plus your vlaport API key: only the endpoint URL and API key change
)
action_chunk = policy.infer(observation)["actions"]Illustrative. Final connection details are shared with early-access partners.
Async action chunking
VLA policies return a chunk of future actions rather than a single one. With async chunking the robot keeps executing the current chunk while the next one is computed and sent, so network delay overlaps with execution instead of stalling the robot.
Our research goes further: forecasting each robot's network delay and letting the server choose how much of a chunk is already committed, extending real-time chunking. That is part of our planned research.
Deadline-aware fleet scheduling
Generic GPU serving batches for throughput. Robots care about deadlines: an action that arrives late is a wasted action. vlaport's scheduler orders work by each robot's action deadline, so a fleet can share a GPU without the most urgent robot waiting behind others.
Per-robot latency telemetry
For every robot we record p50 and p99 latency, action staleness and buffer under-runs. The MCP status tool returns an endpoint's current p50 and p99 latency.
Edge–cloud split Roadmap
On the roadmap: a small edge policy next to the robot corrects cloud action chunks and asks the cloud for new ones only when it is uncertain, to ride out short network outages and reduce cloud calls.
What we plan to validate
Our planned milestone is proving π0.5/SmolVLA on a real robot arm. H1 and H2 are planned to be tested there; H3 (edge–cloud split) is planned to be tested at a later stage. These are targets, not results.
Research targets
Target, not a resultThese are hypotheses we plan to test. They are goals, not measured results, and nothing on this site claims they have been achieved.
- H1
- Task success on a real robot served over the WAN stays close to a local-GPU baseline (target: the lower bound of the 95% Wilson interval is at least 90% of the baseline success rate).Planned to be tested on a real robot arm.
- H2
- The deadline-aware scheduler serves at least twice as many robots per GPU as FIFO scheduling, at no more than 0.1% deadline misses, measured within one tenant's fleet on one GPU (target).Planned to be tested on a real robot arm.
- H3
- Edge–cloud split serving cuts cloud calls by at least half with at most a 3-percentage-point loss in task success, and tolerates network outages of up to 300 ms with zero unsafe actions during an outage (target, roadmap).H3 is planned to be tested at a later stage.
Become an early-access design partner
vlaport is in development. We are looking for robot-learning teams who serve openpi or LeRobot policies today and want to shape a managed, EU-hosted endpoint with us. Tell us about your robots and policies.
Sign-up is by email only. This site has no forms, sets no cookies and collects no personal data.