MCP Marketplace
BrowseHow It WorksFor CreatorsDocs
Sign inSign up
MCP Marketplace

The curated, security-first marketplace for AI tools.

Product

Browse ToolsSubmit a ToolDocumentationHow It WorksBlogFAQChangelog

Legal

Terms of ServicePrivacy PolicyCommunity Guidelines

Connect

support@mcp-marketplace.ioTwitter / XDiscord

MCP Marketplace © 2026. All rights reserved.

Back to Browse

Mcp Server Ros 2 MCP Server

by Wise Vision
Developer ToolsLow Risk10.0MCP RegistryLocal
Free

Server data from the Official MCP Registry

View ROS 2 nodes and topics, and call services and actions via MCP

About

View ROS 2 nodes and topics, and call services and actions via MCP

Security Report

10.0
Low Risk10.0Low Risk

Valid MCP server (1 strong, 1 medium validity signals). No known CVEs in dependencies. Imported from the Official MCP Registry.

3 files analyzed · No issues found

Security scores are indicators to help you make informed decisions, not guarantees. Always review permissions before connecting any MCP server.

What You'll Need

Set these up before or after installing:

Enable custom promptsOptional

Environment variable: MCP_CUSTOM_PROMPTS

Use local promptsOptional

Environment variable: MCP_PROMPTS_LOCAL

Path to custom prompts directoryOptional

Environment variable: MCP_PROMPTS_PATH

Name of the prompts moduleOptional

Environment variable: MCP_PROMPTS_MODULE

Documentation

View on GitHub

From the project's GitHub README.

ROS2 MCP Server

Discord ROS 2 Humble ROS 2 Jazzy Docker GitHub stars

Flow graph

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.

✨ Tools

  • List available topics
  • List available services
  • Lists available actions with their types and request fields
  • Call services
  • Subscribe to topics to collect messages
  • Publish messages to topics
  • Echo messages on topics
  • Get fields from message types
  • Sends an action goal and optionally waits for the result
  • Requests the result of an action goal
  • Subscribes to feedback messages from an action
  • Subscribes to status updates of an action
  • Cancels a specific goal or all active goals
  • Get messages from WiseVision Data Black Box (InfluxDB alternative to Rosbag2)

🤖 Available Prompts

📘 Want to create a custom prompt? Check the guide here

📊 base.ros2-topic-echo-and-analyze

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.

🔄 base.ros2-topic-relay

Subscribe to one ROS2 topic and republish messages to another topic with optional transformations.

➡️ Supports identity relay, rate limiting, and change-based filtering.

🏥 base.ros2-node-health-check

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.

🔍 base.ros2-topic-diff-monitor

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.

ROS2 MCP has Prompts extension with additional prompts See here

💡 Don’t know what prompts are? See the MCP spec here.

Note: To call a service with a custom (non-default) type, source the package that defines it before starting the server.

🎯 Why Choose This MCP Server?

Save hours of development time with native AI integration for your ROS 2 projects:

Why this ROS 2 MCP server ⭐

  • ⚡ 1-minute setup - World's easiest ROS 2 MCP configuration
  • 0️⃣ Zero-friction setup - stdio transport, no brokers, no webserver.
  • 🔌 Auto type discovery - a built-in “list interfaces” tool dynamically enumerates available topics and services together with their message/service definitions (fields, types, schema) — so the client always knows exactly what data can be published or called.
  • ✨ Nested field support: Handle complex message structures with ease.
  • 🤖 AI-powered debugging - Let AI help you troubleshoot ROS 2 issues in real time
  • 📊 Smart data analysis - Query your robot's sensor data using natural language
  • 🚀 Boost productivity - Control robots, analyze logs, and debug issues through AI chat
  • 💡 No ROS 2 expertise required - AI translates your requests into proper ROS 2 commands
  • 🐋 Dockerized: Ready-to-use Docker image for quick deployment.
  • 🔧 Auto QoS selection: Automatically selects appropriate Quality of Service settings for topics and services, ensuring optimal communication performance without manual configuration.

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.

🚀 Drone Mission Using Prompts

Drone mission demo

🌍 Real-world examples:

Demo

⚙️ Installation

Follow the installation guide for step-by-step instructions:

  • 🧩 Install in Visual Studio Code Copilot
  • 🤖 Install in Claude Desktop
  • 💻 Install in Warp
  • 🐳 Build Docker Image locally

💡 Want to try it in simulation?

Check out the Gazebo Drone Demo section

🔧 ROS 2 Tools

📋 Topics
ToolDescriptionInputsOutputs
ros2_topic_listReturns list of available topics–topic_name (string): Topic name topic_type (string): Message type
ros2_topic_subscribeSubscribes to a ROS 2 topic and collects messages for a duration or message limittopic_name (string) duration (float) message_limit (int) (defaults: first msg, 5s)messages count duration
ros2_get_messagesRetrieves 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_fieldsGets field names and types for a message typemessage_type (string)Field names + types
ros2_topic_publishPublishes message to a topictopic_name (string) message_type (string) data (dict)status

