لنقم ببناء خادم TypeScript MCP والاتصال بـ Claude Desktop

@apidog

@apidog

24 يونيو 2025

لنقم ببناء خادم TypeScript MCP والاتصال بـ Claude Desktop

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

💡
قبل التعمق في التفاصيل، تحقق من Apidog - أداة قوية لتصميم واختبار وتوثيق واجهات برمجة التطبيقات (APIs). يتيح لك Apidog دمج واجهات برمجة التطبيقات الخاصة بك بسلاسة، مما يعزز سير العمل الخاص بك مع النماذج المهيكلة والتعاون السهل. إذا كنت تبحث عن تعزيز الأتمتة وإدارة واجهات برمجة التطبيقات الخاصة بك.
زر

ما هو بروتوكول سياق النموذج (MCP)؟

بروتوكول سياق النموذج هو بروتوكول عالمي يحدد كيفية تبادل تطبيقات LLM (المضيفين) والخوادم والعملاء للبيانات. يمكّن MCP من التكامل بناءً على الأدوات مع مصادر البيانات المحلية أو عبر الإنترنت بطريقة قابلة للتوسع ومرتبة. إنه مفيد بشكل خاص في بيئات LLM المستندة إلى سطح المكتب، مثل Claude Desktop أو Sourcegraph Cody.

على مستوى عالٍ، يتضمن البروتوكول:


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

تعد الطرق التقليدية مثل النسخ واللصق أو التشفير الثابت للسياق غير فعالة ومحدودة. يحل MCP هذه القضايا من خلال السماح بـ:

تتيح هذه الوحدية للمطورين إنشاء أدوات قوية ذات وعي بالسياق يمكن أن تتفاعل مع LLMs في الوقت الحقيقي.


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

لبناء خادم MCP باستخدام TypeScript وربطه بـ Claude Desktop، ستحتاج إلى:

Claude Desktop

مجموعة أدوات 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:

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 أن:

بمجرد إعادة التشغيل، يمكنك أن تطلب من 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: توسيع نظام أدواتك البيئية

بمجرد أن يعمل خادمك، يمكنك توسيع قدراته:

على سبيل المثال، إليك مقطع من تكامل خادم البحث الشجاع:

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 أيضاً:

تستخدم جميعها JSON-RPC 2.0 لترميز الرسائل.


أدوات تصحيح الأخطاء والاختبار

يمكنك اختبار خادم MCP الخاص بك باستخدام أداة Inspector مفتوحة المصدر:

git clone https://github.com/modelcontextprotocol/inspector

يسمح بتتبع الرسائل، ومحاكاة الطلبات، وتصحيح سلوك الأدوات.


حالات الاستخدام في العالم الحقيقي

تضم بعض أوائل المتبنين لـ MCP:

تظهر هذه الأدوات قوة MCP في كل من الإعدادات غير المتصلة بالإنترنت والاتصالات بالإنترنت، مما يسهل على المطورين تخصيص كيفية فهم الذكاء الاصطناعي لسياقهم.

الخاتمة

يعتبر MCP خطوة قوية للأمام في جلب الهيكلية والقابلية للتوسع والوحدات إلى طريقة تفاعل LLMs مع الأدوات والبيانات. سواء كنت تبني مساعدًا شخصيًا، أو مساعد IDE، أو خط أنابيب بيانات، يوفر MCP معياراً جاهزًا للتوصيل بالقدرات الخارجية.

من خلال اتباع هذا الدليل، لقد تعلمت كيف:

بالنسبة للمطورين الذين يبنون الجيل التالي من التطبيقات المعززة بالذكاء الاصطناعي، فإن إتقان MCP هو خطوة أساسية.

قراءة إضافية وموارد

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

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