MCP server for Opentrons HTTP API documentation and endpoint discovery
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.
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.
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.
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 HTTPget_endpoint_details — Get comprehensive details about a specific API endpoint. - method (required): HTTP method - path (required): API endpoint pathlist_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 capabilitiesupload_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 typecreate_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_parameterscontrol_run — Control run execution (play, pause, stop, resume). - robot_ip (required): Robot IP address - run_id (required): Run ID to control - actionget_runs — List all runs on the robot. - robot_ip (required): Robot IP addressget_run_status — Get detailed status of a specific run. - robot_ip (required): Robot IP address - run_id (required): Run ID to checkrobot_health — Check robot health and connectivity. - robot_ip (required): Robot IP addresscontrol_lights — Turn robot lights on or off. - robot_ip (required): Robot IP address - on (required): true to turn lights on, false to turn offThis 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.
| Tool | What it does |
|---|---|
| search_endpoints | Search 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_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) - protocol_kind (optional): "standard" or "quick-transfer" (default: "sta |
| 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 (optional): Runtime parameter values |
| control_run | Control 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_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 |
| home_robot | Home 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") |
{
"mcpServers": {
"opentrons": {
"command": "opentrons-mcp",
"args": []
}
}
}Configuration as documented by the project. Restart the client after saving.
A knowledge graph your assistant keeps between sessions — entities, relations and observations that persist.
Kill hallucinated APIs — version-accurate, up-to-date library documentation injected straight into context.
Your workspace, on speaking terms with AI — search, read and write Notion pages and databases.
A structured scratchpad for hard problems — stepwise reasoning with revisions, branches and visible logic.
Symbol-level code navigation, refactoring and memory for coding agents — the IDE brain your assistant has been missing.
Chat with your second brain — search, read and write vault notes through the Local REST API.