Opentrons

Controla robots Opentrons, gestiona protocolos y busca documentación de la API.

Documentación

Servidor MCP de Opentrons

Un servidor de Model Context Protocol (MCP) para la automatización de robots Opentrons y documentación de API. Esta herramienta proporciona tanto documentación completa de la API como capacidades de control directo del robot para los robots Opentrons Flex y OT-2.

Características

Herramientas de Documentación de API

  • Búsqueda de Endpoints: Encuentra endpoints de API por funcionalidad, método o palabra clave
  • Detalles de Endpoints: Obtén información completa sobre endpoints de API específicos
  • Exploración por Categorías: Lista endpoints por categoría funcional
  • Resumen de la API: Visión general de alto nivel de toda la API HTTP de Opentrons

Herramientas de Automatización de Robots

  • Gestión de Protocolos: Sube, lista y gestiona archivos de protocolo
  • Control de Ejecuciones: Crea ejecuciones, inicia/detiene la ejecución, monitorea el progreso
  • Salud del Robot: Verifica la conectividad y el estado del sistema
  • Control de Hardware: Inicia el robot en casa, controla las luces y operaciones básicas

Instalación

Desde npm (recomendado)

npm install -g opentrons-mcp

Desde el código fuente

git clone https://github.com/yerbymatey/opentrons-mcp.git
cd opentrons-mcp
npm install

Configuración

Agrega a tu archivo de configuración de Claude Desktop:

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json Windows: %APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "opentrons": {
      "command": "opentrons-mcp",
      "args": []
    }
  }
}

Si se instaló desde el código fuente:

{
  "mcpServers": {
    "opentrons": {
      "command": "node",
      "args": ["/path/to/opentrons-mcp/index.js"]
    }
  }
}

Herramientas Disponibles

Herramientas de Documentación

search_endpoints

Busca endpoints de la API HTTP de Opentrons por funcionalidad, método, ruta o palabra clave.

  • query (obligatorio): Término de búsqueda
  • method (opcional): Filtra por método HTTP (GET, POST, PUT, DELETE, PATCH)
  • tag (opcional): Filtra por categoría de API
  • include_deprecated (opcional): Incluye endpoints obsoletos

get_endpoint_details

Obtén detalles completos sobre un endpoint de API específico.

  • method (obligatorio): Método HTTP
  • path (obligatorio): Ruta del endpoint de API

list_by_category

Lista todos los endpoints en una categoría funcional específica.

  • category (obligatorio): Categoría de API (Salud, Control, Gestión de Protocolos, etc.)

get_api_overview

Obtén una visión general de alto nivel de la estructura y capacidades de la API HTTP de Opentrons.

Herramientas de Automatización

upload_protocol

Sube un archivo de protocolo a un robot Opentrons.

  • robot_ip (obligatorio): Dirección IP del robot
  • file_path (obligatorio): Ruta al archivo de protocolo (.py o .json)
  • protocol_kind (opcional): "standard" o "quick-transfer" (predeterminado: "standard")
  • key (opcional): Clave de seguimiento del cliente
  • run_time_parameters (opcional): Valores de parámetros de tiempo de ejecución

get_protocols

Lista todos los protocolos almacenados en el robot.

  • robot_ip (obligatorio): Dirección IP del robot
  • protocol_kind (opcional): Filtra por tipo de protocolo

create_run

Crea una nueva ejecución de protocolo en el robot.

  • robot_ip (obligatorio): Dirección IP del robot
  • protocol_id (obligatorio): ID del protocolo a ejecutar
  • run_time_parameters (opcional): Valores de parámetros de tiempo de ejecución

control_run

Controla la ejecución de la ejecución (reproducir, pausar, detener, reanudar).

  • robot_ip (obligatorio): Dirección IP del robot
  • run_id (obligatorio): ID de la ejecución a controlar
  • action (obligatorio): "play", "pause", "stop" o "resume-from-recovery"

get_runs

Lista todas las ejecuciones en el robot.

  • robot_ip (obligatorio): Dirección IP del robot

get_run_status

Obtén el estado detallado de una ejecución específica.

  • robot_ip (obligatorio): Dirección IP del robot
  • run_id (obligatorio): ID de la ejecución a verificar

