关于 Gearotons M17 Servomotor
Gearotons M17 Servomotor 是用于通过自然语言驱动开源 M17 伺服电机的 MCP 服务。它能发现串口和总线上的电机,并将固件命令转为工具;还提供无需硬件的模拟后端。
主要功能
- 01发现串口
- 02自动检测总线上的电机
- 03运动控制与状态工具
- 04将固件命令目录转为工具
- 05无需硬件的模拟后端
适用场景
- 01无硬件试用电机控制工具
- 02发现通过 RS-485 连接的电机
- 03按角度或相对距离移动电机
- 04运行一系列电机动作
MCP 相关
向 MCP 客户端提供电机发现、运动控制、状态查询和固件命令等工具。服务通过 RS-485 控制真实 M17 电机,也可使用模拟后端。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
uvx servomotor-mcpGEAROTONS_MOTOR_BACKEND'auto' (default: real serial backend when the servomotor library is installed, otherwise the simulator, which says so in list_serial_ports), 'serial', or 'mock'. For real motors install servomotor-mcp[serial].GEAROTONS_SERIAL_PORTOptional default port for the connect tool (e.g. /dev/cu.usbserial-210, /dev/ttyUSB0, COM3). Normally unnecessary: the model discovers ports with list_serial_ports.GEAROTONS_DEFAULT_SPEED_DPSDefault speed in degrees/second for the high-level move tools.本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。
工具
57收录的工具列表 · 更新于 2 周前
此工具无需参数。
详细介绍
servomotor-mcp
通过自然语言驱动开源 Gearotons M17 伺服电机。
一个 MCP 服务,可将 M17——一款集成式闭环 NEMA-17 RS-485 伺服电机——提供给 Claude Desktop、Claude Code 或任何 MCP 客户端。只需开口询问,即可控制真实电机:
“找到我的电机,让工作台上的那台慢慢转两整圈。”
无需硬编码:服务会发现你的串行端口,自动检测总线上的电机(使用固件的“Detect devices”命令),并提供完整的固件命令集——servomotor 库目录中的每条命令都会自动成为 MCP 工具(截至库版本 0.10.0,共有 48 条命令),此外还提供一些适用于日常操作的高级工具。它自带模拟后端,因此无需任何硬件即可体验全部功能。
▶ 50 秒视频:真实电机与本次会话的并列展示 — 于 2026-09-09 在一台工作台上的 M17 上录制;上方每一行都来自会话日志。
分步教程(从开箱到“与它对话”,约需 20 分钟):通过 Claude Code 与伺服电机对话,发布于 Hackster。
首款提供官方 MCP 服务的伺服电机。开放硬件、开放固件、开放软件——如今还拥有开放的、原生支持 AI 的控制接口。
快速开始(无需硬件,约 2 分钟)
# Run the server directly with uv (recommended). This runs the SIMULATOR —
# for real motors see "Drive real motors" below:
uvx --from servomotor-mcp servomotor-mcp
# or install it:
pip install servomotor-mcp
servomotor-mcp
然后将其添加到 Claude Desktop——将
examples/claude_desktop_config.json 中的代码块复制到
你的 claude_desktop_config.json,重启 Claude Desktop,然后询问:
“你能看到哪些串行端口?连接并找到我的电机。”
参见 examples/demo_prompts.md 获取脚本化演示。
驱动真实电机
将 M17(或一串菊花链连接的 M17)接入 USB↔RS-485 适配器,并安装
[serial] 附加组件——就这么简单,无需配置:
pip install 'servomotor-mcp[serial]' # pulls in the Gearotons servomotor library
servomotor-mcp
安装 servomotor 库后,服务会自动使用真实串行后端。若未安装,该服务会运行模拟器并说明这一点:list_serial_ports
和 connect 会返回 notice 字段,并向 stderr 输出警告。使用 uv 时,运行
uvx --from 'servomotor-mcp[serial]' servomotor-mcp。在会话中,模型随后会:
list_serial_ports— 列出机器上的端口(macOS/dev/cu.*、 WindowsCOM*、Linux/dev/ttyUSB*),并标记 USB 串行适配器;connect— 以 230400 波特率打开你(或模型)选择的端口;- 自动检测总线上的每台电机(唯一 ID + 别名)——无需编写地址映射;
- 驱动电机。如果有多个适配器,请用通俗易懂的语言告诉它使用哪一个。
工具
高级功能(发现 + 日常运动):
| 工具 | 功能 |
|---|---|
list_serial_ports | 枚举串口,并显示 USB 元数据(首先调用)。 |
connect / disconnect | 打开端口并自动检测总线上的电机。 |
detect_devices | 重新扫描总线(会重启总线上的电机)。 |
list_motors | 列出检测到的电机及其实时位置、电压、温度和状态。 |
move_to / move_relative | 按角度进行绝对 / 相对移动;等待移动完成。 |
stop | 紧急停止一个或所有电机。 |
get_motor_status | 获取单个电机的状态快照,并将致命错误解码为通俗易懂的描述。 |
run_sequence | 编排多个步骤(例如“画一个正方形”),包括原始命令步骤。 |
此外,每个固件命令都对应一个工具,由库的命令目录生成:
enable_mosfets、go_to_position、move_with_velocity、move_with_acceleration、
multimove、homing、zero_position、get_position、get_temperature、
set_device_alias、set_pid_constants、system_reset、vibrate、ping,等等——
电机能执行的操作,模型就能执行。电机可通过别名编号、16 位十六进制唯一 ID 或
"all"(广播)寻址。数值使用易懂的单位(度、秒、度/秒、伏特、°C);服务会将其转换为固件单位。
工作原理
natural language → Claude → MCP tool calls → this server → RS-485 → M17 motors
该服务是 Gearotons servomotor Python 库之上的轻量封装。该库由数据驱动——
motor_commands.json 定义了每个固件命令——服务会将同一命令目录转换为 MCP 工具,因此库中的新命令会自动出现。工具调用会直接转发至硬件——不进行软件限幅;支持完整的多圈行程和任意速度。电机自身的固件保护(过流 / 过压 /
过温)仍然有效。同一套工具也可通过模拟后端运行
(GEAROTONS_MOTOR_BACKEND=mock),用于开发和 CI。
环境变量(均为可选):
GEAROTONS_MOTOR_BACKEND—auto(默认:安装了servomotor库时使用串口,否则使用模拟后端)、serial或mock。GEAROTONS_SERIAL_PORT— 模型未指定端口时,connect使用的默认端口。GEAROTONS_DEFAULT_SPEED_DPS—move_to/move_relative的默认速度(180)。
开发 / 测试
pip install -e '.[dev]'
GEAROTONS_MOTOR_BACKEND=mock pytest # catalog + mock-bus + server-tool tests
hardware_tests/ 包含用于通过台架电机端到端测试真实串口路径的脚本(端口扫描、完整命令套件、stdio MCP 会话)。
状态
- ✅ 完整的固件命令集(48 条命令)、串口发现、总线自动检测——已通过真实 stdio MCP 会话和
uvx在实体 M17 上验证(固件版本 0.15.3.0),并使用全部四个测试适配器进行测试(仅在电机实际连接的位置检测到电机)。 - ✅ 模拟后端 + 39 个单元测试,无需硬件。
- ✅ 通过 pyserial 枚举实现跨平台端口处理(macOS / Windows / Linux)。
许可证
MIT。M17 的硬件、固件和软件均为开源—— 参见 github.com/tomrodinger/servomotor。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。