النماذج اللغوية الكبيرة (LLMs) مثل Claude من Anthropic تصبح أكثر كفاءة، ولكن لاستغلال إمكانياتها بالكامل، تحتاج إلى الوصول إلى سياق خارجي غني. وهنا يأتي دور بروتوكول سياق النموذج (MCP) - طريقة قياسية لأدوات التطبيقات والخدمات للتواصل مع LLMs. في هذه المقالة، سنتناول كيفية بناء خادم MCP باستخدام TypeScript، نستكشف كيف يتفاعل مع العملاء، ونوضح كيفية ربطه مع Claude Desktop.

ما هو بروتوكول سياق النموذج (MCP)؟
بروتوكول سياق النموذج هو بروتوكول عالمي يحدد كيفية تبادل تطبيقات LLM (المضيفين) والخوادم والعملاء للبيانات. يمكّن MCP من التكامل بناءً على الأدوات مع مصادر البيانات المحلية أو عبر الإنترنت بطريقة قابلة للتوسع ومرتبة. إنه مفيد بشكل خاص في بيئات LLM المستندة إلى سطح المكتب، مثل Claude Desktop أو Sourcegraph Cody.
على مستوى عالٍ، يتضمن البروتوكول:
- المضيفون: التطبيق المستند إلى LLM (مثل Claude Desktop)
- العملاء: وحدات مدمجة تدير الاتصالات مع الخوادم
- الخوادم: مقدمو الأدوات أو البيانات أو الخدمات
- النقل: الآلية الأساسية لإرسال واستقبال رسائل JSON-RPC
لماذا استخدام MCP؟
تعد الطرق التقليدية مثل النسخ واللصق أو التشفير الثابت للسياق غير فعالة ومحدودة. يحل MCP هذه القضايا من خلال السماح بـ:
- اكتشاف الأدوات والتفاوض على القدرات
- تبادل الرسائل المعتمد على JSON-RPC
- واجهة متسقة عبر اللغات والمنصات
- فصل واضح بين تطبيق LLM والأدوات الخارجية
تتيح هذه الوحدية للمطورين إنشاء أدوات قوية ذات وعي بالسياق يمكن أن تتفاعل مع LLMs في الوقت الحقيقي.
المتطلبات الأساسية
لبناء خادم MCP باستخدام TypeScript وربطه بـ Claude Desktop، ستحتاج إلى:
- Node.js (الإصدار 18+)
- TypeScript
- معرفة أساسية بـ JSON-RPC