🛠 Services
ToolDescriptionInputsOutputs
ros2_service_listReturns list of available services–service_name (string) service_type (string) request_fields (array)
ros2_service_callCalls a ROS 2 serviceservice_name (string) service_type (string) fields (array) force_call (bool, default: false)result (string) error (string, if any)
🎯 Actions
ToolDescriptionInputsOutputs
ros2_list_actionsReturns list of available ROS 2 actions with their types and request fields–actions[] (array) └ name (string) └ types[] (array of string) └ request_fields (array)
ros2_send_action_goalSends a goal to an action. Optionally waits for the result.action_name (string) action_type (string) goal_fields (object) wait_for_result (bool, default: false) timeout_sec (number, default: 60.0)accepted (bool) goal_id (string|null) send_goal_stamp (object|null) waited (bool) result_timeout_sec (number|null) status_code (int|null) status (string|null) result (object|null) | error (string)
ros2_cancel_action_goalCancels a specific goal or all goals for an actionaction_name (string) goal_id_hex (string, required if cancel_all=false) cancel_all (bool, default: false) stamp_sec (int, default: 0) stamp_nanosec (int, default: 0) wait_timeout_sec (number, default: 3.0)service (string) return_code (int) return_code_text (string) goals_canceling[] (array of {goal_id, stamp}) | error (string)
ros2_action_request_resultWaits for the RESULT of a given goal via GetResultaction_name (string) action_type (string) goal_id_hex (string, 32-char UUID) timeout_sec (number|null, default: 60.0) wait_for_service_sec (number, default: 3.0)service (string) goal_id (string) waited (bool) result_timeout_sec (number|null) status_code (int|null) status (string|null) result (object|null) | error (string)
ros2_action_subscribe_feedbackSubscribes to feedback messages for an action. Can filter by goal_id. Collects messages for duration or max count.action_name (string) action_type (string) goal_id_hex (string|null) duration_sec (number, default: 5.0) max_messages (int, default: 100)topic (string) action_type (string) goal_id_filter (string|null) duration_sec (number) messages[] (array of {goal_id, feedback, recv_stamp}) | error (string)
ros2_action_subscribe_statusSubscribes to an action's status topic and returns collected status framesaction_name (string) duration_sec (number, default: 5.0) max_messages (int, default: 100)topic (string) duration_sec (number) frames[] (array of {stamp, statuses[]}) | error (string)

🐞 Debugging

Since MCP servers run over stdio, debugging can be challenging. For the best debugging experience, we strongly recommend using the MCP Inspector.

You can launch the MCP Inspector via npm with this command:

npx @modelcontextprotocol/inspector uv --directory /path/to/ros2_mcp run mcp_ros_2_server

Upon launching, the Inspector will display a URL that you can access in your browser to begin debugging.

📚 Origins and evolution

We built this server to make AI‑assisted ROS 2 development fast and reliable. Internally, we needed a simple way for agents to discover message types, publish/subscribe to topics, and call services—without boilerplate or flaky networking. That led to a few core design goals:

  • Handle all ROS 2 message types (including nested fields) so agents can write and test any code
  • Integrate topic pub/sub and service calls to validate behavior end‑to‑end
  • Work seamlessly with GitHub Copilot in VS Code and other MCP clients
  • Use a simple stdio transport to avoid network complexity

After dogfooding it, we open‑sourced the project to help the broader ROS 2 community build faster with AI. It’s now useful not only for development, but also for controlling robots, running QoS experiments, and analyzing live data and robot/swarm state. The project is actively maintained—features and improvements ship regularly based on user feedback. If this project helps you, please star the repo and share your use case!

Reviews

No reviews yet

Be the first to review this server!

0

installs

New

no ratings yet

Is this your server?

Claim ownership to manage your listing, respond to reviews, and track installs from your dashboard.

Claim with GitHub

Sign up with the GitHub account that owns this repo

Links

Source Code

Details

Published February 24, 2026
Version 1.0.0
0 installs
Local Plugin

More Developer Tools MCP Servers

Git

Free

by Modelcontextprotocol · Developer Tools

Read, search, and manipulate Git repositories programmatically

80.0K
Stars
3
Installs
6.5
Security
No ratings yet
Local

Toleno

Free

by Toleno · Developer Tools

Toleno Network MCP Server — Manage your Toleno mining account with Claude AI using natural language.

114
Stars
404
Installs
8.0
Security
4.8
Local

mcp-creator-python

Free

by mcp-marketplace · Developer Tools

Create, build, and publish Python MCP servers to PyPI — conversationally.

-
Stars
55
Installs
10.0
Security
5.0
Local

MarkItDown

Free

by Microsoft · Content & Media

Convert files (PDF, Word, Excel, images, audio) to Markdown for LLM consumption

89.9K
Stars
15
Installs
6.0
Security
5.0
Local

mcp-creator-typescript

Free

by mcp-marketplace · Developer Tools

Scaffold, build, and publish TypeScript MCP servers to npm — conversationally

-
Stars
14
Installs
10.0
Security
5.0
Local

FinAgent

Free

by mcp-marketplace · Finance

Free stock data and market news for any MCP-compatible AI assistant.

-
Stars
13
Installs
10.0
Security
No ratings yet
Local