README
🚀 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 名称和架构的工具。
Scan to join WeChat group