🔌 设备控制MCP
设备控制MCP 是一个 模型上下文协议(MCP)服务器 这使得AI代理能够控制传统的工业设备。
服务器仅处理较低级别的设备操作,例如 connect, disconnect, send,以及 receive --同时将所有高级逻辑和决策委托给AI代理本身。A. 基于Markdown的命令手册 以便AI代理能够理解设备协议,并自主确定使用合法格式的正确命令。如果设备降价手册不可用,您可以随时使用流行的工具 MarkItDown 将各种格式的文件转换为Markdown。
此设计保留了MCP服务器 轻量级、命令风格无关、易于适应,使其适合将传统或专有工业设备集成到现代人工智能驱动的自动化工作流程中。
______________________________________________________________________
✨ 主要特点
- 🧠 AI驱动控制
- 📄 人工智能推理的Markdown命令手册
- 🔌 与协议无关的设备抽象
- ♻️ 无需重新启动即可热重新加载设备配置文件
- 初始化握手、心跳和监控的流程
______________________________________________________________________
🎯 目标
启用 工业硬件的人工智能原生控制 无需为每个设备编写驱动程序。
______________________________________________________________________
📦 安装
安装 uv
# On macOS and Linux
curl -LsSf https://astral.sh/uv/install.sh | sh# On Windows
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"克隆存储库并安装依赖项
git clone https://github.com/mnbqwe10/device-control-mcp.git
cd device-control-mcp
uv sync______________________________________________________________________
⚙️ MCP服务器配置
在AI代理中配置MCP服务器:
{
"mcpServers": {
"device-control": {
"command": "uv",
"args": [
"--directory",
"{{PATH_TO_DIR}}/device-control-mcp",
"run",
"main.py"
]
}
}
}______________________________________________________________________
🚀 用法
控制装置
› show me the available devices in device-control mcp server
› connect urdashboard, read the user manual, and let me know what are the available commands
› show me a popup in the teach pendant设备配置文件
您可以从以下位置修改合适的模板 profiles/templates/ 并放置在 profiles 遵循命名约定的文件夹 .device.yaml 和 .manual.md.
设备配置文件可以包括可选的 initialize 部分用于在连接后运行握手,启动心跳,并启用定期读取的监视器循环。使用 initialize.required: true 当设备必须在正常命令之前初始化时。
对于REST设备,从 profiles/templates/rest.device.template.yml 并配置 endpoint.url (基本URL)加 transport.rest_path / transport.rest_method. 您还可以只保留一个REST配置文件 endpoint.url 并通过以下方式进行按请求传递覆盖 send_command args类似 rest_path 和 rest_method (或内联语法,如 GET /posts?userId=9).
或者您可以使用 onboard-device 技能(skills/onboard-device/SKILL.md)为您生成设备配置文件和手册。
车载设备技能
这 onboard-device 技能将原始手册压缩成LLM友好版 profiles/.manual.md 并创建匹配 profiles/.device.yaml 从正确的模板。
安装:
- 如果您在此仓库中运行Codex,则不需要额外安装;这种技能是在当地发现的。
- 否则,复制
skills/onboard-device/进入您的Codex技能目录,或使用Codex技能安装程序进行安装。
如何使用:
- 收集原始手册(文件路径或粘贴的文本)以及任何已知的连接默认值。
- 请Codex运行
onboard-device技能,并提供用于文件名的设备id。 - 查看下生成的文件
profiles/并在使用前编辑任何TODO。
______________________________________________________________________
✨ 特性
MCP工具
设备控制MCP服务器提供管理设备的工具:
list_devices
connect_device
initialize_device
send_command
disconnect_device
recent_messages
device_status
refresh_profiles
从以下位置重新加载设备配置文件和手册 profiles/ 而无需重新启动服务器。
📚 MCP资源
- 设备配置文件:
*.device.yaml/*.device.yml - 设备手册:
*.manual.*
所有资源都放在 profiles/ 通过MCP资源API自动公开。
⚠️ 模板下 profiles/templates/ 被忽略且未注册为设备。______________________________________________________________________
🧩 支持的交通工具
目前支持的设备传输,更多即将推出:
- 🔌 串行设备
- 🌐 TCP套接字
- 🔁 WebSocket连接
- 🌍 REST(HTTP)API
______________________________________________________________________
🪵 记录和存储
日志记录和存储行为可通过以下方式配置 config.yaml。通信消息可以保存为NDJSON文件 logs/ 或在SQLite数据库中 logs/messages.db 可选地。
服务器日志保存在 logs/server.log (以~2MB的速度旋转,保留3个备份)
环境变量:
MCP_LOG_LEVEL--控制服务器日志冗长
______________________________________________________________________
📁 简介和手册
- 所有设备配置文件和手册均在
profiles/ - 模板位于
profiles/templates/并且是 未注册 - 可以使用以下命令动态刷新配置文件
refresh_profiles
______________________________________________________________________
🧠 哲学
保持MCP服务器简单。 让AI代理进行思考。
该项目包含以下理念 现代人工智能代理足够强大,可以解释协议、手册和工作流程,使MCP服务器保持通用性、稳定性,并易于跨设备和行业扩展。
