موصّل MCP في ChatGPT: كيف تضيف خادم MCP مخصصًا

درس عملي لإضافة خادم MCP مخصص إلى ChatGPT. فعّل وضع المطوّر، واملأ نموذج الموصّل، واختر OAuth أو بدون مصادقة، واختبر الخادم عبر نفق، وأصلح الأخطاء الشائعة، وأضف أدوات الصور والفيديو.

موصّل MCP في ChatGPT: كيف تضيف خادم MCP مخصصًا
Cristian Da Conceicao
مؤسس Picasso IA

لديك خادم يؤدي عملاً مفيدًا، وتريد أن يستدعيه ChatGPT من محادثة عادية. الباب موجود، وهو نموذج واحد. لكن نموذج الإعداد يخفي أربعة أو خمسة فخاخ تجعل خادمًا سليمًا يبدو معطّلًا. يشرح هذا الدرس المسار كاملًا، من تفعيل وضع المطوّر حتى الموافقة على أول استدعاء لأداة، وينبّهك إلى كل فخ قبل أن تقع فيه. ستبني خادم اختبار صغيرًا، وتعرّضه عبر نفق، وتصلح الأخطاء التي يواجهها الناس أكثر من غيرها، ثم ترى كيف يمكن لأدوات الصور والفيديو من PicassoIA أن تتصل بالموصّل نفسه.

كابل ألياف ضوئية أصفر متصل بمحول شبكة

ما هو موصّل MCP المخصص

MCP بكلمات بسيطة

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

في ChatGPT، موصّل MCP المخصص هو إدخال الإعدادات الذي يوجّه ChatGPT إلى أحد هذه الخوادم. وبعد حفظه، تظهر أدواتك في المحادثات إلى جانب الأدوات المدمجة.

لماذا تضيف خادمك الخاص

تتعامل الموصّلات المدمجة مع التطبيقات الشائعة. أما خادمك الخاص فيتعامل مع كل ما عداها:

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

💡 عن بُعد فقط. يتصل ChatGPT بخوادم MCP البعيدة. الخادم الذي يعمل كعملية محلية عبر stdio، كما تفعل أدوات سطح المكتب الكثيرة، يجب أن يُغلَّف في نقطة نهاية HTTP قبل أن يصل إليه ChatGPT.

قبل أن تلمس ChatGPT

متطلبات الخطة ومساحة العمل

بدأ وضع المطوّر كنسخة تجريبية لحسابات Plus وPro على الويب. أما خطط مساحات العمل مثل Business وEnterprise وEdu فتصل إليه عبر إذن يتحكم فيه المسؤول، لا عبر مفتاح شخصي. وقد عدّلت OpenAI الخطط التي تحصل على إجراءات الكتابة، ونقلت المفتاح بين القوائم أكثر من مرة، لذا تعامل مع أي قائمة بالخطط (بما فيها هذه) على أنها قابلة للتغيير. إذا اختلفت شاشتك عن الخطوات أدناه، فراجع مقالة المساعدة الحالية من OpenAI عن وضع المطوّر.

في مساحة العمل، يقع الإذن عادةً في منطقة الأذونات والأدوار ضمن إعدادات مساحة العمل. إذا كان المفتاح غير ظاهر لك، فاطلب من المسؤول الإذن قبل أن تلوم خادمك.

يحتاج خادمك إلى عنوان عام

يتصل ChatGPT من بنية OpenAI التحتية، لا من حاسوبك المحمول. ولهذا ثلاثة نتائج:

  1. يجب أن يكون العنوان متاحًا من الإنترنت العام.
  2. يجب أن يستخدم HTTPS.
  3. الخوادم خلف VPN أو شبكة خاصة لن تتصل.

يقبل ChatGPT نوعين من النقل البعيد:

النقليعمل مع ChatGPTعنوان نموذجيملاحظات
Streamable HTTPنعمhttps://your-domain.com/mcpالخيار الأفضل لخادم جديد
SSE (Server-Sent Events)نعمhttps://your-domain.com/sseأسلوب أقدم، ما زال مقبولًا
stdio (عملية محلية)لالا يوجدغلّفه في خادم HTTP أولًا

