Releases: KevinInoCol/coppeliasim-mcp
Release list
v0.4.0
0.4.0: el repositorio también es un plugin, con skills en tres idiomas
Las instrucciones del handshake dan el criterio, pero son ~440 tokens y
tienen que caber en cada petición: no hay sitio ahí para un procedimiento.
Las skills son ese procedimiento, y solo se cargan cuando hacen falta.
Tres temas, cada uno en español, inglés y portugués, como ya hace
COPPELIA_IDIOMAS con los nombres de las tools:
estructura de proyecto un script por artefacto, el orden
conectar/limpiar/crear/construir/verificar, y qué
va en la API en vez de en estas tools
construir escenas vanos, y las tres propiedades independientes que
todo el mundo confunde: dinámico, respondable y
detectable
robot y sensores eje y modo de control de las juntas, la fricción
que Bullet obedece de verdad, grupos de colisión,
zona ciega del sensor y el cono que ve el suelo
Nada de esto está inventado: sale de casa.py, robot.py, teleop.py y
carrito_diferencial.py, y cada cifra que se cita está medida sobre un robot
que funciona. Solo las descripciones viajan siempre (~830 tokens entre las
nueve); los cuerpos se cargan bajo demanda.
El .mcp.json del plugin llama a uvx coppeliasim-mcp, así que el servidor
sigue viniendo de PyPI y el repositorio solo añade la guía encima.
plugin.json repite el número de versión y no puede leerlo de la metadata de
Python, así que el CI ahora falla si no coincide con pyproject: un
plugin.json viejo deja a los usuarios sin la versión nueva y sin un aviso.
v0.3.1
0.3.1: enlazar el repositorio desde la página de PyPI
La página de PyPI no tenía un solo enlace al código: ni repositorio, ni
issues, ni changelog. Quien llegaba ahí no podía leer el fuente, abrir un
issue ni contribuir, que es justo lo contrario de lo que se busca al
publicar esto.
La metadata de una versión ya subida a PyPI no se puede editar, así que
arreglarlo obliga a publicar una versión nueva aunque el código no
cambie. De ahí un 0.3.1 sin nada más dentro.
v0.3.0
0.3.0: decirle al modelo cuándo NO usar estas tools
El catálogo dice qué se puede hacer, pero nada decía cuándo conviene, y
menos aún cuándo no. Un modelo que instala este servidor se pone a
levantar cuarenta paredes a golpe de crear_primitiva, que es justo el uso
que no queremos: lento, y no deja código.
Ahora el servidor manda instrucciones en el handshake. Son criterio, no
manual: estas tools sirven para inspeccionar y verificar una escena; un
bucle de control no cabe en ellas; lo reproducible se escribe en Python
contra coppeliasim_zmqremoteapi_client, que es la misma API de debajo, y
las tools se usan para comprobar el resultado. Cuestan ~440 tokens por
petición, así que el detalle largo se queda en el README.
Se añade también CLAUDE.md, para quien clona el repo a desarrollarlo:
el ciclo con la instalación editable, el ritual de publicar (subir la
versión ANTES de etiquetar, y que publicar es irreversible) y los
invariantes que no se tocan, empezando por no exponer Lua arbitrario.
v0.2.0
0.2.0: construir un robot entero sin salir del catálogo de tools
Las ocho tools nuevas salen de lo que faltó al construir la casa y el
carrito del Proyecto-02: había que crear formas y moverlas, pero no
articularlas, ni darles masa, ni color, ni guardar el resultado.
paso_simulacion, guardar_escena, listar_modelos, cargar_modelo,
fijar_dinamica, fijar_color, crear_junta, crear_union_rigida
Con ellas el diferencial se reconstruyó llamada a llamada y recorrió el
98% de su distancia teórica.
Dos cosas que costaron encontrar y quedan documentadas en el README:
el modo de control dinámico de una junta va en 'dynCtrlMode' y sin él
el motor ignora las órdenes de velocidad; y Bullet 2.7 obedece
'bullet.frictionOld', no 'bullet.friction'.
Además, el servidor ya reporta su versión en el handshake MCP: la toma
de la metadata del paquete, así que no hay una tercera copia del número
que pueda contradecir a pyproject.
v0.1.1
0.1.1: descargo de marca, y la versión con una sola fuente de verdad
Coppelia Robotics publica sus propios paquetes en PyPI bajo el prefijo
coppeliasim-* (coppeliasim-zmqremoteapi-client es suyo), así que este nombre
cae en su espacio y puede leerse como oficial. El descargo lo deja claro en el
README, en el docstring del servidor y en la web. Su licencia EDU no dice nada
sobre marcas ni nombres de terceros; el riesgo era de confusión, no legal.
version pasa a leerse de los metadatos del paquete en vez de repetirse a
mano. El workflow de publicación solo compara la etiqueta contra pyproject.toml,
así que una versión duplicada en init.py estaba destinada a divergir sin que
nada lo detectara.
Co-Authored-By: Claude Opus 5 (1M context) noreply@anthropic.com
v0.1.0
Quitar uv.lock del repositorio
Se colo como artefacto de una validacion local con uv. Un lock file fija las
versiones exactas de un entorno concreto: tiene sentido en una aplicacion, no en
una libreria, que debe resolver dependencias en la maquina de quien la instala.
Co-Authored-By: Claude Opus 5 (1M context) noreply@anthropic.com