تقدم هذه الخدمة عمليات آلة حاسبة أساسية عبر بروتوكول سياق النموذج (MCP) باستخدام Spring Boot مع نقل WebFlux. تم تصميمها كمثال بسيط للمبتدئين الذين يتعلمون عن تطبيقات MCP.
لمزيد من المعلومات، راجع وثائق المرجع MCP Server Boot Starter.
تعرض الخدمة ما يلي:
- دعم SSE (الأحداث المرسلة من الخادم)
- التسجيل التلقائي للأدوات باستخدام تعليق Spring AI
@Tool - وظائف آلة حاسبة أساسية:
- الجمع، الطرح، الضرب، القسمة
- حساب القوة والجذر التربيعي
- باقي القسمة والقيمة المطلقة
- وظيفة المساعدة لوصف العمليات
تقدم خدمة الآلة الحاسبة هذه القدرات التالية:
-
العمليات الحسابية الأساسية:
- جمع رقمين
- طرح رقم من آخر
- ضرب رقمين
- قسمة رقم على آخر (مع التحقق من القسمة على صفر)
-
العمليات المتقدمة:
- حساب القوة (رفع الأساس إلى الأس)
- حساب الجذر التربيعي (مع التحقق من الأعداد السالبة)
- حساب باقي القسمة
- حساب القيمة المطلقة
-
نظام المساعدة:
- وظيفة مساعدة مدمجة تشرح جميع العمليات المتاحة
تعرض الخدمة نقاط نهاية API التالية عبر بروتوكول MCP:
add(a, b): جمع رقمين معًاsubtract(a, b): طرح الرقم الثاني من الأولmultiply(a, b): ضرب رقمينdivide(a, b): قسمة الرقم الأول على الثاني (مع التحقق من القسمة على صفر)power(base, exponent): حساب القوة لرقمsquareRoot(number): حساب الجذر التربيعي (مع التحقق من الأعداد السالبة)modulus(a, b): حساب باقي القسمةabsolute(number): حساب القيمة المطلقةhelp(): الحصول على معلومات حول العمليات المتاحة
يتضمن المشروع عميل اختبار بسيط في الحزمة com.microsoft.mcp.sample.client. توضح فئة SampleCalculatorClient العمليات المتاحة لخدمة الآلة الحاسبة.
يتضمن المشروع مثالاً لعميل LangChain4j في com.microsoft.mcp.sample.client.LangChain4jClient يوضح كيفية دمج خدمة الآلة الحاسبة مع LangChain4j ونماذج GitHub:
-
إعداد رمز GitHub:
لاستخدام نماذج الذكاء الاصطناعي من GitHub (مثل phi-4)، تحتاج إلى رمز وصول شخصي من GitHub:
أ. اذهب إلى إعدادات حساب GitHub الخاص بك: https://github.com/settings/tokens
ب. انقر على "Generate new token" → "Generate new token (classic)"
ج. امنح الرمز اسمًا وصفيًا
د. اختر الصلاحيات التالية:
repo(التحكم الكامل في المستودعات الخاصة)read:org(قراءة عضوية المنظمة والفريق، وقراءة مشاريع المنظمة)gist(إنشاء gists)user:email(الوصول إلى عناوين البريد الإلكتروني للمستخدم (قراءة فقط))
هـ. انقر على "Generate token" ونسخ الرمز الجديد
و. قم بتعيينه كمتغير بيئة:
على ويندوز:
set GITHUB_TOKEN=your-github-tokenعلى macOS/Linux:
export GITHUB_TOKEN=your-github-tokenز. للإعداد الدائم، أضفه إلى متغيرات البيئة عبر إعدادات النظام
-
أضف تبعية LangChain4j GitHub إلى مشروعك (مضمنة بالفعل في pom.xml):
<dependency> <groupId>dev.langchain4j</groupId> <artifactId>langchain4j-github</artifactId> <version>${langchain4j.version}</version> </dependency>
-
تأكد من تشغيل خادم الآلة الحاسبة على
localhost:8080
يوضح هذا المثال:
- الاتصال بخادم MCP الخاص بالآلة الحاسبة عبر نقل SSE
- استخدام LangChain4j لإنشاء روبوت دردشة يستفيد من عمليات الآلة الحاسبة
- التكامل مع نماذج الذكاء الاصطناعي من GitHub (الآن باستخدام نموذج phi-4)
يرسل العميل الاستعلامات النموذجية التالية لعرض الوظائف:
- حساب مجموع رقمين
- إيجاد الجذر التربيعي لرقم
- الحصول على معلومات مساعدة حول عمليات الآلة الحاسبة المتاحة
شغّل المثال وتحقق من مخرجات وحدة التحكم لترى كيف يستخدم نموذج الذكاء الاصطناعي أدوات الآلة الحاسبة للرد على الاستفسارات.
تم تكوين عميل LangChain4j لاستخدام نموذج phi-4 من GitHub بالإعدادات التالية:
ChatLanguageModel model = GitHubChatModel.builder()
.apiKey(System.getenv("GITHUB_TOKEN"))
.timeout(Duration.ofSeconds(60))
.modelName("phi-4")
.logRequests(true)
.logResponses(true)
.build();لاستخدام نماذج GitHub مختلفة، ببساطة غيّر معلمة modelName إلى نموذج مدعوم آخر (مثل "claude-3-haiku-20240307"، "llama-3-70b-8192"، إلخ).
يتطلب المشروع التبعيات الرئيسية التالية:
<!-- For MCP Server -->
<dependency>
<groupId>org.springframework.ai</groupId>
<artifactId>spring-ai-starter-mcp-server-webflux</artifactId>
</dependency>
<!-- For LangChain4j integration -->
<dependency>
<groupId>dev.langchain4j</groupId>
<artifactId>langchain4j-mcp</artifactId>
<version>${langchain4j.version}</version>
</dependency>
<!-- For GitHub models support -->
<dependency>
<groupId>dev.langchain4j</groupId>
<artifactId>langchain4j-github</artifactId>
<version>${langchain4j.version}</version>
</dependency>ابنِ المشروع باستخدام Maven:
./mvnw clean install -DskipTestsjava -jar target/calculator-server-0.0.1-SNAPSHOT.jarيعد MCP Inspector أداة مفيدة للتفاعل مع خدمات MCP. لاستخدامه مع خدمة الآلة الحاسبة هذه:
-
قم بتثبيت وتشغيل MCP Inspector في نافذة طرفية جديدة:
npx @modelcontextprotocol/inspector
-
ادخل إلى واجهة الويب بالنقر على الرابط المعروض من التطبيق (عادة http://localhost:6274)
-
قم بتكوين الاتصال:
- اضبط نوع النقل على "SSE"
- اضبط عنوان URL إلى نقطة نهاية SSE الخاصة بالخادم الذي يعمل لديك:
http://localhost:8080/sse - انقر على "Connect"
-
استخدم الأدوات:
- انقر على "List Tools" لرؤية العمليات المتاحة في الآلة الحاسبة
- اختر أداة وانقر على "Run Tool" لتنفيذ عملية
يتضمن المشروع ملف Dockerfile للنشر في حاوية:
-
بناء صورة Docker:
docker build -t calculator-mcp-service . -
تشغيل حاوية Docker:
docker run -p 8080:8080 calculator-mcp-service
سيقوم هذا بـ:
- بناء صورة Docker متعددة المراحل باستخدام Maven 3.9.9 و Eclipse Temurin 24 JDK
- إنشاء صورة حاوية محسنة
- فتح المنفذ 8080 للخدمة
- بدء خدمة الآلة الحاسبة MCP داخل الحاوية
يمكنك الوصول إلى الخدمة على http://localhost:8080 بمجرد تشغيل الحاوية.
-
مشاكل صلاحيات الرمز: إذا حصلت على خطأ 403 Forbidden، تحقق من أن الرمز لديه الصلاحيات الصحيحة كما هو موضح في المتطلبات المسبقة.
-
الرمز غير موجود: إذا ظهر خطأ "No API key found"، تأكد من تعيين متغير البيئة GITHUB_TOKEN بشكل صحيح.
-
تحديد المعدل: لدى GitHub حدود على عدد الطلبات. إذا واجهت خطأ تحديد المعدل (رمز الحالة 429)، انتظر بضع دقائق قبل المحاولة مجددًا.
-
انتهاء صلاحية الرمز: قد تنتهي صلاحية رموز GitHub. إذا تلقيت أخطاء مصادقة بعد فترة، أنشئ رمزًا جديدًا وقم بتحديث متغير البيئة.
إذا كنت بحاجة إلى مساعدة إضافية، راجع وثائق LangChain4j أو وثائق GitHub API.
إخلاء المسؤولية:
تمت ترجمة هذا المستند باستخدام خدمة الترجمة الآلية Co-op Translator. بينما نسعى لتحقيق الدقة، يرجى العلم أن الترجمات الآلية قد تحتوي على أخطاء أو عدم دقة. يجب اعتبار المستند الأصلي بلغته الأصلية المصدر الموثوق به. للمعلومات الهامة، يُنصح بالاعتماد على الترجمة البشرية المهنية. نحن غير مسؤولين عن أي سوء فهم أو تفسير ناتج عن استخدام هذه الترجمة.
