lichtblick-docs-mcp
OfficialServer Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| LICHTBLICK_DOCS_SOURCE | No | URL or local Docusaurus build/ directory to read llms.txt and pages from | value of LICHTBLICK_DOCS_SITE_URL |
| LICHTBLICK_DOCS_SITE_URL | No | Public docs URL; llms.txt links are resolved against it | https://lichtblick-suite.github.io/docs/ |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| resources | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| docs_listB | Lists the pages of the Lichtblick documentation with their path and summary. |
| docs_searchA | Full-text search over the Lichtblick documentation and guides. Returns matching sections with their page path, URL and a snippet. |
| docs_fetchA | Returns the full markdown of a documentation page, by path (from docs_search/docs_list) or URL. |
| extension_api_listA | Lists every type, interface and constant exported by @lichtblick/suite, the Lichtblick extension API. |
| extension_api_getA | Returns the TypeScript declaration and doc comments of a symbol exported by @lichtblick/suite, e.g. PanelExtensionContext, ExtensionContext, RenderState, SettingsTreeNode. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| Browser Support | Lichtblick is designed to work optimally on Chrome web browser. Below is the list of supported browsers and their minimum versions. |
| Frameworks | This section of the documentation provides a guide on how to connect Lichtblick to various data sources and understand the supported data formats a... |
| MCAP | Load local and remote [MCAP files](https://mcap.dev). |
| PX 4 | Load local PX 4 ULog (`ulg`) files for visualization. |
| ROS 1 | Load local and remote ROS 1 (`.bag`) files, or connect directly to a live ROS 1 stack. |
| ROS 2 | Load local and remote [MCAP](./mcap.md) files containing ROS 2 data, or connect directly to a live ROS 2 stack. |
| Rosbridge | |
| Schema encodings | Both MCAP-based and websockets sources support several message and schema encodings. |
| Velodyne | |
| Connecting to Data | To begin visualizing data, navigate to the Lichtblick dashboard and select a data source option. |
| Live Data | Connect to live data sources using Lichtblick's WebSocket, Rosbridge, and Velodyne Lidar integrations for real-time streaming. You can also load re... |
| Local Data | Lichtblick enables you to load local data files for visualization. |
| Multiple files | |
| Experimental Features | |
| Custom Camera Models | Add support for lenses or projections not covered by the built-in pinhole model (e.g., fisheye). When a camera stream’s calibration (`CameraInfo`) ... |
| ExtensionContext | The `ExtensionContext` is passed to your `activate()` function and lets you register everything your extension provides. Think of it as your toolbo... |
| ExtensionModule | The ExtensionModule is the entry point of a Lichtblick extension. Your bundle must export a single `activate()` function. Lichtblick calls this fun... |
| Extension API | The [`@lichtblick/suite`](https://www.npmjs.com/package/@lichtblick/suite) package provides type definitions and helpers for building Lichtblick ex... |
| Message Converters | Message converters transform messages from one schema to another. In Lichtblick, converters are schema-based (not topic-based): you map a source sc... |
| Other types | All public types live in `@lichtblick/suite` — see the package for the authoritative source: https://www.npmjs.com/package/@lichtblick/suite |
| PanelExtensionContext | The `PanelExtensionContext` is passed to your panel’s `initPanel()` function. It is how your panel interacts with Lichtblick: subscribe to data, re... |
| Settings API | Use the Settings API to attach per-topic settings UI to [message converters](./message-converters) (scoped by panel type). This lets users adjust c... |
| Settings Tree | Use a Settings Tree to render a simple settings UI for your panel or [message converter](./message-converters). You describe fields and groups as a... |
| Topic Aliases | Topic aliases let your extension expose friendlier or standardized topic names without changing the data source. Panels can subscribe to an alias, ... |
| Extensions | Extend Lichtblick's capabilities with custom extensions to better support your team's unique workflows. Build bespoke panels, convert custom messag... |
| Local Development | Develop and test your **Lichtblick extensions locally** using the official scaffolding tool. |
| Publishing Extensions | Publishing extensions is a **work in progress** for Lichtblick. |
| Getting Started | Lichtblick empowers robotics teams to efficiently explore, collaborate on, and interpret their robots' data, leading to smarter iterations and fast... |
| Settings | Here you can find the general settings that allows you to configure core preferences, such as language, appearance, and default behaviors. These se... |
| Alerts | Lichtblick's alert system surfaces issues that occur during data playback, live connections, and panel processing so the user always knows when som... |
| Annotating ROS Enum Fields | ROS messages do not natively support enumerations, but Lichtblick provides two ways to treat constant values as enums: using a separate enum messag... |
| Favorite Layouts | Mark personal and shared layouts as favorites to keep them at the top of the Layouts sidebar and load them automatically when Lichtblick opens. |
| Visualization | Lichtblick offers a comprehensive suite of visualization tools to help you analyze and interpret your robotics data effectively. |
| Layouts | Lichtblick layouts enable users to design and save customized workspaces tailored to specific tasks or workflows. These layouts can be reused for r... |
| Message Path Syntax | In Lichtblick, message path syntax is utilized to precisely access specific data within your messages. |
| ArrowPrimitive | Represents a visual arrow used to indicate direction or orientation in 3D space. |
| Built-in types | Primitive types are the building blocks of Foxglove's supported message schemas. |
| CameraCalibration | Contains intrinsic and extrinsic calibration parameters for a camera. |
| CircleAnnotation | A circle annotation on a 2D image. |
| Color | A color represented in RGBA format. |
| CompressedImage | A compressed image. |
| CompressedVideo | A single frame of a compressed video bitstream. |
| CubePrimitive | A primitive representing a cube or rectangular prism. |
| CylinderPrimitive | A primitive representing a cylinder, elliptic cylinder, or truncated cone. |
| LineType | An enumeration that defines how a set of input points is connected to form lines. |
| LogLevel | The severity level assigned to a log entry. |
| NumericType | The data type used to represent a numeric value. |
| PointsAnnotationType | Defines how a set of points should be rendered as an annotation. |
| PositionCovarianceType | Describes how the position covariance data was obtained or estimated. |
| SceneEntityDeletionType | An enumeration that specifies the scope of entities targeted by a `SceneEntityDeletion` command. |
| FrameTransform | A transform between two reference frames in 3D space. |
| FrameTransforms | An array of [`FrameTransform`](./frame-transform.md) messages. |
| GeoJSON | GeoJSON data for annotating maps. |
| Grid | A 2D grid of data. |
| ImageAnnotations | Array of annotations for a 2D image. |
| Message Schemas | Lichtblick relies on structured message formats to ensure accurate data visualization and processing. By adhering to Lichtblick's schema standards,... |
| KeyValuePair | A key with its associated value. |
| LaserScan | Single scan from a planar laser range-finder |
| LinePrimitive | A primitive representing a series of points connected by lines. |
| LocationFix | A navigation satellite fix for any Global Navigation Satellite System |
| Log | A log message |
| ModelPrimitive | A primitive representing a 3D model file loaded from an external URL or embedded data. |
| PackedElementField | A field present within each element in a byte array of packed elements. |
| PointCloud | A collection of N-dimensional points, which may contain additional fields with information like normals, intensity, etc. |
| Point2 | A point representing a position in 2D space. |
| Point3 | A point representing a position in 3D space. |
| PointsAnnotation | An array of points on a 2D image. |
| PoseInFrame | A position and orientation for an object or reference frame in 3D space. |
| Pose | A position and orientation for an object or reference frame in 3D space. |
| PosesInFrame | An array of timestamped poses for an object or reference frame in 3D space. |
| Quaternion | A [quaternion](https://eater.net/quaternions) representing a rotation in 3D. |
| RawImage | A raw image. |
| SceneEntityDeletion | An instruction to delete entities that were previously added to the scene. |
| SceneEntity | A graphical object within a 3D scene. An entity can consist of several primitives that all operate within the same coordinate frame. |
| SceneUpdate | A message used to modify the set of entities rendered in a 3D scene. |
| SpherePrimitive | A primitive that describes a spherical or ellipsoidal shape. |
| TextAnnotation | A textual annotation overlaid on a 2D image. |
| TextPrimitive | A primitive used to display a text label in a 3D scene. |
| TriangleListPrimitive | A primitive that defines a collection of triangles or a surface constructed from a triangular mesh. |
| Vector2 | A directional vector defined in two-dimensional space. |
| Vector3 | A directional vector defined in three-dimensional space. |
| Migrate from Other Tools | Lichtblick streamlines robotics development by integrating commonly used developer tools into modular panels—providing a unified development enviro... |
| Open via CLI | Easily open local files using the command line by installing the Lichtblick desktop application. This allows you to quickly access .mcap files with... |
| 3D Panel | Visualize robots and environments in 3D — markers, entities, point clouds, URDFs, transforms and more. |
| Delta Measure Mode | Compare values at two points in Plot and State Transitions panels. |
| Gauge Panel | The Gauge Panel in Lichtblick allows you to visualize numeric values from incoming topic [message paths](/visualization/message-path-syntax.md) on ... |
| Image Panel | Display raw and compressed images, as well as compressed videos. |
| Indicator Panel | The Indicator Panel in Lichtblick displays a color-coded label to indicate threshold values in your data. It is useful for providing at-a-glance st... |
| Map Panel | Display GPS and GeoJSON data on a world map. |
| Panels | Panels in Lichtblick are flexible, modular elements that allow you to visualize and interact with data. You can customize and organize these panels... |
| Playback Performance Panel | The Playback Performance panel provides a real-time visualization of playback performance metrics during the execution of a playback session. It di... |
| Plot | The Plot Panel in Lichtblick is a user interface component designed to facilitate the visualization and control of plotting data. It allows to view... |
| Raw Messages | The **Raw Messages** panel in Lichtblick is a powerful debugging and inspection tool that enables users to visualize raw [ROS](/connecting-to-data/... |
| State Transitions | Visualize discrete value changes over time using the State Transitions panel. |
| Teleoperation Panel | The Teleoperation Panel allows you to remotely control your robot by sending [geometry\_msgs/Twist](https://docs.ros.org/en/api/geometry_msgs/html/... |
| User Scripts Panel | User Scripts enable you to create synthetic topics in Lichtblick by processing and reshaping existing messages. These scripts are especially useful... |
| Playback | Lichtblick enables seamless navigation through both local and remote datasets using its playback controls. |
| Shortcuts | Use keyboard shortcuts to efficiently navigate the Lichtblick visualization interface. |
| Synchronizing Instances | The _Lichtblick Sync_ feature allows users to synchronize playback actions—such as **play**, **pause**, **seek**, and **play until**—across multipl... |
| Variables | Variables in Lichtblick allow users to define global values that can be reused across multiple panels within a layout. This feature simplifies upda... |
| Create Custom Camera Model | Build a custom camera model extension to handle specialized camera configurations not supported by the standard camera models in Lichtblick. |
| Create Custom Panel | Build a custom panel extension to visualize and interact with your robotics data in ways that best suit your workflow. |
| Create Custom WebSocket Server | Build a WebSocket server using the Foxglove WebSocket Protocol to stream real-time robotics data to Lichtblick. |
| Create Message Converter | Build a message converter extension to transform custom messages into Foxglove-supported schemas for visualization in built-in panels. |
| Create Topic Alias | Build a topic alias extension to create alternative names for topics, simplifying complex hierarchies or standardizing naming conventions. |
| Introduction | Welcome to the Lichtblick Guides section! Here you'll find comprehensive, step-by-step tutorials for extending Lichtblick's capabilities and integr... |
TDQS
Scored across 5 tools
Each tool targets a distinct action on a distinct resource: docs_list (browse index), docs_search (full-text query), docs_fetch (retrieve by path/URL), and extension_api_list/get for the API reference. The list/search/fetch boundary is clearly spelled out (fetch takes a path from list/search), leaving no realistic misselection.
All five names follow a strict snake_case namespace_verb pattern (docs_list, docs_search, docs_fetch, extension_api_list, extension_api_get). The docs_ vs extension_api_ prefixes cleanly separate the two sub-areas while staying internally consistent.
Five tools is a well-scoped set for a read-only documentation server, with each tool earning its place at a distinct granularity of access. No redundant or filler tools.
Browsing, searching, and fetching docs plus listing/fetching API symbols covers the core read-only workflows with no dead ends. The only minor gap is that there is no search over the extension API surface -- an agent must list all exported symbols or already know the symbol name to use extension_api_get.