Mcp_server_ros_2

Mcp_server_ros_2

🚀 WiseVision ROS2 MCP 服务器

WiseVision ROS2 MCP 服务器是一个用 Python 实现的服务器,它遵循 Model Context Protocol (MCP),专为 ROS2 设计,可高效管理 ROS2 中的主题、服务等资源。

✨ 主要特性

  • 列出可用的主题
  • 列出可用的服务
  • 调用服务
  • 获取来自 WiseVision 数据黑匣子InfluxDB 的 ROS2 替代品)的消息
  • 订阅主题以接收消息
  • 在主题上发布消息
  • 回显主题上的消息
  • 获取消息类型的字段

⚠️ 重要提示

调用使用自定义服务源的服务之前,请先启动服务器。

📚 详细文档

API

工具

  • ros2_topic_list

    • 功能:返回可用主题的列表
    • 输出:
      • topic_name (字符串): 主题名称
      • topic_type (字符串): 主题类型的消息
  • ros2_service_list

    • 功能:返回可用服务的列表
    • 输出:
      • service_name (字符串): 服务名称
      • service_type (字符串): 服务类型
      • request_fields (字符串数组): 服务请求中的字段
  • ros2_service_call

    • 功能:调用 ROS2 服务
    • 输入:
      • service_name (字符串): 服务名称
      • service_type (字符串): 服务类型
      • fields (字符串数组): 用户提供的服务请求中的字段数据
      • force_call (布尔值): 强制调用服务而无需提供所有字段,默认为 false
    • 输出:
      • result (字符串): 服务调用的结果
      • error (字符串): 调用错误时返回的错误信息
    • 特性:
      • 检查是否提供了所有必需的字段
  • ros2_subscription_list

    • 功能:返回当前已订阅主题的列表
    • 输出:
      • subscriptions (列表): 当前订阅的主题列表
  • ros2_subscription_stream

    • 功能:返回特定主题的消息流(实时数据)
    • 输入:
      • topic_name (字符串): 要订阅的主题名称
    • 输出:
      • messages (流): 特定主题接收到的实时消息
  • ros2_publish

    • 功能:在指定主题上发布消息
    • 输入:
      • topic_name (字符串): 要发布的主题名称
      • message_value (字符串): 要发布的消息内容
    • 输出:
      • acknowledgment (字符串): 确认消息已成功发布的确认信息
  • ros2_topic_info

    • 功能:返回指定主题的详细信息
    • 输入:
      • topic_name (字符串): 要查询的主题名称
    • 输出:
      • topic_information (字典): 主题的详细信息,包括其类型和其他属性
  • ros2_service_info

    • 功能:返回指定服务的详细信息
    • 输入:
      • service_name (字符串): 要查询的服务名称
    • 输出:
      • service_information (字典): 服务的详细信息,包括其接口和服务类

📦 安装指南

设置 MCP 配置为 mcp.json

"mcp_server_ros_2": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"wisevision/mcp_server_ros_2"
],
}

在本地构建 Docker 镜像

git clone https://github.com/wise-vision/mcp_server_ros_2.git
cd mcp_server_ros_2
docker build -t wisevision/mcp_server_ros_2 .

配置 AI 代理提示

将以下内容添加到 AI 代理提示中:

你是一个使用外部工具通过 MCP 服务器的 AI 助理。
在调用任何工具之前,始终检查你的内存是否知道当前可用工具列表。
• 如果你不记得当前工具列表,请首先调用 list-tools 工具。
• 永远不要猜测工具名称或参数。
• 如果用户请求需要使用某个工具而你没有相关信息,应询问他们或先调用 list-tools。
一旦加载了工具列表,你可以直接使用 documented 名称和架构的工具。
  • 0 关注
  • 0 收藏,25 浏览
  • system 提出于 2025-10-04 05:57

相似服务问题

相关AI产品