[BUG] LSP tool is no longer being registered as a callable tool
Preflight Checklist
- [x] I have searched existing issues and this hasn't been reported yet
- [x] This is a single bug report (please file separate reports for different bugs)
- [x] I am using the latest version of Claude Code
What's Wrong?
The LSP tool that exposes interactive language server operations is no longer registered as a callable tool. The LSP server initializes correctly and passive diagnostics work, but the tool is missing.
I am using the Eclipse JDTLS language server for Java.
It was working in Claude Code version 2.1.34, but after upgrading to 2.1.50, the LSP Tool is absent from the tool set. ToolSearch returns 0 matches.
Is it that the LSP tool is not added to either the always-available or deferred tool registries? It's not missing from the server; it's missing from the tool set sent to the model.
What Should Happen?
When an LSP plugin is configured, and the language server initializes successfully, the LSP tool should be registered in the tool set (either always available or discovered via ToolSearch) so the model can invoke operations like textDocument/definitions, textDocument/references, documentSymbol, hover, workspaceSymbol, etc.
Error Messages/Logs
Working correctly - 2.1.34 LSP tool exists, model calls it directly:
executePreToolHooks called for tool: LSP
[LSP PROTOCOL Plugin: java-lsp:java] Sending request 'textDocument/references - (11)
[LSP PROTOCOL Plugin: java-lsp:java] Received response 'textDocument/references - (11) in 591ms
Not working - 2.1.50 LSP tool absent from tool set, ToolSearch returns 0 matches:
[LSP MANAGER] initializeLspServerManager() called
[LSP MANAGER] created manager instance, state=pending
[LSP MANAGER] started async initialization (generation 1)
Loaded 1 LSP server(s) from plugin: java-lsp
Total LSP server loaded: 1
[LSP SERVER MANAGER] getAllLspServers returned 1 server(s)
Starting LSP server instance: plugin:java-lsp:java
LSP manager initialized with 1 servers
LSP manager initialized successfully
[LSP PROTOCOL Plugin: java-lsp:java] Sending request 'initialize - (0)'
[LSP PROTOCOL Plugin: java-lsp:java] Received response 'initialize - (0)' in 1863ms.
[LSP PROTOCOL Plugin: java-lsp:java] Sending notification 'initialized'
LSP server plugin:java-lsp:java initialized
LSP server instance started: plugin:java-lsp:java
Registered diagnostics handler for plugin:java-lsp:java
LSP Diagnostics: Delivering 1 file(s) with 1 diagnostic(s) from 1 server(s)
ToolSearchTool: keyword search for "LSP references definitions", found 0 matches
Dynamic tool loading: 0/24 deferred tools included
Server initializes corrrectly, diagnostics are delivered, but the LSP tool is not registered - tool search does not find it.
Steps to Reproduce
1) Configure the LSP plugin for Java using Eclipse JDTLS.
2) Start Claude Code - Server initializes, diagnostics work.
3) Ask the model to find references or go to the definition.
4) The model has no LSP tool and falls back to Grep
Claude Model
Not sure / Multiple models
Is this a regression?
Yes, this worked in a previous version
Last Working Version
2.1.34
Claude Code Version
2.1.50
Platform
Anthropic API
Operating System
macOS
Terminal/Shell
Terminal.app (macOS)
Additional Information
_No response_
This issue has 8 comments on GitHub. Read the full discussion on GitHub ↗