منظر من زاوية منخفضة لممر بين رفوف خوادم في مركز بيانات

فعّل وضع المطوّر

تقع الموصّلات المخصصة خلف مفتاح، لأن الخادم المخصص يستطيع قراءة البيانات الحقيقية وتغييرها. إليك المسار:

  1. انقر على أيقونة ملفك الشخصي في الزاوية السفلية اليسرى، وافتح الإعدادات.
  2. افتح الموصّلات. تسمّي الإصدارات الأحدث هذه الصفحة Apps & Connectors.
  3. ابحث عن مفتاح وضع المطوّر قرب أسفل الصفحة وفعّله. في بعض الحسابات يقع المفتاح ضمن الأمان بدلًا من ذلك.
  4. اقبل التحذير. يظهر لأن الخادم الذي تضيفه يستطيع التصرف نيابة عنك.

بمجرد تفعيل المفتاح، يظهر زر إنشاء في صفحة الموصّلات.

💡 لا تجد المفتاح؟ تغيّر موقع الإعداد خلال عام 2026. ابحث في نافذة الإعدادات عن كلمة "developer" قبل أن تستنتج أن خطتك لا تتيحه.

امرأة تعمل على حاسوب محمول على طاولة في مقهى، أمامها شاشة إعدادات

أضف الموصّل خطوة بخطوة

املأ النموذج

انقر على إنشاء واملأ هذه الحقول:

الحقلما الذي تدخلهنصيحة
الاسمتسمية قصيرة مثل "Order Lookup"هذا ما تختاره من قائمة المحادثة
الوصفجملة أو جملتان عمّا يفعله الخادميقرأه النموذج ليقرر إن كان يستدعي أداة، لذا اكتبه كتعليمة
الأيقونةاختيارييساعدك على تمييزه في قائمة طويلة
عنوان خادم MCPعنوان HTTPS الكامل مع المسار، مثل https://api.example.com/mcpغياب المسار سبب شائع جدًا للفشل
المصادقةبدون مصادقة أو OAuthالتفاصيل في القسم التالي

ضع علامة في مربع الاختيار الذي يؤكد أنك تثق بالتطبيق، ثم انقر على إنشاء.

منظر من الأعلى لمكتب فيه دفتر عليه مخطط، وحاسوب محمول وفنجان قهوة

اختر بدون مصادقة أو OAuth

الخياراستخدمه عندماالمخاطرة
بدون مصادقةبيانات عامة للقراءة فقط، أو خادم اختبار مؤقتأي شخص يعثر على العنوان يستطيع استدعاء أدواتك
OAuthأي شيء مرتبط بحساب مستخدم، أو بيانات خاصة، أو إجراءات كتابةيجب أن تشغّل مزوّد OAuth أو تربط بواحد

مع OAuth، يرسلك ChatGPT إلى صفحة تسجيل الدخول لمزوّد الهوية بعد أن تنقر على إنشاء. سجّل الدخول، وانقر على السماح، وسترجع إلى ChatGPT والموصّل مفوّض.

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

ابدأ بدون مصادقة على خادم اختبار يعيد بيانات غير ضارة. انتقل إلى OAuth قبل أن يلمس الخادم أي شيء حقيقي.

مفتاح أمان عتادي متصل بمنفذ USB في حاسوب محمول

استخدمه في محادثة

  1. ابدأ محادثة جديدة وانقر على أيقونة الإضافة.
  2. اختر المزيد، ثم وضع المطوّر.
  3. حدّد الموصّل كمصدر.
  4. اطلب شيئًا يستطيع الخادم تنفيذه، مثل "اعرض طلباتي المفتوحة".
  5. يقترح ChatGPT استدعاء أداة ويعرض المعاملات.
  6. اقرأها، ثم انقر على تأكيد.

في الاختبارات الأولى، اذكر اسم الموصّل في أمرك النصي: "باستخدام Order Lookup، اعرض طلباتي المفتوحة." فذكر الاسم يزيل متغيرًا واحدًا. وبعد أن تعمل الأداة، احذف الاسم وانظر هل يختاره ChatGPT من تلقاء نفسه، فهذا يخبرك إن كان وصفك يؤدي دوره.

