[FEATURE] LSP plugin recommendation should detect equivalent LSP providers already enabled

Resolved 💬 2 comments Opened Jan 27, 2026 by janfrederik Closed Feb 28, 2026

Summary

The LSP Plugin Recommendation feature suggests installing pyright-lsp even when an equivalent Python LSP provider is already enabled.

Current Behavior

When opening a Python project with basedpyright-lsp (from marketplace flaksit/flaks-claude-code-plugins) already enabled and working, Claude Code still shows "LSP Plugin Recommendation" prompting to install pyright-lsp.

Plugin is installed

╭─── Claude Code v2.1.20 ──────────────────────────────────────────────────────────────────────────────────────────────╮
│                                                    │ Tips for getting started                                        │
│             Welcome back Jan Frederik!             │ Run /init to create a CLAUDE.md file with instructions for Cla… │
│                                                    │ ─────────────────────────────────────────────────────────────── │
│                                                    │ Recent activity                                                 │
│                       ▐▛███▜▌                      │ No recent activity                                              │
│                      ▝▜█████▛▘                     │                                                                 │
│                        ▘▘ ▝▝                       │                                                                 │
│     Opus 4.5 · Claude Max ·                        │                                                                 │
│     ------------------@duck.com's Organization     │                                                                 │
│          ~/dev/gitlab-to-github-migrator           │                                                                 │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
                                                                                                                        
❯ /plugin                                                                                                               
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────  
 Plugins  Discover   Installed   Marketplaces  (←/→ or tab to cycle)                                                    
                                                                                                                        
 ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮   
 │ ⌕ Search…                                                                                                        │   
 ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯   
                                                                                                                        
   Project                                                                                                              
 ❯ basedpyright-lsp Plugin · flaks-claude-code-plugins · ✔ enabled                                                      
                                                                                                                        
  type to search · Space to toggle · Enter to details · Esc to back

LSP for Python works

❯ use LSP to show all references to GitLabToGitHubMigrator.migrate()                                                    
                                                                                                                        
● I'll first find where GitLabToGitHubMigrator.migrate is defined, then use LSP to find all references.                 
                                                                                                                        
● Searched for 2 patterns (ctrl+o to expand)                                                                            
                                                                                                                        
● Let me search for the migrate method in the Python file.                                                              
                                                                                                                        
● Searched for 1 pattern (ctrl+o to expand)                                                                             
                                                                                                                        
● Now I'll use LSP to find all references to the migrate method.                                                        
                                                                                                                        
● LSP(operation: "findReferences", symbol: "migrate", in: "src/gitlab_to_github_migrator/migrator.py")                  
  ⎿  Found 3 references across 3 files (ctrl+o to expand)                                                               
  ⎿  Found 10 new diagnostic issues in 1 file (ctrl+o to expand)                                                        
                                                                                                                        
● Found 3 references to GitLabToGitHubMigrator.migrate():                                                               
  ┌───────────────────────────────────────────┬────────┬──────────────┐                                                 
  │                   File                    │  Line  │   Location   │                                                 
  ├───────────────────────────────────────────┼────────┼──────────────┤                                                 
  │ src/gitlab_to_github_migrator/migrator.py │ 1036:9 │ Definition   │                                                 
  ├───────────────────────────────────────────┼────────┼──────────────┤                                                 
  │ src/gitlab_to_github_migrator/cli.py      │ 188:23 │ Usage        │                                                 
  ├───────────────────────────────────────────┼────────┼──────────────┤                                                 
  │ tests/test_integration_real.py            │ 350:31 │ Usage (test) │                                                 
  └───────────────────────────────────────────┴────────┴──────────────┘

Recommendation still shows up

<img width="679" height="237" alt="Image" src="https://github.com/user-attachments/assets/a5ee872c-ccd1-47dc-9648-91688af86dcb" />

Expected Behavior

The recommendation system should detect that Python LSP functionality is already provided by an enabled plugin and skip recommending redundant plugins for the same language.

Suggested Improvement

Make the recommendation logic LSP-aware rather than just plugin-based:

  1. Before recommending an LSP plugin, check if any enabled plugin already provides LSP support for that language
  2. Alternatively, allow users to suppress specific plugin recommendations

Environment

  • Claude Code version: 2.1.19
  • basedpyright-lsp plugin enabled (from marketplace flaksit/flaks-claude-code-plugins)
  • Python project

View original on GitHub ↗

This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