يوفر هذا الدليل تعليمات مُختبَرة لتثبيت Discourse MCP في OpenCode CLI. إذا كنت تستخدم عميل MCP مختلفًا، فقد كتبتُ أيضًا أدلة لـ Codex CLI.
استخدم نموذج اللغة الكبير الخاص بك! نماذج اللغة الكبيرة (LLMs) جيدة جدًا في اتباع التعليمات ويمكنها إعداد كل شيء نيابة عنك. وجّه نموذج اللغة الكبير إلى هذا الدليل عبر عنوان URL واطلب منه إجراء الإعداد. يمكنك أيضًا أن تطلب منه شرح أي خطوات لا تفهمها.
المتطلبات الأساسية
- تثبيت Node.js (يوصى بالإصدار 24 LTS)
- تثبيت OpenCode CLI
- الوصول إلى منتدى Discourse المقصود كـ مستخدم عادي (لا حاجة لأن تكون مسؤولاً!)
من المهم أن ندرك أن هناك ثلاثة مكونات منفصلة هنا:
- منتدى Discourse البعيد، وهو مصدر البيانات والهدف للإجراءات.
- خادم Discourse MCP، وهو أداة مفتوحة المصدر تعمل محليًا تتصل بـ Discourse وتوفر واجهة برمجة تطبيقات (API) لـ OpenCode للتفاعل مع Discourse. يتم تثبيت هذا كحزمة NPX ويتم تشغيله عند الطلب بواسطة OpenCode CLI.
- OpenCode CLI، وهو عميل MCP الذي يتصل بخادم MCP ويوفر الواجهة للتفاعل مع Discourse من خلال واجهة برمجة تطبيقات MCP.
1. إنشاء مفتاح واجهة برمجة تطبيقات المستخدم
سيؤدي هذا إلى مصادقتك لدى Discourse وهذه هي الطريقة التي ستحصل بها على مفتاح واجهة برمجة التطبيقات الخاص بك. سيقوم npx بتنزيل وتشغيل الكود، ولا يحتاج أي شيء إلى التثبيت بالمعنى التقليدي.
في الطرفية (Terminal)، قم بتشغيل:
npx @discourse/mcp@latest generate-user-api-key \
--site =DISCOURSE-FORUM= \
--save-to =PROFILE-PATH/=NAME=.json
مثال:
npx @discourse/mcp@latest generate-user-api-key \
--site https://meta.discourse.org \
--save-to ~/.config/opencode/discourse-profiles/meta.json
وافق على موافقة المتصفح وانسخ البيانات المشفرة مرة أخرى، مما يثبت قدرتك على تسجيل الدخول ويولد مفتاح واجهة برمجة تطبيقات يتم حفظه في =PROFILE-PATH= لاستخدامه بواسطة خادم MCP.
سيحتوي مفتاح واجهة برمجة التطبيقات على نفس مستوى الوصول إلى المنتدى الذي لديك كمستخدم.
2. إضافة خادم MCP إلى OpenCode CLI
قم بتحرير ملف التكوين الخاص بـ OpenCode على المسار ~/.config/opencode/opencode.jsonc وأضف الإدخال التالي إلى قسم mcp:
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
// ... خوادم MCP الأخرى ...
"discourse-=NAME=-mcp": {
"type": "local",
"command": [
"npx",
"-y",
"@discourse/mcp@latest",
"--profile",
"=PROFILE-PATH/==NAME=.json",
],
"enabled": true,
"environment": {},
},
},
}
مثال:
"discourse-meta-mcp": {
"type": "local",
"command": [
"npx",
"-y",
"@discourse/mcp@latest",
"--profile",
"/home/marcus/.config/opencode/discourse-profiles/meta.json"
],
"enabled": true,
"environment": {},
},
سيتم تشغيل خادم MCP عند الطلب باستخدام npx بواسطة OpenCode CLI عند بدء تشغيل OpenCode. تم تكوينه لاستخدام الملف الشخصي في =PROFILE-PATH= وهو للقراءة فقط افتراضيًا.
3. إعادة تشغيل OpenCode CLI
أعد تشغيل OpenCode بالكامل حتى يقوم بإعادة تحميل التكوين والاتصال بخادم MCP.
إذا بدأ التشغيل دون أخطاء، فإن خادم Discourse MCP يعمل. يمكنك أن تطلب من OpenCode الرجوع إلى منتدى Discourse الخاص بك للحصول على معلومات - خاصة المعلومات التي لديك وصول إليها ولكنها ليست عامة - سيؤدي هذا إلى التحقق من أنه يتصل بك.
4. تمكين ميزات الكتابة (اختياري)
افتراضيًا، يعمل خادم Discourse MCP في وضع القراءة فقط. لتمكين عمليات الكتابة (إنشاء منشورات، مواضيع، مستخدمين، إلخ)، تحتاج إلى إضافة علامتين إلى ملف JSON الشخصي الخاص بك.
قم بتحرير =PROFILE-PATH/=NAME=.json وأضف "read_only": false و "allow_writes": true كعناصر شريكة لمصفوفة auth_pairs:
{
"read_only": false,
"allow_writes": true,
"auth_pairs": [
{
"site": "=DISCOURSE-FORUM=",
"user_api_key": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"user_api_client_id": "discourse-mcp"
}
]
}
مثال:
{
"read_only": false,
"allow_writes": true,
"auth_pairs": [
{
"site": "https://meta.discourse.org",
"user_api_key": "abc123def456ghi789jkl012mno345pqr",
"user_api_client_id": "discourse-mcp"
}
]
}
بعد إضافة هذه العلامات، أعد تشغيل OpenCode CLI لتصبح التغييرات سارية المفعول. سيسمح خادم MCP الآن بعمليات الكتابة مثل:
- إنشاء وتحديث المواضيع
- إنشاء المنشورات والردود
- إدارة المسودات
- رفع الملفات
- إنشاء الفئات (إذا كان لديك الإذن)
- إدارة المستخدمين (إذا كان لديك إذن المسؤول)
تحذير: ستستخدم عمليات الكتابة أذونات حساب المستخدم الخاص بك. سيظهر أي محتوى تم إنشاؤه كما لو كنت قد أنشأته يدويًا. استخدم ميزات الكتابة بمسؤولية.
إدارة مثيلات Discourse متعددة
يمكنك إضافة منتديات Discourse متعددة عن طريق تكرار العملية بملفات تعريف مختلفة وأسماء خوادم MCP مختلفة:
"discourse-meta-mcp": {
"type": "local",
"command": [
"npx", "-y", "@discourse/mcp@latest",
"--profile", "/home/username/.config/opencode/discourse-profiles/meta.json"
],
"enabled": true,
"environment": {},
},
"discourse-mycommunity-mcp": {
"type": "local",
"command": [
"npx", "-y", "@discourse/mcp@latest",
"--profile", "/home/username/.config/opencode/discourse-profiles/mycommunity.json"
],
"enabled": true,
"environment": {},
},
ملفات التكوين
هناك ملفان رئيسيان:
-
=OPENCODE-CONFIG=- ملف تكوين OpenCode CLI على المسار~/.config/opencode/opencode.jsonc، والذي يتضمن إعدادات خادم MCP. -
=PROFILE-PATH=- الملف الشخصي لخادم Discourse MCP، والذي يتضمن مفتاح واجهة برمجة التطبيقات وإعدادات أخرى للاتصال بـ Discourse.
إعدادات OpenCode
الإعدادات الخاصة بالاتصال بخادم MCP موجودة في =OPENCODE-CONFIG= (عادةً ~/.config/opencode/opencode.jsonc):
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"discourse-=NAME=-mcp": {
"type": "local",
"command": [
"npx",
"-y",
"@discourse/mcp@latest",
"--profile",
"=PROFILE-PATH/==NAME=.json",
],
"enabled": true,
"environment": {},
},
},
}
وثائق إعدادات MCP الخاصة بـ OpenCode: OpenCode Documentation
إعدادات Discourse MCP
الإعدادات الخاصة بخادم Discourse MCP نفسه موجودة في =PROFILE-PATH/=NAME=.json=:
{
"auth_pairs": [
{
"site": "=DISCOURSE-FORUM=",
"user_api_key": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"user_api_client_id": "discourse-mcp"
}
]
}
وثائق إعدادات Discourse MCP: GitHub - discourse/discourse-mcp
أفضل ممارسات الأمان
من المستحسن:
- تخزين ملفات التعريف في دليل مخصص (على سبيل المثال،
~/.config/opencode/discourse-profiles/) - إضافة هذا الدليل إلى
.gitignoreإذا كنت تتتبع ملفات الإعدادات الخاصة بك في نظام التحكم في الإصدارات - استخدام أسماء وصفية لملفات التعريف الخاصة بك (على سبيل المثال،
meta.json،mycommunity.json) - الحفاظ على مفاتيح واجهة برمجة التطبيقات خاصة - فلها نفس مستوى الوصول الذي يتمتع به حساب المستخدم الخاص بك
استكشاف الأخطاء وإصلاحها
- مشاكل الاتصال: تحقق من أن مسار الملف الشخصي في
opencode.jsoncصحيح وأن الملف موجود - أخطاء التفويض: تحقق مما إذا كان مفتاح واجهة برمجة التطبيقات قد تم إلغاؤه في تفضيلات مستخدم Discourse الخاص بك
- أخطاء الأذونات: تأكد من أن لديك الأذونات المطلوبة على مثيل Discourse
- إعادة التشغيل مطلوبة: تتطلب التغييرات على
opencode.jsoncإعادة تشغيل OpenCode CLI