خوادم MCP
أضف أدوات MCP محلية وبعيدة.
يمكنك إضافة أدوات خارجية إلى OpenCode باستخدام Model Context Protocol، أو MCP. يدعم OpenCode خوادم محلية وبعيدة.
بعد إضافتها، تصبح أدوات MCP متاحة تلقائيا للـ LLM إلى جانب الأدوات المضمنة.
تنبيهات
عند استخدام خادم MCP فإنه يضيف إلى السياق. وقد يتراكم ذلك بسرعة إذا كان لديك الكثير من الأدوات. لذلك نوصي بالتحلّي بالحذر عند اختيار خوادم MCP التي تستخدمها.
تميل بعض خوادم MCP، مثل خادم GitHub MCP، إلى إضافة الكثير من الرموز (tokens) وقد تتجاوز حد السياق بسهولة.
التمكين
يمكنك تعريف خوادم MCP في إعدادات OpenCode ضمن mcp. أضف كل خادم MCP باسم فريد. ويمكنك الإشارة إلى ذلك الخادم بالاسم عند توجيه الطلب إلى الـ LLM.
{ "$schema": "https://opencode.ai/config.json", "mcp": { "name-of-mcp-server": { // ... "enabled": true, }, "name-of-other-mcp-server": { // ... }, },}يمكنك أيضا تعطيل خادم عبر ضبط enabled على false. يفيد ذلك إذا أردت تعطيله مؤقتا دون إزالته من إعداداتك.
تجاوز القيم الافتراضية البعيدة
يمكن للمنظمات توفير خوادم MCP الافتراضية عبر نقطة النهاية .well-known/opencode الخاصة بها. قد تكون هذه الخوادم معطّلة افتراضيا، مما يتيح للمستخدمين تفعيل ما يحتاجونه فقط.
لتفعيل خادم معيّن من الإعدادات البعيدة الخاصة بمؤسستك، أضفه إلى إعداداتك المحلية مع enabled: true:
{ "$schema": "https://opencode.ai/config.json", "mcp": { "jira": { "type": "remote", "url": "https://jira.example.com/mcp", "enabled": true } }}تتغلب قيم إعداداتك المحلية على القيم الافتراضية البعيدة. راجع أولوية الإعدادات لمزيد من التفاصيل.
محلي
أضف خوادم MCP المحلية عبر ضبط type على "local" ضمن كائن mcp.
{ "$schema": "https://opencode.ai/config.json", "mcp": { "my-local-mcp-server": { "type": "local", // Or ["bun", "x", "my-mcp-command"] "command": ["npx", "-y", "my-mcp-command"], "enabled": true, "environment": { "MY_ENV_VAR": "my_env_var_value", }, }, },}الأمر command هو الطريقة التي يتم بها تشغيل خادم MCP المحلي. ويمكنك أيضا تمرير قائمة بمتغيرات البيئة.
على سبيل المثال، إليك كيفية إضافة خادم MCP التجريبي @modelcontextprotocol/server-everything.
{ "$schema": "https://opencode.ai/config.json", "mcp": { "mcp_everything": { "type": "local", "command": ["npx", "-y", "@modelcontextprotocol/server-everything"], }, },}ولاستخدامه يمكنني إضافة use the mcp_everything tool إلى طلباتي.
use the mcp_everything tool to add the number 3 and 4الخيارات
فيما يلي جميع الخيارات المتاحة لتهيئة خادم MCP محلي.
| الخيار | النوع | مطلوب | الوصف |
|---|---|---|---|
type | String | Y | نوع اتصال خادم MCP، ويجب أن يكون "local". |
command | Array | Y | الأمر والوسائط اللازمة لتشغيل خادم MCP. |
environment | Object | متغيرات البيئة التي يتم تعيينها عند تشغيل الخادم. | |
enabled | Boolean | تفعيل خادم MCP أو تعطيله عند بدء التشغيل. | |
timeout | Number | المهلة بالمللي ثانية لجلب الأدوات من خادم MCP. القيمة الافتراضية 5000 (5 ثوانٍ). |
بعيد
أضف خوادم MCP البعيدة عبر ضبط type على "remote".
{ "$schema": "https://opencode.ai/config.json", "mcp": { "my-remote-mcp": { "type": "remote", "url": "https://my-mcp-server.com", "enabled": true, "headers": { "Authorization": "Bearer MY_API_KEY" } } }}يمثل url عنوان URL لخادم MCP البعيد، وباستخدام خيار headers يمكنك تمرير قائمة من الرؤوس (headers).
الخيارات
| الخيار | النوع | مطلوب | الوصف |
|---|---|---|---|
type | String | Y | نوع اتصال خادم MCP، ويجب أن يكون "remote". |
url | String | Y | عنوان URL لخادم MCP البعيد. |
enabled | Boolean | تفعيل خادم MCP أو تعطيله عند بدء التشغيل. | |
headers | Object | الرؤوس التي يتم إرسالها مع الطلب. | |
oauth | Object | إعدادات مصادقة OAuth. راجع قسم OAuth أدناه. | |
timeout | Number | المهلة بالمللي ثانية لجلب الأدوات من خادم MCP. القيمة الافتراضية 5000 (5 ثوانٍ). |
OAuth
يتولى OpenCode تلقائيا معالجة مصادقة OAuth لخوادم MCP البعيدة. عندما يتطلب خادم ما المصادقة، سيقوم OpenCode بما يلي:
- اكتشاف استجابة 401 وبدء تدفق OAuth
- استخدام Dynamic Client Registration (RFC 7591) إذا كان الخادم يدعمه
- تخزين الرموز (tokens) بشكل آمن للطلبات المستقبلية
تلقائي
بالنسبة لمعظم خوادم MCP التي تدعم OAuth، لا تحتاج إلى إعدادات خاصة. ما عليك سوى تهيئة الخادم البعيد:
{ "$schema": "https://opencode.ai/config.json", "mcp": { "my-oauth-server": { "type": "remote", "url": "https://mcp.example.com/mcp" } }}إذا كان الخادم يتطلب المصادقة، فسيطلب منك OpenCode المصادقة عند أول محاولة لاستخدامه. وإذا لم يحدث ذلك، يمكنك تشغيل التدفق يدويا باستخدام opencode mcp auth <server-name>.
مُسجَّل مسبقا
إذا كانت لديك بيانات اعتماد العميل من موفّر خادم MCP، يمكنك تهيئتها:
{ "$schema": "https://opencode.ai/config.json", "mcp": { "my-oauth-server": { "type": "remote", "url": "https://mcp.example.com/mcp", "oauth": { "clientId": "{env:MY_MCP_CLIENT_ID}", "clientSecret": "{env:MY_MCP_CLIENT_SECRET}", "scope": "tools:read tools:execute" } } }}المصادقة
يمكنك تشغيل المصادقة يدويا أو إدارة بيانات الاعتماد.
صادِق مع خادم MCP معيّن:
opencode mcp auth my-oauth-serverاعرض جميع خوادم MCP وحالة المصادقة الخاصة بها:
opencode mcp listاحذف بيانات الاعتماد المخزنة:
opencode mcp logout my-oauth-serverسيفتح أمر mcp auth متصفحك للتفويض. بعد إكمال التفويض، سيخزّن OpenCode الرموز بشكل آمن في ~/.local/share/opencode/mcp-auth.json.
تعطيل OAuth
إذا أردت تعطيل OAuth التلقائي لخادم ما (على سبيل المثال، للخوادم التي تستخدم مفاتيح API بدلا من ذلك)، فاضبط oauth على false:
{ "$schema": "https://opencode.ai/config.json", "mcp": { "my-api-key-server": { "type": "remote", "url": "https://mcp.example.com/mcp", "oauth": false, "headers": { "Authorization": "Bearer {env:MY_API_KEY}" } } }}خيارات OAuth
| الخيار | النوع | الوصف |
|---|---|---|
oauth | Object | false | كائن إعدادات OAuth، أو false لتعطيل الاكتشاف التلقائي لـ OAuth. |
clientId | String | معرّف عميل OAuth. إذا لم يُحدَّد، ستتم محاولة التسجيل الديناميكي للعميل. |
clientSecret | String | سرّ عميل OAuth، إذا كان مطلوبا من خادم التفويض. |
scope | String | نطاقات OAuth المطلوبة أثناء التفويض. |
تصحيح الأخطاء
إذا فشل خادم MCP بعيد في المصادقة، يمكنك تشخيص المشكلة باستخدام:
# View auth status for all OAuth-capable serversopencode mcp auth list
# Debug connection and OAuth flow for a specific serveropencode mcp debug my-oauth-serverيعرض أمر mcp debug حالة المصادقة الحالية، ويختبر اتصال HTTP، ويحاول تنفيذ تدفق اكتشاف OAuth.
الإدارة
تتوفر خوادم MCP لديك كأدوات داخل OpenCode إلى جانب الأدوات المضمنة. لذا يمكنك إدارتها عبر إعدادات OpenCode مثل أي أداة أخرى.
عام
هذا يعني أنه يمكنك تفعيلها أو تعطيلها على مستوى عام.
{ "$schema": "https://opencode.ai/config.json", "mcp": { "my-mcp-foo": { "type": "local", "command": ["bun", "x", "my-mcp-command-foo"] }, "my-mcp-bar": { "type": "local", "command": ["bun", "x", "my-mcp-command-bar"] } }, "tools": { "my-mcp-foo": false }}يمكننا أيضا استخدام نمط glob لتعطيل جميع خوادم MCP المطابقة.
{ "$schema": "https://opencode.ai/config.json", "mcp": { "my-mcp-foo": { "type": "local", "command": ["bun", "x", "my-mcp-command-foo"] }, "my-mcp-bar": { "type": "local", "command": ["bun", "x", "my-mcp-command-bar"] } }, "tools": { "my-mcp*": false }}هنا نستخدم نمط glob my-mcp* لتعطيل جميع خوادم MCP.
لكل وكيل
إذا كان لديك عدد كبير من خوادم MCP فقد ترغب في تفعيلها لكل وكيل على حدة وتعطيلها على المستوى العام. للقيام بذلك:
- عطّلها كأداة على المستوى العام.
- في إعدادات الوكيل، فعّل خادم MCP كأداة.
{ "$schema": "https://opencode.ai/config.json", "mcp": { "my-mcp": { "type": "local", "command": ["bun", "x", "my-mcp-command"], "enabled": true } }, "tools": { "my-mcp*": false }, "agent": { "my-agent": { "tools": { "my-mcp*": true } } }}أنماط Glob
يستخدم نمط glob أنماطا بسيطة من مطابقة glob:
*يطابق صفرا أو أكثر من أي محرف (على سبيل المثال،"my-mcp*"يطابقmy-mcp_searchوmy-mcp_listوغيرها.)?يطابق محرفا واحدا بالضبط- جميع المحارف الأخرى تُطابق حرفيا
أمثلة
فيما يلي أمثلة لبعض خوادم MCP الشائعة. يمكنك إرسال PR إذا أردت توثيق خوادم أخرى.
Sentry
أضف خادم MCP الخاص بـ Sentry للتفاعل مع مشاريع Sentry والقضايا (issues) الخاصة بك.
{ "$schema": "https://opencode.ai/config.json", "mcp": { "sentry": { "type": "remote", "url": "https://mcp.sentry.dev/mcp", "oauth": {} } }}بعد إضافة الإعدادات، قم بالمصادقة مع Sentry:
opencode mcp auth sentryسيؤدي ذلك إلى فتح نافذة متصفح لإكمال تدفق OAuth وربط OpenCode بحساب Sentry الخاص بك.
بعد المصادقة، يمكنك استخدام أدوات Sentry في طلباتك للاستعلام عن القضايا والمشاريع وبيانات الأخطاء.
Show me the latest unresolved issues in my project. use sentryContext7
أضف خادم MCP الخاص بـ Context7 للبحث في المستندات.
{ "$schema": "https://opencode.ai/config.json", "mcp": { "context7": { "type": "remote", "url": "https://mcp.context7.com/mcp" } }}إذا كنت قد سجلت للحصول على حساب مجاني، يمكنك استخدام مفتاح API للحصول على حدود أعلى لمعدل الطلبات.
{ "$schema": "https://opencode.ai/config.json", "mcp": { "context7": { "type": "remote", "url": "https://mcp.context7.com/mcp", "headers": { "CONTEXT7_API_KEY": "{env:CONTEXT7_API_KEY}" } } }}هنا نفترض أنك عيّنت متغير البيئة CONTEXT7_API_KEY.
أضف use context7 إلى طلباتك لاستخدام خادم MCP الخاص بـ Context7.
Configure a Cloudflare Worker script to cache JSON API responses for five minutes. use context7بدلا من ذلك، يمكنك إضافة شيء مثل هذا إلى AGENTS.md.
When you need to search docs, use `context7` tools.Grep by Vercel
أضف خادم MCP الخاص بـ Grep by Vercel للبحث في مقتطفات الشيفرة على GitHub.
{ "$schema": "https://opencode.ai/config.json", "mcp": { "gh_grep": { "type": "remote", "url": "https://mcp.grep.app" } }}وبما أننا سمّينا خادم MCP الخاص بنا gh_grep، يمكنك إضافة use the gh_grep tool إلى طلباتك لجعل الوكيل يستخدمه.
What's the right way to set a custom domain in an SST Astro component? use the gh_grep toolبدلا من ذلك، يمكنك إضافة شيء مثل هذا إلى AGENTS.md.
If you are unsure how to do something, use `gh_grep` to search code examples from GitHub.