Solon v3.2.0

mcp - 通道或方式相互代理转换

</> markdown

(v3.2.1-SNAPSHOT 后支持)

stdio mcp-server 通过代理,转为 sse mcp-server

@McpServerEndpoint(name = "stdio-to-sse-tool")
public class McpStdioToSseServerDemo implements ToolProvider {
    McpClientToolProvider stdioToolProvider = McpClientToolProvider.builder()
            .channel(McpChannel.STDIO) //表示使用 stdio
            .serverParameters(ServerParameters.builder("java")
                    .args("-jar", "/Users/noear/Downloads/demo-mcp-stdio/target/demo-mcp-stdio.jar")
                    .build())
            .build();

    @Override
    public Collection<FunctionTool> getTools() {
        return stdioToolProvider.getTools();
    }
}

sse mcp-server 通过代理,转为 stdio mcp-server

@McpServerEndpoint(name = "sse-to-stdio-tool", channel = McpChannel.STDIO)
public class McpSseToStdioServerDemo implements ToolProvider {
    McpClientToolProvider sseToolProvider = McpClientToolProvider.builder()
            .apiUrl("http://localhost:8081/sse")
            .build();

    @Override
    public Collection<FunctionTool> getTools() {
        return sseToolProvider.getTools();
    }
}