مجموعة أدوات TypeScript الخاصة بـ MCP
الخطوة 1: إعداد مشروعك
ابدأ بإعداد مشروع Node.js:
mkdir mcp-ts-server
cd mcp-ts-server
npm init -y
npm install typescript ts-node @modelcontextprotocol/server-core
npx tsc --init
قم بإنشاء دليل src/
، وأضف بداخله ملف نقطة الدخول، مثل index.ts
.
الخطوة 2: إنشاء خادم MCP الخاص بك في TypeScript
دعنا نستعرض كيفية إنشاء خادم MCP بسيط يوفر "أداة" لتحية المستخدمين.
إليك الهيكل الأساسي:
import { createServer, Server } from '@modelcontextprotocol/server-core';
const server: Server = createServer();
const GREETING_TOOL = {
name: 'greet_user',
description: 'يعيد رسالة تحية ودية.',
inputSchema: {
type: 'object',
properties: {
name: { type: 'string', description: 'اسم المستخدم' }
},
required: ['name']
}
};
// تسجيل الأداة
server.setRequestHandler('ListTools', async () => {
return { tools: [GREETING_TOOL] };
});
// التعامل مع استدعاء الأداة
server.setRequestHandler('CallTool', async (request) => {
const args = request.args;
const name = args.name || 'هناك';
return {
content: [{ type: 'text', text: `مرحبًا، ${name}! مرحبًا بك في MCP.` }],
isError: false
};
});
// بدء الخادم
server.listen();
يمكنك الآن تجميع هذا وتشغيله باستخدام:
npx ts-node src/index.ts
الخطوة 3: تسجيل خادمك مع Claude Desktop
يحتاج كل خادم MCP إلى URI فريد. على سبيل المثال:
tool://greet_user/greet_user
عندما يتم تهيئة Claude Desktop، يمكنه اكتشاف الخادم من خلال نقل Stdio
. وهذا يعني أن خادمك يقوم بالتواصل عبر الإدخال/الإخراج القياسي (stdin/stdout) بدلاً من HTTP أو المقابس.
الخطوة 4: ربط خادم MCP بـ Claude Desktop
في Claude Desktop:
- اذهب إلى الإعدادات > مقدمو الأدوات
- أضف موفر أداة جديدة باستخدام نقل Stdio
- حدد URI الأداة الخاصة بك والأمر لتشغيل خادمك، مثل:
npx ts-node src/index.ts
سوف يبدأ Claude Desktop التواصل باستخدام JSON-RPC 2.0 عبر stdin/stdout، وينبغي أن يستجيب خادمك مع قائمة بالأدوات التي يدعمها.
بالطبع! إليك نسخة معاد كتابتها من قسم إعدادات Claude Desktop التي يمكنك إدراجها مباشرة في مقالك:
استخدام Claude Desktop لاختبار خادم MCP الخاص بك
تعد تطبيق Claude Desktop من أسهل البيئات لاختبار تكاملات MCP محليًا.
لتكوينها يدويًا لإطلاق خادم MCP الخاص بك، اتبع هذه الخطوات:
افتح أو أنشئ الملف في:
~/Library/Application Support/Claude/claude_desktop_config.json
ليسconfig.json
أضف تكوين JSON التالي، واستبدل التفاصيل حسب الحاجة لأداتك:
{
"mcpServers": {
"brave_search": {
"command": "npx",
"args": ["@modelcontextprotocol/server-brave-search"],
"env": {
"BRAVE_API_KEY": "مفتاح API الخاص بك"
}
}
}
}
هذا يخبر Claude Desktop أن:
- يتعرف على أداة تُدعى
brave_search
- يتم تشغيلها عبر
npx @modelcontextprotocol/server-brave-search
- حقن متغيرات البيئة، مثل مفتاح API الخاص بك
- احفظ الملف وأعد تشغيل Claude Desktop.
بمجرد إعادة التشغيل، يمكنك أن تطلب من Claude Desktop استخدام أداتك الجديدة. على سبيل المثال:
"ابحث في الويب عن glama.ai"
إذا كانت هذه هي المرة الأولى التي تستخدم فيها MCP، سيسأل Claude عن الإذن عبر نافذة منبثقة. انقر "السماح لهذا الدردشة" للمتابعة.

بعد ذلك، سيشغل Claude خادم MCP الخاص بك وينقل النتائج مباشرة في المحادثة.
تعزيز أتمتة AI الخاصة بك مع تكامل خادم Apidog MCP
حقق أقصى استفادة من سير العمل المدفوع بـ AI من خلال التكامل مع خادم Apidog MCP.

