Copilot commented on code in PR #6163: URL: https://github.com/apache/shenyu/pull/6163#discussion_r2354628974
########## shenyu-spring-boot-starter/shenyu-spring-boot-starter-client/shenyu-spring-boot-starter-client-mcp/src/main/java/org/apache/shenyu/springboot/starter/client/mcp/ShenyuMcpClientConfiguration.java: ########## @@ -0,0 +1,56 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.apache.shenyu.springboot.starter.client.mcp; + +import org.apache.shenyu.client.mcp.McpServiceEventListener; +import org.apache.shenyu.common.utils.VersionUtils; +import org.apache.shenyu.register.client.api.ShenyuClientRegisterRepository; +import org.apache.shenyu.register.common.config.ShenyuClientConfig; +import org.apache.shenyu.springboot.starter.client.common.config.ShenyuClientCommonBeanConfiguration; +import org.springframework.boot.autoconfigure.ImportAutoConfiguration; +import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +/** + * The type shenyu apache mcp client configuration. + */ + +@Configuration +@ImportAutoConfiguration(ShenyuClientCommonBeanConfiguration.class) +@ConditionalOnProperty(value = "shenyu.register.enabled", matchIfMissing = true, havingValue = "true") +public class ShenyuMcpClientConfiguration { + + static { + VersionUtils.checkDuplicate(ShenyuMcpClientConfiguration.class); + } + + /** + * Apache dubbo service bean listener. + * + * @param clientConfig the client config + * @param shenyuClientRegisterRepository the shenyu client register repository + * @return the apache dubbo service bean listener Review Comment: The JavaDoc comment refers to 'Apache dubbo service bean listener' which is incorrect for MCP. It should describe the MCP service event listener instead. ```suggestion * MCP service event listener bean. * * @param clientConfig the client config * @param shenyuClientRegisterRepository the shenyu client register repository * @return the MCP service event listener ``` ########## shenyu-common/src/main/java/org/apache/shenyu/common/constant/Constants.java: ########## @@ -642,6 +642,16 @@ public interface Constants { * When register by http, the uri path. */ String URI_PATH = "/shenyu-client/register-uri"; + + /** + * When register by http, the mcpTools path. + */ + String MCP_TOOLS_PATH = "/shenyu-client/register-mcpTools"; + + /** + * the constant MCP_TOOLS_TYPE. + */ + String MCP_TOOLS_TYPE = "mcp"; Review Comment: There is trailing whitespace after the constant declaration. This should be removed to maintain code consistency. ########## shenyu-client/shenyu-client-mcp/src/main/java/org/apache/shenyu/client/mcp/common/annotation/OpenApiParameter.java: ########## @@ -0,0 +1,67 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.apache.shenyu.client.mcp.common.annotation; + +/** + * the openApi parameter. + */ +public @interface OpenApiParameter { + + /** + * the name. + * + * @return name + */ + String name() default ""; + + /** + * the location of parameter. + * + * @return in + */ + String in() default "query"; + + /** + * description. + * + * @return description + */ + String description() default ""; + + /** + * the type. + * + * @return typr Review Comment: The return annotation has a typo 'typr' which should be 'type'. ```suggestion * @return type ``` ########## shenyu-register-center/shenyu-register-client/shenyu-register-client-api/src/main/java/org/apache/shenyu/register/client/api/FailbackRegistryRepository.java: ########## @@ -96,6 +97,16 @@ public void persistApiDoc(final ApiDocRegisterDTO registerDTO) { } } + @Override + public void persistMcpTools(final McpToolsRegisterDTO registerDTO) { + try { + this.doPersistMcpTools(registerDTO); + } catch (Exception ex) { + logger.warn("Failed to persistMcpTools {}, cause:{}", registerDTO, ex.getMessage()); + this.addFailureApiDocRegister(registerDTO); Review Comment: The method call addFailureApiDocRegister(registerDTO) should be addFailureMcpToolsRegister(registerDTO) to properly handle MCP tools registration failures, not API doc registration failures. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
