[FEATURE] Add Scala (Metals) to the native LSP plugin lineup

Open 💬 15 comments Opened Apr 8, 2026 by NovaMage

Preflight Checklist

  • [x] I have searched existing requests and this feature hasn't been requested yet
  • [x] This is a single feature request (not multiple features)

Problem Statement

Claude Code ships native LSP plugins for 12+ languages (TypeScript, Rust, Go, Python, Java/jdtls, Kotlin, C#, Ruby, PHP, Swift, Lua, C/C++) but has no Scala support. Scala Metals is the standard LSP server for the ecosystem and follows the exact same LSP protocol that all the existing plugins use.

Proposed Solution

The existing JVM plugin infrastructure already covers Java (jdtls) and Kotlin (kotlin-lsp). Metals follows the same LSP protocol and is installed the same way (via Coursier: cs install metals). A metals-lsp plugin would be structurally identical to the existing ones.

Alternative Solutions

Third-party solutions like Serena (an MCP server that wraps Metals) exist and do provide semantic code intelligence with better accuracy than text search (symbol-aware lookups vs. raw string matching). However, in our benchmarks, Serena's MCP-based lookups were an order of magnitude slower than plain grep — making it slower than the dumb alternative it's meant to replace. Native LSP integration would eliminate this overhead entirely.

Priority

High - Significant impact on productivity

Feature Category

MCP server integration

Use Case Example

I am the CTO of the company Magaran Software LLC. You can check my profile. I have been programming Scala since 2012, and it's the language that built my entire company. Most of our projects use it as the backend language, specially the bigger ones. I currently have a Team plan for magaran and everyone here uses Claude. Missing this LSP support is heavily hampering our productivity with the tool, although of course we can do stuff with grep in the meantime. Hopefully we can get a positive resolution to this.

Additional Context

_No response_

View original on GitHub ↗

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