تسمح هذه الاتصال القوي لمساعدك الذكي بـ التفاعل مباشرة مع مواصفات واجهة برمجة التطبيقات من مشاريع Apidog، مما يتيح استكشاف واجهة برمجة التطبيقات بسلاسة، وتوليد الكود، وإنشاء نماذج مهيكلة.
سواء كنت تبني أداة تحية بسيطة أو تكامل خدمات متقدمة مثل البحث على الويب، يمنحك إنشاء خادم MCP الخاص بك باستخدام TypeScript السيطرة الكاملة على كيفية وصول Claude ومعالجته للسياق الخارجي - مما يفتح تجارب AI أكثر ذكاءً وتفاعلاً.
نظرة عامة على تدفق الرسائل
إليك ما يحدث في الخلفية:
1. التهيئة
يرسل Claude (بصفته المضيف) طلب تهيئة مع إصدار البروتوكول المدعوم والقدرات.
2. التفاوض على القدرة
يرد خادمك بقدراته الخاصة، ويؤكد العميل الجاهزية بإخطار تم التهيئة.
3. اكتشاف الأدوات
يرسل Claude طلب ListTools
. يعيد خادمك قائمة بتعريفات الأدوات، بما في ذلك مخططات الإدخال.
4. استدعاء الأداة
عندما يقوم المستخدم بتفعيل الأداة (مثل كتابة "greet John")، يرسل Claude طلب CallTool
مع المعلمات.
يعمل خادمك على معالجته ويعيد رسالة نتائج مع محتوى الاستجابة.
الخطوة 5: توسيع نظام أدواتك البيئية
بمجرد أن يعمل خادمك، يمكنك توسيع قدراته:
- البحث على الويب: دمج واجهة برمجة التطبيقات للبحث الشجاع
- نظام الملفات: قراءات / كتابات الملفات الآمنة
- أدوات Slack أو GitHub: تمكين ميزات التعاون
- Google Drive: المرفقات وسياق المحتوى
على سبيل المثال، إليك مقطع من تكامل خادم البحث الشجاع:
const WEB_SEARCH_TOOL = {
name: 'brave_web_search',
description: 'ابحث في الويب باستخدام Brave.',
inputSchema: {
type: 'object',
properties: {
query: { type: 'string' },
count: { type: 'number', default: 10 }
},
required: ['query']
}
};
خيارات النقل
بينما يُعتبر Stdio أفضل للاختبار المحلي، يدعم MCP أيضاً:
- HTTP + SSE: مناسب لتطبيقات الويب والخدمات البعيدة
- نقل مخصص: قوم بتوصيل محول النقل الخاص بك
تستخدم جميعها JSON-RPC 2.0 لترميز الرسائل.
أدوات تصحيح الأخطاء والاختبار
يمكنك اختبار خادم MCP الخاص بك باستخدام أداة Inspector مفتوحة المصدر:
git clone https://github.com/modelcontextprotocol/inspector
يسمح بتتبع الرسائل، ومحاكاة الطلبات، وتصحيح سلوك الأدوات.
حالات الاستخدام في العالم الحقيقي
تضم بعض أوائل المتبنين لـ MCP:
- Sourcegraph Cody: يعزز من سياق التطوير
- محرر Zed: تكاملات IDE
- Claude Desktop: عمليات LLM المحلية والخاصة
تظهر هذه الأدوات قوة MCP في كل من الإعدادات غير المتصلة بالإنترنت والاتصالات بالإنترنت، مما يسهل على المطورين تخصيص كيفية فهم الذكاء الاصطناعي لسياقهم.
الخاتمة
يعتبر MCP خطوة قوية للأمام في جلب الهيكلية والقابلية للتوسع والوحدات إلى طريقة تفاعل LLMs مع الأدوات والبيانات. سواء كنت تبني مساعدًا شخصيًا، أو مساعد IDE، أو خط أنابيب بيانات، يوفر MCP معياراً جاهزًا للتوصيل بالقدرات الخارجية.
من خلال اتباع هذا الدليل، لقد تعلمت كيف:
- بناء خادم MCP بسيط باستخدام TypeScript
- تسجيله مع Claude Desktop
- فهم كيفية تدفق الاتصال بالأدوات
- توسيع الوظائف باستخدام واجهات برمجة تطبيقات وخدمات إضافية
بالنسبة للمطورين الذين يبنون الجيل التالي من التطبيقات المعززة بالذكاء الاصطناعي، فإن إتقان MCP هو خطوة أساسية.
قراءة إضافية وموارد
- الدليل الكامل للإعداد السريع: بروتوكول سياق النموذج على Glama.ai
- مستودعات GitHub: أدوات MCP