[BUG] LSP tool is no longer being registered as a callable tool

Resolved 💬 8 comments Opened Feb 21, 2026 by anshulongithub Closed Apr 3, 2026

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_

View original on GitHub ↗

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