Skip to main content
Glama

VLA-Diff-MCP

VLA-Diff 项目运维工具 MCP server(一期只读 + 二期写操作)。

部署形态(工具裁剪开关)

同一份 server.py 通过环境变量 VLADIFF_MCP_PROFILE 裁剪暴露的工具集, 避免全局 / 工作区两个实例重复暴露同一工具:

形态

VLADIFF_MCP_PROFILE

暴露工具

部署位置

完整

full(默认)

全部 10 个

命令行直接调试

运维

ops

9 个(无 publish_prompt

~/Global-MCP-Server(Trae 全局 MCP global-diff-ops

指令

prompt

publish_prompt

本目录(Trae 工作区 MCP vla-diff-prompt,见 .trae/mcp.json

publish_prompt 属敏感写操作(伪造大模型指令触发动作分发),仅在本工作区可用。 代码修改流程:本目录为源,改完后同步 server.py~/Global-MCP-Server/

功能

通过 MCP 协议向 Agent 提供稳定工具,替代每次临场拼 bash 命令:

一期:只读工具

工具

说明

运行位置

ros_topic_status

查询 ROS 话题频率 + 最新消息

容器 ros_noetic_uss_nav

ros_topic_echo

读取 ROS 话题最近 n 条消息

容器

process_status

查询关键服务进程状态

宿主机

tmux_status

列出 tmux 会话

宿主机

tmux_capture

抓取 tmux 会话 pane 输出

宿主机

read_log

读取 agent_run / scene_graph 日志

容器

二期:写操作工具

工具

说明

安全机制

publish_prompt

向 /agent_prompt 发布伪造指令(task_id: 0=VLA/1=TRACKING/2=其他)

无(模拟大模型消息)

tmux_send

向 tmux 会话发送命令(不存在时自动创建,不 kill-session)

无(按复用规则操作)

restart_service

重启 ego_planner 等(先杀后启,后台运行)

confirm=True 显式确认

exec_cmd

容器内任意 shell 命令兜底

无白名单,谨慎使用

环境准备

# 创建虚拟环境(名称固定为 vla_diff_mcp_venv,已被 .gitignore 忽略)
uv venv vla_diff_mcp_venv

# 安装依赖(mcp SDK)
UV_PROJECT_ENVIRONMENT=vla_diff_mcp_venv uv sync

运行

vla_diff_mcp_venv/bin/python server.py

默认 stdio 传输,由 MCP 客户端(opencode / Claude Code)以子进程方式拉起。

前置条件

  • Docker 容器 ros_noetic_uss_nav 已创建(ROS 相关工具依赖)

  • 未启动时,ROS 类工具会返回明确错误,tmux / 进程类工具不受影响

扩展方向

  • 更多可重启服务:elastic-tracker、tracking_service 等(按需加入 KNOWN_RESTART

  • 服务配置化:将启动命令迁移到 YAML,避免写死在代码里