MCAP is a modular container file format for pub/sub messages with arbitrary message serialization. It is primarily intended for use in robotics applications, and works well under various workloads, resource constraints, and durability requirements.


The unit of communication between nodes in the pub/sub system.
A stream of messages which have the same type, often corresponding to a connection between a publisher and a subscriber.
A description of the structure and contents of messages on a channel. For example, a Protobuf FileDescriptorSet or a JSON Schema.

Quick start

Install the mcap CLI tool by downloading the latest mcap-cli release binary for your platform. You can now examine MCAP files, convert a ROS 1 .bag or ROS 2 .db3 file into a MCAP file, and more:

mcap help    # List supported commands
mcap info input.mcap    # Display statistics about an MCAP file
mcap doctor input.mcap  # Validate an MCAP file
mcap cat input.mcap     # Dump messages to stdout
mcap convert input.bag output.mcap  # Convert a ROS bag to MCAP


Learn more about MCAP:

API docs

MCAP libraries are available in several languages for you to read and write your own MCAP files: