java mcp client调用 (modelcontextprotocol)

在 魔搭社区 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>
相关推荐
零叹7 分钟前
篇章十 数据结构——排序
java·数据结构·算法·排序算法
一个有女朋友的程序员19 分钟前
Spring Boot 整合 Smart-Doc:零注解生成 API 文档,告别 Swagger
java·spring boot·smart-doc
苹果醋340 分钟前
AI大模型竞赛升温:百度发布文心大模型4.5和X1
java·运维·spring boot·mysql·nginx
网安INF1 小时前
CVE-2020-1938源码分析与漏洞复现(Tomcat 文件包含/读取)
java·网络·web安全·网络安全·tomcat·漏洞复现
nenchoumi31191 小时前
UE5 学习系列(九)光照系统介绍
java·学习·ue5
张乔241 小时前
spring boot项目整合mybatis实现多数据源的配置
java·spring boot·多数据源
GzlAndy1 小时前
Tomcat调优
java·tomcat
美好的事情能不能发生在我身上1 小时前
苍穹外卖Day11代码解析以及深入思考
java·spring boot·后端·spring·架构
辉辉健身中1 小时前
Maven入门(够用)
java·maven
星火飞码iFlyCode2 小时前
【无标题】
java·前端·人工智能·算法