💡 اقرأ بطاقة التأكيد. في وضع المطوّر، يُعرض كل استدعاء لأداة عليك قبل تشغيله. تلك البطاقة هي نقطة التحقق الأخيرة، فاقرأ المعاملات بسرعة بدل أن تنقر دون انتباه.

ابنِ خادمًا صغيرًا للاختبار

لقطة مقربة ليدين تكتبان على لوحة مفاتيح ميكانيكية في مكتب منزلي

شغّله محليًا

الأداة غير الضارة هي أسرع طريقة لإثبات أن الاتصال يعمل قبل أن توجّه ChatGPT إلى بيانات حقيقية. هذه الأداة تعدّ الكلمات، باستخدام حزمة SDK الرسمية للغة Python:

from mcp.server.fastmcp import FastMCP

mcp = FastMCP("hello-connector", stateless_http=True)

@mcp.tool()
def word_count(text: str) -> int:
    """Count the words in a block of text.
    Use when the user asks how long a draft is."""
    return len(text.split())

if __name__ == "__main__":
    mcp.run(transport="streamable-http")

أربع عادات تجعل الأداة سهلة الاستخدام للنموذج:

  • مهمة واحدة لكل أداة. lookup_order وrefund_order أفضل من manage_order واحدة.
  • أسماء بسيطة. أفعال وأسماء يستطيع النموذج مطابقتها مع الطلب.
  • معاملات مُحددة النوع. نصوص وأرقام وقيم محددة في المخطط، لا كتلة حرة واحدة.
  • مخرجات قصيرة. أعد الحقول التي تجيب عن السؤال، لا صف قاعدة البيانات كاملًا.

ثبّت حزمة SDK باستخدام pip install "mcp[cli]" ثم شغّل الملف. وفق الإعدادات الافتراضية لحزمة SDK وقت كتابة هذا الدرس، تكون نقطة النهاية http://127.0.0.1:8000/mcp. إذا كانت نسختك تستخدم منفذًا أو مسارًا آخر، فستذكر وثائقها ذلك.

قبل أن يرى ChatGPT الخادم أبدًا، وجّه MCP Inspector إليه:

npx @modelcontextprotocol/inspector

اختر نقل Streamable HTTP، والصق العنوان المحلي، واتصل، ثم اعرض قائمة الأدوات. إذا ظهرت word_count وعملت، فالخادم سليم، وأي فشل لاحق يعود إلى الشبكة أو نموذج الإعداد.

عرّضه عبر نفق

يمنح النفق منفذك المحلي عنوان HTTPS عامًا:

ngrok http 8000

تؤدي cloudflared tunnel --url http://localhost:8000 من Cloudflare المهمة نفسها. انسخ عنوان HTTPS الذي تطبعه، وأضف /mcp، والصق الناتج في حقل عنوان خادم MCP.

💡 عناوين الأنفاق المجانية تتغير. أعد تشغيل النفق وسيتغير العنوان، وهذا يكسر الموصّل. أعد إنشاءه بالعنوان الجديد، أو انتقل إلى نطاق ثابت بعد نجاح الاختبار.

أصلح الأخطاء التي تعيقك

الأخطاء الشائعة وحلولها

العَرَضالسبب المحتملالحل
فشل إنشاء الموصّلالعنوان HTTP أو محلي أو خلف VPNاستخدم عنوان HTTPS عامًا أو نفقًا
خطأ "Not found" عند الاتصالمسار خاطئ أو مفقود (/، /mcp، /sse)افتح العنوان الدقيق في Inspector أولًا
يتصل لكنه يعرض صفر أدواتطلب قائمة الأدوات يفشلاقرأ سجلات الخادم لطلب القائمة
تسجيل OAuth يدور في حلقةعنوان إعادة التوجيه غير مسموح به من المزوّدأضف عنوان الاستدعاء الذي تطلبه صفحة إعداد المزوّد
لا تُستدعى الأدوات أبدًاالأوصاف غامضةاذكر متى تستخدم كل أداة، ومتى لا تستخدمها
عمل أمس، ويفشل اليومتغيّر عنوان النفقأعد إنشاء الموصّل بالعنوان الجديد

