使用说明
🧩 MCP Java客户端入门(Maven项目)
此项目包括:模型上下文协议(MCP) 客户机Java 中所述的工具,调整墙的布局和几何形状Maven 是基本的启动器项目。
MCP Server 的明细栏样式中定义的设置callTool),模板名称将采用不同的格式。
🚀 概要
模型上下文协议(MCP) 是AI(LLM)和代理与外部系统安全统一通信的开放协议。
在这个项目中 MCP Java SDK 利用,实施以下内容:
- MCP Server 的连接和初始化(
initialize) - 发现可用功能(
tools/list,resources/list,prompts/list) - 工具调用(
callTool) - 处理和输出结果
📁 项目配置
mcp-java-client/
├── src/
│ ├── main/java/com/example/mcp/
│ │ ├── App.java # 実行エントリーポイント
│ │ └── McpClientRunner.java # MCPクライアントの初期化・操作
│ └── test/java/com/example/mcp/
│ └── AppTest.java # サンプルテスト
├── pom.xml # Maven設定ファイル
└── README.md # このファイル
⚙️ 环境要件
|要求|版本| |------|-------------| | Java | 17 以上 | | Maven | 3.6 以上 | | MCP Server | HTTP/SSE/STDIO 查看项目中可用的所有族
📦 安装过程
1.项目创建
mvn archetype:generate \
-DgroupId=com.example.mcp \
-DartifactId=mcp-java-client \
-DarchetypeArtifactId=maven-archetype-quickstart \
-DinteractiveMode=false
cd mcp-java-client
2. pom.xml 添加依赖关系
<dependencies>
<!-- MCP Java SDK -->
<dependency>
<groupId>io.modelcontextprotocol.sdk</groupId>
<artifactId>mcp</artifactId>
<version>1.0.0</version>
</dependency>
<!-- JSON処理 -->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.17.0</version>
</dependency>
<!-- ロギング -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-simple</artifactId>
<version>2.0.9</version>
</dependency>
<!-- テスト -->
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter</artifactId>
<version>5.10.0</version>
<scope>test</scope>
</dependency>
</dependencies>
🧠 示例代码
src/main/java/com/example/mcp/App.java
package com.example.mcp;
public class App {
public static void main(String[] args) throws Exception {
McpClientRunner.run();
}
}
src/main/java/com/example/mcp/McpClientRunner.java
package com.example.mcp;
import io.modelcontextprotocol.sdk.client.*;
import io.modelcontextprotocol.sdk.transport.http.*;
import java.time.Duration;
import java.util.Map;
public class McpClientRunner {
public static void run() throws Exception {
System.out.println("=== MCP Java Client Example ===");
// 1. トランスポート設定(HTTP)
var transport = McpTransportBuilder
.forHttp("http://localhost:8000/mcp")
.timeout(Duration.ofSeconds(30))
.build();
// 2. クライアント作成
var client = McpClient.sync(transport)
.requestTimeout(Duration.ofSeconds(30))
.build();
// 3. 初期化
client.initialize();
// 4. ツール一覧取得
var tools = client.tools().list();
System.out.println("== Available Tools ==");
tools.forEach(t -> System.out.println("- " + t.name() + " : " + t.description()));
// 5. ツール呼び出し例
var result = client.callTool(
new CallToolRequest("createTicket", Map.of(
"title", "テスト課題",
"body", "MCPクライアントから作成された課題",
"priority", "high"
))
);
System.out.println("== Call Result ==");
System.out.println(result.result());
client.closeGracefully();
}
}
🧪 実行手顺
构建
mvn clean package
実行
java -jar target/mcp-java-client-1.0-SNAPSHOT-jar-with-dependencies.jar
🧰 测试用MCP Server(本地执行示例)
Node.js 如果有,请单击MCP 启动服务器以确认连接:
npx -y @modelcontextprotocol/server-everything dir
这个服务器 http://localhost:8000/mcp 的MCP 提供端点。
上述URL 的 McpClientRunner 中所述修改相应参数的值。
🪶 今后的扩展想法
- [ ]
resources/list啊prompts/list添加支持 - []连接错误时的重试和记录增强
- [ ] Questetra BPM Suite 从HTTP 过桥
- [ ] AWS Bedrock AgentCore 协作演示
- [ ] Spring AI MCP 与模块集成
📚 参考链接
- 🌐 官方网站: https://modelcontextprotocol.io
- ☕ Java SDK: https://github.com/modelcontextprotocol/java-sdk
- 🧩 Spring AI MCP: https://docs.spring.io/spring-ai/reference/api/mcp/mcp-overview.html
🧾 许可证
麻省理工学院许可证©2025