Skip to main content
Glama

ROS MCP Server

Apache 2.0
219
  • Apple
  • Linux

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault

No arguments

Schema

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

Tools

Functions exposed to the LLM to take actions

NameDescription
set_websocket_ip

Set the IP and port for the WebSocket connection.

get_topics

Fetch available topics from the ROS bridge. Example: get_topics()

get_topic_type

Get the message type for a specific topic. Example: get_topic_type('/cmd_vel')

get_message_details

Get the complete structure/definition of a message type. Example: get_message_details('geometry_msgs/Twist')

get_publishers_for_topic

Get list of nodes that are publishing to a specific topic. Example: get_publishers_for_topic('/cmd_vel')

get_subscribers_for_topic

Get list of nodes that are subscribed to a specific topic. Example: get_subscribers_for_topic('/cmd_vel')

subscribe_once

Subscribe to a ROS topic and return the first message received. Example: subscribe_once(topic='/cmd_vel', msg_type='geometry_msgs/msg/TwistStamped')

publish_once

Publish a single message to a ROS topic. Example: publish_once(topic='/cmd_vel', msg_type='geometry_msgs/msg/TwistStamped', msg={'linear': {'x': 1.0}})

subscribe_for_duration

Subscribe to a topic for a duration and collect messages. Example: subscribe_for_duration(topic='/cmd_vel', msg_type='geometry_msgs/msg/TwistStamped', duration=5, max_messages=10)

publish_for_durations

Publish a sequence of messages with delays. Example: publish_for_durations(topic='/cmd_vel', msg_type='geometry_msgs/msg/TwistStamped', messages=[{'linear': {'x': 1.0}}, {'linear': {'x': 0.0}}], durations=[1, 2])

get_services

Get list of all available ROS services. Example: get_services()

get_service_type

Get the service type for a specific service. Example: get_service_type('/rosapi/topics')

get_service_details

Get complete service details including request and response structures. Example: get_service_details('my_package/CustomService')

get_service_providers

Get list of nodes that provide a specific service. Example: get_service_providers('/rosapi/topics')

inspect_all_services

Get comprehensive information about all services including types and providers. Example: inspect_all_services()

call_service

Call a ROS service with specified request data. Example: call_service('/rosapi/topics', 'rosapi/Topics', {})

ping_robot

Ping a robot's IP address and check if a specific port is open. A successful ping to the IP but not the port can indicate that ROSbridge is not running. Example: ping_robot(ip='192.168.1.100', port=9090)

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/robotmcp/ros-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server