كيفية إنشاء خادم MCP باستخدام Java SDK

Ashley Goolam

Ashley Goolam

4 أغسطس 2025

كيفية إنشاء خادم MCP باستخدام Java SDK

مرحباً بكم يا عشاق جافا! هل ترغبون في تعزيز مشاريع الذكاء الاصطناعي الخاصة بكم باستخدام خادم Java MCP مخصص؟ يتيح بروتوكول سياق النموذج (MCP) لنماذج الذكاء الاصطناعي مثل Claude أو Cursor الوصول إلى بياناتك بسهولة، وباستخدام حزمة تطوير جافا (Java SDK)، يمكنك بناء خادم خفيف الوزن لتحقيق ذلك. في هذا البرنامج التعليمي، سنقوم بإنشاء خادم Java MCP لمشاركة بيانات العروض التقديمية مع مساعدي الذكاء الاصطناعي. سنجعل الأمر ممتعاً ومحاوراً ومناسباً للمبتدئين، وسنأخذك خطوة بخطوة عبر الإعداد والاختبار وتوسيع خادمك. هيا بنا نبدأ!

💡
هل تريد أداة رائعة لاختبار واجهة برمجة التطبيقات (API) تولد توثيق API جميلاً؟

هل تريد منصة متكاملة وشاملة لفريق المطورين الخاص بك للعمل معاً بأقصى إنتاجية؟

يلبي Apidog جميع متطلباتك، ويحل محل Postman بسعر أكثر معقولية بكثير!
زر

ما هو خادم Java MCP؟

خادم Java MCP هو تطبيق جافا أنيق يستخدم بروتوكول سياق النموذج (MCP) لعرض البيانات لنماذج الذكاء الاصطناعي. إنه مثل منح ذكائك الاصطناعي بطاقة VIP لمعلومات تطبيقك—سيشارك خادمنا بيانات الألعاب، ولكن يمكنك تخصيصه لأي شيء. يستخدم الخادم حزمة تطوير جافا (MCP Java SDK) لإنشاء أدوات يمكن لمساعدي الذكاء الاصطناعي استدعاؤها، مثل جلب قائمة بالألعاب أو البحث عن لعبة حسب العنوان. إنه مثالي لدمج بياناتك مع عملاء الذكاء الاصطناعي، ومن السهل جداً إعداده باستخدام Spring Boot و Maven.

اتصال خادم العميل بـ MCP

دليل خطوة بخطوة لإنشاء خادم Java MCP

المتطلبات الأساسية

قبل أن نبدأ، تأكد من توفر لديك:

الخطوة 1: إنشاء المشروع أو استنساخه

يمكنك إما استنساخ مستودع موجود أو إنشاء مشروع من الصفر.

الخيار 1: استنساخ المستودع (موصى به)

1. في طرفية جديدة، قم بتشغيل الأمر التالي:

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

2. بناء المشروع:

mvn clean package
استنساخ مستودع GitHub

الخيار 2: الإنشاء من الصفر

1. افتح IntelliJ IDEA:

إنشاء مشروع جديد

2. إضافة التبعيات:

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

الخطوة 2: فهم هيكل المشروع

يتضمن خادم Java MCP الذي استنسخناه للتو ما يلي:

هيكل المشروع

الخطوة 3: تحديد نموذج البيانات

أنشئ Presentation.java لتمثيل بيانات الألعاب:

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

يحتوي هذا السجل على تفاصيل اللعبة مثل العنوان (على سبيل المثال، "GTA 6") وعنوان URL.

الخطوة 4: تنفيذ أدوات MCP

في PresentationTools.java، حدد الأدوات باستخدام 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);
    }
}

تتيح هذه الأدوات لنماذج الذكاء الاصطناعي جلب جميع الألعاب أو لعبة محددة حسب العنوان.

الخطوة 5: تهيئة وبدء خادم MCP

في Application.java، قم بإعداد خادم Java MCP:

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();
    }
}

