Skip to main content
Glama
lichtblick-docs-mcp

lichtblick-docs-mcp

Official

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
LICHTBLICK_DOCS_SOURCENoURL or local Docusaurus build/ directory to read llms.txt and pages fromvalue of LICHTBLICK_DOCS_SITE_URL
LICHTBLICK_DOCS_SITE_URLNoPublic docs URL; llms.txt links are resolved against ithttps://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.

Authoritative, up-to-date reference for Lichtblick (an open-source visualization and diagnosis tool for robotics data, forked from Foxglove Studio) and for its extension API, the npm package @lichtblick/suite.

When to use these tools:

  • For ANY question about Lichtblick: panels (3D, Image, Plot, Raw Messages, Map, ...), data sources (ROS 1/2, MCAP, rosbridge, Foxglove WebSocket, remote files), layouts, settings, extensions, custom panels, message converters, topic aliases or camera models.

  • Call docs_search or extension_api_get BEFORE using web search or answering from memory. Your training data may be outdated, and Foxglove Studio documentation and APIs differ from Lichtblick's.

  • Only fall back to web search if these tools return nothing relevant, and say so.

How to use them:

  1. docs_search with a few keywords, then docs_fetch the most relevant page path to read it in full.

  2. When writing or reviewing extension or panel code, call extension_api_get for every @lichtblick/suite type you use (e.g. PanelExtensionContext, RenderState, ExtensionContext, SettingsTreeNode) and use the exact signatures it returns. Use extension_api_list if you do not know the symbol name.

  3. docs_list shows every available page when searching is not enough.

Always cite the documentation URL returned by the tools in your answer.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": true
}
resources
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
docs_listA

Lists every page of the official Lichtblick documentation and guides with its path and summary. Use it to discover what is documented when docs_search is not enough; then read a page with docs_fetch.

docs_searchA

Full-text search over the official Lichtblick documentation and guides (panels, data sources, layouts, settings, extensions, custom panels, message converters). Use this BEFORE web search for any Lichtblick question. Returns matching sections with page path, URL and snippet; read the full page with docs_fetch.

docs_fetchA

Returns the full markdown of an official Lichtblick documentation page, by path (as returned by docs_search or docs_list) or by URL. Prefer this over fetching the website.

extension_api_listA

Lists every type, interface and constant exported by @lichtblick/suite, the Lichtblick extension API. Use it to find the right symbol name, then call extension_api_get.

extension_api_getA

