Hi everyone,
I’d like to bring attention to a feature request I opened on the Claude Code repository: [FEATURE] Add Scala (Metals) to the native LSP plugin lineup · Issue #45132 · anthropics/claude-code · GitHub — requesting native Metals LSP integration for Scala.
Claude Code currently ships with native LSP plugins for 12+ languages, including TypeScript, Rust, Go, Python, Java (jdtls), Kotlin, C#, Ruby, PHP, Swift, Lua, and C/C++. Scala is notably absent from this list, despite Metals being a mature, well-established LSP server that follows the exact same protocol as the already-supported language servers.
Without native LSP support, Claude Code falls back to text-based search (grep) when navigating Scala codebases. This is especially painful for Scala because we have, arguably, one of the most expressive type systems out there. Implicits, extension methods, type aliases, and givens mean grep misses call sites and returns false positives constantly. Semantic intelligence via Metals would directly improve code navigation accuracy.
There are workarounds like Serena, an MCP server that wraps Metals, but its lookups introduce significant overhead.
- Metals uses the standard LSP protocol — the same one every other supported language server uses.
- JVM infrastructure already exists — Claude Code already supports Java (jdtls) and Kotlin (kotlin-lsp), so the JVM runtime plumbing is in place.
- Installation is trivial —
cs install metals, same as any other Coursier-based tool. - Implementation would be structurally identical to existing plugins.
In short, this is low-hanging fruit from an implementation standpoint, but high impact for Scala developers using AI-assisted tooling.
Urgent: the issue needs engagement
Anthropic’s bot has flagged the issue as a potential duplicate of two older, more generic requests (#24735, #24734). Hopefully this issue makes a targeted, well documented case for Metals support.
How you can help
- Go to the issue and thumbs-down
the bot’s duplicate comment to prevent auto-closure. - Thumbs-up👍 the issue itself to signal demand.
- Leave a comment sharing your use case — the more Scala-specific context Anthropic sees, the stronger the case.
Thanks for your time.