Skip to main content
Glama
GitHofee

UniRoboSim MCP

by GitHofee

UniRoboSim MCP

English | 简体中文

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/evidence

UNIROBOSIM_EVIDENCE_ROOT может использоваться вместо --root:

export UNIROBOSIM_EVIDENCE_ROOT=/absolute/path/to/approved/evidence
unirobosim-mcp

Tool

Contract

evidence_server_info

Возвращает активный корень, жёсткие лимиты запросов и статус управления.

list_debug_evidence

Перечисляет разрешённые данные с ограниченным POSIX-шаблоном.

read_debug_evidence

Читает один ограниченный артефакт UTF-8 или JSON.

summarize_debug_trace

Проверяет закрытую трассу и возвращает её компактный манифест.

query_debug_events

Запрашивает события публикации, очистки и сброса без полной геометрии.

query_debug_reports

Запрашивает принятые, отфильтрованные и отклонённые решения о публикации.

query_debug_primitives

Восстанавливает выбранные активные отладочные примитивы в последовательности.

Абсолютные пути, обход каталогов, выход за пределы символьных ссылок, неутверждённые расширения, слишком большие файлы, чрезмерное сканирование и чрезмерное количество результатов отклоняются.

Профиль 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 300

API чтения

Инструменты чтения требуют идентификатор сессии, но не лицензию на запись.

Tool

Contract

simulation_list_backends

Обнаруживает и проверяет установленные точки входа бэкенда.

simulation_list_sessions

Перечисляет сессии, принадлежащие этому серверу; значения лицензий никогда не возвращаются.

simulation_scene_snapshot

Возвращает переносимый граф сцены для обнаружения объектов и камер.

simulation_get_entity

Читает типизированное состояние для твёрдого тела, сочленения, деформируемого объекта, частичной жидкости или камеры.

simulation_capture_camera

Возвращает изображение 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

simulation_control_info

Возвращает политику владения, разрешённые корни и жёсткие лимиты ресурсов.

simulation_create

Создаёт принадлежащую сессию EasyAPI для явного бэкенда.

simulation_configure_entity

Добавляет коробку, жёсткий ресурс, сочленение, камеру, деформируемый объект или частичную жидкость до запуска.

simulation_start

Компилирует сцену и возвращает отпечаток сборки бэкенда.

simulation_renew_lease

Продлевает лицензию на запись без изменения её значения.

simulation_step

Продвигает симуляцию на ограниченное количество шагов.

simulation_reset

Сбрасывает все или выбранные среды.

simulation_command

Применяет команды сочленения, жёсткого момента, деформируемого объекта, жидкости, сцены или очистки отладки.

simulation_close

Закрывает принадлежащую сессию и освобождает ресурсы бэкенда.

Повторное использование command_id с идентичными входными данными возвращает кэшированный результат с idempotent_replay=true. Повторное использование этого идентификатора с другими входными данными отклоняется. Просроченные сессии закрываются автоматически. Каждое применённое или отклонённое изменение записывается в mcp-control-audit.jsonl; значения лицензий исключаются из записи аудита.

Правило работы агента

Агент, использующий профиль Control, должен следовать этой последовательности:

  1. Вызовите simulation_list_backends и явно выберите доступный бэкенд.

  2. Вызовите simulation_create; сохраняйте возвращённую лицензию только для операций записи.

  3. Добавьте все объекты с уникальными идентификаторами команд, затем вызовите simulation_start.

  4. Используйте simulation_scene_snapshot для обнаружения канонических путей объектов и камер.

  5. Используйте simulation_get_entity для целевого состояния и simulation_capture_camera для визуальной проверки.

  6. Повторно используйте идентификатор команды только для повторной попытки идентичного запроса на запись.

  7. Вызовите 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.

F
license - not found
Not graded
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

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

  • F
    license
    A
    quality
    A
    maintenance
    MCP 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

View all related MCP servers

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.

View all MCP Connectors

Latest Blog Posts

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