lerobot-mcp
The lerobot-mcp server provides a structured, auditable interface for managing LeRobot workflows, including command execution, dataset management, environment configuration, and background job management.
Server & Checkout Management
View resolved server configuration and LeRobot checkout paths
Clone or update a LeRobot checkout to a specific branch/root
List all discovered LeRobot console scripts and supported commands
Audit available commands, extras, examples, and registered components (policies, robots, cameras, etc.)
Browse public classes/functions in LeRobot modules via static source inspection
Command Building & Execution
Preview (dry-run) LeRobot entry point commands from structured options
Fetch
--helpoutput for any discovered LeRobot commandExecute LeRobot entry points as foreground or background jobs
Example Scripts
List available Python example scripts in the LeRobot checkout
Preview or run example scripts from LeRobot's
examples/directory
Background Job Management
List, monitor status, fetch logs, and cancel background jobs started in the current session
Dataset Inspection & Search
Summarize metadata for local or Hugging Face Hub datasets
Search Hugging Face Hub for robotics datasets by robot type, format, size, task, episode count, tags, and compatibility hints
Inspect Hugging Face policy/model repos for configs, weights, policy type, and declared features
Check the authenticated Hugging Face account and retrieve basic repository information
Dataset Format Conversion
Convert LeRobot v2.1 datasets to the current v3.0 parquet layout (with optional Hub push)
Inspect and convert other robotics datasets using a pinned Forge, supporting various source/target formats
Preview any conversion or inspection command before execution
Allows searching and inspecting datasets from the Hugging Face Hub, including metadata, robot types, formats, and conversion hints.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@lerobot-mcpInstall LeRobot and list available commands"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
lerobot-mcp
MCP server for LeRobot workflows.
lerobot-mcp gives MCP clients a structured, auditable interface over the current LeRobot CLI,
examples, source registries, datasets, and dataset conversion workflows.
Features
Discover available
lerobot-*entry points from a managed, local, or installed LeRobot checkout.List and run scripts under LeRobot's
examples/tree with path traversal protection.Audit registered policies, rewards, robots, teleoperators, cameras, envs, processors, rollout strategies, optimizers, schedulers, and RL algorithms by static source inspection.
Build dry-run LeRobot commands from structured MCP arguments.
Run LeRobot commands as foreground calls or managed background jobs.
Inspect LeRobot dataset metadata without importing heavy robotics dependencies at MCP startup.
Inspect policy/model repo metadata for observation, image, state, and action contract hints.
Optionally use Hub auth from your existing environment.
Convert robotics datasets into LeRobot-compatible formats.
Search datasets by robot, format, task, size, episode count, and compatibility hints.
Related MCP server: Hugging Face MCP Server
Install
From PyPI:
uv tool install lerobot-mcpFrom a checkout:
git clone https://github.com/noah-wardlow/lerobot-mcp.git
cd lerobot-mcp
uv sync --extra devWith Docker:
docker build -t lerobot-mcp .
docker run -i --rm lerobot-mcpThe image runs the MCP server over stdio, so any MCP client can launch it with
docker run -i --rm lerobot-mcp as the command.
MCP Quick Start
Most users should use the LeRobot checkout they already have. Start your MCP client from inside that
checkout, set LEROBOT_ROOT=/path/to/lerobot in the MCP server environment, or ask the agent to find
and select a checkout with lerobot_find_lerobot_roots and lerobot_use_lerobot_root.
If no checkout is found, LeRobot-backed tools lazily prepare a managed fallback at
~/.cache/lerobot-mcp/lerobot with Python 3.12 and LeRobot's dataset extra. That fallback covers
dataset metadata, format conversion, and common command help without requiring a separate setup step.
Advanced install controls:
Set
LEROBOT_ROOT=/path/to/lerobotto use a specific checkout.Set
LEROBOT_MCP_LEROBOT_PYTHON=3.13to use a different Python when preparing the managed fallback.Set
LEROBOT_MCP_LEROBOT_EXTRAS=dataset,core_scriptsto install more LeRobot extras by default.Set
LEROBOT_MCP_AUTO_SETUP=0to disable the managed fallback.
Codex
Recommended:
codex mcp add lerobot-mcp -- lerobot-mcpManual fallback:
[mcp_servers.lerobot_mcp]
command = "lerobot-mcp"
startup_timeout_sec = 20
tool_timeout_sec = 3600Restart Codex, run /mcp, then ask: "List LeRobot commands."
Claude Code
claude mcp add lerobot-mcp -- lerobot-mcpFrom a checkout:
claude mcp add lerobot-mcp -- /path/to/lerobot-mcp/.venv/bin/lerobot-mcpRestart Claude Code, run /mcp, then ask: "Show lerobot_capabilities."
Resolution order is: LEROBOT_ROOT, current project ancestors, managed checkout
~/.cache/lerobot-mcp/lerobot, ~/hrl/lerobot, then an installed lerobot package.
Tool Model
The server does not expose arbitrary shell execution. It only runs:
LeRobot entry points discovered from the configured checkout or installed distribution, such as
lerobot-train,lerobot-eval,lerobot-record,lerobot-replay,lerobot-annotate,lerobot-rollout, and hardware setup utilities.Python scripts inside the configured LeRobot checkout's
examples/directory.Dataset conversion helpers exposed by this MCP server.
Options are passed as structured key/value pairs and serialized to draccus-compatible arguments:
{
"command": "train",
"options": {
"policy.type": "act",
"dataset.repo_id": "lerobot/aloha_mobile_cabinet"
}
}That becomes:
uv run lerobot-train --dataset.repo_id=lerobot/aloha_mobile_cabinet --policy.type=actMain MCP Tools
lerobot_server_config: show resolved LeRobot root, uv usage, and managed Python/extras.lerobot_find_lerobot_roots,lerobot_use_lerobot_root: find an existing LeRobot checkout and use it for the current MCP session.lerobot_install_or_update_lerobot: clone or update LeRobotmaininto the managed checkout and prepare itsuvenvironment.lerobot_list_commands: list discovered LeRobot console scripts.lerobot_capabilities: audit current LeRobot commands, extras, examples, and registered components.lerobot_command_help: run--helpfor a discovered LeRobot command.lerobot_list_examples: list runnable examples in the checkout.lerobot_build_command: dry-run a command from structured options.lerobot_run_command: run a known LeRobot entry point.lerobot_run_example: run an example script underexamples/.lerobot_list_jobs,lerobot_job_status,lerobot_job_logs,lerobot_cancel_job: manage background jobs.lerobot_inspect_dataset_metadata: summarize metadata for a local or Hub dataset.lerobot_hf_search_datasets: search datasets by robot, format, size, task, tags, and demo fit.lerobot_inspect_policy_repo: inspect a Hugging Face policy/model repo for config files, weights, policy type, dataset/robot hints, FPS, and declared observation/action features.lerobot_convert_dataset_to_latest_format: convert LeRobot v2.1 datasets to the current v3.0 parquet layout.
LeRobot Dataset Format Migration
Latest LeRobot main currently uses the v3.0 parquet layout. The upstream converter supports v2.1
datasets and rewrites them to:
data/chunk-*/file_*.parquetvideos/<camera>/chunk-*/file_*.mp4meta/tasks.parquetmeta/episodes/chunk-*/file_*.parquetaggregate
meta/stats.json, with per-episode stats flattened into the episode parquet metadata
Preview a conversion:
{
"repo_id": "lerobot/berkeley_autolab_ur5",
"root": "/tmp/berkeley_autolab_ur5",
"force_conversion": true
}Run it as a background job:
{
"repo_id": "lerobot/berkeley_autolab_ur5",
"root": "/tmp/berkeley_autolab_ur5",
"force_conversion": true,
"background": true,
"push_to_hub": false
}push_to_hub defaults to false. For Hub datasets that already have a v3.0 tag, omit
force_conversion to let the upstream script reuse the latest compatible version. Older branches such
as v1.x or v2.0 need to be brought to v2.1 before using this converter.
Dataset Search
Search is intended to help a user find datasets that fit their robot, computer, and target format. It can combine Hub results with locally configured registry metadata.
Example MCP arguments:
{
"query": "pusht",
"robot": "aloha",
"format": "lerobot",
"max_size_gb": 10,
"demo_suitable": true,
"sort": "lastModified",
"limit": 5
}Results include source, repo id, detected format, robot hints, tags, scale when known, popularity signals, and conversion hints.
For offline or deterministic tests, set FORGE_REGISTRY_PATH to a local datasets.json registry.
Policy Repo Inspection
Use policy inspection before wiring a real browser or simulator rollout. It does not import LeRobot or run inference; it reads Hub repo metadata and lightweight JSON config files.
Example MCP arguments:
{
"repo_id": "username/my-policy",
"include_raw_configs": false
}The result includes config/weight file presence, policy type, dataset and robot hints, FPS, declared
input/output features, and classified image_keys, state_keys, and action_keys. Clients can use
that to map camera captures and state vectors before starting an inference server.
Development
uv sync --extra dev
uv run ruff check .
uv run mypy
uv run pytest -vvRun against latest LeRobot main:
cd /path/to/lerobot
git checkout main
git pull --ff-only origin main
cd /path/to/lerobot-mcp
LEROBOT_ROOT=/path/to/lerobot uv run lerobot-mcpBuild the package:
uv buildThis repository is Apache-2.0 licensed.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/noah-wardlow/lerobot-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server