System-wide LSP failure: No LSP server available for any file type despite correct configuration
Bug Description
LSP functionality is completely non-functional across ALL language servers despite having all prerequisites correctly configured. Both PHP LSP and TypeScript LSP fail with identical error: "No LSP server available for file type: .php/.js"
Environment
- OS: macOS (Darwin 25.1.0)
- Claude Code Version: Latest (as of 2025-12-27)
- Shell: zsh
- Node Version: v22.20.0 (via Laravel Herd NVM)
- Project Type: Laravel 12.x application
Prerequisites Verified (All ✅)
Environment Variable
$ echo $ENABLE_LSP_TOOL
1
PHP LSP Setup
- ✅ Plugin enabled:
php-lsp@claude-plugins-officialv1.0.0 in~/.claude/settings.json - ✅ Intelephense installed:
/Users/sin/Library/Application Support/Herd/config/nvm/versions/node/v22.20.0/bin/intelephense - ✅ Plugin files present: Verified in
~/.claude/plugins/cache/and marketplaces
TypeScript LSP Setup
- ✅ Plugin enabled:
typescript-lsp@claude-plugins-officialin~/.claude/settings.json - ✅ typescript-language-server installed:
/Users/sin/Library/Application Support/Herd/config/nvm/versions/node/v22.20.0/bin/typescript-language-server - ✅ TypeScript compiler installed: Available in PATH
Restarts
- ✅ Claude Code restarted multiple times (4+ separate sessions)
- ✅ Terminal restarted
- ✅ Full system restart attempted
Steps to Reproduce
- Install Intelephense:
npm install -g intelephense - Install TypeScript language server:
npm install -g typescript-language-server typescript - Enable LSP tool:
export ENABLE_LSP_TOOL=1in~/.zshrc - Enable plugins in
~/.claude/settings.json:
``json``
{
"enabledPlugins": {
"php-lsp@claude-plugins-official": true,
"typescript-lsp@claude-plugins-official": true
}
}
- Restart Claude Code
- Attempt LSP operation on any PHP or JS file
Actual Behavior
# Testing PHP LSP
LSP operation: documentSymbol
File: app/Models/User.php
Line: 1, Character: 1
Result: "No LSP server available for file type: .php"
# Testing TypeScript LSP
LSP operation: documentSymbol
File: resources/js/app.js
Line: 1, Character: 1
Result: "No LSP server available for file type: .js"
Expected Behavior
LSP operations should return symbol information, definitions, references, hover documentation, etc. from the respective language servers.
Diagnostic Analysis
This is a system-wide LSP failure, not a plugin-specific issue:
- Both PHP and TypeScript LSP fail identically - suggests core LSP infrastructure issue
- All prerequisites are met - language servers installed, environment variable set, plugins enabled
- Multiple restarts have not resolved the issue - not a transient initialization problem
- No error messages or diagnostic output - LSP system fails silently
Possible Root Causes
ENABLE_LSP_TOOLenvironment variable is read but not properly activating LSP functionality- Fundamental bug in Claude Code's LSP manager preventing initialization of ANY language servers
- LSP tool requires additional undocumented configuration
- Race condition in plugin loading preventing LSP server registration
Impact
Without working LSP functionality, users cannot access:
- Go-to-definition
- Find references
- Hover documentation
- Symbol navigation
- Call hierarchy
- Code intelligence features
This severely limits Claude Code's effectiveness for large codebases where navigation is critical.
Workaround
Currently using traditional tools (Grep, Glob, Read) for code navigation, which is significantly less convenient than LSP-powered navigation.
Additional Context
This issue has been thoroughly investigated over 4+ separate Claude Code sessions with multiple restarts. The diagnostic testing (comparing PHP LSP vs TypeScript LSP) definitively shows this is a system-wide LSP infrastructure failure, not a plugin-specific bug.
Full diagnostic history available if needed.
This issue has 5 comments on GitHub. Read the full discussion on GitHub ↗