in genai-function-calling/spring-ai/src/main/java/example/Mcp.java [42:71]
String mcpServersConfiguration() throws Exception {
ObjectMapper mapper = new ObjectMapper();
ObjectNode root = mapper.createObjectNode();
ObjectNode serverConfig = mapper.createObjectNode();
// Set up the configuration structure
root.set("mcpServers", mapper.createObjectNode().set("elasticsearch-versions", serverConfig));
// Get process information
ProcessHandle.Info info = ProcessHandle.current().info();
// Add command
serverConfig.put("command",
info.command().orElseThrow(() -> new IllegalStateException("Cannot get command of current process")));
// Add arguments with "--mcp-server" appended
ArrayNode argsNode = mapper.createArrayNode();
String[] args = info.arguments().orElseThrow(() -> new IllegalStateException("Cannot get arguments of current process"));
for (String arg : args) {
argsNode.add(arg);
}
argsNode.add("--mcp-server");
serverConfig.set("args", argsNode);
// Add environment variables
serverConfig.set("env", mapper.valueToTree(System.getenv()));
// Serialize to pretty-printed JSON
return mapper.writerWithDefaultPrettyPrinter().writeValueAsString(root);
}