Skip to main content
Glama
GitHofee

UniRoboSim MCP

by GitHofee

UniRoboSim MCP

English | 简体中文

unirobosim-mcp expone la evidencia de UniRoboSim, el estado de simulación, las imágenes de cámara del backend y el control de simulación explícitamente habilitado a clientes compatibles con MCP. El servidor tiene dos perfiles de implementación:

  • Perfil de evidencia (predeterminado): acceso acotado y de solo lectura a una raíz de evidencia seleccionada por el operador.

  • Perfil de control (explícito): herramientas de evidencia más herramientas de lectura y control para sesiones de simulador creadas y propiedad de este servidor.

El servidor no se adjunta a sesiones creadas por otras aplicaciones.

Instalación

Se admite Python >=3.11,<3.13. Instale Core, este paquete y el adaptador requerido por el backend seleccionado en el mismo entorno.

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

Las implementaciones generales usan el runtime MCP 2.x actual. Los entornos Isaac Lab 3.0 conservan sus pines verificados de Pydantic y Uvicorn, por lo que instale el extra de compatibilidad allí:

python -m pip install './UniRoboSim-mcp[isaaclab]'

El extra selecciona MCP 1.10.1; expone el mismo catálogo de herramientas de UniRoboSim y se verificó mediante el protocolo stdio real con Isaac Sim 6.0.1.

Related MCP server: gazebo-mcp

Perfil de evidencia

unirobosim-mcp --root /absolute/path/to/approved/evidence

UNIROBOSIM_EVIDENCE_ROOT puede usarse en lugar de --root:

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

Herramienta

Contrato

evidence_server_info

Devuelve la raíz activa, los límites de consulta estrictos y el estado de control.

list_debug_evidence

Lista la evidencia permitida con un glob POSIX acotado.

read_debug_evidence

Lee un artefacto UTF-8 o JSON acotado.

summarize_debug_trace

Valida un rastro cerrado y devuelve su manifiesto compacto.

query_debug_events

Consulta eventos de publicación, borrado y reinicio sin geometría completa.

query_debug_reports

Consulta decisiones de publicación aceptadas, filtradas y descartadas.

query_debug_primitives

Reconstruye primitivas de depuración activas seleccionadas en una secuencia.

Se rechazan rutas absolutas, traversal, enlaces simbólicos que escapan, extensiones no aprobadas, archivos sobredimensionados, escaneos excesivos y recuentos de resultados excesivos.

Perfil de control

El control debe habilitarse explícitamente. Los archivos de activos locales se deniegan a menos que su árbol padre esté en la lista permitida con --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 de lectura

Las herramientas de lectura requieren un ID de sesión pero no el lease de escritura.

Herramienta

Contrato

simulation_list_backends

Descubre y prueba los puntos de entrada de backend instalados.

simulation_list_sessions

Lista las sesiones propiedad de este servidor; los valores de lease nunca se devuelven.

simulation_scene_snapshot

Devuelve el grafo de escena portátil para el descubrimiento de entidades y cámaras.

simulation_get_entity

Lee el estado tipado de un cuerpo rígido, articulación, deformable, fluido de partículas o cámara.

simulation_capture_camera

Devuelve una imagen MCP que contiene datos PNG codificados desde el búfer de cámara RGB del backend.

simulation_get_entity informa la ruta canónica, el tipo de entidad, la configuración MCP original, el tick de simulación, las formas y tipos de datos de los arreglos, y los datos específicos del tipo. include_values=true incluye valores acotados; include_contact=true agrega el estado de contacto del cuerpo rígido.

simulation_capture_camera no es una captura de pantalla de escritorio o navegador. Llama al backend seleccionado a través de Camera.read("rgb"), valida el búfer uint8 canónico [environment,height,width,3] y lo codifica como PNG. save_to_evidence=true también escribe la imagen bajo <root>/screenshots/ y devuelve su digest SHA-256 y dimensiones.

API de control

Todas las mutaciones requieren el lease_id opaco devuelto por simulation_create y un command_id único.

Herramienta

Contrato

simulation_control_info

Devuelve la política de propiedad, las raíces permitidas y los límites de recursos estrictos.

simulation_create

Crea una sesión EasyAPI propiedad de un backend explícito.

simulation_configure_entity

Agrega una caja, activo rígido, articulación, cámara, deformable o fluido de partículas antes del inicio.

simulation_start

Compila la escena y devuelve su huella de compilación del backend.

simulation_renew_lease

Extiende el lease de escritura sin cambiar su valor.

simulation_step

Avanza la simulación un número acotado de pasos.

simulation_reset

Reinicia todas o las entornos seleccionados.

simulation_command

Aplica comandos de articulación, par de torsión rígido, deformable, fluido, escena o borrado de depuración.

simulation_close

Cierra la sesión propiedad y libera los recursos del backend.

El uso repetido de un command_id con entrada idéntica devuelve el resultado en caché con idempotent_replay=true. Reutilizar ese identificador con entrada diferente se rechaza. Las sesiones expiradas se cierran automáticamente. Cada mutación aplicada o rechazada se escribe en mcp-control-audit.jsonl; los valores de lease se excluyen del registro de auditoría.

Regla operativa del agente

Un agente que use el perfil de control debe seguir esta secuencia:

  1. Llame a simulation_list_backends y seleccione un backend disponible explícitamente.

  2. Llame a simulation_create; conserve el lease devuelto solo para operaciones de escritura.

  3. Agregue todas las entidades con identificadores de comando únicos y luego llame a simulation_start.

  4. Use simulation_scene_snapshot para descubrir rutas canónicas de entidades y cámaras.

  5. Use simulation_get_entity para el estado dirigido y simulation_capture_camera para la verificación visual.

  6. Reutilice un identificador de comando solo para reintentar la misma solicitud de escritura.

  7. Llame a simulation_close para cada sesión creada, incluidos los flujos de trabajo fallidos.

El agente no debe inferir el soporte del backend a partir de la disponibilidad de herramientas. Las capacidades no compatibles del simulador se informan mediante la negociación de capacidades o mediante el adaptador seleccionado.

HTTP de bucle local

unirobosim-mcp \
  --root /absolute/path/to/approved/evidence \
  --transport streamable-http \
  --host 127.0.0.1 \
  --port 8766

El HTTP no autenticado está restringido a 127.0.0.1, localhost o ::1. La implementación remota requiere una puerta de enlace autenticada y autorizada. El modo de control no debe exponerse directamente en una red no confiable.

Incrustación programática

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")

Verificación

python -m pip install -e '.[dev]'
ruff format --check src tests
ruff check src tests
mypy src
coverage run -m pytest
coverage report

La aceptación de la versión llama a cada herramienta MCP publicada a través de un cliente MCP real en proceso. Pruebas de contrato adicionales cubren todos los tipos de entidad y familias de comandos admitidos, leases, idempotencia, expiración, activos permitidos, límites de recursos, registros de auditoría, codificación PNG y evidencia de capturas guardadas. La aceptación nativa se ejecuta por separado para cada adaptador de simulador instalado; una característica no se informa como aprobada para un backend a menos que esa ejecución nativa tenga éxito.

Los contratos centrales y la instalación del adaptador se documentan en 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