Opentrons MCP Server

MCP server for Opentrons HTTP API documentation and endpoint discovery

Local serverstdioPython

What is the Opentrons MCP MCP server?

If you already use Opentrons MCP, the opentrons mcp mcp server is the piece that lets your assistant work with it directly. MCP server for Opentrons HTTP API documentation and endpoint discovery.

What the server does

A Model Context Protocol (MCP) server for Opentrons robot automation and API documentation. This tool provides both comprehensive API documentation and direct robot control capabilities for Opentrons Flex and OT-2 robots.

Installation

The server ships on npm as opentrons-mcp, so your MCP client can launch it on demand — there is no separate build step. Add the server block to your client's configuration, restart it, and the tools register themselves.

Available tools

The toolset is worth reading before you wire it up, because it tells you what the integration is really for:

  • search_endpoints — Search Opentrons HTTP API endpoints by functionality, method, path, or keyword. - query (required): Search term - method (optional): Filter by HTTP
  • get_endpoint_details — Get comprehensive details about a specific API endpoint. - method (required): HTTP method - path (required): API endpoint path
  • list_by_category — List all endpoints in a specific functional category. - category (required): API category (Health, Control, Protocol Management, etc.)
  • get_api_overview — Get high-level overview of the Opentrons HTTP API structure and capabilities
  • upload_protocol — Upload a protocol file to an Opentrons robot. - robot_ip (required): Robot IP address - file_path (required): Path to protocol file (.py or .json) -
  • get_protocols — List all protocols stored on the robot. - robot_ip (required): Robot IP address - protocol_kind (optional): Filter by protocol type
  • create_run — Create a new protocol run on the robot. - robot_ip (required): Robot IP address - protocol_id (required): ID of protocol to run - run_time_parameters
  • control_run — Control run execution (play, pause, stop, resume). - robot_ip (required): Robot IP address - run_id (required): Run ID to control - action
  • get_runs — List all runs on the robot. - robot_ip (required): Robot IP address
  • get_run_status — Get detailed status of a specific run. - robot_ip (required): Robot IP address - run_id (required): Run ID to check
  • robot_health — Check robot health and connectivity. - robot_ip (required): Robot IP address
  • control_lights — Turn robot lights on or off. - robot_ip (required): Robot IP address - on (required): true to turn lights on, false to turn off

Credentials and setup notes

  • Node.js 18+ - Opentrons robot with HTTP API enabled (port 31950) - Network connectivity between client and robot

Worth knowing first

  • It runs with your machine's permissions. That is convenient and also the reason to think about what you point it at before you approve a tool call.
  • With 13 tools registered it takes up a noticeable share of the context window; turn it off in projects that never touch Opentrons MCP.
  • Keep per-call confirmation enabled while you learn its behaviour; it is the cheapest safeguard you have.

Where it fits

This sits in the knowledge and memory group, where several servers overlap in what they claim to do but differ sharply once you actually set them up. Opentrons MCP's toolset — search_endpoints, get_endpoint_details, list_by_category and 10 more — is a fair guide to whether it matches your workflow. It is maintained by yerbymatey; worth a glance at recent repository activity before you build anything load-bearing on it.

This entry was verified against Opentrons MCP's own documentation before publication; SyncDev keeps the directory reviewed rather than auto-generated.

Available tools

ToolWhat it does
search_endpointsSearch Opentrons HTTP API endpoints by functionality, method, path, or keyword. - query (required): Search term - method (optional): Filter by HTTP method (GET, POST, PUT, DELETE, PATCH) - tag (optional): Filter by API c
get_endpoint_detailsGet comprehensive details about a specific API endpoint. - method (required): HTTP method - path (required): API endpoint path
list_by_categoryList all endpoints in a specific functional category. - category (required): API category (Health, Control, Protocol Management, etc.)
get_api_overviewGet high-level overview of the Opentrons HTTP API structure and capabilities.
upload_protocolUpload a protocol file to an Opentrons robot. - robot_ip (required): Robot IP address - file_path (required): Path to protocol file (.py or .json) - protocol_kind (optional): "standard" or "quick-transfer" (default: "sta
get_protocolsList all protocols stored on the robot. - robot_ip (required): Robot IP address - protocol_kind (optional): Filter by protocol type
create_runCreate a new protocol run on the robot. - robot_ip (required): Robot IP address - protocol_id (required): ID of protocol to run - run_time_parameters (optional): Runtime parameter values
control_runControl run execution (play, pause, stop, resume). - robot_ip (required): Robot IP address - run_id (required): Run ID to control - action (required): "play", "pause", "stop", or "resume-from-recovery"
get_runsList all runs on the robot. - robot_ip (required): Robot IP address
get_run_statusGet detailed status of a specific run. - robot_ip (required): Robot IP address - run_id (required): Run ID to check
robot_healthCheck robot health and connectivity. - robot_ip (required): Robot IP address
control_lightsTurn robot lights on or off. - robot_ip (required): Robot IP address - on (required): true to turn lights on, false to turn off
home_robotHome robot axes or specific pipette. - robot_ip (required): Robot IP address - target (optional): "robot" for all axes, "pipette" for specific mount - mount (optional): "left" or "right" (required if target is "pipette")

How to install the Opentrons MCP MCP server

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

Configuration as documented by the project. Restart the client after saving.

Configuration

  • Node.js 18+ - Opentrons robot with HTTP API enabled (port 31950) - Network connectivity between client and robot

Example prompts to try

  • Use Opentrons MCP to search endpoints.
  • Use Opentrons MCP to get endpoint details.
  • Use Opentrons MCP to list by category.

Frequently asked questions

It connects Opentrons MCP to MCP-compatible AI assistants such as Claude and Cursor, exposing 13 tools (search_endpoints, get_endpoint_details, list_by_category, and more) that the assistant can call on your behalf. Instead of copying data back and forth by hand, the assistant works with Opentrons MCP directly.