在 魔搭社区 www.modelscope.cn/my/overview 注册了mcp服务,怎么也Java调用不通,终于可以使用了。
如果有帮助,点赞收藏
Java代码
ini
package com.example.demo;
import io.modelcontextprotocol.client.McpClient;
import io.modelcontextprotocol.client.McpSyncClient;
import io.modelcontextprotocol.client.transport.WebFluxSseClientTransport;
import io.modelcontextprotocol.spec.McpSchema;
import org.springframework.web.reactive.function.client.WebClient;
import java.time.Duration;
public class Test {
/**
* https://github.com/modelcontextprotocol/java-sdk/blob/0.10.x/mcp-test/src/main/java/io/modelcontextprotocol/client/AbstractMcpSyncClientTests.java
* https://mcpcn.com/docs/sdk/java/mcp-client/
*
* @param args
*/
public static void main(String[] args) {
WebClient.Builder webClientBuilder = WebClient.builder().baseUrl("https://mcp.api-inference.modelscope.net");
WebFluxSseClientTransport transport = WebFluxSseClientTransport.builder(webClientBuilder).sseEndpoint("/fafafbadfas34(这里换成你自己的)/sse").build();
// McpSyncClient client = McpClient.sync(transport).requestTimeout(Duration.ofSeconds(100)).build();
McpSyncClient client = McpClient.sync(transport)
.requestTimeout(Duration.ofSeconds(100))
.loggingConsumer(notification -> {
System.out.println("Received log message: " + notification.data());
})
.capabilities(McpSchema.ClientCapabilities.builder()
.roots(true) // Enable roots capability
.sampling() // Enable sampling capability
.build())
.build();
McpSchema.InitializeResult initialize = client.initialize();
Object ping = client.ping();
McpSchema.ListToolsResult listToolsResult = client.listTools();
/* Mono<McpSchema.ListToolsResult> listToolsResultMono = client.listTools();
listToolsResultMono.subscribe(
result -> System.out.println("List tools result: " + result),
error -> System.err.println("Error: " + error)
);*/
System.out.println(1);
}
}
maven
xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>3.5.0</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.example</groupId>
<artifactId>demo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>demo</name>
<description>Demo project for Spring Boot</description>
<url/>
<licenses>
<license/>
</licenses>
<developers>
<developer/>
</developers>
<scm>
<connection/>
<developerConnection/>
<tag/>
<url/>
</scm>
<properties>
<java.version>17</java.version>
</properties>
<dependencies>
<dependency>
<groupId>io.modelcontextprotocol.sdk</groupId>
<artifactId>mcp</artifactId>
</dependency>
<!-- 基于 Spring WebFlux 的 SSE 客户端和服务器传输 -->
<dependency>
<groupId>io.modelcontextprotocol.sdk</groupId>
<artifactId>mcp-spring-webflux</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>io.modelcontextprotocol.sdk</groupId>
<artifactId>mcp-spring-webflux</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>io.modelcontextprotocol.sdk</groupId>
<artifactId>mcp-bom</artifactId>
<version>0.10.0</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
</project>