Skip to content

Commit 726781e

Browse files
committed
Update readme
Signed-off-by: BoykoAlex <alex.boyko@broadcom.com>
1 parent 2213f63 commit 726781e

1 file changed

Lines changed: 20 additions & 17 deletions

File tree

claude-plugins/spring-boot/README.md

Lines changed: 20 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -11,39 +11,44 @@ Unlike the VS Code extension, this plugin uses the **standalone** variant of the
1111

1212
## Usage
1313

14-
### Installation
14+
### 1. Add the Marketplace
1515

16-
To install the latest release of the plugin from the official Spring Marketplace:
16+
First, add either the Release or Snapshot marketplace to Claude Code:
1717

18+
**To use the stable release:**
1819
```bash
1920
claude plugin marketplace add https://cdn.spring.io/spring-tools/release/claude-plugins/marketplace.json
20-
claude plugin install spring-boot@spring-tools-marketplace
2121
```
2222

23-
To install the bleeding-edge snapshot:
24-
23+
**To use the bleeding-edge snapshot:**
2524
```bash
2625
claude plugin marketplace add https://cdn.spring.io/spring-tools/snapshot/claude-plugins/marketplace.json
27-
claude plugin install spring-boot@spring-tools-snapshots
2826
```
2927

30-
### During development / testing
28+
### 2. Install the Plugin
3129

32-
To test this plugin locally, you can use Claude Code's native `git-subdir` marketplace functionality or a relative path directly to this repository:
30+
Once the marketplace is added, install the plugin:
3331

34-
1. Build the standalone language server jar from the `sts4` repository.
35-
2. Copy the jar into this plugin's `language-server/` directory.
36-
3. Run: `claude plugin install . --scope local` from this directory.
32+
**If you added the stable release marketplace:**
33+
```bash
34+
claude plugin install spring-boot@spring-tools-marketplace
35+
```
3736

38-
### Updating the plugin
37+
**If you added the snapshot marketplace:**
38+
```bash
39+
claude plugin install spring-boot@spring-tools-snapshots
40+
```
3941

40-
If you make changes to the `.lsp.json` or plugin manifest, you may need to update the installation:
42+
### 3. Update the Plugin
43+
44+
When new versions of the plugin are published to the marketplace, update it by running:
4145

4246
```bash
47+
claude plugin marketplace update
4348
claude plugin update spring-boot
4449
```
4550

46-
### Testing the LSP Plugin
51+
### 4. Testing the LSP Plugin
4752

4853
To verify that the Spring Boot Language Server is correctly booting up and providing diagnostics to Claude Code, you must run Claude Code **interactively** (don't use the `-p` single-shot flag, as it will kill the CLI before the LSP finishes initializing).
4954

@@ -52,7 +57,7 @@ Open a Spring Boot project and start Claude Code:
5257
claude
5358
```
5459

55-
Then, ask Claude to open a file and check the diagnostics. For example:
60+
Then, ask Claude a test query to verify the LSP integration. For example:
5661
> "Open CoffeeController.java and tell me what the Spring Boot LSP says about the @GetMapping version attribute."
5762
5863
Claude will wait for the LSP to initialize, read the file, and then summarize the exact Spring Boot warnings and quick fixes provided by the Language Server.
@@ -86,5 +91,3 @@ To eliminate race conditions and avoid booting multiple heavy Java processes, th
8691

8792
1. **MCP starts the server:** Claude Code parses `.mcp.json` at startup. This triggers `launcher.js`, which checks if the heavy Java JAR is downloaded. If not, it executes `install.js` to download it from Spring's CDN. Then it boots the standalone Spring Boot Language Server, instructing it to expose its MCP tools over `stdio` and its LSP over a local TCP socket (port 5007).
8893
2. **LSP connects via proxy:** When you open a relevant file (e.g. `.java`, `.properties`), Claude Code parses `.lsp.json` and starts `proxy.js` as its "LSP process". This lightweight Node.js script simply forwards Claude Code's standard input/output streams to the already-running Java process on port 5007, avoiding the need to spawn a second JVM.
89-
90-
The standalone LS uses `MavenProjectCache` and `GradleProjectCache` to scan the workspace for `pom.xml` and `build.gradle` files, discovering projects without JDT LS. All type indexing is done locally using [Jandex](https://smallrye.io/jandex/).

0 commit comments

Comments
 (0)