WiseVision ROS2 MCP Server

WiseVision ROS2 MCP Server

Python server implementing Model Context Protocol (MCP) for ROS2.

225

8 Tools

Signed
Built by Docker
Add to Docker Desktop

Version 4.43 or later needs to be installed to add the server automatically

About

WiseVision ROS2 MCP Server MCP Server

Python server implementing Model Context Protocol (MCP) for ROS2.

What is an MCP Server?

Characteristics

AttributeDetails
Docker Imagemcp/ros2
Authorwise-vision
Repositoryhttps://github.com/wise-vision/mcp_server_ros_2
Dockerfilehttps://github.com/wise-vision/mcp_server_ros_2/blob/main/Dockerfile
Docker Image built byDocker Inc.
Docker Scout Health ScoreDocker Scout Health Score
Verify SignatureCOSIGN_REPOSITORY=mcp/signatures cosign verify mcp/ros2 --key https://raw.githubusercontent.com/docker/keyring/refs/heads/main/public/mcp/latest.pub
LicenceMozilla Public License 2.0

Available Tools (8)

Tools provided by this ServerShort Description
ros2_get_message_fieldsReturns the fields of a given ROS2 message type.
ros2_get_messagesCalls the ROS2 ‘/get_messages’ service to retrieve past messages from a topic for data which is stored in InfluxDB.
ros2_interface_listReturns a list of available ROS 2 interfaces.
ros2_service_callCall a ROS 2 service by name and type using provided fields.
ros2_service_listReturns a list of available ROS 2 services and their request fields.
ros2_topic_listReturns a list of available ROS 2 topics and their types.
ros2_topic_publishPublish a message to a ROS 2 topic by name and message type using provided field values.
ros2_topic_subscribeSubscribe to a ROS 2 topic by name collecting messages for a given time or count limit.

Tools Details

Tool: ros2_get_message_fields

Returns the fields of a given ROS2 message type.

ParametersTypeDescription
message_typestringFull ROS2 message type, e.g., std_msgs/msg/String

Tool: ros2_get_messages

Calls the ROS2 ‘/get_messages’ service to retrieve past messages from a topic for data which is stored in InfluxDB.

ParametersTypeDescription
message_typestringFull ROS2 message type used for decoding
topic_namestringName of the topic to retrieve messages from.
number_of_messagesintegeroptionalNumber of messages to fetch.
time_endstringoptionalISO8601 timestamp string to filter messages before a point in time.
time_startstringoptionalISO8601 timestamp string to filter messages after a point in time.

Tool: ros2_interface_list

Returns a list of available ROS 2 interfaces.

Tool: ros2_service_call

Call a ROS 2 service by name and type using provided fields. Will ask the user to confirm if some fields are missing unless 'force_call' is set to True. Before every use of this tool, the agent must call 'ros2 service list' and 'ros2 interface list' to ensure the latest interface information is available.

ParametersTypeDescription
fieldsobjectDictionary of fields to send in the service request.
service_namestringName of the service to call
service_typestringFull ROS 2 service type, before pass, check service type using tool ros2_service_list
force_callbooleanoptionalWhether to call the service even if some fields are missing

Tool: ros2_service_list

Returns a list of available ROS 2 services and their request fields.

Tool: ros2_topic_list

Returns a list of available ROS 2 topics and their types.

Tool: ros2_topic_publish

Publish a message to a ROS 2 topic by name and message type using provided field values. Before every use of this tool, the agent must call 'ros2_topic_list' and 'ros2_interface_list' to ensure the latest available topics and message types are known.

ParametersTypeDescription
dataobjectDictionary containing the message fields and values
message_typestringFull ROS 2 message type, e.g., 'std_msgs/msg/String'
topic_namestringName of the topic to publish to

Tool: ros2_topic_subscribe

Subscribe to a ROS 2 topic by name collecting messages for a given time or count limit. Before every use of this tool, the agent must call 'ros2_topic_list' to ensure it has the latest available topics

ParametersTypeDescription
topic_namestringName of the topic to subscribe to
durationnumberoptionalIf provided, collects messages for this many seconds.
message_limitintegeroptionalIf provided, stops after receiving this number of messages.

Use this MCP Server

{
  "mcpServers": {
    "ros2": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "mcp/ros2"
      ]
    }
  }
}

Why is it safer to run MCP Servers with Docker?

Manual installation

You can install the MCP server using:

Installation for

Related servers