Returns the exact TypeScript declaration and doc comments of a symbol exported by @lichtblick/suite, e.g. PanelExtensionContext, ExtensionContext, RenderState, SettingsTreeNode, MessageEvent. Always use it instead of memory when writing Lichtblick extension or panel code: the API differs from Foxglove Studio's.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription
Browser SupportLichtblick is designed to work optimally on Chrome web browser. Below is the list of supported browsers and their minimum versions.
FrameworksThis section of the documentation provides a guide on how to connect Lichtblick to various data sources and understand the supported data formats a...
MCAPLoad local and remote [MCAP files](https://mcap.dev).
PX 4Load local PX 4 ULog (`ulg`) files for visualization.
ROS 1Load local and remote ROS 1 (`.bag`) files, or connect directly to a live ROS 1 stack.
ROS 2Load local and remote [MCAP](./mcap.md) files containing ROS 2 data, or connect directly to a live ROS 2 stack.
Rosbridge
Schema encodingsBoth MCAP-based and websockets sources support several message and schema encodings.
Velodyne
Connecting to DataTo begin visualizing data, navigate to the Lichtblick dashboard and select a data source option.
Live DataConnect to live data sources using Lichtblick's WebSocket, Rosbridge, and Velodyne Lidar integrations for real-time streaming. You can also load re...
Local DataLichtblick enables you to load local data files for visualization.
Multiple files
Experimental Features
Custom Camera ModelsAdd support for lenses or projections not covered by the built-in pinhole model (e.g., fisheye). When a camera stream’s calibration (`CameraInfo`) ...
ExtensionContextThe `ExtensionContext` is passed to your `activate()` function and lets you register everything your extension provides. Think of it as your toolbo...
ExtensionModuleThe ExtensionModule is the entry point of a Lichtblick extension. Your bundle must export a single `activate()` function. Lichtblick calls this fun...
Extension APIThe [`@lichtblick/suite`](https://www.npmjs.com/package/@lichtblick/suite) package provides type definitions and helpers for building Lichtblick ex...
Message ConvertersMessage converters transform messages from one schema to another. In Lichtblick, converters are schema-based (not topic-based): you map a source sc...
Other typesAll public types live in `@lichtblick/suite` — see the package for the authoritative source: https://www.npmjs.com/package/@lichtblick/suite
PanelExtensionContextThe `PanelExtensionContext` is passed to your panel’s `initPanel()` function. It is how your panel interacts with Lichtblick: subscribe to data, re...
Settings APIUse the Settings API to attach per-topic settings UI to [message converters](./message-converters) (scoped by panel type). This lets users adjust c...
Settings TreeUse 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 AliasesTopic aliases let your extension expose friendlier or standardized topic names without changing the data source. Panels can subscribe to an alias, ...
ExtensionsExtend Lichtblick's capabilities with custom extensions to better support your team's unique workflows. Build bespoke panels, convert custom messag...
Local DevelopmentDevelop and test your **Lichtblick extensions locally** using the official scaffolding tool.
Publishing ExtensionsPublishing extensions is a **work in progress** for Lichtblick.
Getting StartedLichtblick empowers robotics teams to efficiently explore, collaborate on, and interpret their robots' data, leading to smarter iterations and fast...
SettingsHere you can find the general settings that allows you to configure core preferences, such as language, appearance, and default behaviors. These se...
AlertsLichtblick'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 FieldsROS messages do not natively support enumerations, but Lichtblick provides two ways to treat constant values as enums: using a separate enum messag...
Favorite LayoutsMark personal and shared layouts as favorites to keep them at the top of the Layouts sidebar and load them automatically when Lichtblick opens.
VisualizationLichtblick offers a comprehensive suite of visualization tools to help you analyze and interpret your robotics data effectively.
LayoutsLichtblick layouts enable users to design and save customized workspaces tailored to specific tasks or workflows. These layouts can be reused for r...
Message Path SyntaxIn Lichtblick, message path syntax is utilized to precisely access specific data within your messages.
ArrowPrimitiveRepresents a visual arrow used to indicate direction or orientation in 3D space.
Built-in typesPrimitive types are the building blocks of Foxglove's supported message schemas.
CameraCalibrationContains intrinsic and extrinsic calibration parameters for a camera.
CircleAnnotationA circle annotation on a 2D image.
ColorA color represented in RGBA format.
CompressedImageA compressed image.
CompressedVideoA single frame of a compressed video bitstream.
CubePrimitiveA primitive representing a cube or rectangular prism.
CylinderPrimitiveA primitive representing a cylinder, elliptic cylinder, or truncated cone.
LineTypeAn enumeration that defines how a set of input points is connected to form lines.
LogLevelThe severity level assigned to a log entry.
NumericTypeThe data type used to represent a numeric value.
PointsAnnotationTypeDefines how a set of points should be rendered as an annotation.
PositionCovarianceTypeDescribes how the position covariance data was obtained or estimated.
SceneEntityDeletionTypeAn enumeration that specifies the scope of entities targeted by a `SceneEntityDeletion` command.
FrameTransformA transform between two reference frames in 3D space.
FrameTransformsAn array of [`FrameTransform`](./frame-transform.md) messages.
GeoJSONGeoJSON data for annotating maps.
GridA 2D grid of data.
ImageAnnotationsArray of annotations for a 2D image.
Message SchemasLichtblick relies on structured message formats to ensure accurate data visualization and processing. By adhering to Lichtblick's schema standards,...
KeyValuePairA key with its associated value.
LaserScanSingle scan from a planar laser range-finder
LinePrimitiveA primitive representing a series of points connected by lines.
LocationFixA navigation satellite fix for any Global Navigation Satellite System
LogA log message
ModelPrimitiveA primitive representing a 3D model file loaded from an external URL or embedded data.
PackedElementFieldA field present within each element in a byte array of packed elements.
PointCloudA collection of N-dimensional points, which may contain additional fields with information like normals, intensity, etc.
Point2A point representing a position in 2D space.
Point3A point representing a position in 3D space.
PointsAnnotationAn array of points on a 2D image.
PoseInFrameA position and orientation for an object or reference frame in 3D space.
PoseA position and orientation for an object or reference frame in 3D space.
PosesInFrameAn array of timestamped poses for an object or reference frame in 3D space.
QuaternionA [quaternion](https://eater.net/quaternions) representing a rotation in 3D.
RawImageA raw image.
SceneEntityDeletionAn instruction to delete entities that were previously added to the scene.
SceneEntityA graphical object within a 3D scene. An entity can consist of several primitives that all operate within the same coordinate frame.
SceneUpdateA message used to modify the set of entities rendered in a 3D scene.
SpherePrimitiveA primitive that describes a spherical or ellipsoidal shape.
TextAnnotationA textual annotation overlaid on a 2D image.
TextPrimitiveA primitive used to display a text label in a 3D scene.
TriangleListPrimitiveA primitive that defines a collection of triangles or a surface constructed from a triangular mesh.
Vector2A directional vector defined in two-dimensional space.
Vector3A directional vector defined in three-dimensional space.
Migrate from Other ToolsLichtblick streamlines robotics development by integrating commonly used developer tools into modular panels—providing a unified development enviro...
Open via CLIEasily open local files using the command line by installing the Lichtblick desktop application. This allows you to quickly access .mcap files with...
3D PanelVisualize robots and environments in 3D — markers, entities, point clouds, URDFs, transforms and more.
Delta Measure ModeCompare values at two points in Plot and State Transitions panels.
Gauge PanelThe Gauge Panel in Lichtblick allows you to visualize numeric values from incoming topic [message paths](/visualization/message-path-syntax.md) on ...
Image PanelDisplay raw and compressed images, as well as compressed videos.
PanelsPanels in Lichtblick are flexible, modular elements that allow you to visualize and interact with data. You can customize and organize these panels...
Indicator PanelThe 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 PanelDisplay GPS and GeoJSON data on a world map.
Playback Performance PanelThe Playback Performance panel provides a real-time visualization of playback performance metrics during the execution of a playback session. It di...
PlotThe Plot Panel in Lichtblick is a user interface component designed to facilitate the visualization and control of plotting data. It allows to view...
Raw MessagesThe **Raw Messages** panel in Lichtblick is a powerful debugging and inspection tool that enables users to visualize raw [ROS](/connecting-to-data/...
State TransitionsVisualize discrete value changes over time using the State Transitions panel.
Teleoperation PanelThe 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 PanelUser Scripts enable you to create synthetic topics in Lichtblick by processing and reshaping existing messages. These scripts are especially useful...
PlaybackLichtblick enables seamless navigation through both local and remote datasets using its playback controls.
ShortcutsUse keyboard shortcuts to efficiently navigate the Lichtblick visualization interface.
Synchronizing InstancesThe _Lichtblick Sync_ feature allows users to synchronize playback actions—such as **play**, **pause**, **seek**, and **play until**—across multipl...
VariablesVariables 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 ModelBuild a custom camera model extension to handle specialized camera configurations not supported by the standard camera models in Lichtblick.
Create Custom PanelBuild a custom panel extension to visualize and interact with your robotics data in ways that best suit your workflow.
Create Custom WebSocket ServerBuild a WebSocket server using the Foxglove WebSocket Protocol to stream real-time robotics data to Lichtblick.
Create Message ConverterBuild a message converter extension to transform custom messages into Foxglove-supported schemas for visualization in built-in panels.
Create Topic AliasBuild a topic alias extension to create alternative names for topics, simplifying complex hierarchies or standardizing naming conventions.
IntroductionWelcome to the Lichtblick Guides section! Here you'll find comprehensive, step-by-step tutorials for extending Lichtblick's capabilities and integr...

TDQS

A4.4/5.0

Scored across 5 tools

Disambiguation5/5

Each tool has a distinct role: docs_list browses the page index, docs_search finds sections by keyword, docs_fetch reads a full page, and the two extension_api tools split symbol discovery from symbol retrieval. The descriptions explicitly state the hand-off relationships (list/search → fetch, list → get), leaving no realistic misselection.

Naming Consistency5/5

Names follow a predictable resource_action pattern in snake_case, split into two clean namespaces: docs_* (list/search/fetch) and extension_api_* (list/get). The only variance is fetch vs get across the two namespaces, which is justified by their different semantics (full page vs symbol declaration).

Tool Count5/5

Five tools is tightly scoped to the two jobs of the server: documentation lookup and extension API reference. Every tool earns its place, with no redundant or filler operations.

Completeness4/5

The docs surface is complete (enumerate, search, retrieve) and the API surface covers symbol enumeration and declaration lookup. A minor gap is that the extension API can only be queried by exact symbol name after listing, with no full-text/typeahead search over declarations, which could slow discovery for loosely-named symbols.

Maintenance

ActivityMaintained
ResponsivenessNo recent community issues