Python MCP server for ROS 2 enabling stdio AI integration with topics, services, actions, and message analysis.
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent β or use 1-click editor setup below.
We ran the install command below but it didn't respond within our test window β this can mean a slow first-time install rather than a real problem.
npx -y @modelcontextprotocol/inspectorNo response to initialize.
This is an experimental automated check and can have false negatives β missing environment variables, a slow cold install, etc. It doesnβt necessarily mean somethingβs wrong. Last checked 1mo ago.
π‘ Paste the JSON block into your client's configuration file under mcpServers, then restart the application.
Inspect callable tools, capabilities, and parameters exposed to AI agents by MCP Server Ros 2.

A Python implementation of the Model Context Protocol (MCP) for ROS 2. This server enables AI tooling to connect with ROS 2 nodes, topics, and services using the MCP standard over stdio. Designed to be the easiest ROS 2 MCP server to configure.
Subscribe to a ROS2 topic, collect messages for a specified duration, and provide statistical analysis of the collected data.
β‘οΈ Can auto-detect topic if only one is available. Analyzes message rates, counts, and statistics on numeric fields.
Subscribe to one ROS2 topic and republish messages to another topic with optional transformations.
β‘οΈ Supports identity relay, rate limiting, and change-based filtering.
Check if expected ROS2 topics and services are available and functioning correctly with optional publication rate monitoring.
β‘οΈ Provides comprehensive health report with status indicators and recommendations.
Compare two ROS2 topics and report differences in their messages with detailed field-by-field analysis.
β‘οΈ Useful for comparing raw sensor data with filtered/processed versions or verifying topic synchronization.
Note: To call a service with a custom (non-default) type, source the package that defines it before starting the server.
Save hours of development time with native AI integration for your ROS 2 projects:
Perfect for: Robotics developers, researchers, students, and anyone working with ROS 2 who wants to leverage AI for faster development and debugging.
If you find this useful, please β star the repo β it helps others discover it.
π Enjoying this project? Feel free to contribute or reach out for support! Write issues, submit PRs, or join our Discord community to connect with other ROS 2 and AI enthusiasts.
Contributions are welcome! Please check the open issues for ways to help, open a pull request, or drop by our Discord to discuss ideas before diving in. By participating, you agree to follow our Code of Conduct.


Follow the installation guide for step-by-step instructions:
If the first tool call returns an incomplete list of topics/services right after container start, DDS discovery may still be in progress. The server performs a one-time warm-up on the first tool call in container environments; tune it via:
MCP_ROS_DISCOVERY_STABLE_SEC (default: 1.0)MCP_ROS_DISCOVERY_TIMEOUT_SEC (default: 5.0)MCP_ROS_DISCOVERY_WARMUP=false to disableCheck out the Gazebo Drone Demo section
| Tool | Description | Inputs | Outputs |
|---|---|---|---|
ros2_topic_list | Returns list of available topics | β | topic_name (string): Topic name topic_type (string): Message type |
ros2_topic_subscribe | Subscribes to a ROS 2 topic and collects messages for a duration or message limit | topic_name (string) duration (float) message_limit (int) (defaults: first msg, 5s) | messages count duration |
ros2_get_messages | Retrieves past messages from a topic (data black box) | topic_name (string) message_type (string) number_of_messages (int) time_start (str) time_end (str) | timestamps messages |
ros2_get_message_fields | Gets field names and types for a message type | message_type (string) | Field names + types |
ros2_topic_publish | Publishes message to a topic | topic_name (string) message_type (string) data (dict) | status |
| Tool | Description | Inputs | Outputs |
|---|---|---|---|
ros2_service_list | Returns list of available services | β | service_name (string) service_type (string) request_fields (array) |
ros2_service_call | Calls a ROS 2 service | service_name (string) service_type (string) fields (array) force_call (bool, default: false) | result (string) error (string, if any) |
Factual signals from GitHub, npm, and our automated checks β not a rating.
No reviews yet β be the first to share how this listing worked for you.
Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.
[](https://allmcps.com/mcp/wisevision-mcp-server-ros-2)<a href="https://allmcps.com/mcp/wisevision-mcp-server-ros-2"><img src="https://allmcps.com/api/badge/wisevision-mcp-server-ros-2?style=directory" alt="MCP Server Ros 2 on AllMCPs" /></a>