LSP Management Skill
🚨 MANDATORY: Invoke docs-management First
STOP - Before providing ANY response about LSP configuration:
- INVOKE
docs-management skill for Claude Code LSP documentation
- QUERY for the user's specific LSP topic
- BASE all responses on official documentation + this skill's knowledge base
Skipping this step results in outdated or incorrect information.
⚠️ EXPERIMENTAL: Claude Code LSP Status
LSP support in Claude Code is experimental and has known issues. Key points:
| Requirement |
Details |
| Environment Variable |
ENABLE_LSP_TOOL=1 (singular) required to expose LSP tool |
| Current Version |
v2.1.0+ has partial support (regression #17468) |
| Stable Version |
v2.0.67 is last known stable LSP version |
| Configuration |
.lsp.json at project root or lspServers in plugin.json |
See troubleshooting.md for version-specific issues and workarounds.
Overview
Central authority for Language Server Protocol (LSP) configuration in Claude Code. This skill provides:
- LSP server recommendations by language/technology
- Configuration patterns for
.lsp.json files
- Installation guides for each recommended server
- Troubleshooting for common LSP issues
Architecture: Keyword registry + curated knowledge base. Delegates to docs-management for official Claude Code LSP documentation.
When to Use This Skill
Keywords: LSP, language server, language-server-protocol, code intelligence, hover, go-to-definition, find-references, diagnostics, pyright, typescript-language-server, gopls, rust-analyzer, csharp-ls, .lsp.json, LSP configuration, LSP setup, LSP troubleshooting
Use this skill when:
- Setting up LSP servers for a project
- Choosing between LSP server options for a language
- Configuring
.lsp.json files
- Troubleshooting LSP issues (hover not working, diagnostics missing, etc.)
- Understanding LSP server installation requirements
- Auto-detecting needed LSPs based on project file types
Keyword Registry for docs-management Queries
Use these keywords when querying docs-management skill for official documentation:
Core Concepts
| Topic |
Keywords |
| LSP Overview |
"LSP", "language server protocol", "code intelligence" |
| Configuration File |
".lsp.json", "LSP configuration", "language server config" |
| Features |
"hover", "go-to-definition", "find-references", "diagnostics", "document symbols" |
Server-Specific
| Topic |
Keywords |
| Python |
"pyright", "pylsp", "python language server" |
| TypeScript/JavaScript |
"typescript-language-server", "vtsls", "tsserver" |
| Go |
"gopls", "go language server" |
| Rust |
"rust-analyzer", "rust language server" |
| C# |
"csharp-ls", "OmniSharp", "C# language server" |
| C/C++ |
"clangd", "ccls", "C++ language server" |
Troubleshooting
| Topic |
Keywords |
| Server Issues |
"LSP not working", "language server crash", "LSP restart" |
| Feature Issues |
"hover not working", "diagnostics missing", "go-to-definition failing" |
| Configuration Issues |
"LSP config invalid", ".lsp.json error", "extension mapping" |
Quick Decision Tree
What do you need?
- Set up LSP for a new project → See server-database.md for recommended servers
- Configure .lsp.json → See configuration-patterns.md for patterns
- Install a specific LSP server → See installation-guide.md for per-server commands
- Fix LSP issues → See troubleshooting.md for common problems
- Understand Claude Code LSP support → Query docs-management: "LSP configuration Claude Code"
LSP Server Recommendations (Quick Reference)
| Language |
Recommended Server |
Why |
| Python |
Pyright |
Fast, accurate type checking, broad ecosystem support |
| TypeScript/JavaScript |
typescript-language-server |
Official TypeScript support, widely used |
| Go |
gopls |
Official Go team server, comprehensive |
| Rust |
rust-analyzer |
De facto standard, excellent performance |
| C# |
csharp-ls |
Lightweight, cross-platform, dotnet tool |
| C/C++ |
clangd |
LLVM-backed, fast, accurate |
| Java |
Eclipse JDTLS |
Full-featured, widely supported |
| Ruby |
solargraph |
Type inference, documentation support |
| PHP |
intelephense |
Premium features, fast |
| Lua |
lua-language-server |
Official, well-maintained |
| YAML |
yaml-language-server |
Schema validation, completion |
| JSON |
vscode-json-languageserver |
Schema validation, formatting |
For detailed recommendations with alternatives and trade-offs, see server-database.md.
.lsp.json Configuration Format
Claude Code reads LSP configuration from .lsp.json in the project root.
Basic Structure:
{
"server-name": {
"command": "server-executable",
"args": ["--stdio"],
"extensionToLanguage": {
".ext": "language-id"
},
"restartOnCrash": true,
"maxRestarts": 3
}
}
Required Fields:
| Field |
Type |
Description |
command |
string |
Executable command for the server |
args |
string[] |
Command-line arguments (typically ["--stdio"]) |
extensionToLanguage |
object |
Maps file extensions to language IDs |
Optional Fields:
| Field |
Type |
Default |
Description |
restartOnCrash |
boolean |
true |
Auto-restart server on crash |
maxRestarts |
number |
3 |
Maximum restart attempts |
For complete patterns and examples, see configuration-patterns.md.
Auto-Detection Strategy
When auto-detecting needed LSPs for a project:
- Scan for file extensions using Glob patterns
- Match extensions to languages using the mapping table below
- Recommend servers from server-database.md
Extension to Language Mapping
| Extensions |
Language |
Recommended Server |
.py, .pyi |
Python |
pyright |
.ts, .tsx, .js, .jsx |
TypeScript/JavaScript |
typescript-language-server |
.go |
Go |
gopls |
.rs |
Rust |
rust-analyzer |
.cs, .csx |
C# |
csharp-ls |
.c, .h, .cpp, .hpp, .cc |
C/C++ |
clangd |
.java |
Java |
jdtls |
.rb |
Ruby |
solargraph |
.php |
PHP |
intelephense |
.lua |
Lua |
lua-language-server |
.yaml, .yml |
YAML |
yaml-language-server |
.json |
JSON |
vscode-json-languageserver |
Integration with Existing Infrastructure
Relationship to audit-lsp
The audit-lsp command validates existing .lsp.json configurations. This skill provides:
- Server recommendations that audit-lsp can validate against
- Configuration patterns that audit-lsp checks for compliance
- Troubleshooting guidance when audit-lsp finds issues
Relationship to setup-lsp
The setup-lsp command creates/updates .lsp.json configurations. This skill provides:
- Server database for recommendations
- Installation guides for chosen servers
- Configuration templates for generation
Test Scenarios
These scenarios should activate this skill:
- Direct activation: "Use the lsp-management skill to recommend a Python LSP"
- Setup question: "How do I set up LSP for my TypeScript project?"
- Configuration question: "What should my .lsp.json look like for Go?"
- Troubleshooting: "My hover tooltips aren't working in Python files"
- Comparison: "Should I use pyright or pylsp for Python?"
Related Skills
| Skill |
Relationship |
| docs-management |
Delegates to for official Claude Code LSP documentation |
| plugin-development |
Plugins can provide LSP configurations via lspServers field |
References
Detailed guides (load on-demand):
- Server Database - Curated recommendations by language
- Configuration Patterns - Common .lsp.json patterns
- Installation Guide - Per-server installation commands
- Troubleshooting - Common issues and fixes
Official Documentation (via docs-management):
- Query: "LSP configuration Claude Code"
- Query: ".lsp.json format"
Version History
- v1.0.0 (2026-01-11): Initial release
- LSP server recommendations for 12+ languages
- Configuration pattern documentation
- Installation guides per server
- Troubleshooting guide
- Integration with audit-lsp and setup-lsp
Last Updated
Date: 2026-01-11
Model: claude-opus-4-5-20251101
1---2name: lsp-management3description: LSP server recommendations, .lsp.json configuration, installation guides, and troubleshooting for Language Server Protocol in Claude Code4---5
6# LSP Management Skill
7
8> ## 🚨 MANDATORY: Invoke docs-management First
9>
10> **STOP - Before providing ANY response about LSP configuration:**
11>
12> 1. **INVOKE** `docs-management` skill for Claude Code LSP documentation
13> 2. **QUERY** for the user's specific LSP topic
14> 3. **BASE** all responses on official documentation + this skill's knowledge base
15>
16> **Skipping this step results in outdated or incorrect information.**
17
18## ⚠️ EXPERIMENTAL: Claude Code LSP Status
19
20**LSP support in Claude Code is experimental and has known issues.** Key points:
21
22| Requirement | Details |
23|-------------|---------|
24| **Environment Variable** | `ENABLE_LSP_TOOL=1` (singular) required to expose LSP tool |
25| **Current Version** | v2.1.0+ has partial support (regression #17468) |
26| **Stable Version** | v2.0.67 is last known stable LSP version |
27| **Configuration** | `.lsp.json` at project root or `lspServers` in plugin.json |
28
29**See [troubleshooting.md](references/troubleshooting.md) for version-specific issues and workarounds.**
30
31## Overview
32
33Central authority for Language Server Protocol (LSP) configuration in Claude Code. This skill provides:
34
35- **LSP server recommendations** by language/technology
36- **Configuration patterns** for `.lsp.json` files
37- **Installation guides** for each recommended server
38- **Troubleshooting** for common LSP issues
39
40**Architecture:** Keyword registry + curated knowledge base. Delegates to docs-management for official Claude Code LSP documentation.
41
42## When to Use This Skill
43
44**Keywords:** LSP, language server, language-server-protocol, code intelligence, hover, go-to-definition, find-references, diagnostics, pyright, typescript-language-server, gopls, rust-analyzer, csharp-ls, .lsp.json, LSP configuration, LSP setup, LSP troubleshooting
45
46**Use this skill when:**
47
48- Setting up LSP servers for a project
49- Choosing between LSP server options for a language
50- Configuring `.lsp.json` files
51- Troubleshooting LSP issues (hover not working, diagnostics missing, etc.)
52- Understanding LSP server installation requirements
53- Auto-detecting needed LSPs based on project file types
54
55## Keyword Registry for docs-management Queries
56
57Use these keywords when querying docs-management skill for official documentation:
58
59### Core Concepts
60
61| Topic | Keywords |
62| --- | --- |
63| LSP Overview | "LSP", "language server protocol", "code intelligence" |
64| Configuration File | ".lsp.json", "LSP configuration", "language server config" |
65| Features | "hover", "go-to-definition", "find-references", "diagnostics", "document symbols" |
66
67### Server-Specific
68
69| Topic | Keywords |
70| --- | --- |
71| Python | "pyright", "pylsp", "python language server" |
72| TypeScript/JavaScript | "typescript-language-server", "vtsls", "tsserver" |
73| Go | "gopls", "go language server" |
74| Rust | "rust-analyzer", "rust language server" |
75| C# | "csharp-ls", "OmniSharp", "C# language server" |
76| C/C++ | "clangd", "ccls", "C++ language server" |
77
78### Troubleshooting
79
80| Topic | Keywords |
81| --- | --- |
82| Server Issues | "LSP not working", "language server crash", "LSP restart" |
83| Feature Issues | "hover not working", "diagnostics missing", "go-to-definition failing" |
84| Configuration Issues | "LSP config invalid", ".lsp.json error", "extension mapping" |
85
86## Quick Decision Tree
87
88**What do you need?**
89
901. **Set up LSP for a new project** → See [server-database.md](references/server-database.md) for recommended servers
912. **Configure .lsp.json** → See [configuration-patterns.md](references/configuration-patterns.md) for patterns
923. **Install a specific LSP server** → See [installation-guide.md](references/installation-guide.md) for per-server commands
934. **Fix LSP issues** → See [troubleshooting.md](references/troubleshooting.md) for common problems
945. **Understand Claude Code LSP support** → Query docs-management: "LSP configuration Claude Code"
95
96## LSP Server Recommendations (Quick Reference)
97
98| Language | Recommended Server | Why |
99| --- | --- | --- |
100| Python | Pyright | Fast, accurate type checking, broad ecosystem support |
101| TypeScript/JavaScript | typescript-language-server | Official TypeScript support, widely used |
102| Go | gopls | Official Go team server, comprehensive |
103| Rust | rust-analyzer | De facto standard, excellent performance |
104| C# | csharp-ls | Lightweight, cross-platform, dotnet tool |
105| C/C++ | clangd | LLVM-backed, fast, accurate |
106| Java | Eclipse JDTLS | Full-featured, widely supported |
107| Ruby | solargraph | Type inference, documentation support |
108| PHP | intelephense | Premium features, fast |
109| Lua | lua-language-server | Official, well-maintained |
110| YAML | yaml-language-server | Schema validation, completion |
111| JSON | vscode-json-languageserver | Schema validation, formatting |
112
113For detailed recommendations with alternatives and trade-offs, see [server-database.md](references/server-database.md).
114
115## .lsp.json Configuration Format
116
117Claude Code reads LSP configuration from `.lsp.json` in the project root.
118
119**Basic Structure:**
120
121```json
122{
123 "server-name": {
124 "command": "server-executable",
125 "args": ["--stdio"],
126 "extensionToLanguage": {
127 ".ext": "language-id"
128 },
129 "restartOnCrash": true,
130 "maxRestarts": 3
131 }
132}
133```
134
135**Required Fields:**
136
137| Field | Type | Description |
138| --- | --- | --- |
139| `command` | string | Executable command for the server |
140| `args` | string[] | Command-line arguments (typically `["--stdio"]`) |
141| `extensionToLanguage` | object | Maps file extensions to language IDs |
142
143**Optional Fields:**
144
145| Field | Type | Default | Description |
146| --- | --- | --- | --- |
147| `restartOnCrash` | boolean | `true` | Auto-restart server on crash |
148| `maxRestarts` | number | `3` | Maximum restart attempts |
149
150For complete patterns and examples, see [configuration-patterns.md](references/configuration-patterns.md).
151
152## Auto-Detection Strategy
153
154When auto-detecting needed LSPs for a project:
155
1561. **Scan for file extensions** using Glob patterns
1572. **Match extensions to languages** using the mapping table below
1583. **Recommend servers** from server-database.md
159
160### Extension to Language Mapping
161
162| Extensions | Language | Recommended Server |
163| --- | --- | --- |
164| `.py`, `.pyi` | Python | pyright |
165| `.ts`, `.tsx`, `.js`, `.jsx` | TypeScript/JavaScript | typescript-language-server |
166| `.go` | Go | gopls |
167| `.rs` | Rust | rust-analyzer |
168| `.cs`, `.csx` | C# | csharp-ls |
169| `.c`, `.h`, `.cpp`, `.hpp`, `.cc` | C/C++ | clangd |
170| `.java` | Java | jdtls |
171| `.rb` | Ruby | solargraph |
172| `.php` | PHP | intelephense |
173| `.lua` | Lua | lua-language-server |
174| `.yaml`, `.yml` | YAML | yaml-language-server |
175| `.json` | JSON | vscode-json-languageserver |
176
177## Integration with Existing Infrastructure
178
179### Relationship to audit-lsp
180
181The `audit-lsp` command validates existing `.lsp.json` configurations. This skill provides:
182
183- Server recommendations that audit-lsp can validate against
184- Configuration patterns that audit-lsp checks for compliance
185- Troubleshooting guidance when audit-lsp finds issues
186
187### Relationship to setup-lsp
188
189The `setup-lsp` command creates/updates `.lsp.json` configurations. This skill provides:
190
191- Server database for recommendations
192- Installation guides for chosen servers
193- Configuration templates for generation
194
195## Test Scenarios
196
197These scenarios should activate this skill:
198
1991. **Direct activation**: "Use the lsp-management skill to recommend a Python LSP"
2002. **Setup question**: "How do I set up LSP for my TypeScript project?"
2013. **Configuration question**: "What should my .lsp.json look like for Go?"
2024. **Troubleshooting**: "My hover tooltips aren't working in Python files"
2035. **Comparison**: "Should I use pyright or pylsp for Python?"
204
205## Related Skills
206
207| Skill | Relationship |
208| --- | --- |
209| **docs-management** | Delegates to for official Claude Code LSP documentation |
210| **plugin-development** | Plugins can provide LSP configurations via `lspServers` field |
211
212## References
213
214**Detailed guides (load on-demand):**
215
216- [Server Database](references/server-database.md) - Curated recommendations by language
217- [Configuration Patterns](references/configuration-patterns.md) - Common .lsp.json patterns
218- [Installation Guide](references/installation-guide.md) - Per-server installation commands
219- [Troubleshooting](references/troubleshooting.md) - Common issues and fixes
220
221**Official Documentation (via docs-management):**
222
223- Query: "LSP configuration Claude Code"
224- Query: ".lsp.json format"
225
226## Version History
227
228- **v1.0.0** (2026-01-11): Initial release
229 - LSP server recommendations for 12+ languages
230 - Configuration pattern documentation
231 - Installation guides per server
232 - Troubleshooting guide
233 - Integration with audit-lsp and setup-lsp
234
235---
236
237## Last Updated
238
239**Date:** 2026-01-11
240**Model:** claude-opus-4-5-20251101