Cara Membuat Server MCP dengan Java SDK

Ashley Goolam

Ashley Goolam

4 August 2025

Cara Membuat Server MCP dengan Java SDK

Halo para penggemar Java! Apakah Anda ingin meningkatkan proyek AI Anda dengan Java MCP Server kustom? Model Context Protocol (MCP) memungkinkan model AI seperti Claude atau Cursor untuk mengakses data Anda dengan mudah, dan dengan Java SDK, Anda dapat membangun server ringan untuk mewujudkannya. Dalam tutorial ini, kita akan membuat Java MCP Server untuk berbagi data presentasi dengan asisten AI. Kita akan membuatnya menyenangkan, komunikatif, dan ramah pemula, memandu Anda melalui pengaturan, pengujian, dan perluasan server Anda. Mari kita mulai!

💡
Ingin alat Pengujian API yang hebat yang menghasilkan Dokumentasi API yang indah?

Ingin platform Terintegrasi, All-in-One untuk Tim Pengembang Anda bekerja sama dengan produktivitas maksimum?

Apidog memenuhi semua permintaan Anda, dan menggantikan Postman dengan harga yang jauh lebih terjangkau!
button

Apa Itu Java MCP Server?

Sebuah Java MCP Server adalah aplikasi Java yang ramping yang menggunakan Model Context Protocol (MCP) untuk mengekspos data ke model AI. Ini seperti memberikan akses VIP kepada AI Anda ke info aplikasi Anda—server kita akan berbagi data game, tetapi Anda bisa menyesuaikannya untuk apa saja. Server ini menggunakan MCP Java SDK untuk membuat alat yang dapat dipanggil oleh asisten AI, seperti mengambil daftar game atau mencari game berdasarkan judul. Ini sempurna untuk mengintegrasikan data Anda dengan klien AI, dan sangat mudah diatur dengan Spring Boot dan Maven.

client server mcp connection

Panduan Langkah demi Langkah untuk Membuat Java MCP Server

Prasyarat

Sebelum kita mulai, pastikan Anda memiliki:

Langkah 1: Buat atau Kloning Proyek

Anda dapat mengkloning repo yang sudah ada atau membuat proyek dari awal.

Opsi 1: Kloning Repositori (Direkomendasikan)

1. Di terminal baru, jalankan:

git clone https://github.com/danvega/javaone-mcp.git
cd javaone-mcp

2. Bangun Proyek:

mvn clean package
clone github repo

Opsi 2: Buat dari Awal

1. Buka IntelliJ IDEA:

create a new project

2. Tambahkan Dependensi:

<dependencies>
  <!-- MCP SDK -->
  <dependency>
    <groupId>io.modelcontextprotocol.sdk</groupId>
    <artifactId>mcp</artifactId>
    <version>0.9.0</version>
  </dependency>
  <!-- Logging -->
  <dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-api</artifactId>
    <version>2.0.16</version>
  </dependency>
  <dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-simple</artifactId>
    <version>2.0.16</version>
  </dependency>
</dependencies>

Langkah 2: Memahami Struktur Proyek

Java MCP Server yang baru saja kita kloning meliputi:

project structure

Langkah 3: Mendefinisikan Model Data

Buat Presentation.java untuk merepresentasikan data game:

public record Presentation(String title, String url) { }

Record ini menyimpan detail game seperti judul (misalnya, “GTA 6”) dan URL.

Langkah 4: Mengimplementasikan Alat MCP

Di PresentationTools.java, definisikan alat menggunakan MCP SDK:

import io.modelcontextprotocol.sdk.McpSchema;
import java.util.ArrayList;
import java.util.List;

public class PresentationTools {
    private final List<Presentation> presentations = new ArrayList<>();

    public PresentationTools() {
        presentations.add(new Presentation("GTA 6", "https://example.com/gta6"));
        presentations.add(new Presentation("FC 26", "https://example.com/fc26"));
        presentations.add(new Presentation("Call of Duty: Black Ops 7", "https://example.com/codbo7"));
    }

    @McpSchema.Tool(name = "get_presentations", description = "Returns a list of all available games")
    public List<Presentation> getPresentations() {
        return presentations;
    }

    @McpSchema.Tool(name = "get_game", description = "Returns a specific game by title")
    public Presentation getGame(String title) {
        return presentations.stream()
            .filter(p -> p.title().equalsIgnoreCase(title))
            .findFirst()
            .orElse(null);
    }
}

Alat-alat ini memungkinkan model AI untuk mengambil semua game atau game tertentu berdasarkan judul.

Langkah 5: Mengonfigurasi dan Memulai MCP Server

Di Application.java, siapkan Java MCP Server:

import io.modelcontextprotocol.sdk.McpServer;
import io.modelcontextprotocol.sdk.McpSchema;
import io.modelcontextprotocol.sdk.McpSyncServer;

public class Application {
    public static void main(String[] args) {
        PresentationTools tools = new PresentationTools();
        var syncToolSpecification = new McpServerFeatures.SyncToolSpecification(
            new McpSchema.Tool("get_presentations", "Returns a list of all available games", null),
            (exchange, arguments) -> tools.getPresentations()
        );

        McpSyncServer syncServer = McpServer.sync(new StdioTransportProvider())
            .serverInfo("javaone-mcp-server", "0.0.1")
            .capabilities(McpSchema.ServerCapabilities.builder()
                .tools(true)
                .logging()
                .build())
            .tools(syncToolSpecification)
            .build();

        syncServer.start();
    }
}

