Install and configure LSP (Language Server Protocol) for Claude Code to enable go-to-definition, find-references, and real-time diagnostics
66
57%
Does it follow best practices?
Impact
Pending
No eval scenarios have been run
Advisory
Suggest reviewing before use
Optimize this skill with Tessl
npx tessl skill review --optimize ./plugins/claude-code-dev/skills/install-lsp/SKILL.mdEnable Language Server Protocol integration to give Claude Code IDE-like code intelligence: go-to-definition, find-references, rename-symbol, and real-time diagnostics.
LSP provides semantic code understanding instead of text-based grep searches:
Claude Code has built-in LSP support that requires activation.
Enable permanently (add to ~/.zshrc or ~/.bashrc):
export ENABLE_LSP_TOOL=1Install language plugins from the community marketplace:
# Add the LSP plugin marketplace
/plugin marketplace add boostvolt/claude-code-lsps
# Install language-specific plugins
/plugin install pyright@claude-code-lsps # Python
/plugin install vtsls@claude-code-lsps # TypeScript/JavaScript
/plugin install gopls@claude-code-lsps # Go
/plugin install rust-analyzer@claude-code-lsps # Rust
/plugin install clangd@claude-code-lsps # C/C++
/plugin install jdtls@claude-code-lsps # Java
/plugin install omnisharp@claude-code-lsps # C#
/plugin install intelephense@claude-code-lsps # PHP
/plugin install kotlin-language-server@claude-code-lsps # Kotlin
/plugin install solargraph@claude-code-lsps # Ruby
/plugin install vscode-html-css@claude-code-lsps # HTML/CSSCommunity MCP server with interactive setup wizard.
Automated setup:
npx cclsp@latest setup # Project-level config
npx cclsp@latest setup --user # User-wide configThe wizard:
| Language | Binary | Installation |
|---|---|---|
| Python | pyright | pip install pyright or npm i -g pyright |
| TypeScript/JS | vtsls | npm i -g @vtsls/language-server typescript |
| Go | gopls | go install golang.org/x/tools/gopls@latest |
| Rust | rust-analyzer | rustup component add rust-analyzer |
| C/C++ | clangd | brew install llvm or xcode-select --install |
| Java | jdtls | brew install jdtls (requires Java 21+) |
| C# | omnisharp | brew install omnisharp/omnisharp-roslyn/omnisharp-mono |
| PHP | intelephense | npm i -g intelephense |
| Kotlin | kotlin-language-server | brew install kotlin-language-server |
| Ruby | solargraph | gem install solargraph |
| HTML/CSS | vscode-langservers | npm i -g vscode-langservers-extracted |
Location: .claude/cclsp.json (project) or ~/.config/claude/cclsp.json (global)
{
"servers": [
{
"extensions": ["py", "pyi"],
"command": ["pyright-langserver", "--stdio"],
"rootDir": ".",
"restartInterval": 30
},
{
"extensions": ["ts", "tsx", "js", "jsx"],
"command": ["typescript-language-server", "--stdio"],
"rootDir": "."
}
]
}After setup, Claude Code gains these capabilities:
| Tool | Description |
|---|---|
find_definition | Navigate to symbol definition |
find_references | Find all usages of a symbol |
rename_symbol | Rename symbol across all files |
get_diagnostics | Get type errors and warnings |
restart_server | Restart the language server |
# Verify plugin is installed
/plugin
# Reinstall if needed
/plugin uninstall pyright@claude-code-lsps
/plugin install pyright@claude-code-lsps# Check binary exists
which pyright
which gopls
# For Go, ensure GOPATH/bin is in PATH
export PATH=$PATH:$(go env GOPATH)/bin# Clear cache and reinstall
rm -rf ~/.claude/plugins/cache
/plugin install pyright@claude-code-lspsUse cmd /c wrapper for cclsp:
{
"servers": [{
"extensions": ["py"],
"command": ["cmd", "/c", "pyright-langserver", "--stdio"]
}]
}After setup, test by asking Claude Code to:
functionName"ClassName"A working setup provides exact file:line locations instead of grep-based text search results.
Combine LSP with traditional search:
LSP provides precision; Grep provides coverage.
When the user runs this command:
Determine approach from arguments:
native - Use built-in LSP tool with pluginscclsp - Use cclsp MCP serverFor native approach:
ENABLE_LSP_TOOL is already set/plugin commandFor cclsp approach:
npx cclsp@latest setup interactively/mcpInform user to restart Claude Code after installation
0ebe7ae
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.