robot_health

Verifica la salud y conectividad del robot.

  • robot_ip (obligatorio): Dirección IP del robot

control_lights

Enciende o apaga las luces del robot.

  • robot_ip (obligatorio): Dirección IP del robot
  • on (obligatorio): true para encender las luces, false para apagarlas

home_robot

Lleva los ejes del robot o una pipeta específica a su posición inicial.

  • robot_ip (obligatorio): Dirección IP del robot
  • target (opcional): "robot" para todos los ejes, "pipette" para un montaje específico
  • mount (opcional): "left" o "right" (obligatorio si el objetivo es "pipette")

Ejemplos de Uso

Con Claude Desktop

Opentrons MCP in action Captura de pantalla que muestra el servidor MCP de Opentrons en acción con Claude Desktop después de preguntar por los protocolos actuales con opentrons para el Flex, ¡dale la IP del robot!

Una vez configurado, puedes usar lenguaje natural para controlar tu robot:

Subir un protocolo:

Upload the protocol file at /path/to/my_protocol.py to my robot at 192.168.1.100

Verificar el estado del robot:

Check if my robot at 192.168.1.100 is healthy and ready

Ejecutar un protocolo:

List all protocols on my robot, then create and start a run for the latest one

Monitorear el progreso:

Show me the status of run abc123 on my robot

Uso Programático

import { Client } from "@modelcontextprotocol/sdk/client/index.js";

// Connect to MCP server
const client = new Client(/* transport */);

// Upload protocol
await client.request({
  method: "tools/call",
  params: {
    name: "upload_protocol",
    arguments: {
      robot_ip: "192.168.1.100",
      file_path: "/path/to/protocol.py",
      protocol_kind: "standard"
    }
  }
});

Requisitos

  • Node.js 18+
  • Robot Opentrons con API HTTP habilitada (puerto 31950)
  • Conectividad de red entre el cliente y el robot

Configuración del Robot

Asegúrate de que tu robot Opentrons:

  1. Esté conectado a la misma red que tu cliente
  2. Ejecute la versión 7.0.0+ del software del robot
  3. Sea accesible en el puerto 31950 (predeterminado para la API HTTP)

Puedes verificar la conectividad visitando http://your-robot-ip:31950/health en un navegador.

Referencia de la API

Esta herramienta proporciona acceso a la API HTTP completa de Opentrons, incluyendo:

  • Gestión de Protocolos: Sube, analiza y gestiona archivos de protocolo
  • Gestión de Ejecuciones: Crea, controla y monitorea ejecuciones de protocolo
  • Control de Hardware: Movimiento del robot, posicionamiento inicial, iluminación y calibración
  • Gestión del Sistema: Monitoreo de salud, configuración y diagnósticos
  • Control de Módulos: Módulos de temperatura, módulos magnéticos, termocicladores
  • Gestión de Datos: Archivos CSV para parámetros de tiempo de ejecución

Para documentación detallada de la API, usa las herramientas de búsqueda y documentación proporcionadas por este servidor MCP.

Solución de Problemas

No se puede conectar al robot

  • Verifica que la dirección IP del robot sea correcta
  • Asegúrate de que el robot esté encendido y conectado a la red
  • Comprueba que el puerto 31950 sea accesible
  • Confirma que el software del robot esté en ejecución

La subida del protocolo falla

  • Verifica que la ruta del archivo exista y sea legible
  • Asegúrate de que el archivo de protocolo sea Python válido (.py) o formato JSON
  • Comprueba el espacio disponible en disco del robot
  • Confirma que el protocolo sea compatible con el tipo de robot (OT-2 vs Flex)

Problemas de ejecución

  • Verifica que todos los consumibles y módulos requeridos estén conectados
  • Comprueba el estado de calibración del robot
  • Asegúrate de que el análisis del protocolo se haya completado correctamente
  • Confirma que no haya errores o conflictos de hardware

Contribuciones

¡Las contribuciones son bienvenidas! No dudes en enviar problemas y solicitudes de extracción.

Licencia

Sin licencia, ve con todo

Proyectos Relacionados