انتقل إلى المحتوى الرئيسي

كيفية استخدام خوادم MCP (رابط SSE)

خوادم بروتوكول سياق النموذج (MCP) هي ميزة قوية في Cursor تمكن من تحسين قدرات الذكاء الاصطناعي من خلال خوادم متخصصة. سيأخذك هذا الدليل خطوة بخطوة لفهم واستخدام خوادم MCP مع روابط أحداث مرسلة من الخادم (SSE) لتوسيع وظائف Cursor.

مقدمة عن خوادم MCP وSSE

تعمل خوادم MCP (بروتوكول سياق النموذج) كوسيط متخصص بين Cursor ونماذج الذكاء الاصطناعي أو الخدمات المختلفة. توفر سياقًا إضافيًا وأدوات وقدرات تعزز ميزات الذكاء الاصطناعي في Cursor. أحداث مرسلة من الخادم (SSE) هي تقنية تسمح للخوادم بدفع التحديثات إلى العملاء عبر اتصالات HTTP، مما يتيح اتصالًا في الوقت الفعلي.

ما هي خوادم MCP؟

خوادم MCP هي خوادم متخصصة تنفذ بروتوكول سياق النموذج، مما يسمح لـ Cursor بما يلي:

  • الوصول إلى أدوات وموارد إضافية
  • الاتصال بواجهات برمجة التطبيقات والخدمات الخارجية
  • معالجة وتحويل البيانات قبل إرسالها إلى نماذج الذكاء الاصطناعي
  • توسيع قدرات Cursor بوظائف مخصصة

لماذا تستخدم روابط SSE؟

توفر روابط SSE (أحداث مرسلة من الخادم) طريقة موحدة لإقامة اتصالات بين Cursor وخوادم MCP، وتقدم:

  • تحديثات في الوقت الفعلي واستجابات متدفقة
  • اتصال أحادي الاتجاه فعال من الخادم إلى العميل
  • معالجة إعادة الاتصال التلقائي
  • توافق مع بنية HTTP القياسية

فهم بنية رابط SSE

يتبع رابط SSE لخوادم MCP عادةً هذه البنية:

http(s)://<اسم_المضيف>:<المنفذ>/sse?token=<رمز_المصادقة>

شرح المكونات:

  • البروتوكول: إما http:// أو https:// (آمن، موصى به)
  • اسم المضيف: عنوان الخادم (مثل localhost، mcp.example.com)
  • المنفذ: رقم المنفذ الذي يستمع له خادم MCP (مثل 3000)
  • المسار: عادةً /sse لنقطة نهاية أحداث مرسلة من الخادم
  • الرمز: رمز المصادقة للوصول الآمن

خطوات التكوين

يتضمن إعداد واستخدام خوادم MCP مع روابط SSE عدة خطوات:

1. تثبيت التبعيات المطلوبة

أولاً، تأكد من تثبيت التبعيات الضرورية:

npm install @modelcontextprotocol/sdk

2. إنشاء تكوين خادم MCP

قم بإنشاء ملف تكوين لخادم MCP الخاص بك. يمكن وضعه في دليل تكوين Cursor:

{
"mcpServers": {
"example-server": {
"command": "node",
"args": ["/path/to/your/mcp-server.js"],
"env": {
"API_KEY": "your-api-key-here",
"OTHER_ENV_VAR": "value"
},
"disabled": false,
"autoApprove": ["tool1", "tool2"]
}
}
}

3. إعداد اتصال SSE

في تنفيذ خادم MCP الخاص بك، قم بإعداد نقطة نهاية SSE:

import express from 'express';
import cors from 'cors';

const app = express();
app.use(cors());

app.get('/sse', (req, res) => {
// التحقق من صحة الرمز
const token = req.query.token;
if (!validateToken(token)) {
return res.status(401).send('غير مصرح به');
}

// تعيين رؤوس لـ SSE
res.setHeader('Content-Type', 'text/event-stream');
res.setHeader('Cache-Control', 'no-cache');
res.setHeader('Connection', 'keep-alive');

// إرسال رسالة اتصال أولية
res.write('event: connected\ndata: {"status": "connected"}\n\n');

// التعامل مع انفصال العميل
req.on('close', () => {
console.log('انفصل العميل');
});

// إعداد رسائل دورية أو استجابة للأحداث
// ...
});

app.listen(3000, () => {
console.log('خادم MCP يستمع على المنفذ 3000');
});

4. تكوين Cursor لاستخدام خادم MCP الخاص بك

أضف تكوين خادم MCP الخاص بك إلى إعدادات Cursor:

  1. افتح Cursor
  2. انتقل إلى الإعدادات (⚙️)
  3. ابحث عن "MCP"
  4. أضف تكوين الخادم الخاص بك
  5. احفظ التغييرات

