coppeliasim-mcp
coppeliasim-mcp
Ein MCP-Server, mit dem Claude Code (oder jeder MCP-Client) eine laufende CoppeliaSim-4.10-Simulation steuern kann: Szenen aufbauen, Objekte bewegen, Gelenke und Näherungssensoren erstellen, die Simulation ausführen und Sensoren wieder auslesen.
Er setzt bewusst keine beliebige Lua-Ausführung aus. Das ist der Hauptunterschied zu anderen CoppeliaSim-MCP-Servern. Siehe Sicherheit.
Tool-Namen sind standardmäßig spanisch, mit optionalen englischen und portugiesischen Aliasen – siehe Tool-Namenssprachen.
Nicht verbunden mit, unterstützt von oder gepflegt von Coppelia Robotics AG. CoppeliaSim ist eine Marke von Coppelia Robotics AG. Dies ist eine unabhängige Drittanbieter-Integration; für den Simulator selbst besuchen Sie coppeliarobotics.com.
Anforderungen
CoppeliaSim 4.10 läuft, mit dem ZMQ-Remote-API-Add-on aktiv. Es ist standardmäßig aktiviert und lauscht auf Port 23000.
Python 3.10 oder neuer.
Related MCP server: Robonine MCP Server
Installation
# Recommended: no clone, no virtualenv to manage
uvx coppeliasim-mcp
# Or install it
pip install coppeliasim-mcpRegistrieren Sie es bei Claude Code:
claude mcp add coppelia -- uvx coppeliasim-mcpOder, für jeden MCP-Client, der eine JSON-Konfiguration liest:
{
"mcpServers": {
"coppelia": {
"command": "uvx",
"args": ["coppeliasim-mcp"]
}
}
}Konfiguration
Alle Einstellungen sind optionale Umgebungsvariablen. Sie können auch in einer
.env-Datei im Arbeitsverzeichnis liegen – siehe .env.example.
Variable | Standard | Was sie tut |
|
| Host des ZMQ-Remote-API-Add-ons. |
|
| Sein Port. |
| aktuelles Arbeitsverzeichnis | Nur Szenen unter diesem Ordner können geladen werden. |
|
| Auf |
|
| Tool-Namens-Aliase. |
|
| Sekunden, die auf eine Antwort gewartet wird, bevor aufgegeben wird. |
Tools
Simulationssteuerung – iniciar_simulacion, detener_simulacion,
pausar_simulacion, estado_simulacion, tiempo_simulacion
Szenen – cargar_escena, cerrar_escena
Objekte – listar_objetos, obtener_posicion, fijar_posicion,
obtener_orientacion, fijar_orientacion, crear_primitiva,
eliminar_objeto, emparentar_objeto, fijar_detectable
Gelenke – obtener_posicion_junta, fijar_objetivo_junta,
fijar_velocidad_junta, obtener_fuerza_junta
Näherungssensoren – crear_sensor_proximidad, leer_sensor_proximidad,
comprobar_sensor_proximidad
Tool-Namensprachen
Tools sind auf Spanisch definiert (crear_primitiva, leer_sensor_proximidad, …).
Mit COPPELIA_IDIOMAS werden Aliase in Englisch und Portugiesisch registriert,
die auf dieselben Funktionen zeigen – keine doppelte Logik, nur mehr Namen im
Katalog.
| Tools | Kataloggröße | Kosten pro Anfrage |
| 23 | 15,0 KB | — |
| 46 | 27,7 KB | ~3.300 Tokens |
| 69 | 40,5 KB | ~6.500 Tokens |
Der Katalog wird bei jeder Anfrage an das Modell gesendet, daher sind
Aliase standardmäßig deaktiviert. Wissenswert, bevor du sie aktivierst: Das
Modell braucht keine übersetzten Namen, um dich in einer anderen Sprache zu
verstehen. Tool-Namen sind Bezeichner, kein Benutzertext – bitte um „move the
cube forward“ oder „mova o cubo para frente“ und es greift trotzdem zu
fijar_posicion. Aliase helfen, wenn du den Katalog auf einen Blick lesen
willst oder ein Tool explizit in einem Prompt benennen möchtest.
Beispiele
examples/carrito_diferencial.py baut einen
vollständigen Roboter mit Differenzialantrieb und Hindernisvermeidung und misst,
ob er tatsächlich funktioniert. Siehe examples/README.md.
Sicherheit
Die Lua-Umgebung von CoppeliaSim hat Zugriff auf os und io. Ein Tool, das
beliebiges Lua ausführt, verwandelt daher jede Prompt-Injection – zum Beispiel
Text in einer .ttt-Szene von Drittanbietern, die das Modell untersuchen soll –
in eine Befehlsausführung auf deinem Rechner. Dieser Server hat kein solches
Tool, bewusst.
Die restliche Oberfläche ist bewusst schmal gehalten:
cargar_escenalöst den Pfad (Path.resolve(strict=True)) bevor er ihn mitCOPPELIA_DIRECTORIO_ESCENASvergleicht, sodass../..und Symlinks nicht entkommen können, und er akzeptiert nur Szenen-Erweiterungen.COPPELIA_MODO_LECTURA=1deaktiviert alle verändernden Tools auf einmal.Das Szenenverzeichnis ist standardmäßig das Arbeitsverzeichnis, nicht dein Home-Verzeichnis.
Hinweise, die Debugging-Zeit sparen
Dinge über die CoppeliaSim-API, die leicht falsch gemacht werden können und die die Tools direkt sichtbar machen:
leer_sensor_proximidaderkennt nicht. Es gibt das Ergebnis des letzten Sensor-Durchgangs des Simulators zurück, also meldet es bei gestoppter Simulation immer nichts. Verwendecomprobar_sensor_proximidad, um bei Bedarf zu erkennen.Ein Objekt muss als erkennbar markiert sein, um von einem Näherungssensor gesehen zu werden. Dafür ist
fijar_detectableda, und es ist der übliche Grund, warum ein Sensor „nicht funktioniert“.Ein breiter Kegel, der horizontal zeigt, sieht den Boden, bevor er dein Hindernis sieht. Mit halber Öffnung a und Sensor in Höhe h tritt der Boden bei h / tan(a) in den Kegel ein. Wenn das unter der Sensorreichweite liegt, meldet der Sensor den Boden.
Umbenennen von Geschwisternummern. Nach dem Aufhängen von
/Cylinder[1]an einem Chassis kann/Cylinder[3]zu/Cylinder[1]werden. Liste die Objekte zwischen aufeinanderfolgendenemparentar_objeto-Aufrufen erneut auf, oder löse die Handles im Voraus auf.Elternschaft verbindet zwei dynamische Formen nicht starr. Nicht-statische Formen fallen, wenn sie nicht durch ein Gelenk oder einen Kraftsensor eingeschränkt sind.
Veröffentlichung
Die Veröffentlichung läuft bei einem Tag-Push über
.github/workflows/publicar.yml:
# bump version in pyproject.toml first, then
git tag v0.1.0 && git push --tagsDer Workflow weigert sich zu veröffentlichen, wenn Tag und Version in
pyproject.toml nicht übereinstimmen, installiert das gebaute Wheel auf
Python 3.10 und 3.13 und führt scripts/prueba_humo.py
aus – einen MCP-Handshake plus eine Prüfung, dass ein Aufruf ohne Simulator
antwortet statt zu hängen – bevor er etwas hochlädt. Eine PyPI-Version kann
nie überschrieben oder wiederverwendet werden, also ist ein Fehlschlag in CI
viel billiger als eine Versionsnummer zu verbrennen.
Er authentifiziert sich bei PyPI über Trusted Publishing (OIDC), sodass kein Token in den Repository-Secrets gespeichert ist.
Lizenz
MIT – siehe LICENSE.
Die MIT-Lizenz deckt nur diesen Server ab. CoppeliaSim selbst wird separat von Coppelia Robotics AG lizenziert, und dieses Paket enthält keinen Teil davon und redistributiert keinen Teil davon – es spricht mit einem Simulator, den du selbst installierst und lizenzierst.
coppeliasim-mcp (español)
Un servidor MCP para manejar una simulación de CoppeliaSim 4.10 desde Claude Code o cualquier cliente MCP: construir escenas, mover objetos, crear juntas y sensores de proximidad, correr la simulación y leer los sensores.
No expone ejecución de Lua arbitrario, a propósito. Es la diferencia
principal con los otros MCP de CoppeliaSim que circulan. El Lua de CoppeliaSim
tiene acceso a os e io, así que una tool de ese tipo convierte cualquier
prompt injection —por ejemplo, texto dentro de una escena .ttt de terceros—
en ejecución de comandos sobre tu máquina.
Sin afiliación, respaldo ni mantenimiento por parte de Coppelia Robotics AG. CoppeliaSim es una marca de Coppelia Robotics AG. Esto es una integración independiente de terceros; para el simulador, ve a coppeliarobotics.com.
Requisitos
CoppeliaSim 4.10 abierto, con el add-on ZMQ remote API activo. Viene habilitado por defecto, escuchando en el puerto 23000.
Python 3.10 o superior.
Instalación
uvx coppeliasim-mcp # recomendado
pip install coppeliasim-mcp # o instalado
claude mcp add coppelia -- uvx coppeliasim-mcp # registrar en Claude CodeConfiguración
Variables de entorno, todas opcionales. También se pueden poner en un .env
en el directorio de trabajo — mira .env.example.
Variable | Por defecto | Para qué |
|
| Host del add-on ZMQ remote API. |
|
| Su puerto. |
| directorio de trabajo | Solo se pueden cargar escenas por debajo de esta carpeta. |
|
| A |
|
| Alias de nombres de tools. |
|
| Segundos de espera antes de dar una respuesta por perdida. |
Idiomas de los nombres de tools
Las tools se definen en español. COPPELIA_IDIOMAS registra alias en inglés y
portugués sobre las mismas funciones: no duplica lógica, solo añade nombres.
| Tools | Catálogo | Coste por petición |
| 23 | 15.0 KB | — |
| 46 | 27.7 KB | ~3.300 tokens |
| 69 | 40.5 KB | ~6.500 tokens |
El catálogo viaja en cada petición al modelo, así que los alias vienen
apagados. Y conviene saber esto antes de encenderlos: el modelo no necesita los
nombres traducidos para entenderte en otro idioma. Los nombres de tools son
identificadores, no texto de cara al usuario — pídele "move the cube forward" o
"mova o cubo para frente" y usará fijar_posicion igual. Los alias sirven para
leer el catálogo de un vistazo, o para nombrar una tool explícitamente.
Ejemplos
examples/carrito_diferencial.py construye un
carrito de tracción diferencial completo con evasión de obstáculos, y mide si de
verdad funciona. Mira examples/README.md.
Cosas que ahorran horas de depuración
leer_sensor_proximidadno detecta. Devuelve el resultado del último barrido del simulador, así que con la simulación detenida siempre dice que no hay nada. Para detectar en el momento,comprobar_sensor_proximidad.Un objeto tiene que estar marcado como detectable para que un sensor de proximidad lo vea. Para eso está
fijar_detectable, y es la causa habitual de un sensor que "no funciona".Un cono ancho en horizontal ve el suelo antes que el obstáculo. Con media apertura a y el sensor a altura h, el suelo entra en el cono a h / tan(a). Si eso queda por debajo del alcance, el sensor reporta el piso.
Emparentar renumera las rutas de los hermanos. Al colgar
/Cylinder[1]de un chasis,/Cylinder[3]puede pasar a ser/Cylinder[1]. Vuelve a listar los objetos entre llamadas, o resuelve los handles antes de tocar la jerarquía.Emparentar no une rígidamente dos cuerpos dinámicos. Las formas no estáticas se caen si no las sujeta una junta o un force sensor.
Licencia
MIT — mira LICENSE.
La licencia MIT cubre solo este servidor. CoppeliaSim se licencia por separado con Coppelia Robotics AG, y este paquete no incluye ni redistribuye ninguna parte de él: habla con un simulador que instalas y licencias tú.
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 gradedqualityAmaintenanceMCP server that lets Claude drive a running TouchDesigner instance to create operators, wire them, set parameters, run arbitrary Python, and introspect the td API.MIT

Robonine MCP Serverofficial
AlicenseAqualityDmaintenanceA local MCP server that connects Claude Code or any MCP-compatible AI assistant to a Robonine robot arm.1MIT- AlicenseAqualityBmaintenanceA self-hosted MCP server that lets Claude (or any MCP client) drive Autodesk Fusion 360 on your own machine.98MIT
- FlicenseNot gradedqualityCmaintenanceFull-access MCP server for the Webots robot simulator that enables AI assistants to see, understand, and modify a running simulation, including scene-tree inspection/editing, robot control, viewport screenshots, and arbitrary code execution.
Related MCP Connectors
Hosted MCP server connecting claude.ai, ChatGPT and other AI apps to your own computer
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to control Unreal E…
MCP server for AI dialogue using various LLM models via AceDataCloud
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/KevinInoCol/coppeliasim-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server