This is an automated email from the ASF dual-hosted git repository.
xiaoyu pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/shenyu-website.git
The following commit(s) were added to refs/heads/main by this push:
new 91db2731937 fea: mcp tools Quick connect to your service (#1093)
91db2731937 is described below
commit 91db2731937497ae6b17f4c30272c9f7a5bbef8b
Author: Yu Siheng <[email protected]>
AuthorDate: Wed Nov 12 10:04:28 2025 +0800
fea: mcp tools Quick connect to your service (#1093)
* fea: mcp tools Quick connect to your service
* delete: unnecessary description
* fix
---
docs/user-guide/proxy/mcp-tool-proxy.md | 208 +++++++++++++++++++++
.../user-guide/proxy/mcp-tool-proxy.md | 206 ++++++++++++++++++++
.../user-guide/proxy/mcp-tool-proxy.md | 208 +++++++++++++++++++++
3 files changed, 622 insertions(+)
diff --git a/docs/user-guide/proxy/mcp-tool-proxy.md
b/docs/user-guide/proxy/mcp-tool-proxy.md
new file mode 100644
index 00000000000..e53935e64f7
--- /dev/null
+++ b/docs/user-guide/proxy/mcp-tool-proxy.md
@@ -0,0 +1,208 @@
+---
+title: McpTool Service Integration
+keywords: ["Mcp"]
+description: McpTool Service Integration
+---
+
+This document is intended to help the `mcpTool` service access the `Apache
ShenYu` gateway. The `Apache ShenYu` gateway uses the `mcpServer` plugin to
connect with `mcpTool` services.
+
+Before the connection, start `shenyu-admin` correctly, start `mcpServer`
plugin and add related dependencies on the gateway and `mcpTool` application
client service side. You can refer to the previous [Quick Start with
McpServer](../../quick-start/quick-start-McpServer).
+
+For details about client access configuration, see [Application Client Access
Config](../property-config/register-center-access.md) .
+
+For details about data synchronization configurations, see [Data
Synchronization Config](../property-config/use-data-sync.md) .
+
+## Add mcpServer and proxy plugins in gateway
+
+* Add the following dependencies to the gateway’s `pom.xml` file:
+
+```xml
+ <!--Mcp Server Plugin Start-->
+ <dependency>
+ <groupId>org.apache.shenyu</groupId>
+ <artifactId>shenyu-spring-boot-starter-plugin-mcp-server</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <!--Mcp Server Plugin End-->
+```
+
+## Integrate mcpTool with the gateway (for springMvc)
+
+Refer to the example project:
[shenyu-examples-mcp](https://github.com/apache/shenyu/tree/master/shenyu-examples/shenyu-examples-mcp)
+
+* `SpringBoot` Users
+
+ 1. Add the following dependencies to your `mcpTool` service’s `pom.xml`
file:
+
+ ```xml
+ <dependency>
+ <groupId>org.apache.shenyu</groupId>
+ <artifactId>shenyu-spring-boot-starter-client-mcp</artifactId>
+ <version>${shenyu.version}</version>
+ </dependency>
+ ```
+
+ 2. Add the following configuration in `application.yaml`:
+
+ ```yaml
+ shenyu:
+ register:
+ registerType: http #zookeeper #etcd #nacos #consul
+ serverLists: http://localhost:9095 #localhost:2181
#http://localhost:2379 #localhost:8848
+ props:
+ username: admin
+ password: 123456
+ client:
+ mcp:
+ props:
+ contextPath: /mcp
+ appName: mcp
+ ```
+
+* `Spring` Users
+
+ Add the following dependencies to your HTTP service’s `pom.xml` file:
+
+ ```xml
+ <dependency>
+ <groupId>org.apache.shenyu</groupId>
+ <artifactId>shenyu-client-mcp</artifactId>
+ <version>${shenyu.version}</version>
+ </dependency>
+ ```
+
+ Then add the following bean definitions to your XML configuration file:
+
+ ```xml
+ <bean id="clientConfig"
class="org.apache.shenyu.register.common.config.PropertiesConfig">
+ <property name="props">
+ <map>
+ <entry key="contextPath" value="/yourContextPath"/>
+ <entry key="appName" value="yourAppName"/>
+ </map>
+ </property>
+ </bean>
+
+ <bean id="shenyuRegisterCenterConfig"
class="org.apache.shenyu.register.common.config.ShenyuRegisterCenterConfig">
+ <property name="registerType" value="http"/>
+ <property name="serverList" value="http://localhost:9095"/>
+ </bean>
+
+ <bean id="shenyuClientRegisterRepository"
class="org.apache.shenyu.client.core.register.ShenyuClientRegisterRepositoryFactory"
factory-method="newInstance">
+ <property name="shenyuRegisterCenterConfig"
ref="shenyuRegisterCenterConfig"/>
+ </bean>
+
+ <bean id="McpServiceEventListener"
class="org.apache.shenyu.client.mcp.McpServiceEventListener">
+ <constructor-arg name="clientConfig" ref="clientConfig"/>
+ <constructor-arg name="shenyuClientRegisterRepository"
ref="shenyuClientRegisterRepository"/>
+ <constructor-arg name="env" ref="environment"/>
+ </bean>
+ ```
+
+ Add the `@ShenyuMcpTool` annotations to your controller interfaces.
+
+ You need to add the `@ShenyuMcpTool` annotation on the `Controller` class.
Only controllers annotated with `@ShenyuMcpTool` will be recognized as
`mcpTool`.
+
+### Example 1
+
+This example demonstrates full McpTool configuration. You can fully customize
your configuration by annotations, including parameter information defined in
the operation.
+
+```java
+@GetMapping("/findById")
+@ShenyuMcpTool(
+ operation = @Operation(
+ method = "GET", description = "find order by id"
+ ),
+ requestConfig = @ShenyuMcpRequestConfig(
+ bodyToJson = "false",
+ headers = {
+ @ShenyuMcpHeader(key = "aaa", value = "bbb")
+ }
+ ),
+ enabled = true, toolName = "findOrderById"
+)
+@ApiDoc(desc = "findById")
+public OrderDTO findById(@ShenyuMcpToolParam(
+ parameter = @Parameter(
+ name = "id",
+ in = ParameterIn.PATH,
+ description = "the id of order",
+ required = true,
+ schema = @Schema(
+ type = "string",
+ defaultValue = "1"
+ )
+ )
+) @RequestParam("id") final String id) {
+ OrderDTO dto = new OrderDTO();
+ dto.setId(id);
+ return dto;
+}
+```
+
+### Example 2
+
+This example shows the configuration for a McpTool function without parameters.
+
+```java
+@GetMapping("/findAll")
+@ShenyuMcpTool(
+ operation = @Operation(
+ method = "GET", description = "find all order"
+ ),
+ requestConfig = @ShenyuMcpRequestConfig(
+ bodyToJson = "false",
+ headers = {
+ @ShenyuMcpHeader(key = "aaa", value = "bbb")
+ }
+ ),
+ enabled = true, toolName = "findAllOrder"
+)
+@ApiDoc(desc = "findAll")
+public String findAll() {
+ return "hello apache shenyu , mcp findAll success";
+}
+```
+
+### Example 3
+
+This is a simplified usage that requires only a simple annotation to register
the `McpTool` to the gateway.
+
+> Special note: Currently only supports `@RequestMapping`, `@GetMapping`,
`@PostMapping`, `@DeleteMapping`, and `@PutMapping` annotations. Only the first
path of the `@XXXMapping` annotation is effective.
+
+```java
+@GetMapping("/findByName")
+@ShenyuMcpTool
+@ApiDoc(desc = "findName")
+public OrderDTO findByName(@ShenyuMcpToolParam final String name) {
+ OrderDTO dto = new OrderDTO();
+ dto.setName(name);
+ return dto;
+}
+```
+
+* Start your project. Your service interfaces will be connected to the
gateway. In the `shenyu-admin` backend management system, go to `Plugin List ->
HTTP process -> mcpServer`, and you will see the automatically created
endpoints and Tools.
+
+## McpTool integration with gateway (Other Languages, Non-SpringMvc)
+
+* First, find the `mcpServer` plugin in `shenyu-admin`, then add selectors and
rules to filter traffic accordingly.
+
+* If you are unsure how to configure, please refer to [Selector and Rule
Management](../admin-usage/selector-and-rule).
+
+## User requests
+
+After your `mcpTool` service is connected to the `Apache ShenYu` gateway, you
can use the `endPoint` configured in the `Selector` as the request interface
for your `McpClient`.
+
+* Firstly, the domain name of your previous `endPoint` was your own service;
now it should be replaced with the gateway’s domain name.
+
+* Secondly, the `Apache ShenYu` gateway requires a route prefix configured as
the `contextPath` in your integration project.
+
+ * In the `mcpServer` plugin, this `contextPath` corresponds to your
`endPoint`.
+
+ * For example, if you configured `contextPath` as `mcp`, then your
`endPoint` should be configured as: `http://localhost:9195/mcp/sse`.
+
+ * Here, `localhost:9195` is the IP and port of your gateway (default port
is `9195`), and `/mcp` is the `contextPath` configured during integration.
+
+* Third, the mcpServer plugin does not include request forwarding
functionality. To perform remote tool invocation, please enable the
corresponding proxy plugin for proxying. You can refer to [Quick Start with
McpServer](../../quick-start/quick-start-McpServer).
+
+Then you can invoke tools via the `mcpClient` through the gateway easily.
diff --git
a/i18n/zh/docusaurus-plugin-content-docs/version-2.7.0.2/user-guide/proxy/mcp-tool-proxy.md
b/i18n/zh/docusaurus-plugin-content-docs/version-2.7.0.2/user-guide/proxy/mcp-tool-proxy.md
new file mode 100644
index 00000000000..f738d305411
--- /dev/null
+++
b/i18n/zh/docusaurus-plugin-content-docs/version-2.7.0.2/user-guide/proxy/mcp-tool-proxy.md
@@ -0,0 +1,206 @@
+---
+title: McpTool服务接入
+keywords: ["Mcp"]
+description: McpTool服务接入
+---
+
+本文档旨在帮助 `mcpTool` 服务接入到 `Apache ShenYu` 网关。`Apache ShenYu` 网关使用 `mcpServer`
插件来接入 `mcpTool` 服务。
+
+接入前,请正确启动 `shenyu-admin`,并开启`mcpServer`插件,在网关端和`mcpTool`服务端引入相关依赖。可以参考前面的
[McpServer快速开始](../../quick-start/quick-start-McpServer)。
+
+应用客户端接入的相关配置请参考:[客户端接入配置](../../../../../../versioned_docs/version-2.7.0.2/user-guide/property-config/register-center-access.md)。
+
+数据同步的相关配置请参考:[数据同步配置](../../../../../../versioned_docs/version-2.7.0.2/user-guide/property-config/use-data-sync.md)。
+
+## 在网关中引入 mcpServer 和相关 proxy 插件
+
+* 在网关的 `pom.xml` 文件中增加如下依赖:
+
+```xml
+ <!--Mcp Server Plugin Start-->
+ <dependency>
+ <groupId>org.apache.shenyu</groupId>
+
<artifactId>shenyu-spring-boot-starter-plugin-mcp-server</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <!--Mcp Server Plugin end-->
+```
+
+## mcpTool接入网关
+
+可以参考:[shenyu-examples-mcp](https://github.com/apache/shenyu/tree/master/shenyu-examples/shenyu-examples-mcp)
+
+* `SpringBoot` 用户
+
+ 1. 在你的`mcpTool`服务中的 `pom.xml`文件 新增如下依赖:
+
+ ```xml
+ <dependency>
+ <groupId>org.apache.shenyu</groupId>
+ <artifactId>shenyu-spring-boot-starter-client-mcp</artifactId>
+ <version>${shenyu.version}</version>
+ </dependency>
+ ```
+
+ 2. 在 application.yaml 增加如下配置:
+
+ ```yaml
+ shenyu:
+ register:
+ registerType: http #zookeeper #etcd #nacos #consul
+ serverLists: http://localhost:9095 #localhost:2181
#http://localhost:2379 #localhost:8848
+ props:
+ username: admin
+ password: 123456
+ client:
+ mcp:
+ props:
+ contextPath: /mcp
+ appName: mcp
+ ```
+
+* `Spring` 用户
+
+ 在你的`http`服务中的 `pom.xml`文件 新增如下依赖:
+
+ ```xml
+ <dependency>
+ <groupId>org.apache.shenyu</groupId>
+ <artifactId>shenyu-client-mcp</artifactId>
+ <version>${shenyu.version}</version>
+ </dependency>
+ ```
+
+ 并在你的 `bean` 定义的 `xml` 文件中新增如下:
+
+ ```xml
+ <bean id="clientConfig"
class="org.apache.shenyu.register.common.config.PropertiesConfig">
+ <property name="props">
+ <map>
+ <entry key="contextPath" value="/你的contextPath"/>
+ <entry key="appName" value="你的名字"/>
+ </map>
+ </property>
+ </bean>
+
+ <bean id="shenyuRegisterCenterConfig"
class="org.apache.shenyu.register.common.config.ShenyuRegisterCenterConfig">
+ <property name="registerType" value="http"/>
+ <property name="serverList" value="http://localhost:9095"/>
+ </bean>
+
+ <bean id="shenyuClientRegisterRepository"
class="org.apache.shenyu.client.core.register.ShenyuClientRegisterRepositoryFactory"
factory-method="newInstance">
+ <property name="shenyuRegisterCenterConfig"
ref="shenyuRegisterCenterConfig"/>
+ </bean>
+
+ <bean id ="McpServiceEventListener" class
="org.apache.shenyu.client.mcp.McpServiceEventListener">
+ <constructor-arg name="clientConfig" ref="clientConfig"/>
+ <constructor-arg name="shenyuClientRegisterRepository"
ref="shenyuClientRegisterRepository"/>
+ <constructor-arg name="env" ref="environment"/>
+ </bean>
+ ```
+
+ 在你的 `controller` 的接口上加上 `@ShenyuMcpTool` 注解。
+
+ 你需要将`@ShenyuMcpTool`注解加到 `Controller`
类上面,只有添加了`@ShenyuMcpTool`的`Controller`才会被识别为 mcpTool。
+
+示例一
+
+下面演示的是 McpTool 完整配置,你可以通过注解完全自定义你的配置,其中 parameter 信息也可以在 operation 中配置。
+
+```java
+@GetMapping("/findById")
+@ShenyuMcpTool(
+ operation = @Operation(
+ method = "GET", description = "find order by id"
+ ),
+ requestConfig = @ShenyuMcpRequestConfig(
+ bodyToJson = "false",
+ headers = {
+ @ShenyuMcpHeader(key = "aaa", value = "bbb")
+ }
+ ),
+ enabled = true, toolName = "findOrderById"
+)
+@ApiDoc(desc = "findById")
+public OrderDTO findById(@ShenyuMcpToolParam(
+ parameter = @Parameter(
+ name = "id",
+ in = ParameterIn.PATH,
+ description = "the id of order",
+ required = true,
+ schema = @Schema(
+ type = "string",
+ defaultValue = "1"
+ )
+ )
+) @RequestParam("id") final String id) {
+ OrderDTO dto = new OrderDTO();
+ dto.setId(id);
+ return dto;
+ }
+```
+
+示例二
+
+下面表示的是:McpTool 函数没有参数时的配置。
+
+```java
+@GetMapping("/findAll")
+@ShenyuMcpTool(
+ operation = @Operation(
+ method = "GET", description = "find all order"
+ ),
+ requestConfig = @ShenyuMcpRequestConfig(
+ bodyToJson = "false",
+ headers = {
+ @ShenyuMcpHeader(key = "aaa", value = "bbb")
+ }
+ ),
+ enabled = true, toolName = "findAllOrder"
+)
+@ApiDoc(desc = "findAll")
+public String findAll() {
+ return "hello apache shenyu , mcp findAll success";
+ }
+```
+
+示例三:这是一种简化的使用方式,只需要一个简单的注释即可将`McpTool`注册到网关.
+
+>
特别说明:目前只支持`@RequestMapping、@GetMapping、@PostMapping、@DeleteMapping、@PutMapping`注解,并且只对`@XXXMapping`中的第一个路径有效
+
+```java
+@GetMapping("/findByName")
+@ShenyuMcpTool
+@ApiDoc(desc = "findName")
+public OrderDTO findByName(@ShenyuMcpToolParam final String name) {
+ OrderDTO dto = new OrderDTO();
+ dto.setName(name);
+ return dto;
+ }
+```
+
+* 启动你的项目,你的服务接口接入到了网关,进入`shenyu-admin`后台管理系统的`插件列表 -> http process ->
mcpServer`,看到自动创建的 endpoint 和 Tool。
+
+## McpTool 接入网关(其他语言,非springMvc体系)
+
+* 首先在 `shenyu-admin` 找到 `mcpServer` 插件,进行选择器,和规则的添加,进行流量的匹配筛选。
+
+* 如果不懂怎么配置,请参考 [选择器和规则管理](../admin-usage/selector-and-rule)。
+
+## 用户请求
+
+当你的`McpTool`服务接入到`Apache ShenYu`网关后,你就可以用 `selector` 上配置的 `endPoint` 作为
`mcpClient` 的请求接口。
+
+* 第一点,你之前`endPoint`的域名是你自己的服务,现在要换成网关的域名。
+
+* 第二点,`Apache ShenYu` 网关需要有一个路由前缀,这个路由前缀就是你接入项目进行配置 `contextPath`。
+
+ * 在 McpServer 插件中,这个 `contextPath` 就是你的 `endPoint`
+
+ *
比如你配置了`contextPath`为`mcp`,那么你的`endPoint`应该配置为`http://localhost:9195/mcp/sse` 或者
`http://localhost:9195/mcp/streamablehttp`。
+
+ * 其中 `localhost:9195` 为网关的`ip`端口,默认端口是`9195` ,`/mcp` 是你接入网关配置的
`contextPath`。
+
+*
第三点,`mcpServer`插件并不包含请求转发的功能,需要进行工具远程调用请启动相关的`proxy`插件进行插件代理。可以参考[McpServer快速开始](../../quick-start/quick-start-McpServer)。
+
+然后你就可以通过`mcpClient`进行工具调用了。
diff --git a/versioned_docs/version-2.7.0.2/user-guide/proxy/mcp-tool-proxy.md
b/versioned_docs/version-2.7.0.2/user-guide/proxy/mcp-tool-proxy.md
new file mode 100644
index 00000000000..e53935e64f7
--- /dev/null
+++ b/versioned_docs/version-2.7.0.2/user-guide/proxy/mcp-tool-proxy.md
@@ -0,0 +1,208 @@
+---
+title: McpTool Service Integration
+keywords: ["Mcp"]
+description: McpTool Service Integration
+---
+
+This document is intended to help the `mcpTool` service access the `Apache
ShenYu` gateway. The `Apache ShenYu` gateway uses the `mcpServer` plugin to
connect with `mcpTool` services.
+
+Before the connection, start `shenyu-admin` correctly, start `mcpServer`
plugin and add related dependencies on the gateway and `mcpTool` application
client service side. You can refer to the previous [Quick Start with
McpServer](../../quick-start/quick-start-McpServer).
+
+For details about client access configuration, see [Application Client Access
Config](../property-config/register-center-access.md) .
+
+For details about data synchronization configurations, see [Data
Synchronization Config](../property-config/use-data-sync.md) .
+
+## Add mcpServer and proxy plugins in gateway
+
+* Add the following dependencies to the gateway’s `pom.xml` file:
+
+```xml
+ <!--Mcp Server Plugin Start-->
+ <dependency>
+ <groupId>org.apache.shenyu</groupId>
+ <artifactId>shenyu-spring-boot-starter-plugin-mcp-server</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <!--Mcp Server Plugin End-->
+```
+
+## Integrate mcpTool with the gateway (for springMvc)
+
+Refer to the example project:
[shenyu-examples-mcp](https://github.com/apache/shenyu/tree/master/shenyu-examples/shenyu-examples-mcp)
+
+* `SpringBoot` Users
+
+ 1. Add the following dependencies to your `mcpTool` service’s `pom.xml`
file:
+
+ ```xml
+ <dependency>
+ <groupId>org.apache.shenyu</groupId>
+ <artifactId>shenyu-spring-boot-starter-client-mcp</artifactId>
+ <version>${shenyu.version}</version>
+ </dependency>
+ ```
+
+ 2. Add the following configuration in `application.yaml`:
+
+ ```yaml
+ shenyu:
+ register:
+ registerType: http #zookeeper #etcd #nacos #consul
+ serverLists: http://localhost:9095 #localhost:2181
#http://localhost:2379 #localhost:8848
+ props:
+ username: admin
+ password: 123456
+ client:
+ mcp:
+ props:
+ contextPath: /mcp
+ appName: mcp
+ ```
+
+* `Spring` Users
+
+ Add the following dependencies to your HTTP service’s `pom.xml` file:
+
+ ```xml
+ <dependency>
+ <groupId>org.apache.shenyu</groupId>
+ <artifactId>shenyu-client-mcp</artifactId>
+ <version>${shenyu.version}</version>
+ </dependency>
+ ```
+
+ Then add the following bean definitions to your XML configuration file:
+
+ ```xml
+ <bean id="clientConfig"
class="org.apache.shenyu.register.common.config.PropertiesConfig">
+ <property name="props">
+ <map>
+ <entry key="contextPath" value="/yourContextPath"/>
+ <entry key="appName" value="yourAppName"/>
+ </map>
+ </property>
+ </bean>
+
+ <bean id="shenyuRegisterCenterConfig"
class="org.apache.shenyu.register.common.config.ShenyuRegisterCenterConfig">
+ <property name="registerType" value="http"/>
+ <property name="serverList" value="http://localhost:9095"/>
+ </bean>
+
+ <bean id="shenyuClientRegisterRepository"
class="org.apache.shenyu.client.core.register.ShenyuClientRegisterRepositoryFactory"
factory-method="newInstance">
+ <property name="shenyuRegisterCenterConfig"
ref="shenyuRegisterCenterConfig"/>
+ </bean>
+
+ <bean id="McpServiceEventListener"
class="org.apache.shenyu.client.mcp.McpServiceEventListener">
+ <constructor-arg name="clientConfig" ref="clientConfig"/>
+ <constructor-arg name="shenyuClientRegisterRepository"
ref="shenyuClientRegisterRepository"/>
+ <constructor-arg name="env" ref="environment"/>
+ </bean>
+ ```
+
+ Add the `@ShenyuMcpTool` annotations to your controller interfaces.
+
+ You need to add the `@ShenyuMcpTool` annotation on the `Controller` class.
Only controllers annotated with `@ShenyuMcpTool` will be recognized as
`mcpTool`.
+
+### Example 1
+
+This example demonstrates full McpTool configuration. You can fully customize
your configuration by annotations, including parameter information defined in
the operation.
+
+```java
+@GetMapping("/findById")
+@ShenyuMcpTool(
+ operation = @Operation(
+ method = "GET", description = "find order by id"
+ ),
+ requestConfig = @ShenyuMcpRequestConfig(
+ bodyToJson = "false",
+ headers = {
+ @ShenyuMcpHeader(key = "aaa", value = "bbb")
+ }
+ ),
+ enabled = true, toolName = "findOrderById"
+)
+@ApiDoc(desc = "findById")
+public OrderDTO findById(@ShenyuMcpToolParam(
+ parameter = @Parameter(
+ name = "id",
+ in = ParameterIn.PATH,
+ description = "the id of order",
+ required = true,
+ schema = @Schema(
+ type = "string",
+ defaultValue = "1"
+ )
+ )
+) @RequestParam("id") final String id) {
+ OrderDTO dto = new OrderDTO();
+ dto.setId(id);
+ return dto;
+}
+```
+
+### Example 2
+
+This example shows the configuration for a McpTool function without parameters.
+
+```java
+@GetMapping("/findAll")
+@ShenyuMcpTool(
+ operation = @Operation(
+ method = "GET", description = "find all order"
+ ),
+ requestConfig = @ShenyuMcpRequestConfig(
+ bodyToJson = "false",
+ headers = {
+ @ShenyuMcpHeader(key = "aaa", value = "bbb")
+ }
+ ),
+ enabled = true, toolName = "findAllOrder"
+)
+@ApiDoc(desc = "findAll")
+public String findAll() {
+ return "hello apache shenyu , mcp findAll success";
+}
+```
+
+### Example 3
+
+This is a simplified usage that requires only a simple annotation to register
the `McpTool` to the gateway.
+
+> Special note: Currently only supports `@RequestMapping`, `@GetMapping`,
`@PostMapping`, `@DeleteMapping`, and `@PutMapping` annotations. Only the first
path of the `@XXXMapping` annotation is effective.
+
+```java
+@GetMapping("/findByName")
+@ShenyuMcpTool
+@ApiDoc(desc = "findName")
+public OrderDTO findByName(@ShenyuMcpToolParam final String name) {
+ OrderDTO dto = new OrderDTO();
+ dto.setName(name);
+ return dto;
+}
+```
+
+* Start your project. Your service interfaces will be connected to the
gateway. In the `shenyu-admin` backend management system, go to `Plugin List ->
HTTP process -> mcpServer`, and you will see the automatically created
endpoints and Tools.
+
+## McpTool integration with gateway (Other Languages, Non-SpringMvc)
+
+* First, find the `mcpServer` plugin in `shenyu-admin`, then add selectors and
rules to filter traffic accordingly.
+
+* If you are unsure how to configure, please refer to [Selector and Rule
Management](../admin-usage/selector-and-rule).
+
+## User requests
+
+After your `mcpTool` service is connected to the `Apache ShenYu` gateway, you
can use the `endPoint` configured in the `Selector` as the request interface
for your `McpClient`.
+
+* Firstly, the domain name of your previous `endPoint` was your own service;
now it should be replaced with the gateway’s domain name.
+
+* Secondly, the `Apache ShenYu` gateway requires a route prefix configured as
the `contextPath` in your integration project.
+
+ * In the `mcpServer` plugin, this `contextPath` corresponds to your
`endPoint`.
+
+ * For example, if you configured `contextPath` as `mcp`, then your
`endPoint` should be configured as: `http://localhost:9195/mcp/sse`.
+
+ * Here, `localhost:9195` is the IP and port of your gateway (default port
is `9195`), and `/mcp` is the `contextPath` configured during integration.
+
+* Third, the mcpServer plugin does not include request forwarding
functionality. To perform remote tool invocation, please enable the
corresponding proxy plugin for proxying. You can refer to [Quick Start with
McpServer](../../quick-start/quick-start-McpServer).
+
+Then you can invoke tools via the `mcpClient` through the gateway easily.