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 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!
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.

Panduan Langkah demi Langkah untuk Membuat Java MCP Server
Prasyarat
Sebelum kita mulai, pastikan Anda memiliki:
- Java 24: Unduh dari oracle.com.
- Maven 3.8+: Instal dari maven.apache.org.
- IntelliJ IDEA: Dapatkan dari jetbrains.com (atau IDE pilihan Anda).
- Node.js: Untuk pengujian dengan MCP Inspector (nodejs.org).
- Claude Desktop atau Cursor: Opsional, untuk integrasi AI (anthropic.com atau cursor.sh).
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:
- Gunakan Maven untuk membuat JAR yang dapat dieksekusi:
mvn clean package
- Temukan JAR di
target/javaone-mcp-0.0.2.jar
.

Opsi 2: Buat dari Awal
1. Buka IntelliJ IDEA:
- Pilih New Project.
- Pilih Maven sebagai sistem pembangunan.
- Atur nama proyek (misalnya,
java-mcp-server
) dan klik Create.

2. Tambahkan Dependensi:
- Buka
pom.xml
dan tambahkan:
<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:
- Application.java: Titik masuk utama yang memulai server MCP.
- Presentation.java: Model data untuk data game (kita akan menyesuaikannya untuk game).
- PresentationTools.java: Mendefinisikan alat MCP untuk mengakses data game.
- Configuration: Menggunakan transport STDIO untuk komunikasi AI.

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:
- Jalankan:
mvn clean package

2. Mulai Server:
- Jalankan JAR:
java -jar target/javaone-mcp-0.0.2.jar
- Server berjalan dengan transport STDIO, siap untuk integrasi AI.
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:
- Linux/macOS:
FULL_PATH=$(pwd)/target/javaone-mcp-0.0.2.jar
echo $FULL_PATH
- Windows PowerShell:
$FULL_PATH="$(Get-Location)\target\javaone-mcp-0.0.2.jar"
echo $FULL_PATH
Jalankan MCP Inspector:
- Gunakan:
npx @modelcontextprotocol/inspector java -jar $FULL_PATH
- Di Inspector:
- Periksa koneksi di panel Connection.
- Pergi ke tab Tools, pilih
get_presentations
, dan lihat responsnya (misalnya, “GTA 6, FC 26, Call of Duty: Black Ops 7”). - Pantau log di panel Notifications.
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:
- Buka
claude_desktop_config.json
(macOS:~/Library/Application Support/Claude
, Windows:%APPDATA%\Claude
). - Tambahkan:
{
"mcpServers": {
"javaone-mcp": {
"command": "java",
"args": ["-jar", "FULL_PATH"]
}
}
}
- Ganti
FULL_PATH
dengan jalur JAR Anda.
b. Konfigurasi Cursor:
- Pergi ke Settings > Cursor Settings > Tools and Integrations > New MCP Server.
- Tambahkan konfigurasi yang sama dan simpan.
Mulai Ulang Klien: Tutup dan buka kembali Claude atau Cursor.
Langkah 9: Uji Java MCP Server
Uji dengan Claude Desktop atau Cursor:
Mulai Server:
- Jalankan:
java -jar target/javaone-mcp-0.0.2.jar
Berikan Perintah:
- Di Claude atau Cursor, masukkan:
Menggunakan server MCP, dapatkan semua game yang tersedia.
- Respons yang diharapkan:
Game yang tersedia adalah GTA 6, FC 26, dan Call of Duty: Black Ops 7.

Langkah 10: Perluas Java MCP Server
Buat server Anda lebih keren lagi:
1. Tambahkan Lebih Banyak Presentasi:
- Di
PresentationTools.java
, tambahkan ke konstruktor:
presentations.add(new Presentation("Spring Boot 3.5 Deep Dive", "https://example.com/spring-boot", 2025));
2. Buat Alat Pencarian:
- Tambahkan ke
PresentationTools.java
:
@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());
}
- Daftarkan di
Application.java
:
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:

Coba Pencarian:
- Saya menambahkan alat
search_games
(lihat di bawah), dan mencoba prompt berikut:
Cari game berjudul "FC".
- Respons yang diharapkan:
Anda memiliki game berjudul FC 26.

3. Fitur Lanjutan:
- Tambahkan langganan sumber daya untuk pembaruan waktu nyata.
- Implementasikan alat asinkron untuk tugas kompleks.
- Tambahkan autentikasi untuk akses aman.
Tips Pemecahan Masalah
- Server Tidak Mau Start? Verifikasi Java 24 dan Maven sudah terinstal, dan periksa
pom.xml
untuk dependensi yang benar. - Masalah MCP Inspector? Pastikan Node.js terinstal dan jalur JAR benar.
- Klien Tidak Terhubung? Konfirmasi jalur JAR di konfigurasi klien dan mulai ulang klien.
- Tidak Ada Data yang Dikembalikan? Periksa
PresentationTools
untuk anotasi alat yang benar dan inisialisasi data.
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 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!