使用说明内容(Markdown格式)

项目简介

这是一个基于 MCP 协议实现的 ROS2 服务端(服务器端),用于向 MCP 客户端暴露对 ROS2 的资源(主题、节点、服务等)的管理、查询和操作能力。服务器端定义了一组工具(Tool),并实现了对这些工具的调用处理,所有请求都通过 MCP 的标准格式进行通信。

主要功能点

  • 通过 MCP 服务器暴露 ROS2 工具集合,支持列出主题、节点、服务等资源,以及对主题发布、主题监听、服务调用等操作。
  • 支持动态注册工具:客户端可以通过 MCP 获取服务器定义的可用工具及其输入结构。
  • 通过 stdio 通道提供通信,便于与本地或容器化的 MCP 客户端进行集成。
  • 使用简单的 ROS2 CLI 快速实现工具后端逻辑,便于在真实 ROS2 环境中进行扩展。

安装步骤

  1. 安装依赖
  • 在具备 ROS2 环境的机器上安装所需的 Python 包,例如 mcp、langchain 等。示例依赖(请按实际环境安装):
    • mcp
    • langchain
    • langchain-together
  1. 获取代码
  • 将仓库中的 ros_vlm/ 目录完整拷贝到工作区内,确保 mcp_server.py 能正确访问。

服务器配置(供 MCP 客户端参考)

以下配置用于告诉 MCP 客户端如何启动该 MCP 服务器。配置以 JSON 形式给出,包含服务器名称、启动命令及参数等信息。请注意,MCP 客户端本身不需要该配置执行代码,仅用于描述如何启动服务器。

{ "server_name": "ros2-mcp-server", "command": "python3", "args": ["-m", "ros_vlm.mcp_server"] }

说明:

  • server_name: 唯一标识该 MCP 服务器的名称,便于客户端与之交互时识别。
  • command: 启动服务器所使用的解释器或可执行程序,示例为 python3。
  • args: 启动参数,示例为以模块方式运行 ros_vlm.mcp_server。

基本使用方法

  • 启动服务器:在具备 ROS2 环境的主机上执行命令启动该 MCP 服务器。推荐方式为使用模块方式运行:
    • python3 -m ros_vlm.mcp_server
  • 与服务器交互:通过 MCP 客户端连接后,客户端可以查询服务器暴露的工具、调用具体工具,达到对 ROS2 的探查与操作。
  • 常见使用场景:从语言模型或其他客户端通过 MCP 调用工具,获取 ROS2 的主题列表、读取主题数据、发布消息、调用服务等。

使用示例(高层流程,不包含具体代码)

  • 客户端获取工具列表:服务器返回可用的 ROS2 工具及其输入结构。
  • 客户端选择工具并提供参数,向服务器发起工具调用请求。
  • 服务器执行对应的 ROS2 命令(如 ros2 topic list、ros2 topic publish 等),并将结果以 TextContent 形式返回给客户端。

维护与扩展

  • 若需要新增 ROS2 功能,只需在服务器端实现新的 Tool 条目及对应执行逻辑(此实现已包含常用的主题、节点、服务相关工具)。
  • 可以进一步扩展至更多传输协议或语言模型集成,保持 MCP 服务器的扩展性与安全性。

备注

  • 服务器使用 ROS2 CLI 命令执行工具逻辑,便于在真实 ROS2 系统中可靠运行与扩展。
  • 客户端需要具备与服务器通讯的能力,包含启动命令和参数的配置(见上方 JSON 配置示例)。

信息

分类

开发者工具