What it does
cclsp is an MCP server that bridges Language Server Protocol (LSP) infrastructure with Claude and other LLM-based coding agents. It solves a core problem: AI assistants struggle with accurate line and column numbers when navigating code. cclsp works around this by testing multiple position combinations and delegating to LSP for robust symbol resolution. It exposes standard LSP operations—go-to-definition, find-references, rename, diagnostics—adapted for LLM consumption without manual position parsing.
Who it's for
Developers using Claude Code or other LLM-based editors who need reliable code navigation and refactoring. Useful for anyone working with polyglot projects where consistent symbol navigation across TypeScript, Python, Go, Rust, and other languages is valuable, and where the cost of manual symbol search is high.
Common use cases
- Jump to the definition of a function, class, or variable across your codebase.
- Find all usages of a symbol to understand impact before refactoring.
- Rename a symbol safely across an entire project, honoring scope and shadowing rules.
- Fetch linter diagnostics for a file to see errors without running CLI tools.
- Navigate multi-language repos (TypeScript frontend, Python backend, Go services) with one MCP interface.
Setup pitfalls
- Language servers must be installed separately for each language (e.g.,
npm install -g typescript-language-serverfor TypeScript,pip install python-lsp-serverfor Python). The setup wizard provides instructions but does not install automatically. - Requires Node.js 18+ or Bun. Older Node versions fail silently at startup.
- When adding to Claude MCP, the
CCLSP_CONFIG_PATHenvironment variable must be set to the config file path (.claude/cclsp.jsonor~/.config/claude/cclsp.json); omission causes initialization failure. - LSP server binaries must be discoverable in your
PATHor explicitly configured in the setup file; misconfigured paths silently disable that language.