Skip to content
| Marketplace
Sign in
Visual Studio Code>Programming Languages>Bifrost: Multi-Language LSP & MCP ServerNew to Visual Studio Code? Get it now.
Bifrost: Multi-Language LSP & MCP Server

Bifrost: Multi-Language LSP & MCP Server

Brokk

|
1 install
| (0) | Free
Tree-sitter-backed code intelligence for definitions, references, symbols, hierarchy, rename, diagnostics, and MCP workflows.
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

Bifrost: Multi-Language LSP & MCP Server

VS Code extension for Bifrost, Brokk's tree-sitter-backed multi-language code intelligence server. The extension starts Bifrost in LSP mode and exposes definitions, references, symbols, hierarchy, rename, diagnostics, completion, hover, and related editor features.

Requirements

  • VS Code 1.90+
  • A supported platform for extension-managed downloads, or a bifrost binary available through one of the launch modes below

Configuration

Setting Description
bifrost.launchMode How to start Bifrost: auto, bundled, or path.
bifrost.serverPath Path to the bifrost binary, or command name on PATH.
bifrost.debug Enable verbose LSP request and notification tracing.
bifrost.slowRequestMs Log LSP handlers that take at least this many milliseconds.
bifrost.extraArgs Extra command-line arguments appended to the LSP server launch.
bifrost.roots Workspace-relative or absolute directories to index instead of the full VS Code workspace.
bifrost.exclude Workspace-relative or absolute files or directories to exclude from indexing and LSP lookups.

Launch mode behavior:

  • auto: use bifrost.serverPath when explicitly configured, then the extension-managed binary if present or accepted for installation, then a local development build under target/, then bifrost on PATH.
  • bundled: require the extension-managed binary for this platform and prompt to install it when missing.
  • path: use bifrost.serverPath, falling back to bifrost on PATH.

The managed binary is pinned by the extension package metadata field bifrost.binaryVersion, with expected archive hashes in bifrost.archiveSha256. The extension downloads the existing GitHub Release archives (.tar.gz on macOS/Linux and .zip on Windows), verifies each archive against the package-pinned SHA-256 and the release .sha256 sidecar, extracts the bifrost executable into VS Code global storage at binaries/<version>/<platform>-<arch>/, and removes older managed versions after a successful install. Managed binaries are checked with bifrost --version before the language server starts.

Commands

  • Bifrost: Start Language Server
  • Bifrost: Stop Language Server
  • Bifrost: Restart Language Server
  • Bifrost: Open MCP Setup
  • Bifrost: Copy MCP Config
  • Bifrost: Show Output

The status bar item shows the current server state and can start or restart the language server.

Development

Build the Bifrost server from the repository root:

cargo build --bin bifrost

Install and compile the extension:

cd editors/vscode
npm install
npm run compile
npm test

Open editors/vscode in VS Code, run the extension in an Extension Development Host, and open a workspace with a supported source file. For local development, either rely on the auto-detected target/debug/bifrost binary or set:

{
  "bifrost.launchMode": "path",
  "bifrost.serverPath": "/path/to/bifrost/target/debug/bifrost"
}

The extension starts Bifrost with:

bifrost --root <workspace-root> --lsp

--root is the fallback root. VS Code still sends active workspace folders during LSP initialization, including multi-root workspaces.

For large repositories, scope indexing before starting the server:

{
  "bifrost.roots": ["src", "tests"],
  "bifrost.exclude": ["target", "vendor/generated"]
}

After changing these settings, run Bifrost: Restart Language Server or accept the restart prompt. The extension sends the resolved paths as LSP initializationOptions, so excluded files should disappear from workspace symbol results and document-level LSP lookups.

MCP Setup

Run Bifrost: Open MCP Setup from the Command Palette to choose a setup action: copy generic mcp.json, copy a Codex CLI command, copy a Claude Code command, or open the Bifrost MCP docs. Bifrost: Copy MCP Config remains available when you only want the generic JSON entry.

These commands are manual. The extension does not open MCP setup on activation, does not mutate external host configuration, and does not prompt again after a dismissal.

The MCP setup commands use the same binary resolution settings as the language server where practical: a configured bifrost.serverPath, the extension-managed binary, a local development build, or bifrost on PATH.

The copied entry uses the current workspace root and starts a separate Bifrost MCP process:

{
  "mcpServers": {
    "bifrost": {
      "command": "/path/to/bifrost",
      "args": ["--root", "/path/to/workspace", "--mcp", "searchtools"]
    }
  }
}

Do not point MCP hosts at the VS Code LSP process. The extension and MCP hosts should launch separate stdio processes from the same Bifrost binary/release.

Packaging

The extension uses esbuild to bundle runtime dependencies into out/extension.js.

npm run compile
npx vsce package

The .vscodeignore file excludes TypeScript sources and package manager artifacts from the VSIX; run npm run compile before packaging.

Before publishing the VSIX, ensure:

  • package.json has bifrost.binaryVersion set to the Bifrost release version without the leading v.
  • package.json has bifrost.archiveSha256 entries for every supported extension target. These hashes are the VSIX trust anchor for downloaded archives.
  • The matching GitHub Release contains archive assets named bifrost-v<version>-<target>.tar.gz on macOS/Linux and bifrost-v<version>-<target>.zip on Windows.
  • Each archive has a matching .sha256 asset with the same filename plus .sha256.
  • The release workflow has completed for macOS universal, Linux x64/arm64, and Windows x64/arm64 targets.

Debugging

The extension pipes Bifrost stderr into Output > Bifrost.

Useful settings:

{
  "bifrost.debug": true,
  "bifrost.slowRequestMs": 1000
}

bifrost.debug logs every LSP request/notification start and finish. bifrost.slowRequestMs logs requests or notifications that take longer than the configured threshold. Handler errors and panics are always logged with LSP method context.

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
© 2026 Microsoft