String mcpServersConfiguration()

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);
    }