LSP Management Skill
π¨ MANDATORY: Invoke docs-management First
STOP - Before providing ANY response about LSP configuration:
- INVOKE
docs-managementskill 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.jsonfiles - 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.jsonfiles - 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