يقوم هذا بتهيئة الخادم لاستخدام نقل STDIO وتسجيل أداة get_presentations.

الخطوة 6: تشغيل خادم Java MCP

1. بناء المشروع:

mvn clean package
تشغيل الخادم

2. بدء تشغيل الخادم:

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

الخطوة 7: الاختبار باستخدام MCP Inspector

استخدم MCP Inspector لتصحيح أخطاء خادم Java MCP الخاص بك:

تثبيت Node.js: قم بالتنزيل من nodejs.org إذا لزم الأمر.

الحصول على مسار ملف 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

تشغيل MCP Inspector:

npx @modelcontextprotocol/inspector java -jar $FULL_PATH

الخطوة 8: الدمج مع Claude Desktop أو Cursor

ربط خادم Java MCP الخاص بك بعميل ذكاء اصطناعي:

الحصول على مسار ملف JAR: استخدم نفس الأمر المذكور أعلاه.

أ. تهيئة Claude Desktop:

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

ب. تهيئة Cursor:

إعادة تشغيل العميل: أغلق وأعد فتح Claude أو Cursor.

الخطوة 9: اختبار خادم Java MCP

اختبر باستخدام Claude Desktop أو Cursor:

بدء تشغيل الخادم:

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

إصدار أمر:

باستخدام خادم MCP، احصل على جميع الألعاب المتاحة.
The available games are GTA 6, FC 26, and Call of Duty: Black Ops 7.
الألعاب المتاحة على خادم MCP الخاص بي

الخطوة 10: توسيع خادم Java MCP

اجعل خادمك أكثر روعة:

1. إضافة المزيد من العروض التقديمية:

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

2. إنشاء أداة بحث:

@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();

قمت بتخصيص خادم MCP الخاص بي للعمل مع بيانات الألعاب. وإليك النتائج:

أداة جديدة أضيفت إلى خادم Java MCP

جرّب البحث:

ابحث عن لعبة بعنوان "FC".
You have a game titled FC 26.
نتائج الأداة الجديدة

3. الميزات المتقدمة:

نصائح استكشاف الأخطاء وإصلاحها

لماذا تستخدم خادم Java MCP؟

يُعد خادم Java MCP طريقة رائعة لربط تطبيق جافا الخاص بك بنماذج الذكاء الاصطناعي، مما يتيح لها الوصول إلى بياناتك في الوقت الفعلي. أظهر خادمنا ذو الطابع الخاص بالألعاب مدى سهولة مشاركة بيانات مثل "GTA 6" أو "FC 26" مع Claude أو Cursor. تجعل حزمة تطوير جافا (MCP Java SDK) تعريف الأدوات أمراً بسيطاً، ويحافظ نقل STDIO على خفة الوزن. سواء كنت تبني للألعاب أو الدورات التدريبية أو أي شيء آخر، فإن هذا الخادم هو بوابتك لدمج الذكاء الاصطناعي.

الخاتمة

أنت الآن محترف في خادم Java MCP! لقد قمت ببناء خادم من الصفر، واختبرته ببيانات الألعاب، وتعلمت كيفية توسيعه بأدوات جديدة. تجعل حزمة تطوير جافا (MCP Java SDK) ربط تطبيقك بمساعدي الذكاء الاصطناعي أمراً سهلاً للغاية، وقد أظهر اختبارنا فعاليته. حاول إضافة المزيد من البيانات أو الأدوات لجعل خادمك أكثر قوة.

💡
هل تريد أداة رائعة لاختبار واجهة برمجة التطبيقات (API) تولد توثيق API جميلاً؟

هل تريد منصة متكاملة وشاملة لفريق المطورين الخاص بك للعمل معاً بأقصى إنتاجية؟

يلبي Apidog جميع متطلباتك، ويحل محل Postman بسعر أكثر معقولية بكثير!
زر

ممارسة تصميم API في Apidog

اكتشف طريقة أسهل لبناء واستخدام واجهات برمجة التطبيقات