What is agent-lsp?
agent-lsp, from Blackwell Systems, is an MCP server that starts and manages ordinary language servers such as gopls, rust-analyzer, pyright and clangd, and exposes what they know to an AI agent. Its 66 tools cover go-to-definition, references, call and type hierarchies, diagnostics, renames and code actions, plus composite calls such as blast_radius, which returns a symbol's callers in one step, and a set of simulation tools that apply an edit in memory and report the change in errors before anything is written.
It is a single Go binary under the MIT licence, started in April 2026, with about 179 GitHub stars and nine contributors when checked. Releases are frequent: v0.24.2 shipped on 4 November 2026, three releases that day. The README lists 32 languages tested against real language servers in CI, and the npm package was downloaded 484 times in the week to 12 November 2026.
How to install agent-lsp
npm install -g @blackwell-systems/agent-lsp && agent-lsp initIs agent-lsp worth it?
agent-lsp answers a real weakness of coding agents: they find callers and rename symbols with grep, and grep does not know that two functions share a name. A language server does, and agent-lsp keeps one warm per language and lets the agent ask it directly. The author's own measurement on HashiCorp Consul, about 319,000 lines, found a blast-radius analysis took 119 tool calls and 841 KB through the language server against 5,534 calls and 17.7 MB through grep and file reads.
The distinctive feature is checking edits before writing them. preview_edit and simulate_chain apply changes in memory and report which step introduces new errors, and safe_apply_edit writes only when the error count does not rise and refuses if the preview timed out or the server was still indexing. Skills such as /lsp-refactor chain impact analysis, preview, apply, build and tests, and for four of them the server blocks calls made out of order. Serena, the better-known rival, also edits by symbol; the in-memory preview is what agent-lsp adds.
Know what it can execute. run_build and run_tests run your project's own commands, such as go build, cargo test, pytest or npm test, so a test script or build hook in an untrusted repository runs with your user permissions. execute_command passes language-server commands through, and the edit tools write source files. The default transport is stdio; an HTTP mode with a bearer token binds to 127.0.0.1 unless you choose otherwise, and the README warns against putting the token on the command line.
The catch: 66 tool definitions are a heavy load for any client that reads them all, and the README's comparisons, including that no other MCP-LSP bridge tests languages in CI, are the maintainer's claims. Responses default to GCF, the author's own compact format, rather than JSON, which saves 30 to 84% of tokens by its figures but adds a format your own tooling may not parse. Python and TypeScript projects still need a background indexing daemon before references are reliable.
Our take: for a polyglot or very large repository where the agent keeps breaking callers, agent-lsp is worth an afternoon; for a small single-language project, the agent's built-in search is probably enough.
Where it earns its place
A platform engineer maintaining a 300,000-line Go monorepo
Rename an exported function and update every caller without a broken build
The /lsp-rename skill runs prepare_rename, previews every site and applies the change in one step, then /lsp-verify runs go build and the tests. Free to run; the saving is the failed CI rounds an agent with grep tends to cause.
A full-stack team of four with a Go API and a TypeScript front end
Let one agent session navigate both halves of the codebase
agent-lsp init writes a config that routes .go files to gopls and .ts to typescript-language-server. The README notes TypeScript 7 lacks tsserver, so install TypeScript 6 globally for now.
A tech lead tidying a legacy Python service before a migration
Find exports nothing calls and remove them safely
/lsp-dead-code lists zero-reference symbols and safe_delete_symbol returns the error count after each removal. Run it on a branch; pyright needs its daemon to finish indexing first.
Before you commit
- Setup
- Install with npm install -g @blackwell-systems/agent-lsp, Homebrew, pip, Scoop, winget or a curl install script, then install the language servers you need, run agent-lsp doctor and agent-lsp init, which writes the MCP config and agent rules for your client. The first session indexes the workspace, about 10 seconds for a typical project according to the README.
- Integrations
- Claude Code, Cursor, Windsurf, Gemini CLI, Codex, Cline, Continue and Pi over stdio; any client over Streamable HTTP. 66 tools, 24 skills also exposed as MCP prompts, Docker images per language, and a Go library for using the LSP client directly.
- Data and privacy
- Runs locally with your user permissions and reads, edits and builds the workspaces you point it at; code the agent reads goes to your model provider. No telemetry is described in the README. HTTP mode uses a bearer token and binds to 127.0.0.1 by default; Docker images run as a non-root user.
- Cost at scale
- Free under MIT. The cost is context and time: 66 tool definitions per session in clients that load them all, plus the memory each running language server needs on a large repository.
- Limits
- Accuracy is only as good as each language server. Python and TypeScript need minutes of indexing on first use, which a background daemon keeps warm and closes after 30 minutes idle. Interactive refactoring needs gopls v0.24 or later.
What’s good
- Uses real language servers, so references and renames are type-aware
- Edits can be previewed in memory with a before-and-after error count
- One process routes several languages in one session
- Single binary with npm, pip, Homebrew, Scoop and winget installs
What’s not
- 66 tools weigh on the context of clients that load them all
- run_tests and run_build execute the project's own scripts
- Output defaults to the author's GCF format, not JSON
- Young project; comparisons with rivals are self-reported
Best for
Engineers running Claude Code, Codex or Cursor on large or multi-language codebases who want refactors checked against a real language server.
agent-lsp alternatives
agent-lsp: common questions
- Is agent-lsp worth it?
- A thorough bridge from language servers to agents that checks edits before writing them, held back by an outsized tool list and a youth that shows in its release pace. We rate it 3.9 out of 5.
- How much does agent-lsp cost?
- Free and open source (MIT).
- What are the downsides of agent-lsp?
- 66 tools weigh on the context of clients that load them all; run_tests and run_build execute the project's own scripts; output defaults to the author's GCF format, not JSON; young project; comparisons with rivals are self-reported.
- Who is agent-lsp best for?
- Engineers running Claude Code, Codex or Cursor on large or multi-language codebases who want refactors checked against a real language server.
- How much does agent-lsp cost for a team or in production?
- Free under MIT. The cost is context and time: 66 tool definitions per session in clients that load them all, plus the memory each running language server needs on a large repository.
- Is agent-lsp safe for company data?
- Runs locally with your user permissions and reads, edits and builds the workspaces you point it at; code the agent reads goes to your model provider. No telemetry is described in the README. HTTP mode uses a bearer token and binds to 127.0.0.1 by default; Docker images run as a non-root user.
- What are the best agent-lsp alternatives?
- The closest alternatives we have reviewed are Serena and Lean LSP MCP.
Answers checked Nov 13, 2026.