lsp-mcp
Provides LSP-based intelligence for ESLint through vscode-eslint-language-server, enabling diagnostics, code actions, autofix, and formatting for JavaScript/TypeScript files.
Provides LSP-based intelligence for TypeScript projects via typescript-language-server or tsgo, enabling diagnostics, definitions, references, hover, symbols, code actions, formatting, rename, and file sync.
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., "@lsp-mcpcheck diagnostics for src/index.ts and autofix any issues"
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.
lsp-mcp
LSP intelligence through a persistent daemon. It can run as an MCP server (Claude Code, Codex, any MCP client) or as a Pi package.
One LSP setup, every harness
Coding agents each ship their own LSP story: some have built-in language-server integrations, some rely on shelling out to tsc/eslint/prettier, some have nothing. That means the same edit gets verified differently depending on which harness you happen to be using.
lsp-mcp moves LSP out of the harness and behind MCP. Any MCP-capable agent gets the same lsp_* tools backed by the same warm daemon, the same project config (.lsp-mcp.json), and the same diagnostics/format/autofix behavior:
Switch harnesses freely — Claude Code, Codex, Pi, opencode, or anything else that speaks MCP: no reconfiguration, no relearning a different LSP integration.
One daemon per project root — language servers stay warm and are shared across harnesses and sessions, so checks are fast.
Consistent verification flow — pair it with the lsp-verification skill so every harness checks edits the same way instead of falling back to CLI tools.
Config lives with the project —
.lsp-mcp.jsondefines servers and formatters once, for every agent that works in the repo.
bun and the language server you select (such as tsgo, typescript-language-server, vscode-eslint-language-server, or gopls) must be available on PATH.
Related MCP server: ACE-MCP
Pi
From npm (not published yet — substitute your scope once it is):
pi install @your-scope/lsp-mcpFrom a local checkout:
pi install /absolute/path/to/lsp-mcp
# or for one run
pi -e /absolute/path/to/lsp-mcp/extensions/lsp-mcp.tsThe extension registers the lsp_* tools (diagnostics, definitions, references, hover, symbols, code actions, formatting, rename, and sync) directly in Pi. It starts the bundled MCP server with bun on first use and closes that client when the Pi session ends.
Claude Code (via npm)
claude mcp add lsp-mcp -- bunx @your-scope/lsp-mcpOr add it to a project .mcp.json (or your user-level MCP config):
{
"mcpServers": {
"lsp-mcp": {
"command": "bunx",
"args": ["@your-scope/lsp-mcp"]
}
}
}Codex CLI (via npm)
codex mcp add lsp-mcp -- bunx @your-scope/lsp-mcpOr add it to ~/.codex/config.toml:
[mcp_servers.lsp-mcp]
command = "bunx"
args = ["@your-scope/lsp-mcp"]Any other MCP client
The server speaks newline-delimited JSON-RPC over standard input/output. Point the client at:
bunx @your-scope/lsp-mcpRun it directly from a checkout with:
bun run bin/lsp-mcp.tsProject config
Configure project servers in .lsp-mcp.json at the project root:
{ "servers": ["tsserver"] }lsp_diagnostics automatically starts matching configured servers — no need to call lsp_start first.
Multiple files per call
The file-based tools accept file as a single path or an array of paths, so a batch of files needs one call:
lsp_diagnostics— flat list of diagnostics for all fileslsp_document_symbols—{ "results": [{ "file": ..., "symbols": [...] }] }lsp_format_document—{ "results": [{ "file": ..., "changed": ..., "edits": ... }] }lsp_sync_file—{ "results": [{ "file": ..., "version": ... }] }lsp_autofix— aggregateappliedActions/changedFiles/totalEditsplus per-fileresultslsp_pull_changes— diffs for the given files
Passing a single string keeps the original response shape.
Make your agent verify with LSP
The skill in skills/lsp-verification/ teaches agents to check edits with lsp-mcp — lsp_sync_file → lsp_diagnostics → lsp_autofix — before falling back to tsc, eslint, prettier, or similar CLI tools, whenever a language server covers the file.
Claude Code / opencode (SKILL.md)
# user-level
mkdir -p ~/.claude/skills && cp -R skills/lsp-verification ~/.claude/skills/
mkdir -p ~/.config/opencode/skills && cp -R skills/lsp-verification ~/.config/opencode/skills/
# or project-level
mkdir -p .claude/skills && cp -R skills/lsp-verification .claude/skills/Codex, Pi, and other AGENTS.md harnesses
Append skills/lsp-verification/AGENTS.md to your project's AGENTS.md.
Releasing
The unscoped lsp-mcp name on npm is a security-holding package, so publish under a scope:
Set
"name": "@your-scope/lsp-mcp"inpackage.json(scope must match your npm user or org).npm login(or setNPM_TOKENfor CI).npm publish— theprepublishOnlyscript runsbun testandtsc --noEmitfirst.
publishConfig.access is already public (required for scoped packages). The tarball ships bin/, src/, extensions/, plus README/LICENSE/package.json — no tests, lockfile, or local config.
This server cannot be deployed
Maintenance
Related MCP Connectors
Project management shared by people and AI agents, with persistent project state through MCP.
1Lean 4 MCP server: compile, prove theorems, and formalize math with Mathlib.
Nifty's MCP server — exposes tasks, projects, messages, and files as tools for AI agents.
The official Svelte MCP server providing docs and autofixing tools for Svelte development
Related MCP Servers
- AlicenseAqualityAmaintenanceMCP server that keeps language server sessions warm and routes multiple languages through one process. Agents get persistent cross-file awareness, speculative execution (simulate edits before writing to disk), and 20 skills that encode correct multi-step operations like safe rename, blast-radius analysis, and end-to-end refactoring. Single Go binary, no runtime dependencies.50156MIT
- AlicenseNot gradedqualityBmaintenanceEnables AI clients to perform local code search, indexing, and analysis across Java, JavaScript/TypeScript, .NET/C#, and Python projects through the MCP protocol.1Apache 2.0
- AlicenseNot gradedqualityDmaintenanceA production-grade, LLM-agnostic local development engine over MCP, providing structured code intelligence and shared language server processes for AI coding agents.26 npmMIT
- FlicenseNot gradedqualityBmaintenanceExposes LSP features (definition, hover, references, etc.) over MCP, spawning an isolated language server process per project.-