Lerobot Mcp — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited Lerobot Mcp (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
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.
lerobot-* entry points from a managed, local, or installed LeRobot checkout.examples/ tree with path traversal protection.strategies, optimizers, schedulers, and RL algorithms by static source inspection.
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 devMost 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:
LEROBOT_ROOT=/path/to/lerobot to use a specific checkout.LEROBOT_MCP_LEROBOT_PYTHON=3.13 to use a different Python when preparing the managedfallback.
LEROBOT_MCP_LEROBOT_EXTRAS=dataset,core_scripts to install more LeRobot extras by default.LEROBOT_MCP_AUTO_SETUP=0 to disable the managed fallback.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 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.
The server does not expose arbitrary shell execution. It only runs:
lerobot-train, lerobot-eval, lerobot-record, lerobot-replay, lerobot-annotate, lerobot-rollout, and hardware setup utilities.
examples/ directory.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=actlerobot_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 useit for the current MCP session.
lerobot_install_or_update_lerobot: clone or update LeRobot main into the managed checkout andprepare its uv environment.
lerobot_list_commands: list discovered LeRobot console scripts.lerobot_capabilities: audit current LeRobot commands, extras, examples, and registered components.lerobot_command_help: run --help for 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 under examples/.lerobot_list_jobs, lerobot_job_status, lerobot_job_logs, lerobot_cancel_job: managebackground 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.0parquet layout.
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_*.parquetmeta/stats.json, with per-episode stats flattened into the episode parquet metadataPreview 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.
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.
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.
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.
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.