UniRoboSim MCP
UniRoboSim MCP
unirobosim-mcp предоставляет доступ к данным UniRoboSim, состоянию симуляции, изображениям с камер бэкенда и явно включённому управлению симуляцией для MCP-совместимых клиентов. Сервер имеет два профиля развёртывания:
Профиль Evidence (по умолчанию): ограниченный доступ только для чтения к корню данных, выбранному оператором.
Профиль Control (явный): инструменты Evidence плюс инструменты Read и Control для сессий симулятора, созданных и принадлежащих этому серверу.
Сервер не подключается к сессиям, созданным другими приложениями.
Установка
Поддерживается Python >=3.11,<3.13. Установите Core, этот пакет и адаптер, требуемый выбранным бэкендом, в одном окружении.
conda create -n unirobosim-mcp python=3.12 pip -y
conda activate unirobosim-mcp
git clone https://github.com/GitHofee/UniRoboSim.git
git clone https://github.com/GitHofee/UniRoboSim-mcp.git
git clone https://github.com/GitHofee/UniRoboSim-mujoco.git # example backend
python -m pip install ./UniRoboSim ./UniRoboSim-mcp ./UniRoboSim-mujocoОбычные развёртывания используют текущую среду выполнения MCP 2.x. Среды Isaac Lab 3.0 сохраняют проверенные версии Pydantic и Uvicorn, поэтому установите дополнительный пакет совместимости там:
python -m pip install './UniRoboSim-mcp[isaaclab]'Дополнительный пакет выбирает MCP 1.10.1; он предоставляет тот же каталог инструментов UniRoboSim и был проверен через реальный протокол stdio с Isaac Sim 6.0.1.
Related MCP server: gazebo-mcp
Профиль Evidence
unirobosim-mcp --root /absolute/path/to/approved/evidenceUNIROBOSIM_EVIDENCE_ROOT может использоваться вместо --root:
export UNIROBOSIM_EVIDENCE_ROOT=/absolute/path/to/approved/evidence
unirobosim-mcpTool | Contract |
| Возвращает активный корень, жёсткие лимиты запросов и статус управления. |
| Перечисляет разрешённые данные с ограниченным POSIX-шаблоном. |
| Читает один ограниченный артефакт UTF-8 или JSON. |
| Проверяет закрытую трассу и возвращает её компактный манифест. |
| Запрашивает события публикации, очистки и сброса без полной геометрии. |
| Запрашивает принятые, отфильтрованные и отклонённые решения о публикации. |
| Восстанавливает выбранные активные отладочные примитивы в последовательности. |
Абсолютные пути, обход каталогов, выход за пределы символьных ссылок, неутверждённые расширения, слишком большие файлы, чрезмерное сканирование и чрезмерное количество результатов отклоняются.
Профиль Control
Управление должно быть явно включено. Локальные файлы ресурсов запрещены, если их родительское дерево не внесено в белый список с помощью --asset-root.
unirobosim-mcp \
--root /absolute/path/to/approved/evidence \
--enable-control \
--asset-root /absolute/path/to/approved/assets \
--max-sessions 2 \
--lease-timeout-seconds 300API чтения
Инструменты чтения требуют идентификатор сессии, но не лицензию на запись.
Tool | Contract |
| Обнаруживает и проверяет установленные точки входа бэкенда. |
| Перечисляет сессии, принадлежащие этому серверу; значения лицензий никогда не возвращаются. |
| Возвращает переносимый граф сцены для обнаружения объектов и камер. |
| Читает типизированное состояние для твёрдого тела, сочленения, деформируемого объекта, частичной жидкости или камеры. |
| Возвращает изображение MCP, содержащее данные PNG, закодированные из буфера RGB-камеры бэкенда. |
simulation_get_entity сообщает канонический путь, тип объекта, исходную конфигурацию MCP, тик симуляции, формы и типы данных массивов, а также данные, специфичные для типа. include_values=true включает ограниченные значения; include_contact=true добавляет состояние контакта твёрдого тела.
simulation_capture_camera — это не снимок экрана рабочего стола или браузера. Он вызывает выбранный бэкенд через Camera.read("rgb"), проверяет канонический буфер uint8 [environment,height,width,3] и кодирует этот буфер в PNG. save_to_evidence=true также записывает изображение в <root>/screenshots/ и возвращает его SHA-256 дайджест и размеры.
API управления
Все изменения требуют непрозрачный lease_id, возвращаемый simulation_create, и уникальный command_id.
Tool | Contract |
| Возвращает политику владения, разрешённые корни и жёсткие лимиты ресурсов. |
| Создаёт принадлежащую сессию EasyAPI для явного бэкенда. |
| Добавляет коробку, жёсткий ресурс, сочленение, камеру, деформируемый объект или частичную жидкость до запуска. |
| Компилирует сцену и возвращает отпечаток сборки бэкенда. |
| Продлевает лицензию на запись без изменения её значения. |
| Продвигает симуляцию на ограниченное количество шагов. |
| Сбрасывает все или выбранные среды. |
| Применяет команды сочленения, жёсткого момента, деформируемого объекта, жидкости, сцены или очистки отладки. |
| Закрывает принадлежащую сессию и освобождает ресурсы бэкенда. |
Повторное использование command_id с идентичными входными данными возвращает кэшированный результат с idempotent_replay=true. Повторное использование этого идентификатора с другими входными данными отклоняется. Просроченные сессии закрываются автоматически. Каждое применённое или отклонённое изменение записывается в mcp-control-audit.jsonl; значения лицензий исключаются из записи аудита.
Правило работы агента
Агент, использующий профиль Control, должен следовать этой последовательности:
Вызовите
simulation_list_backendsи явно выберите доступный бэкенд.Вызовите
simulation_create; сохраняйте возвращённую лицензию только для операций записи.Добавьте все объекты с уникальными идентификаторами команд, затем вызовите
simulation_start.Используйте
simulation_scene_snapshotдля обнаружения канонических путей объектов и камер.Используйте
simulation_get_entityдля целевого состояния иsimulation_capture_cameraдля визуальной проверки.Повторно используйте идентификатор команды только для повторной попытки идентичного запроса на запись.
Вызовите
simulation_closeдля каждой созданной сессии, включая неудачные рабочие процессы.
Агент не должен делать вывод о поддержке бэкенда на основе доступности инструментов. Неподдерживаемые возможности симулятора сообщаются через согласование возможностей или выбранным адаптером.
Loopback HTTP
unirobosim-mcp \
--root /absolute/path/to/approved/evidence \
--transport streamable-http \
--host 127.0.0.1 \
--port 8766Неаутентифицированный HTTP ограничен адресами 127.0.0.1, localhost или ::1. Удалённое развёртывание требует аутентифицированного и авторизованного шлюза. Режим управления не должен быть напрямую доступен в ненадёжной сети.
Программное встраивание
from pathlib import Path
from unirobosim_mcp import ControlLimits, EvidenceLimits, SimulationControl, create_server
root = Path("/approved/evidence")
control = SimulationControl(
root,
asset_roots=(Path("/approved/assets"),),
limits=ControlLimits(max_sessions=1, lease_timeout_seconds=120),
)
server = create_server(
root,
limits=EvidenceLimits(max_results=50, max_query_items=100),
control=control,
)
server.run(transport="stdio")Проверка
python -m pip install -e '.[dev]'
ruff format --check src tests
ruff check src tests
mypy src
coverage run -m pytest
coverage reportПриёмка релиза вызывает каждый опубликованный инструмент MCP через реальный внутрипроцессный MCP-клиент. Дополнительные контрактные тесты охватывают все поддерживаемые типы объектов и семейства команд, лицензии, идемпотентность, истечение срока действия, разрешённые ресурсы, лимиты ресурсов, записи аудита, кодирование PNG и сохранённые доказательства снимков экрана. Нативная приёмка выполняется отдельно для каждого установленного адаптера симулятора; функция не считается пройденной для бэкенда, если этот нативный запуск не завершился успешно.
Основные контракты и установка адаптера описаны в UniRoboSim Core.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceMCP server for controlling Universal Robots arms and Robotiq grippers via RTDE protocol, enabling motion, force, I/O, and gripper operations.1MIT
- AlicenseNot gradedqualityAmaintenanceMCP server for AI agents to drive Gazebo / gz-sim simulation, with offline mock mode for CI/demos.4MIT
- FlicenseAqualityAmaintenanceMCP server that exposes a deterministic force-on-force simulation of FPV sUAS vs counter-UAS RF direction finding as tools for AI agents to run engagements, sweep seeds, and compare configurations.5
- FlicenseNot gradedqualityCmaintenanceMCP server for controlling a simulated robot arm with vision-based pick-and-place, driven by LLM or manual control.1
Related MCP Connectors
An authenticated remote MCP server for user-owned devices and one-shot capability invocation.
MCP server exposing the Backtest360 engine API as tools for AI agents.
Remote MCP server for RunComfy Serverless API (ComfyUI): deployments and async inference.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- 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/GitHofee/UniRoboSim-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server