خادم GitHub MCP: الإعداد واستخدام التوكنات وحدود المعدل دون مفاجآت
اربط خادم GitHub MCP مع VS Code أو Claude Desktop أو Cursor عبر OAuth أو توكن محدود النطاق، وقلّص تعريفات أدواته باستخدام مجموعات الأدوات ووضع القراءة فقط، وتعامل مع حدود GitHub البالغة 5,000 طلب في الساعة و80 طلبًا في الدقيقة دون مفاجآت الخطأ 403 أو 429.
وصّل خادم GitHub MCP بمحررك، وسيتمكن وكيل الذكاء الاصطناعي من قراءة المشكلات ومراجعة طلبات السحب وفتح الفروع نيابةً عنك. لكنه يحمّل أيضًا قائمة طويلة من تعريفات الأدوات في كل محادثة، ويستهلك ميزانية الطلبات الخاصة بأي توكن تمنحه إياه. ثلاثة أمور تحدد ما إذا كان الإعداد سلسًا أم مرهقًا: طريقة الاتصال، وعدد توكنات السياق التي يستهلكها الخادم، وحدود المعدل التي ستصطدم بها أولًا.
كل رقم يرد أدناه مأخوذ من الوثائق الرسمية الصادرة عن GitHub أو من قياسات المجتمع المنشورة في 2026، وكل رقم موسوم بمصدره. تتغير أعداد التوكنات بين إصدارات الخادم، لذا تعامل معها كنطاقات لا كوعود. وينطبق الأمر نفسه على أي رقم تقرؤه عن أدوات MCP: تحقق من الإصدار الذي قيس عليه قبل أن تبني ميزانية حوله.
💡 الخلاصة السريعة: استخدم الخادم البعيد، وامنحه توكنًا محدود النطاق، وفعّل مجموعات الأدوات التي تستخدمها فقط، وتوقف دقيقة واحدة على الأقل عندما يرد GitHub بالخطأ 403 أو 429.
خادم بعيد أم خادم محلي؟
يوفر الخياران الأدوات نفسها من GitHub. ما يختلف هو من يشغّل العملية وطريقة تسجيل الدخول. إذا اخترت الخيار الخاطئ، فستنتهي إلى صيانة Docker على خمسة حواسيب محمولة، أو تنتظر GitHub لميزة كنت تحتاجها بالأمس.
أساسيات الخادم البعيد
تستضيف GitHub الخادم البعيد على العنوان https://api.githubcopilot.com/mcp/. يوجّه عميلك إلى هذا الرابط، وتسجّل الدخول عبر المتصفح باستخدام OAuth، أو ترسل توكن وصول شخصيًا في ترويسة Authorization. لا يوجد ما تثبّته ولا ما تحدّثه، لأن الأدوات الجديدة تصل وفق جدول GitHub لا وفق جدولك.
يوفر المضيف نفسه إصدارًا تجريبيًا يسمى insiders على العنوان https://api.githubcopilot.com/mcp/insiders للميزات المبكرة. جرّبه على جهاز اختبار قبل أن تطبقه على إعدادك اليومي.
خيار Docker المحلي
يُوزَّع الخادم المحلي على شكل الصورة ghcr.io/github/github-mcp-server. يشغّله عميلك باستخدام docker run -i --rm ويتواصل معه عبر stdio. تختار الإصدار، وتتحكم في كل متغيرات البيئة، ويمكنك توجيهه إلى GitHub Enterprise Server باستخدام GITHUB_HOST. الثمن هو Docker على كل جهاز، وتوكن يبقى في ملف إعدادات.
الخادم البعيد
خادم Docker المحلي
التثبيت
لا يلزم
صورة Docker
تسجيل الدخول
OAuth، أو توكن في ترويسة
توكن في GITHUB_PERSONAL_ACCESS_TOKEN، أو OAuth مع منفذ استدعاء
التحديثات
تتولاها GitHub
تسحب الصورة بنفسك
GitHub Enterprise Server
غير مدعوم
مدعوم عبر GITHUB_HOST
الاستخدام الأمثل
معظم المطورين الأفراد
الإصدارات المثبّتة وGitHub Enterprise Server
الإعداد في خمس دقائق
كل مقتطف في ما يلي مأخوذ من ملف README للمشروع. الصقه، وأعد تشغيل العميل، واطلب من الوكيل عرض قائمة طلبات السحب المفتوحة لديك كاختبار أولي. إذا عادت القائمة، فالاتصال يعمل، وكل ما يلي هذه النقطة هو ضبط دقيق.
VS Code مع OAuth
أقصر طريق. لا توكن تحتاج إلى إنشائه ولا سرّ تحتاج إلى تخزينه.
استبدل your_token_here بتوكن حقيقي، واحتفظ بهذا الملف خارج نظام التحكم بالإصدارات. يقبل Cursor بنية مشابهة لأمثلة VS Code.
💡 إذا كان التوكن و OAuth مهيّأين معًا، فالتوكن هو الذي يُعمل به. وتقول وثائق المشروع إن GITHUB_PERSONAL_ACCESS_TOKEN له الأولوية على OAuth.
نطاقات توكن الوصول الشخصي
التوكن هو الجزء الوحيد في هذا الإعداد الذي يمكن أن يؤذيك. فالوكيل الذي يحمل توكنًا واسعًا يستطيع أن يفعل أي شيء يسمح به ذلك التوكن، بما في ذلك أخطاء لم تكن لتقع فيها يدويًا.
اختر أصغر النطاقات
يوصي README بثلاثة نطاقات:
النطاق
ما الذي يسمح به
repo
عمليات المستودعات
read:packages
الوصول إلى صور Docker
read:org
الوصول إلى فرق المنظمة
ابدأ بالنطاق repo، وأضف النطاقات الأخرى فقط عندما تفشل أداة بخطأ في الصلاحيات. إذا كنت تعمل في عدد قليل من المستودعات، فإن توكنًا دقيق الصلاحيات مقصورًا على تلك المستودعات أكثر إحكامًا. استخدم توكنًا منفصلًا لكل مشروع، حتى لا يؤدي إلغاء واحد إلى تعطيل البقية.
أبقِ التوكنات خارج Git
ثلاث عادات تمنع معظم التسريبات:
ضع التوكن في متغير بيئة أو في حقل إدخال للأمر النصي، لا في ملف إعدادات متتبَّع بالإصدارات.
قيّد صلاحيات أي ملف إعدادات محلي باستخدام chmod 600 ~/.your-app/config.json.
جدّد التوكنات وفق جدول زمني، وألغِ أي توكن يظهر في diff فور ظهوره.
التكلفة الحقيقية لتعريفات الأدوات
يحمّل عميل MCP تعريفات كل خادم متصل إلى سياق النموذج، حتى يعرف النموذج الأدوات التي يستطيع استدعاءها. يُحتسب هذا الحمل من نافذة السياق لديك في كل طلب، سواء استخدم الوكيل أداة أم لم يستخدمها. تقدّر تقديرات المجتمع أن التعريف الواحد يبلغ نحو 300 إلى 600 توكن بعد إضافة الاسم والوصف ومخطط المعاملات.
يملك خادم GitHub عددًا كبيرًا من الأدوات، ولهذا يظهر في كل حديث عن تضخم السياق.
ماذا تقول الأرقام
هذه قياسات للمجتمع نُشرت على dev.to في 2026، وليست أرقامًا من GitHub:
القياس
التوكنات
الأدوات
المصدر
سطح الأدوات الكامل
نحو 55,000
93
Piotr Hajdas
سطح الأدوات الكامل، بعدد أقل
نحو 42,000
غير مذكور
The Daily Agent
مجموعات الأدوات الافتراضية فقط
نحو 4,200
26
Ken Imoto
في نافذة من 200,000 توكن، يعني الرقم 55,000 أن أكثر من ربع المساحة قد ذهب قبل أن تكتب كلمة واحدة. تشكل مجموعات الأدوات الافتراضية نحو 2%. وتختلف الأرقام لأن الناس قاسوا إصدارات خادم وإعدادات مجموعات أدوات مختلفة.
يهم عميلك أيضًا. وفقًا لمقال منشور في 2026، يؤجل Claude Code مخططات أدوات MCP خلف خطوة بحث عن الأدوات افتراضيًا، وأفاد قياس واحد بانخفاض بنسبة 46.9% بسببها. أما Cursor و Windsurf و Gemini CLI فتحمّل التعريفات مسبقًا، لذلك تدفع الثمن الكامل.
خفّضها باستخدام مجموعات الأدوات
تفعّل مجموعات الأدوات أو تعطّل مجموعات كاملة من الأدوات. بدون إعداد، يفعّل الخادم context وissues وpull_requests وrepos وusers. وبقية القائمة هي actions وcode_quality وcode_security وcopilot وdependabot وdiscussions وgists وgit وgovernance وlabels وnotifications وorgs وprojects وsecret_protection وsecurity_advisories وstargazers. القيمتان الخاصتان all وdefault تفعلان ما تدلان عليه.
بالنسبة إلى الخادم المحلي، اضبط GITHUB_TOOLSETS:
docker run -e GITHUB_PERSONAL_ACCESS_TOKEN=<token> \
-e GITHUB_TOOLSETS="repos,issues,pull_requests" \
ghcr.io/github/github-mcp-server
بالنسبة إلى الخادم البعيد، أرسل ترويسة X-MCP-Toolsets مع القائمة نفسها المفصولة بفواصل:
هناك عنصران تحكم إضافيان يضبطان النتيجة بدقة. يضيف GITHUB_TOOLS (أو ترويسة X-MCP-Tools) أدوات فردية فوق مجموعات أدواتك، مثل get_gist دون تفعيل كل gists. ويزيل X-MCP-Exclude-Tools أدوات، وتنص الوثائق على أن الأدوات المستبعدة لها الأولوية على مجموعات الأدوات والأدوات الفردية.
💡 لا تنساق وراء all. فالانتقال من نحو 4,200 توكن من التعريفات إلى نحو 55,000 يمنحك أدوات لن تستدعيها على الأرجح، وتدفع ثمنها في كل طلب.
أوضاع القراءة فقط والإغلاق
مفتاحان يقلّصان نطاق الضرر دون المساس بمجموعات أدواتك:
الوضع
الخادم المحلي
الخادم البعيد
الأثر
القراءة فقط
--read-only أو GITHUB_READ_ONLY
X-MCP-Readonly: true، أو المسار /mcp/x/all/readonly
يعطّل كل أداة كتابة، حتى تلك التي طلبتها
الإغلاق
--lockdown-mode أو GITHUB_LOCKDOWN_MODE
ترويسة X-MCP-Lockdown
يعرض فقط محتوى المستودعات العامة من مستخدمين لديهم صلاحية الدفع
يعمل وضع القراءة فقط كمرشح صارم يتقدم على بقية إعداداتك، والأدوات المعطلة تعني أيضًا تعريفات أقل للتحميل. ويهم وضع الإغلاق عندما يقرأ الوكيل مشكلات أو تعليقات كتبها غرباء، لأن النص القادم من أشخاص لا يملكون صلاحية الدفع هو المكان الذي تختبئ فيه التعليمات العدائية. وفي وضع HTTP، بمجرد أن يفعّل المشغّل وضع الإغلاق على الخادم، لم تعد الترويسة X-MCP-Lockdown قادرة على إيقافه لطلب واحد.
حدود المعدل التي ستصطدم بها فعلًا
يستدعي الخادم واجهة GitHub API باسمك، لذا فالحدود المهمة هي تلك التي توثّقها GitHub لواجهتها REST API. تنطبق طبقتان: حدّ أولي لكل ساعة وحدود ثانوية لكل دقيقة.
الحدود الأولية في الساعة
المستدعي
الحد
غير مصادق عليه
60 طلبًا في الساعة
مستخدم مصادق عليه (توكن أو تطبيق OAuth أو تطبيق GitHub)
5,000 في الساعة
التطبيقات المملوكة أو المعتمدة من منظمات Enterprise Cloud
15,000 في الساعة
تثبيتات تطبيقات GitHub خارج Enterprise
5,000، وترتفع حتى 12,500
GITHUB_TOKEN داخل Actions
1,000 في الساعة لكل مستودع (15,000 على Enterprise Cloud)
عند 5,000 في الساعة، تحصل على نحو 83 استدعاءً في الدقيقة في المتوسط. يستطيع وكيل يسرد مشكلات المستودع، ثم يفتح كل مشكلة ويقرأ كل تعليق فيها، أن ينفق مئات الاستدعاءات في دقائق قليلة، لذا تصبح الميزانية الساعية قيدًا حقيقيًا أثناء جلسات الفرز الكبيرة.
الحدود الثانوية في الدقيقة
وُضعت الحدود الثانوية لإيقاف الاندفاعات، والوكلاء ينتجون اندفاعات. توثّق GitHub هذه الحدود:
100 طلب متزامن كحد أقصى.
900 نقطة في الدقيقة لنقاط نهاية REST.
90 ثانية من وقت المعالج لكل 60 ثانية من الوقت الفعلي.
80 طلبًا لإنشاء المحتوى في الدقيقة و500 في الساعة.
2,000 طلب توكن وصول OAuth في الساعة.
تتراكم استدعاءات الأدوات المتوازية أمام حد التزامن. ووكيل يعلّق على عشرات المشكلات في حلقة يصطدم بسقف المحتوى المولَّد البالغ 80 في الدقيقة قبل أن يقترب من الميزانية الساعية.
إصلاح أخطاء 403 و429
عندما يُفعَّل حد ما، ترد GitHub بالخطأ 403 أو 429. اقرأ ترويسات الاستجابة قبل أن تغيّر أي شيء:
الترويسة
المعنى
x-ratelimit-limit
الحد الأقصى للطلبات في الساعة
x-ratelimit-remaining
الطلبات المتبقية في النافذة الحالية
x-ratelimit-used
الطلبات المنفذة في النافذة الحالية
x-ratelimit-reset
موعد إعادة ضبط النافذة، بالثواني منذ حقبة UTC
x-ratelimit-resource
المورد الذي احتُسب عليه الطلب
تراجع يعمل
إذا حملت الاستجابة ترويسة retry-after، فانتظر عدد الثواني الذي تحدده.
وإلا فانتظر حتى الوقت المذكور في x-ratelimit-reset.
بالنسبة إلى الحدود الثانوية دون ترويسات، انتظر دقيقة واحدة على الأقل، ثم زد التأخير أسيًا مع كل فشل جديد.
ضع القاعدة في تعليمات وكيلك أيضًا: عندما ترد GitHub بالخطأ 403 أو 429، يتوقف الوكيل ويبلّغ بدلًا من إعادة المحاولة. فالوكيل الذي يعيد المحاولة فورًا يستهلك طلبات إضافية ضد حد لم يُعَد ضبطه بعد.
3 أخطاء شائعة
تفعيل كل مجموعات الأدوات. يمتلئ السياق بتعريفات الأدوات، ويصبح الوكيل أبطأ وأقل دقة في اختيار الأدوات.
الكتابة داخل حلقة. التعليقات أو الوسوم أو المشكلات الجماعية تصطدم بسقف المحتوى البالغ 80 في الدقيقة بسرعة. اجمع العمل في دفعات، وتوقف بين الدفعات.
إعادة استخدام توكن واسع واحد في كل مكان. عندما يتسرب أو يتصرف بشكل خاطئ، ينكسر كل شيء دفعة واحدة. امنح كل مشروع توكنه الضيق الخاص.
استخدم نموذجًا من PicassoIA
يعيد خادم GitHub MCP مادة خام: قوائم المشكلات، والفروقات (diffs)، وسلاسل التعليقات. يحوّل نموذج لغوي كل ذلك إلى قرارات. يتولى Claude Sonnet 5 على PicassoIA مهام البرمجة متعددة الخطوات واستخدام الأدوات، ويقرأ لقطات الشاشة، ويتيح لك ضبط مقدار التفكير الذي يبذله، ما يجعله عينًا ثانية جيدة على ما يعيده وكيل GitHub لديك.
الصق قائمة المشكلات أو الفروقات (diff) التي أعادها وكيلك في حقل Prompt. أزل التوكنات والبيانات الخاصة أولًا.
اضبط System Prompt مرة واحدة، مثلًا: "راجع طلبات السحب وأبرز التغييرات الخطرة في ثلاث نقاط." وأعد استخدامه طوال المشروع.
اختر مستوى Effort. يُعد low الافتراضي والأسرع، بينما يناسب high أو max خطأً يمس عدة ملفات.
اترك Max Tokens على 8,192 ما لم تُقطع الإجابة.
أرفق لقطة شاشة للخطأ في حقل Image عندما لا يكفي النص وحده.
يوفّر PicassoIA أيضًا واجهة API خاصة به للمطوّرين وموصّل MCP، وينطبق عليهما منطق الحدود نفسه. تقع واجهة API على https://api.picassoia.com/v1، وتقبل بيانات اعتماد من نوع Bearer تبدأ بالمقطع pia_sk_، وتُشغَّل المهام بشكل غير متزامن: أنشئ تنبؤًا، ثم استعلم عنه، ثم اجلب النتيجة. يمكن الوصول إلى أربعة نماذج عبر واجهة API وموصّل MCP: PicassoIA Image، PicassoIA Image Editor Pro، PicassoIA Video و Seedance 2.5 Lite. يمكن للحساب تشغيل 5 تنبؤات متزامنة، مشتركة بين بيانات الاعتماد واتصالات MCP. الدرس نفسه الذي يُستخلص من حدّ 100 طلب متزامن في GitHub: حدّ التزامن هو أول عائق يصطدم به الوكيل الذي يعمل بالتوازي.
جرّبه على Picasso IA
تبدو ملفات README وملاحظات الإصدار وقوالب المشكلات أفضل مع صورة حقيقية في الأعلى. أنشئ ترويسة واقعية بالصور الفوتوغرافية باستخدام PicassoIA Image، ثم حسّن الكادر أو أصلح تفصيلة باستخدام PicassoIA Image Editor Pro.
ثلاثة أوامر نصية تستحق التجربة اليوم:
مكتب مطوّر مرتب عند شروق الشمس، فيه حاسوب محمول ودفتر وكوب، مصوّر بفيلم 35 ملم.
ممر ضيق في غرفة خوادم بإضاءة علوية ناعمة وكابلات مرتبة، بعدسة زاوية عريضة.
جلسة مراجعة هادئة لفريق حول طاولة خشبية، بضوء نافذة طبيعي.
اختر واحدًا، وأنشئ بعض الاختلافات، وانظر أيها يجعل صفحة مستودعك القادم تبرز. ابدأ بإنشاء صورك الخاصة مع Picasso IA، وجرّب حتى تبدو النتيجة كأنها تنتمي إلى مشروعك.