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

بروتوكول سياق النموذج (MCP) معيار مفتوح يتيح لعميل الذكاء الاصطناعي استدعاء أدوات على خادم. ينشر الخادم قائمة بالأدوات. لكل أداة اسم، ووصف بلغة واضحة وبسيطة، ومخطط JSON لمدخلاتها. يقرأ العميل هذه القائمة، ويقرر متى تكون الأداة مفيدة، ثم يرسل طلبًا منظمًا. يردّ الخادم بالبيانات أو ينفّذ إجراءً.
في ChatGPT، موصّل MCP المخصص هو إدخال الإعدادات الذي يوجّه ChatGPT إلى أحد هذه الخوادم. وبعد حفظه، تظهر أدواتك في المحادثات إلى جانب الأدوات المدمجة.
تتعامل الموصّلات المدمجة مع التطبيقات الشائعة. أما خادمك الخاص فيتعامل مع كل ما عداها:
💡 عن بُعد فقط. يتصل ChatGPT بخوادم MCP البعيدة. الخادم الذي يعمل كعملية محلية عبر stdio، كما تفعل أدوات سطح المكتب الكثيرة، يجب أن يُغلَّف في نقطة نهاية HTTP قبل أن يصل إليه ChatGPT.
بدأ وضع المطوّر كنسخة تجريبية لحسابات Plus وPro على الويب. أما خطط مساحات العمل مثل Business وEnterprise وEdu فتصل إليه عبر إذن يتحكم فيه المسؤول، لا عبر مفتاح شخصي. وقد عدّلت OpenAI الخطط التي تحصل على إجراءات الكتابة، ونقلت المفتاح بين القوائم أكثر من مرة، لذا تعامل مع أي قائمة بالخطط (بما فيها هذه) على أنها قابلة للتغيير. إذا اختلفت شاشتك عن الخطوات أدناه، فراجع مقالة المساعدة الحالية من OpenAI عن وضع المطوّر.
في مساحة العمل، يقع الإذن عادةً في منطقة الأذونات والأدوار ضمن إعدادات مساحة العمل. إذا كان المفتاح غير ظاهر لك، فاطلب من المسؤول الإذن قبل أن تلوم خادمك.
يتصل ChatGPT من بنية OpenAI التحتية، لا من حاسوبك المحمول. ولهذا ثلاثة نتائج:
يقبل ChatGPT نوعين من النقل البعيد:
| النقل | يعمل مع ChatGPT | عنوان نموذجي | ملاحظات |
|---|---|---|---|
| Streamable HTTP | نعم | https://your-domain.com/mcp | الخيار الأفضل لخادم جديد |
| SSE (Server-Sent Events) | نعم | https://your-domain.com/sse | أسلوب أقدم، ما زال مقبولًا |
| stdio (عملية محلية) | لا | لا يوجد | غلّفه في خادم HTTP أولًا |

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

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

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

في الاختبارات الأولى، اذكر اسم الموصّل في أمرك النصي: "باستخدام 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 واجهة 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.
تهم أوصاف الأدوات أكثر من الشيفرة التي تقف خلفها، لأن النموذج يختار الأدوات بقراءتها. ويستطيع نموذج لغوي كبير أن يحسّن أوصافك في بضع دقائق:
للحصول على رأي ثانٍ في الصياغة، الصق المادة نفسها في Claude Sonnet 5 وقارن بين الصياغتين. احتفظ بالوصف الأقصر والأكثر تحديدًا.

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