Amplifier LSP Bundle

January 12, 2026 ยท View on GitHub

Code intelligence through Language Server Protocol integration

The LSP Bundle provides a tool for Language Server Protocol (LSP) operations, enabling code navigation, symbol lookup, and semantic understanding across programming languages.

What Is This Bundle?

This bundle integrates LSP capabilities into Amplifier sessions, allowing AI agents to:

  • Navigate code - Jump to definitions, find references, locate implementations
  • Understand symbols - Get hover documentation, type information, and call hierarchies
  • Explore structure - List document symbols, search workspace symbols
  • Support multiple languages - Extensible configuration for any LSP-compatible server

Components

This bundle provides:

  1. tool-lsp - Tool module for LSP operations (definition lookup, references, hover, symbols)
  2. lsp-core - Default behavior configuring the LSP tool
  3. code-navigator - Agent specialized for code exploration tasks
  4. lsp-general - Context providing LSP usage guidance

Installation

Using the Bundle

Load the bundle directly with Amplifier:

# Load from git URL
amplifier bundle use git+https://github.com/microsoft/amplifier-bundle-lsp@main

Including in Another Bundle

Add to your bundle's includes: section:

includes:
  - bundle: lsp

Quick Start

Basic Usage

# Start a session with LSP capabilities
amplifier run --bundle lsp

# Navigate code
> Find all references to the Session class in this project
> Go to the definition of the mount() function
> What methods does the Coordinator class have?

LSP Operations

The tool-lsp module provides these operations:

OperationDescription
goToDefinitionFind where a symbol is defined
findReferencesFind all references to a symbol
hoverGet documentation and type info
documentSymbolList all symbols in a file
workspaceSymbolSearch for symbols across the workspace
goToImplementationFind implementations of interfaces
prepareCallHierarchyGet call hierarchy at a position
incomingCallsFind callers of a function
outgoingCallsFind functions called by a function

Configuration

Adding Language Support

The LSP tool requires language server configuration. Use a language-specific bundle (like lsp-python) or configure manually:

tools:
  - module: tool-lsp
    config:
      languages:
        python:
          command: ["pyright-langserver", "--stdio"]
          file_patterns: ["*.py"]
        typescript:
          command: ["typescript-language-server", "--stdio"]
          file_patterns: ["*.ts", "*.tsx"]

Language-Specific Bundles

For pre-configured language support, use specialized bundles:

  • lsp-python - Python support via Pyright

Philosophy

The LSP Bundle follows Amplifier's core principles:

  • Mechanism, not policy - Provides LSP operations; agents decide how to use them
  • Composable - Extend with language-specific bundles
  • Observable - All operations emit events for logging and debugging
  • Minimal - Core bundle provides just the essentials; language bundles add specifics

Project Status

EXPERIMENTAL EXPLORATION

This is experimental software shared openly but without support infrastructure. See SUPPORT.md for details.

Contributing

Note

This project is not currently accepting external contributions, but we're actively working toward opening this up. We value community input and look forward to collaborating in the future. For now, feel free to fork and experiment!

Most contributions require you to agree to a Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us the rights to use your contribution. For details, visit Contributor License Agreements.

When you submit a pull request, a CLA bot will automatically determine whether you need to provide a CLA and decorate the PR appropriately (e.g., status check, comment). Simply follow the instructions provided by the bot. You will only need to do this once across all repos using our CLA.

This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact opencode@microsoft.com with any additional questions or comments.

Trademarks

This project may contain trademarks or logos for projects, products, or services. Authorized use of Microsoft trademarks or logos is subject to and must follow Microsoft's Trademark & Brand Guidelines. Use of Microsoft trademarks or logos in modified versions of this project must not cause confusion or imply Microsoft sponsorship. Any use of third-party trademarks or logos are subject to those third-party's policies.