Ini mengonfigurasi server untuk menggunakan transport STDIO dan mendaftarkan alat get_presentations.

Langkah 6: Menjalankan Java MCP Server

1. Bangun Proyek:

mvn clean package
run the server

2. Mulai Server:

java -jar target/javaone-mcp-0.0.2.jar

Langkah 7: Uji dengan MCP Inspector

Gunakan MCP Inspector untuk men-debug Java MCP Server Anda:

Instal Node.js: Unduh dari nodejs.org jika diperlukan.

Dapatkan Jalur JAR:

FULL_PATH=$(pwd)/target/javaone-mcp-0.0.2.jar
echo $FULL_PATH
$FULL_PATH="$(Get-Location)\target\javaone-mcp-0.0.2.jar"
echo $FULL_PATH

Jalankan MCP Inspector:

npx @modelcontextprotocol/inspector java -jar $FULL_PATH

Langkah 8: Integrasi dengan Claude Desktop atau Cursor

Hubungkan Java MCP Server Anda ke klien AI:

Dapatkan Jalur JAR: Gunakan perintah yang sama seperti di atas.

a. Konfigurasi Claude Desktop:

{
  "mcpServers": {
    "javaone-mcp": {
      "command": "java",
      "args": ["-jar", "FULL_PATH"]
    }
  }
}

b. Konfigurasi Cursor:

Mulai Ulang Klien: Tutup dan buka kembali Claude atau Cursor.

Langkah 9: Uji Java MCP Server

Uji dengan Claude Desktop atau Cursor:

Mulai Server:

java -jar target/javaone-mcp-0.0.2.jar

Berikan Perintah:

Menggunakan server MCP, dapatkan semua game yang tersedia.
Game yang tersedia adalah GTA 6, FC 26, dan Call of Duty: Black Ops 7.
available games on my mcp server

Langkah 10: Perluas Java MCP Server

Buat server Anda lebih keren lagi:

1. Tambahkan Lebih Banyak Presentasi:

presentations.add(new Presentation("Spring Boot 3.5 Deep Dive", "https://example.com/spring-boot", 2025));

2. Buat Alat Pencarian:

@McpSchema.Tool(name = "search_presentations", description = "Search presentations by title")
public List<Presentation> searchPresentations(String query) {
    return presentations.stream()
        .filter(p -> p.title().toLowerCase().contains(query.toLowerCase()))
        .collect(Collectors.toList());
}
var searchToolSpec = new McpServerFeatures.SyncToolSpecification(
    new McpSchema.Tool("search_presentations", "Search presentations by title", null),
    (exchange, arguments) -> {
        String query = arguments.get("query").asText();
        return tools.searchPresentations(query);
    }
);
McpSyncServer syncServer = McpServer.sync(new StdioTransportProvider())
    .serverInfo("javaone-mcp-server", "0.0.1")
    .capabilities(McpSchema.ServerCapabilities.builder().tools(true).logging().build())
    .tools(syncToolSpecification, searchToolSpec)
    .build();

Saya menyesuaikan server MCP saya untuk bekerja dengan data game. Dan inilah hasilnya:

new tool added to java mcp server

Coba Pencarian:

Cari game berjudul "FC".
Anda memiliki game berjudul FC 26.
new tool results

3. Fitur Lanjutan:

Tips Pemecahan Masalah

Mengapa Menggunakan Java MCP Server?

Java MCP Server adalah cara fantastis untuk menghubungkan aplikasi Java Anda ke model AI, memungkinkan mereka mengakses data Anda secara waktu nyata. Server bertema game kami menunjukkan betapa mudahnya berbagi data seperti “GTA 6” atau “FC 26” dengan Claude atau Cursor. MCP Java SDK memudahkan pendefinisian alat, dan transport STDIO menjaga semuanya tetap ringan. Baik Anda membangun untuk game, kursus, atau hal lain, server ini adalah tiket Anda menuju integrasi AI.

Kesimpulan

Anda sekarang adalah pro Java MCP Server! Anda telah membangun server dari awal, mengujinya dengan data game, dan belajar cara memperluasnya dengan alat baru. MCP Java SDK membuatnya mudah untuk menghubungkan aplikasi Anda ke asisten AI, dan pengujian kami menunjukkan bahwa itu berhasil. Cobalah menambahkan lebih banyak data atau alat untuk membuat server Anda lebih kuat.

💡
Ingin alat Pengujian API yang hebat yang menghasilkan Dokumentasi API yang indah?

Ingin platform Terintegrasi, All-in-One untuk Tim Pengembang Anda bekerja sama dengan produktivitas maksimum?

Apidog memenuhi semua permintaan Anda, dan menggantikan Postman dengan harga yang jauh lebih terjangkau!
button

Mengembangkan API dengan Apidog

Apidog adalah alat pengembangan API yang membantu Anda mengembangkan API dengan lebih mudah dan efisien.