اتبع هذا الترتيب في التصحيح، وتوقف عند أول خطوة تفشل. أولًا، افتح Inspector واتصل بالعنوان الدقيق. ثانيًا، اطلب هذا العنوان من الطرفية باستخدام curl وتأكد من أنه يردّ عبر HTTPS. ثالثًا، اقرأ سجلات الخادم بينما تنقر على إنشاء. وبعد ذلك فقط اشتبه في ChatGPT أو في نموذج الإعداد. العمل من الخادم نحو الخارج يوفّر عليك تعديل إعدادات لم تكن معطوبة أصلًا.

مطوّر يتكئ إلى الخلف في كرسيه، ومحبط أمام حاسوب محمول

عندما تبدو الأدوات قديمة

غيّرت قائمة الأدوات، لكن ChatGPT ما زال يعرض القديمة. افتح إعدادات الموصّل واستخدم خيار التحديث. وإذا لم يفعل ذلك شيئًا، فاحذف الموصّل وأضفه من جديد، وهذا يفرض قراءة جديدة للخادم.

تفصيل آخر يستحق المعرفة: تصف وثائق OpenAI أداة search تعيد نتائج مرشحة، وأداة fetch تعيد مستندًا واحدًا عبر المعرّف لميزات مثل البحث المعمّق. أما الخادم الذي يحتوي على أدوات مخصصة فقط، فقد يعمل في وضع المطوّر لكنه يبقى غير مرئي لتلك الميزات.

حافظ على أمانه في الإنتاج

حقن الأوامر النصية وإجراءات الكتابة

النص الذي يعيده خادمك يصبح نصًا يقرؤه النموذج. قد تحمل تذكرة دعم، أو صفحة ويب، أو مستند مشترك تعليمات مخفية تهدف إلى توجيه النموذج لاستدعاء أداة لم تقصدها. تحذير OpenAI نفسه واضح: راقب حقن الأوامر النصية، وراجع كل استدعاء لأداة، خاصة إجراءات الكتابة.

ابنِ مع وضع ذلك في الاعتبار:

  • افصل أدوات القراءة عن أدوات الكتابة. اجعل أدوات الكتابة ضيقة وقليلة.
  • اشترط معرّفًا صريحًا لأي إجراء مدمّر، لا عبارة بحث غامضة.
  • أضف معاملًا للتأكيد إلى عمليات الحذف والدفع.
  • أبقِ الأسرار خارج مخرجات الأدوات. إذا رأى النموذج رمزًا، فافترض أنه قد يكرره.
  • سجّل كل استدعاء مع المعاملات والمستخدم والنتيجة، حتى تتتبع أي إجراء سيئ.
  • حدّد معدل الطلبات على الخادم، لأن نموذجًا يدور في حلقة يستطيع استدعاء أداة أسرع بكثير من الإنسان.

مهندس أمان يراجع سجلات وصول مطبوعة في غرفة اجتماعات

أضف أدوات الصور والفيديو

غلّف نماذج PicassoIA في أدوات

أكثر الموصّلات إرضاءً هي تلك التي تُنتج شيئًا يمكنك رؤيته. تتيح PicassoIA واجهة API للمطوّرين على العنوان https://api.picassoia.com/v1، وتتم المصادقة برمز Bearer يبدأ بالسلسلة pia_sk_. تتّبع نقاط النهاية نمط Replicate: طلب POST إلى /v1/models/{owner}/{name}/predictions يبدأ مهمة، وطلب GET على /v1/predictions/{id} يستعلم عن حالتها. تتوفر أربعة نماذج عبر واجهة API وبروتوكول MCP:

المهام غير متزامنة، لذا ابنِ أداتين بدل واحدة: أداة بادئة تعيد معرّف التنبؤ، وأداة مدقّقة تعيد الناتج بعد انتهاء المهمة. يستطيع ChatGPT استدعاء المدقّقة مرارًا حتى تصبح النتيجة جاهزة.

import os
import httpx

PIA = "https://api.picassoia.com/v1"
HEADERS = {"Authorization": f"Bearer {os.environ['PICASSOIA_TOKEN']}"}

