OpenMV相机控制服务器

一个基于MCP协议的HTTP+JSON-RPC 2.0服务器,用于远程控制OpenMV相机。

  • by SingTown
  • C++
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 SingTown/openmv-mcp

使用说明

OpenMV MCP服务器

一 MCP(模型上下文协议) 用于通过HTTP+JSON-RPC 2.0控制OpenMV摄像机的服务器。

安装

Linux (x86_64/arm64):

curl -fsSL https://raw.githubusercontent.com/SingTown/openmv-mcp/main/install.sh | sh

固定版本或选择其他安装目录:

curl -fsSL https://raw.githubusercontent.com/SingTown/openmv-mcp/main/install.sh | sh -s -- --version 2.5.0
curl -fsSL https://raw.githubusercontent.com/SingTown/openmv-mcp/main/install.sh | sh -s -- --dir ~/.local/bin

macOS (苹果硅):

brew install SingTown/openmv/openmv-mcp

视窗:

winget install SingTown.openmv-mcp

或者从 发布 页面。

跑

openmv_mcp_server             # ensure the HTTP server is running in the background
openmv_mcp_server --port 9000 # ensure a background server on a custom port
openmv_mcp_server --mode stdio # stdio MCP proxy; starts the HTTP server if needed
openmv_mcp_server --level trace
openmv_mcp_server --version   # print version and exit

后台服务器

CLI在后台自动启动HTTP服务器,并在准备就绪后退出。日志被写入 ./openmv-mcp-server-log.txt 默认情况下:

openmv_mcp_server
openmv_mcp_server --log /tmp/openmv.log  # custom log path

停止正在运行的服务器:

openmv_mcp_server --mode shutdown              # default port 15257
openmv_mcp_server --mode shutdown --port 9000  # custom port

旗帜: --mode <mode> (shutdown, stdio,或 internal_server), --log <path> (默认情况下,将HTTP服务器日志写入文件 ./openmv-mcp-server-log.txt), --level <lvl> (日志级别: trace|debug|info|warn|error|critical|off,默认值 info).

标准模式

对于启动基于本地命令的服务器而不是连接到Streamable HTTP的MCP主机,请使用stdio模式:

openmv_mcp_server --mode stdio

stdio进程为MCP JSON-RPC消息保留stdin/stdout,并将stdio请求转发到 POST /mcp。如果需要,它会自动启动HTTP服务器。通过 --port <port> 使用非默认服务器端口,以及 --log <path> 以覆盖默认的HTTP服务器日志路径。

MCP检查员

使用 mcp-inspector.json 随着 MCP检查员 用于调试:

npx @modelcontextprotocol/inspector --config mcp-inspector.json

MCP工具

工具 说明
camera_list 列出OpenMV摄像机及其连接状态
camera_connect 通过串行端口路径连接到相机
camera_disconnect 断开与摄像头的连接
camera_reset 重置(重新启动)摄像头
camera_boot 将相机重新启动到引导加载程序模式(用于固件闪烁)
camera_info 获取相机板/传感器/固件信息
script_run 在相机上执行MicroPython脚本
script_stop 停止当前运行的脚本
script_running 检查脚本是否正在运行
script_output 读取脚本输出(stdout/stderr)
frame_capture 以base64 JPEG格式捕获帧
frame_enable 启用或禁用摄像头的帧流
license_register 为连接的摄像头注册板密钥

HTTP流端点

端点 数据 格式
GET /stream/status?camera=<path> 连接和脚本运行状态 text/event-stream 上海证券交易所
GET /stream/frame?camera=<path> 帧缓冲区 multipart/x-mixed-replace; boundary=frame (MJPEG)
GET /stream/terminal?camera=<path> 终端输出 text/plain; charset=utf-8 (大块)

许可证

麻省理工学院