Overview

lspmesh fronts multiple language servers — TypeScript, Tailwind, Biome — behind one LSP endpoint, routing each request to every backend that handles the file and merging the results. It also exposes the same intelligence as MCP tools for AI agents.

Install

claude plugin marketplace add filiphsps/commerce
# then enable the "lspmesh" plugin

Or run it directly:

pnpm dlx lspmesh lsp   # LSP server over stdio
pnpm dlx lspmesh mcp   # MCP server over stdio

Modes

One binary, two modes over a shared aggregator engine:

  • lspmesh lsp — an LSP server speaking the Claude Code op set (definition, references, hover, documentSymbol, implementation, call hierarchy, workspace/symbol), aggregated across all configured backends. Position ops fan to every backend that handles the file and the locations are merged; workspace/symbol fans across all backends.
  • lspmesh mcp — an MCP server exposing find_symbol, find_references, and find_implementations by exact name, each unioned over every definition of the name and tagged with the definedAt it resolves to.

Why aggregate

The built-in editor/agent LSP integrations bind one server per language. lspmesh lets a single registration front several servers at once — so a .tsx file is served by TypeScript and Tailwind and Biome simultaneously, with their results merged — and restores by-name workspace/symbol search, which the raw TypeScript server leaves unimplemented for agent clients.

On this page