Skip to content

Commit c8056b9

Browse files
committed
disable embedded mcp server by default to let users opt-in, setting pre-defined port, avoid conflicts with server.port when starting up the language server
1 parent b0d1d77 commit c8056b9

File tree

6 files changed

+32
-30
lines changed

6 files changed

+32
-30
lines changed

eclipse-language-servers/org.springframework.tooling.boot.ls/src/org/springframework/tooling/boot/ls/SpringBootLanguageServer.java

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -46,15 +46,16 @@ private List<String> getJVMArgs() {
4646
args.add("-XX:TieredStopAtLevel=1");
4747
args.add("-Dspring.config.location=classpath:/application.properties");
4848

49-
// disable embedded MCP server, depending on preference
50-
if (BootLanguageServerPlugin.getDefault().getPreferenceStore().getBoolean(Constants.PREF_AI_MCP_ENABLED) == false) {
51-
args.add("-Dspring.main.web-application-type=NONE");
52-
}
53-
49+
// enable/disable embedded MCP server, depending on preference
50+
boolean mcpServerEnabled = BootLanguageServerPlugin.getDefault().getPreferenceStore().getBoolean(Constants.PREF_AI_MCP_ENABLED);
5451
int mcpServerPort = BootLanguageServerPlugin.getDefault().getPreferenceStore().getInt(Constants.PREF_AI_MCP_PORT);
55-
if (mcpServerPort >= 0 && mcpServerPort < 65536) {
52+
53+
if (mcpServerEnabled && mcpServerPort >= 0 && mcpServerPort < 65536) {
5654
args.add("-Dserver.port=" + mcpServerPort);
5755
}
56+
else {
57+
args.add("-Dspring.main.web-application-type=NONE");
58+
}
5859

5960
addCustomJVMArgs(args);
6061

eclipse-language-servers/org.springframework.tooling.boot.ls/src/org/springframework/tooling/boot/ls/prefs/AiConfigPreferencePage.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ public void init(IWorkbench workbench) {
3333
@Override
3434
protected void createFieldEditors() {
3535
Composite fieldEditorParent = getFieldEditorParent();
36-
addField(new BooleanFieldEditor(Constants.PREF_AI_MCP_ENABLED, "Enable embedded MCP server", fieldEditorParent));
36+
addField(new BooleanFieldEditor(Constants.PREF_AI_MCP_ENABLED, "Enable embedded MCP server (experimental)", fieldEditorParent));
3737
addField(new StringFieldEditor(Constants.PREF_AI_MCP_PORT, "Port used by the embedded MCP server", fieldEditorParent));
3838
}
3939

eclipse-language-servers/org.springframework.tooling.boot.ls/src/org/springframework/tooling/boot/ls/prefs/PrefsInitializer.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -69,8 +69,8 @@ public void initializeDefaultPreferences() {
6969
preferenceStore.setDefault(Constants.PREF_CODELENS_QUERY_METHODS, true);
7070
preferenceStore.setDefault(Constants.PREF_CODELENS_WEB_CONFIGS_ON_CONTROLLER_CLASSES, true);
7171

72-
preferenceStore.setDefault(Constants.PREF_AI_MCP_ENABLED, true);
73-
preferenceStore.setDefault(Constants.PREF_AI_MCP_PORT, 0);
72+
preferenceStore.setDefault(Constants.PREF_AI_MCP_ENABLED, false);
73+
preferenceStore.setDefault(Constants.PREF_AI_MCP_PORT, 50627);
7474
}
7575

7676
}

headless-services/commons/commons-language-server/src/main/java/org/springframework/ide/vscode/commons/languageserver/LanguageServerRunner.java

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -217,25 +217,25 @@ private <T> Launcher<T> createSocketLauncher(
217217
}
218218

219219
private static Connection connectToNode() throws IOException {
220-
String port = System.getProperty("server.port");
221-
222-
if (port != null) {
223-
Socket socket = new Socket("localhost", Integer.parseInt(port));
224-
225-
InputStream in = socket.getInputStream();
226-
OutputStream out = socket.getOutputStream();
227-
228-
log.info("Connected to parent using socket on port {}", port);
229-
return new Connection(in, out, socket);
230-
}
231-
else {
220+
// String port = System.getProperty("server.port");
221+
//
222+
// if (port != null) {
223+
// Socket socket = new Socket("localhost", Integer.parseInt(port));
224+
//
225+
// InputStream in = socket.getInputStream();
226+
// OutputStream out = socket.getOutputStream();
227+
//
228+
// log.info("Connected to parent using socket on port {}", port);
229+
// return new Connection(in, out, socket);
230+
// }
231+
// else {
232232
InputStream in = System.in;
233233
PrintStream out = System.out;
234234

235235
log.info("Connected to parent using stdio");
236236

237237
return new Connection(in, out, null);
238-
}
238+
// }
239239
}
240240

241241
private Future<Void> runAsync(Connection connection) throws Exception {

vscode-extensions/vscode-spring-boot/lib/Main.ts

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -49,14 +49,15 @@ export function activate(context: ExtensionContext): Thenable<ExtensionAPI> {
4949
const specificVmArgs = ["-Dspring.config.location=classpath:/application.properties"];
5050

5151
const aiPreferencesConfig = workspace.getConfiguration("boot-java.ai");
52-
if (aiPreferencesConfig.get("mcp-server-enabled") === false) {
53-
specificVmArgs.push("-Dspring.main.web-application-type=NONE");
54-
}
52+
const mcpServerEnabled = aiPreferencesConfig.get("mcp-server-enabled");
53+
const mcpServerPort = aiPreferencesConfig.get<number>("mcp-server-port", 50627);
5554

56-
var mcpServerPort = aiPreferencesConfig.get<number>("mcp-server-port", 0);
57-
if (mcpServerPort >= 0 && mcpServerPort <= 655536) {
55+
if (mcpServerEnabled === true && mcpServerPort >= 0 && mcpServerPort <= 655536) {
5856
specificVmArgs.push("-Dserver.port=" + mcpServerPort);
5957
}
58+
else {
59+
specificVmArgs.push("-Dspring.main.web-application-type=NONE");
60+
}
6061

6162
let options : commons.ActivatorOptions = {
6263
DEBUG: false,

vscode-extensions/vscode-spring-boot/package.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -584,12 +584,12 @@
584584
"properties": {
585585
"boot-java.ai.mcp-server-enabled": {
586586
"type": "boolean",
587-
"default": true,
588-
"description": "Enable embedded MCP server"
587+
"default": false,
588+
"description": "Enable embedded MCP server (experimental)"
589589
},
590590
"boot-java.ai.mcp-server-port": {
591591
"type": "integer",
592-
"default": 0,
592+
"default": 50627,
593593
"description": "Port used by the embedded MCP serverr"
594594
}
595595
}

0 commit comments

Comments
 (0)