خادم MCP الإداري
تتيح نقطة نهاية MCP الإدارية للعملاء المعتمدين من أدوات الذكاء الاصطناعي أو الإدارة قراءة حالة الموقع وتنفيذ إجراءات إدارية صغيرة ومدققة بدون مشاركة جلسات لوحة التحكم أو بيانات قاعدة البيانات.
هذه الصفحة عامة حتى تتمكن أدوات الذكاء الاصطناعي من قراءة شرح الإعداد. نقطة نهاية MCP نفسها تبقى مخصصة للمسؤولين فقط وتتطلب مفتاح Bearer صالح ومحدد الصلاحيات.
صفحة الشرح العامة:
https://esportscommunity.net/docs/admin-mcp
نقطة النهاية
الإنتاج:
https://esportscommunity.net/api/mcp
التطوير المحلي:
http://localhost:3000/api/mcp
الترويسات المطلوبة في كلا الإصدارين:
Authorization: Bearer <ec_mcp_live_...>
Content-Type: application/json
Accept: application/json, text/event-stream
يتم رفض مصفوفات JSON-RPC batch عمدا. أرسل طلب MCP واحدا في كل مرة.
إصدارات البروتوكول
يخدم العنوان نفسه كلا إصداري MCP، ويجيب حسب ما يعلنه الطلب، فلا يحتاج أي منهما إلى عنوان منفصل.
- الإصدار
2026-07-28— بدون حالة. لا توجد مصافحةinitializeولا معرف جلسة. - الإصدارات
2025-11-25وما قبلها — عبر مصافحةinitializeدون تغيير، وهي ما تستخدمه معظم العملاء حتى الآن، فلا يحتاج الإعداد أدناه إلى أي تعديل.
إيقاف مُعلن — الإزالة في 2026-09-23. أصبحت مصافحة
initializeمهجورة اعتبارا من 2026-08-12 وسيتوقف تقديمها على نقطة الإدارة هذه في 2026-09-23، أي قبل النقطة العامة، لأن كل مستخدم هنا يحمل مفتاحا يمكننا تحديده والتواصل معه. لا شيء يتغير قبل هذا التاريخ. انقل عميلك إلى2026-07-28في أي وقت قبل ذلك، وبعد الإزالة يُجاب طلب المصافحة بخطأ الإصدار غير المدعوم مع ذكر ما تبقى مدعوما.
إلغاء المصافحة لا يغير شيئا في التوثيق: مفتاح Bearer مطلوب في كل طلب في كلا الإصدارين، ولم تكن الجلسة تحمله أصلا. والطلب غير الموثق يبقى 401.
يعيد server/discover الإصدار 2026-07-28 فقط، وهو الإصدار الحديث القابل للتفاوض وليس قائمة كل ما تخدمه النقطة؛ فالعملاء القدامى لا يستدعونه أصلا بل يبدأون بـinitialize.
طلب الإصدار 2026-07-28 ينسخ ثلاث قيم من الجسم إلى الترويسات ويكرر رقم الإصدار داخل params._meta:
POST /api/mcp HTTP/1.1
Authorization: Bearer <ec_mcp_live_...>
Content-Type: application/json
Accept: application/json, text/event-stream
MCP-Protocol-Version: 2026-07-28
Mcp-Method: tools/call
Mcp-Name: get_admin_capabilities
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "get_admin_capabilities",
"arguments": { "locale": "ar" },
"_meta": {
"io.modelcontextprotocol/protocolVersion": "2026-07-28",
"io.modelcontextprotocol/clientInfo": { "name": "YourClient", "version": "1.0.0" },
"io.modelcontextprotocol/clientCapabilities": {}
}
}
}
ترويسة Mcp-Name مطلوبة مع tools/call فقط ويجب أن تطابق params.name. أي ترويسة تخالف الجسم تُرفض بالخطأ -32020، وأي إصدار غير مدعوم يُرفض بالخطأ -32022 الذي يذكر ما تدعمه هذه النقطة.
كل نتيجة في الإصدار 2026-07-28 تحمل resultType: "complete". كما تحمل tools/list الحقلين ttlMs وcacheScope، وبما أن مجموعة أدواتك مشتقة من صلاحيات هذا المفتاح فإنها cacheScope: "private" ولا يجوز لأي ذاكرة مشتركة تخزينها.
إنشاء مفتاح
- سجل الدخول إلى لوحة التحكم بحسابك الإداري.
- افتح /admin/mcp.
- أنشئ مفتاحا لحساب ديسكورد المسجل حاليا.
- اختر الأدوات وأصغر نطاق مفيد من الألعاب أو المنصات الإعلامية.
- انسخ مفتاح ec_mcp_live_… الذي يتم إنشاؤه فورا.
يظهر المفتاح الكامل مرة واحدة فقط. قاعدة البيانات تحفظ فقط SHA-256 hash، وبادئة قصيرة، وبيانات المالك، والنطاقات، والطوابع الزمنية، وحالة الإلغاء. يستطيع المسؤولون محدودو النطاق إنشاء وإلغاء مفاتيحهم فقط، بينما يستطيع المسؤولون الأعلى عرض وإلغاء كل المفاتيح.
الأدوات
يتضمن MCP الإداري كل أدوات القراءة العامة، لذلك لا يحتاج المسؤولون إلى إضافة MCP العام بشكل منفصل. الأدوات المتاحة دائما تعمل مع أي مفتاح MCP إداري صالح. الأدوات التي تتطلب اختيارها تحتاج إلى منح صريح في المفتاح.
get_site_overview(تتطلب اختيارها في المفتاح): يعرض أعداد الموقع والبوت، وقد تتضمن المكالمات الإدارية سياقا من لوحة التحكم حسب الصلاحيات.list_games(متاحة دائما): يعرض دليل الألعاب العام حسب اللغة.get_admin_capabilities(متاحة دائما): يعرض الأدوات المتاحة لهذا المفتاح ومعرفات الألعاب والقنوات الإعلامية وقنوات البث التي يمكنه استخدامها.search_news(تتطلب اختيارها في المفتاح): يبحث في الأخبار المنشورة للعامة أو في أخبار الإدارة الظاهرة ضمن نطاق المفتاح.get_tournament_status(تتطلب اختيارها في المفتاح): يعرض المباريات والترتيب لبطولة واحدة متتبعة.list_tournaments(متاحة دائما): يعرض ملخصات البطولات العامة النشطة.get_ewc_club_summary(تتطلب اختيارها في المفتاح): يعرض نقاط أندية EWC والألعاب المتأهلة والانتصارات وبيانات المناطق.get_ewc_club_standings(متاحة دائما): يعرض ترتيب بطولة أندية EWC الرسمي من آخر نسخة محفوظة.list_co_streams(متاحة دائما): يعرض مجموعات البثوث المشتركة العامة مع المباشر أولا.search_teams(متاحة دائما): يبحث في دليل الفرق العام باستخدام حقول عامة آمنة.search_players(متاحة دائما): يبحث في دليل اللاعبين العام باستخدام حقول عامة آمنة.get_public_ewc_leaderboard(متاحة دائما): يعرض لوحة توقعات EWC العامة الحالية.list_admin_queue(تتطلب اختيارها في المفتاح): يعرض التعليقات المبلغ عنها التي تحتاج إلى مراجعة إدارية.create_news_draft(تتطلب اختيارها في المفتاح): ينشئ مسودة خبر في لعبة أو قناة إعلامية مسموح بها، ويتطلب idempotencyKey لإعادة المحاولة بأمان، ولا ينشر مباشرة أبدا.update_stream_channel(تتطلب اختيارها في المفتاح): يحدث صفوف البث المشترك المسموح بها، ويتطلب idempotencyKey لإعادة المحاولة بأمان.
كل عملية كتابة ناجحة تسجل إدخالا في سجل تدقيق الإدارة باستخدام actor id بالشكل mcp:<key-id>:<owner-discord-id>.
مثال سير عمل
- استدع
get_admin_capabilities. - اختر slug لعبة أو قناة إعلامية أو id قناة بث مسموحا به من الاستجابة.
- استدع
create_news_draftأوupdate_stream_channelباستخدام المورد المسموح.
إعداد العميل
استخدم إعداد Streamable HTTP MCP الأصلي عندما يدعمه العميل.
للعملاء الذين يدعمون stdio فقط، مثل بعض إعدادات Claude Code أو Cursor أو VS Code أو Codex، استخدم mcp-remote:
{
"mcpServers": {
"esports-community-admin": {
"command": "npx",
"args": [
"-y",
"mcp-remote",
"https://esportscommunity.net/api/mcp",
"--header",
"Authorization: Bearer <MCP_KEY>"
]
}
}
}
لإعداد Codex عبر config.toml باستخدام stdio:
[mcp_servers.esports-community-admin]
command = "npx"
args = [
"-y",
"mcp-remote",
"https://esportscommunity.net/api/mcp",
"--header",
"Authorization: Bearer <MCP_KEY>",
]
لإصدارات Codex التي تدعم Streamable HTTP بشكل مباشر، ضع المفتاح الخام في متغير بيئة ثم أشر إلى اسم المتغير:
[mcp_servers.esports_community]
enabled = true
url = "https://esportscommunity.net/api/mcp"
bearer_token_env_var = "ESPORTS_COMMUNITY_MCP_TOKEN"
يجب أن يحتوي ESPORTS_COMMUNITY_MCP_TOKEN على مفتاح ec_mcp_live_… الخام، بدون Bearer.
أعد تشغيل عميل MCP بعد تغيير الإعدادات.
ملاحظات الأمان
- يستطيع المسؤولون إنشاء مفاتيح MCP لحسابهم المسجل فقط.
- يستطيع المسؤولون محدودو النطاق اختيار النطاقات المخصصة لهم فقط.
- يستطيع المسؤولون الأعلى عرض وإلغاء كل مفاتيح MCP.
- اجعل نطاق المفتاح على أصغر مجموعة أدوات أو ألعاب أو منصات مفيدة.
- تعامل مع مفاتيح MCP مثل بيانات اعتماد الإدارة.
- لا تلصق المفاتيح الحقيقية في لقطات الشاشة أو commits أو تعليقات issues أو prompts مشتركة.
- ألغ المفاتيح القديمة بعد تدويرها.