在 solon-web 项目里添加依赖（支持 java8, java11, java17, java21, java25）。也可[嵌入到第三方框架生态](https://gitee.com/solonlab/solon-ai-mcp-embedded-examples)。

```xml
<dependency>
    <groupId>org.noear</groupId>
    <artifactId>solon-ai-mcp</artifactId>
</dependency>
```

### 1、服务端（mcp-server）


（和 Web MVC 开发区别不大）添加个 `@McpServerEndpoint` 注解类。并使用 `@ToolMapping` 声明处理映射。

```java
import org.noear.solon.Solon;
import org.noear.solon.ai.annotation.ToolMapping;
import org.noear.solon.ai.mcp.server.annotation.McpServerEndpoint;
import org.noear.solon.annotation.Param;

@McpServerEndpoint(channel = McpChannel.STREAMABLE, mcpEndpoint = "/mcp")
public class McpServerTool {
    @ToolMapping(description = "你好世界")
    public String hello(@Param(name="name", description = "名字") String name) {
        return "你好，" + name;
    }
}

public class McpServerApp {
    public static void main(String[] args) {
        //启动时，会扫描到 McpServerTool 类，并转为真实的 Mcp 服务。
        Solon.start(McpServerApp.class, args);
    }
}
```


### 2、客户端（mcp-client）

启动服务端后，就可以用客户端连接了。（假设端口为 8080）


```java
import org.noear.solon.ai.mcp.client.McpClientProvider;

import java.util.Map;

@Test
public void case1() {
    McpClientProvider clientProvider = McpClientProvider.builder()
            .channel(McpChannel.STREAMABLE)
            .url("http://localhost:8080/mcp")
            .build();

    String rst = clientProvider.callTool("hello", Map.of("name", "阿飞"))
            .getContent();

    //输出结果为："你好，阿飞";
}
```


### 3、第三方框架嵌入示例项目（可运行、可单测）

<mark>完整示例项目，包括第三方框架（Solon、SpringBoot、jFinal、Vert.X、Quarkus、Micronaut）：</mark>

* https://gitee.com/solonlab/solon-ai-mcp-embedded-examples
* https://gitcode.com/solonlab/solon-ai-mcp-embedded-examples
* https://github.com/solonlab/solon-ai-mcp-embedded-examples
