lichtblick-docs-mcp
OfficialThis MCP server gives AI agents read-only access to the Lichtblick documentation and the @lichtblick/suite extension API.
Search the official Lichtblick docs and guides full-text, returning matching sections with paths, URLs, and snippets.
Fetch the full markdown of a documentation page by path or URL.
List all documentation pages with paths and summaries, optionally filtered to
DocumentationorGuides.List every TypeScript type, interface, and constant exported by
@lichtblick/suite.Retrieve the exact TypeScript declaration and doc comments for a specific extension API symbol.
Expose each documentation page as an MCP resource via
lichtblick-docs://<path>.Run over stdio as a read-only server, with no open port.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@lichtblick-docs-mcp look up the PanelExtensionContext type in @lichtblick/suite"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
@lichtblick/docs-mcp
MCP server exposing the Lichtblick documentation and the @lichtblick/suite extension API to AI agents
Tools
Tool | Purpose |
| Full-text search over docs and guides, returns sections with URL anchor |
| Full markdown of a page, by path or URL |
| All pages with path and summary, optionally filtered by section |
| TypeScript declaration and doc comments of a |
| All symbols exported by |
Each page is also exposed as an MCP resource: lichtblick-docs://<path>.
Related MCP server: docs-mcp
How it works
Docs: on first use, reads
llms.txtfrom the docs site (generated bydocusaurus-plugin-llms), fetches each page's.mdroute (generated bydocusaurus-plugin-copy-page-button) and builds an in-memory MiniSearch index of##/###sections. No build step or release is needed when the docs change.Extension API: parses the TypeScript sources shipped in the pinned
@lichtblick/suitedependency, following the re-exports ofsrc/index.ts.Transport: stdio. The client spawns the process; no port is opened. All tools are read-only.
Setup
Requires Node.js 22.12+ with npx on the PATH seen by the client. The client starts the server with npx, which
downloads the pre-built package from npm: nothing is cloned or compiled on your machine. Pin a version (replace
0.1.0 with the latest release) so updates are explicit.
VS Code (GitHub Copilot)
Add the server to .vscode/mcp.json in a workspace, or to the user configuration (MCP: Open User
Configuration):
{
"servers": {
"lichtblick-docs": {
"type": "stdio",
"command": "npx",
"args": ["-y", "@lichtblick/docs-mcp@0.1.0"]
}
}
}Start it from MCP: List Servers (or the Start action shown above the entry) and use Copilot Chat in agent mode.
Cursor
Add to ~/.cursor/mcp.json (all projects) or .cursor/mcp.json (one project):
{
"mcpServers": {
"lichtblick-docs": {
"command": "npx",
"args": ["-y", "@lichtblick/docs-mcp@0.1.0"]
}
}
}Claude Code
claude mcp add lichtblick-docs --scope user -- npx -y @lichtblick/docs-mcp@0.1.0Or add the Cursor snippet above to .mcp.json at the project root.
Agent instructions
Agents sometimes answer from memory or the web even when the server is available. Copy
agent-instructions.md into the repository's .github/copilot-instructions.md, AGENTS.md
or CLAUDE.md so they call the tools first.
Notes
Updates: change the pinned version in the configuration and restart the server. Unpinned (
@lichtblick/docs-mcp) uses whatever version is in the npm cache.Checking that it is used: the chat shows each tool call (for example
docs_search) with its input and output. If the agent answers from the web instead, ask it to use the Lichtblick docs tools, or reference a tool directly (#docs_searchin VS Code). The server also logs every tool call to stderr, shown in the client's MCP output log.Verifying the package:
npm audit signaturesonly checks packages installed in the current project, not packages run withnpx. To verify the provenance of this package, install the pinned version in a temporary project and audit it there:mkdir /tmp/verify-docs-mcp && cd /tmp/verify-docs-mcp npm init -y && npm install @lichtblick/docs-mcp@0.1.0 npm audit signatures
Configuration
Variable | Default | Description |
|
| Public docs URL; |
| value of | URL or local Docusaurus |
| (on) | Logs every tool call to stderr as JSON; |
To test unpublished docs, build the docs repo and point LICHTBLICK_DOCS_SOURCE at its build/ folder. Variables
go in the env object of the server entry in the client configuration.
Logging
stdout carries the MCP protocol, so logs go to stderr as one JSON object per line:
ready: server version and docs source.docs_index: pages and sections indexed, duration, and the pages that were skipped with the reason.tool_call: tool, arguments, duration in ms and whether it failed.
Checking the docs
npx @lichtblick/docs-mcp check fetches every page listed in llms.txt of LICHTBLICK_DOCS_SOURCE and exits with
code 1 if any of them does not resolve to its .md page. CI runs it on every PR against the published docs.
Development
npm install
npm run build
npm test # vitest
npm run test:coverage # vitest with coverage (80% threshold)
npm run test:smoke # check every llms.txt page of the published docs (needs a build)
npm run typecheck
npm run dev # tsc --watch
npm run inspect # MCP Inspector UIOpen this folder in VS Code; .vscode/mcp.json registers the local build. Start it from MCP: List Servers.
Releasing
Add the changes under a new
## [<version>]heading in CHANGELOG.md and bumpversionwithnpm version <patch|minor|major> --no-git-tag-version.Merge to
main, then push a matching tag:git tag v<version> && git push origin v<version>.The release workflow tests the package, publishes it to npm with provenance (trusted publishing, no npm token) and creates the GitHub release from the changelog entry.
Known limitations
docusaurus-plugin-llmswrites file-based URLs intollms.txtand ignoresslug/idfront matter. The pages that returned 404 for this reason were fixed in the docs repository; thechecksmoke test fails if it happens again. Until it is fixed, such a page is listed but skipped, and reported in thedocs_indexlog.Docs are fetched once per server process; restart the server to pick up documentation changes.
The extension API only covers what
@lichtblick/suiteexports; it is updated by bumping the dependency and releasing a new version.
Available Tools
5 toolsdocs_fetchFetch a Lichtblick documentation pageARead-only
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.
Inputs: path (required).
docs_listList Lichtblick documentation pagesARead-only
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.
Inputs: section.
docs_searchSearch Lichtblick documentationARead-only
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.
Inputs: query (required), limit.
extension_api_getGet a @lichtblick/suite API symbolARead-only
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.
Inputs: symbol (required).
extension_api_listList @lichtblick/suite API symbolsARead-only
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.
Inputs: no named parameters.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 5 tools
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.
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).
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.
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
Related MCP Connectors
Persistent memory, hybrid search and a goal graph for AI agents, over stdio or remote HTTP.
Versioned documentation registry and semantic search for AI tools and coding assistants.
Read-only search over the public Sikaru documentation: managed agents, inference, evals and traces.
Serves your design system and coding standards to coding agents, so they stop guessing.
Related MCP Servers
- AlicenseAqualityDmaintenanceExposes SQLite database query tools and markdown document resources over JSON-RPC 2.0 stdio transport, enabling AI assistants to read and search documents and execute read-only SQL queries.81MIT

docs-mcpofficial
AlicenseAqualityBmaintenanceLets AI agents search and read a folder of Markdown documentation at query time, exposing heading-level search, whole-page or section retrieval, and page listing as tools and resources over stdio or Streamable HTTP. Can run as a CLI, a hosted endpoint, or a library inside an existing Node or Next.js site.3932 npm1MIT- FlicenseNot gradedqualityAmaintenanceEnables AI models to search and retrieve up-to-date technical documentation for popular agent frameworks via web search and page extraction. It supports both stdio and SSE transports.-
- FlicenseNot gradedqualityAmaintenanceEnables AI clients to query and retrieve current technical documentation for popular agent frameworks such as LangChain, LlamaIndex, AutoGen, Agno, OpenAI Agents SDK, MCP, Camel-AI, and CrewAI through stdio or SSE.-