MCP Java客户端启动器

这是一个基于Maven的Java项目,用于构建Model Context Protocol (MCP)客户端,支持与MCP服务器连接、获取工具/资源/提示列表以及调用工具功能。

  • by hatanaka-akihiro
  • Java
  • 本地部署
  • 更新于
在 GitHub 查看 hatanaka-akihiro/mcp-client

使用说明

🧩 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 与模块集成

📚 参考链接


🧾 许可证

麻省理工学院许可证©2025