ROS 2 Medkit MCP Server
ROS 2 gateway data and operation management through a direct MCP interface.
Data last scanned today · Reviewed today
Overview
This server acts as a thin adapter between LLMs and the SOVD HTTP API provided by ros2_medkit. It enables your AI to interface with a running ros2_medkit gateway, facilitating discovery of robot component data, configuration of ROS 2 parameters, and execution of services or actions. The implementation utilizes an asynchronous HTTP client with Pydantic validation for configuration models. It supports both stdio and streamable-http transport mechanisms, offering flexibility for different environment requirements and deployment setups.
Our verdict
With a high-risk security score of 33/100, users should exercise caution. A primary concern is the lack of a read-only mode, as every installation provides the AI with full write access to the underlying gateway. This tool is best suited for controlled development or experimental environments where the risk of unintended state changes in the ROS 2 system can be strictly managed.
- Supports both stdio and streamable-http transport layers
- Uses Pydantic for robust configuration and model validation
- Zero direct dependencies reduce the supply-chain surface area
- Operates with full write access to the target gateway
- Community-maintained project with a single primary contributor
- Authentication mechanisms have not yet been editorially reviewed
Tools
| Tool | Description | Risk |
|---|---|---|
| sovd_version | Get the SOVD API version information. | low |
| sovd_entities_list | List all SOVD entities (areas, components, apps, and functions) with optional filtering. | low |
| sovd_entities_get | Get a specific entity by ID with live data if available. | low |
| sovd_faults_list | List faults for a specific component. | low |
| sovd_faults_get | Get a specific fault by ID. | low |
| sovd_faults_clear | Clear (acknowledge/dismiss) a fault. | high |
| sovd_area_components | List all components within a specific area. | low |
| sovd_entity_data | Read all topic data from an entity (component or app). | low |
| sovd_entity_topic_data | Read data from a specific topic within an entity. | low |
| sovd_publish_topic | Publish data to a component's topic. | medium |
Compatibility
| Client | Local | Docker | Remote | Read-only |
|---|---|---|---|---|
| Claude Desktop | ||||
| Cursor | ||||
| VS Code | ||||
| Windsurf | ||||
| ChatGPT |
Frequently asked questions
›Does this server implement the SOVD protocol itself?
No, it does not implement SOVD. It acts as an MCP adapter that calls the existing HTTP endpoints of a running ros2_medkit gateway.
›What are the core prerequisites to run the server?
You need Python 3.11+, Poetry or uv, and a pre-existing, running ros2_medkit gateway instance.
›Can the server authenticate with the ROS 2 gateway?
Yes, you can configure an optional Bearer token by setting the ROS2_MEDKIT_BEARER_TOKEN environment variable.
›How do I specify the connection URL for my ROS 2 gateway?
You can set the ROS2_MEDKIT_BASE_URL environment variable, which defaults to http://localhost:8080/api/v1.
›Does the server support different transport methods?
Yes, it provides dual transport support for both stdio, typically used with Claude Desktop, and streamable-http.
›How can I verify the server is running correctly when using Docker?
You can perform a health check by executing a curl request to http://localhost:8765/health, which should return a status of healthy.
Badge
Maintain this server? Add the live badge to your README.