@mcp.tool()
def start_image(prompt: str) -> dict:
    """Start an image job. Returns an id to pass to get_result."""
    r = httpx.post(
        f"{PIA}/models/picassoia/picassoia-image/predictions",
        headers=HEADERS, json={"input": {"prompt": prompt}}, timeout=30,
    )
    r.raise_for_status()
    return {"id": r.json()["id"]}

@mcp.tool()
def get_result(prediction_id: str) -> dict:
    """Check a job. Returns status and, when finished, the output."""
    r = httpx.get(f"{PIA}/predictions/{prediction_id}", headers=HEADERS, timeout=30)
    r.raise_for_status()
    data = r.json()
    return {"status": data.get("status"), "output": data.get("output")}

اعتبر هذا مسودة أولية. يتبع جسم الطلب أسلوب Replicate، لذا أكّد حقول الإدخال الدقيقة في صفحة النموذج قبل أن تنشره.

بعض الحدود تشكّل التصميم. يشغّل الحساب 5 تنبؤات كحد أقصى في وقت واحد، وهذا العدد مشترك بين التوكنات واتصالات MCP. تصل الأوامر النصية إلى 4,000 حرف كحد أقصى، وجسم الطلب الواحد إلى 10 ميغابايت. شروط الوصول والتسعير موجودة في صفحة أسعار PicassoIA، فاقرأها قبل أن تعد أحدًا بمستوى مجاني.

💡 تفضّل ألا تستضيف شيئًا؟ توفّر PicassoIA أيضًا اتصالات MCP مُستضافة، وتُدار من picassoia.com/en/mcp/accounts بعد تسجيل الدخول. تحقق من العملاء التي يدعمها الاتصال قبل أن تعتمد عليه في ChatGPT.

استخدم GPT 5.6 Sol على PicassoIA

تهم أوصاف الأدوات أكثر من الشيفرة التي تقف خلفها، لأن النموذج يختار الأدوات بقراءتها. ويستطيع نموذج لغوي كبير أن يحسّن أوصافك في بضع دقائق:

  1. افتح صفحة GPT 5.6 Sol على PicassoIA.
  2. الصق أسماء أدواتك وأوصافها ومخططات مدخلاتها بصيغة JSON، حتى لا يضيع شيء.
  3. اسأل: "أعد كتابة كل وصف بحيث يعرف النموذج بالضبط متى يستدعي هذه الأداة ومتى لا يستدعيها."
  4. اطلب عشرة أوامر اختبار: خمسة يجب أن تُفعّل الأداة، وخمسة يجب ألا تُفعّلها.
  5. شغّل العشرة كلها في محادثة الموصّل. سجّل كل إخفاق، وعدّل الوصف، وكرّر.

للحصول على رأي ثانٍ في الصياغة، الصق المادة نفسها في Claude Sonnet 5 وقارن بين الصياغتين. احتفظ بالوصف الأقصر والأكثر تحديدًا.

مصوّر يرتب صورًا طبيعية مطبوعة في استوديو مشرق

تجربتك القادمة

ابنِ عدّاد الكلمات أولًا، وشاهد ظهور أول استدعاء للأداة في المحادثة. ثم أعطِ الموصّل شيئًا يعرضه. أضف أداة الصورة البادئة، واطلب من ChatGPT صورة لمشهد عادي، وغيّر تفصيلة واحدة في كل طلب: العدسة، أو الإضاءة، أو وقت اليوم. التعديلات الصغيرة تعلّمك عن الأوامر النصية أكثر من أي وصف طويل.

عندما تريد صورًا نهائية دون كتابة خادم، افتح PicassoIA وجرّب إنشاء صورك باستخدام PicassoIA Image، ثم حسّنها باستخدام PicassoIA Image Editor Pro، وأحيِ صورتك المفضلة باستخدام PicassoIA Video. اختر أمرًا نصيًا واحدًا، ونفّذه بثلاث طرق، واحتفظ بالنسخة التي تلفت نظرك فورًا.

شارك هذا المقال

اختر لغتك

مقالات ذات صلة