أمثلة استخدام

فيما يلي بعض الأمثلة العملية لاستخدام خوادم MCP مع روابط SSE:

المثال 1: تنفيذ أداة أساسية

// في تنفيذ خادم MCP الخاص بك
server.setRequestHandler(ListToolsRequestSchema, async () => ({
tools: [
{
name: 'weather_lookup',
description: 'الحصول على الطقس الحالي لموقع',
inputSchema: {
type: 'object',
properties: {
location: {
type: 'string',
description: 'اسم المدينة أو الرمز البريدي'
}
},
required: ['location']
}
}
]
}));

server.setRequestHandler(CallToolRequestSchema, async (request) => {
if (request.params.name === 'weather_lookup') {
const location = request.params.arguments.location;
const weatherData = await fetchWeatherData(location);

return {
content: [
{
type: 'text',
text: JSON.stringify(weatherData, null, 2)
}
]
};
}
});

المثال 2: تنفيذ مورد

server.setRequestHandler(ListResourcesRequestSchema, async () => ({
resources: [
{
uri: 'docs://api/reference',
name: 'وثائق مرجع API',
mimeType: 'text/markdown',
description: 'مرجع API الكامل للمشروع'
}
]
}));

server.setRequestHandler(ReadResourceRequestSchema, async (request) => {
if (request.params.uri === 'docs://api/reference') {
return {
contents: [
{
uri: request.params.uri,
mimeType: 'text/markdown',
text: await fs.readFile('path/to/api-docs.md', 'utf-8')
}
]
};
}
});

استكشاف المشكلات الشائعة وإصلاحها

رفض الاتصال

المشكلة: لا يمكن لـ Cursor الاتصال بخادم MCP.

الحلول:

  • تحقق من أن الخادم يعمل
  • تحقق من إعدادات جدار الحماية
  • تأكد من صحة المنفذ وإمكانية الوصول إليه
  • تحقق من أن اسم المضيف يحل بشكل صحيح

فشل المصادقة

المشكلة: أخطاء "غير مصرح به" عند الاتصال.

الحلول:

  • تحقق من تكوين الرمز بشكل صحيح
  • تحقق من منطق التحقق من صحة الرمز
  • تأكد من تعيين متغيرات البيئة بشكل صحيح

تعطل الخادم

المشكلة: تعطل خادم MCP بشكل غير متوقع.

الحلول:

  • نفذ معالجة الأخطاء المناسبة
  • أضف تسجيلًا لتحديد المشكلات
  • تحقق من تسرب الذاكرة
  • تحقق من صحة بيانات الإدخال قبل المعالجة

استجابات بطيئة

المشكلة: استجابات خادم MCP بطيئة.

الحلول:

  • حسّن كود الخادم
  • نفذ التخزين المؤقت حيثما كان ذلك مناسبًا
  • فكر في توسيع الموارد
  • تحقق من وجود عمليات حظر

أفضل الممارسات

الأمان

  • استخدم دائمًا HTTPS لخوادم MCP في الإنتاج
  • نفذ المصادقة والتفويض المناسبين
  • تحقق من صحة جميع المدخلات لمنع هجمات الحقن
  • قلل الوظائف المعرضة إلى ما هو ضروري فقط

الأداء

  • نفذ التخزين المؤقت للموارد التي يتم الوصول إليها بشكل متكرر
  • استخدم هياكل بيانات وخوارزميات فعالة
  • فكر في استجابات التدفق للبيانات الكبيرة
  • راقب أداء الخادم وحسّن الاختناقات

الموثوقية

  • نفذ معالجة الأخطاء المناسبة
  • أضف تسجيلًا لتصحيح الأخطاء
  • أعد إعداد فحوصات الصحة
  • نفذ إعادة التشغيل التلقائي للخوادم المعطلة

سير عمل التطوير

  • استخدم بيئة تطوير محلية للاختبار
  • نفذ إصدارات لخوادم MCP الخاصة بك
  • وثق قدرات ومتطلبات الخادم الخاص بك
  • أنشئ اختبارات آلية لوظائف الخادم

الخاتمة

توفر خوادم MCP مع روابط SSE طريقة قوية لتوسيع قدرات Cursor بوظائف مخصصة وخدمات خارجية. باتباع خطوات التكوين وأفضل الممارسات الموضحة في هذا الدليل، يمكنك إنشاء خوادم MCP قوية وآمنة وفعالة تعزز سير عمل التطوير الخاص بك.

سواء كنت تتصل بواجهات برمجة التطبيقات الخارجية، أو تنفذ أدوات مخصصة، أو توفر سياقًا إضافيًا لنماذج الذكاء الاصطناعي، تقدم خوادم MCP نهجًا مرنًا وموحدًا لتوسيع وظائف Cursor.

موارد إضافية