الـ MCP (Model Context Protocol) بيدي Claude وصول مباشر لخدمات خارجية في الوقت الفعلي. على عكس ملفات الذاكرة اللي بتخزّن context ثابت، اتصالات الـ MCP بتخلّي Claude يجيب بيانات حيّة — الـ GitHub issues بتاعتك، قاعدة بيانات الـ production، قنوات Slack، أو أي خدمة عندها MCP server. في الموديول ده، هنغطي إزاي تضيف servers، وتفهم الـ scopes، وتستخدم أدوات الـ MCP بفعالية.
إضافة MCP Servers
أسرع طريقة لإضافة server هي أمر claude mcp add. اختار الـ transport المناسب لنوع الـ server: http للـ servers البعيدة، stdio للـ processes اللي بتشتغل محليًا، وsse للـ servers البعيدة القديمة اللي لسه ما اتنقلتش لـ HTTP. (ملاحظة: الـ SSE متوقف — استخدم HTTP servers بدل كده حيث ما يكون متاحًا.) على Windows الأصلي، غالبًا هتحتاج تستخدم cmd /c لما تشغّل stdio servers بتستخدم npx.
# Add a remote HTTP server
claude mcp add --transport http notion https://mcp.notion.com/mcp
# Add a local Node.js server via stdio
claude mcp add --transport stdio github -- npx @modelcontextprotocol/server-github
# Add with an auth header
claude mcp add --transport http my-api https://api.example.com/mcp \
--header "Authorization: Bearer $MY_TOKEN"
أدر الـ servers بتاعتك بأوامر claude mcp list وclaude mcp get <name> وclaude mcp remove <name>. أمر /mcp جوه الـ session بيعرض الاتصالات النشطة وبيفعّل OAuth flows للـ servers اللي محتاجة authentication عبر المتصفح. من الأوامر المفيدة كمان: claude mcp reset-project-choices وclaude mcp add-from-claude-desktop وclaude mcp serve لما تحب Claude Code نفسه يشتغل كـ MCP server.
إعدادات الـ MCP بتتخزن في ~/.claude.json (ملف الإعدادات المحلي بتاعك) أو .mcp.json في root المشروع (مشترك مع الفريق). ملف .mcp.json بيتعمل له commit في git وبيطلب موافقة زملائك أول مرة يستعملوه. توسيع الـ environment variables بيشتغل في كل حقول الإعدادات — استخدم ${VAR:-default} كـ fallback:
{
"mcpServers": {
"github": {
"command": "npx",
"args": ["@modelcontextprotocol/server-github"],
"env": {
"GITHUB_TOKEN": "${GITHUB_TOKEN}"
}
}
}
}
الـ MCP connectors اللي متعرّفة في Claude.ai ممكن تظهر تلقائيًا في Claude Code. لو عرّفت server من خلال الـ web interface، هيبقى متاح في جلسات الـ CLI بتاعتك من غير إعداد محلي منفصل. ولو نفس الـ server متعرّف محليًا وعبر Claude.ai، التكرار بيتشال تلقائيًا عشان ما ينتهيش عندك اتصالين لنفس الخدمة.
الـ Scopes واكتشاف الأدوات
إعدادات الـ MCP ليها تلات scopes. الـ Local scope (بيتخزن جوه ~/.claude.json تحت المفتاح الخاص بالمشروع) خاص — أنت بس، في المشروع ده بس. الـ Project scope (.mcp.json) مشترك مع الفريق عبر git. الـ User scope (~/.claude.json بشكل عام) بيتطبق على كل مشاريعك.
لما نفس الـ server يتعرّف في أكتر من scope، الـ local configuration بيكسب. ده بيخليك تعدّل إعدادات server مشترك مع الفريق بنسخة محلية للاختبار من غير ما تأثر على أي حد تاني.
الـ MCP prompts بتظهر كـ slash commands بالنمط /mcp__servername__promptname. الـ MCP resources ممكن تتعامل معاها inline بالصيغة @server:protocol://resource/path. الـ Tool Search مفعّل بشكل افتراضي — أدوات MCP بتتأجّل وتُكتشف عند الطلب، فبس الأدوات اللي Claude يستخدمها فعلًا في المهمة الحالية بتدخل الـ context. كل description لأداة MCP وتعليمات الـ server محدودة بـ 2KB عشان ما يستهلكش أي server واحد context زيادة عن اللزوم.
الـ subagent-scoped MCP بيخليك تدي agents معينة وصول لـ servers باقي الـ session مش محتاجها:
---
name: data-analyst
description: Analyze production data
mcpServers:
- database
- playwright:
type: stdio
command: npx
args: ["-y", "@playwright/mcp@latest"]
---
أنماط استخدام عملية
لما يكون GitHub MCP متوصل، تقدر تتعامل مع الـ PRs والـ issues والـ commits بلغة طبيعية. Claude بيسأل الـ server، يجيب بيانات حيّة، ويرد:
List all open PRs that haven't been reviewed in more than 3 days.
Create an issue for the login timeout bug with medium priority.
/mcp__github__pr_review 456
الـ database MCP بيخليك تعمل queries بلغة طبيعية من غير ما تكتب SQL بنفسك:
Find all users who placed more than 5 orders in the last 30 days.
What's the average order value by country for Q1 2026?
للـ workflows المعقدة، أكتر من MCP server بيشتغلوا مع بعض بشكل طبيعي. workflow يومي ممكن: يجيب PR metrics من GitHub MCP، ويعمل query لبيانات المبيعات من database MCP، ويكتب تقرير عبر filesystem MCP، وينشره عبر Slack MCP — كل ده في session واحدة.
الـ MCP elicitation بتسمح لـ server يوقف الـ workflow ويطلب input منظم من المستخدم. لما server يحتاج معلومة مش قادر يجيبها لوحده — تصريح OAuth، أو تأكيد قبل عملية خطيرة، أو form بـ parameters خاصة بالمشروع — بيعمل dialog تفاعلي. المستخدم بيشوف حقول form أو URL للمتصفح، بيدي الرد، والـ server بيكمّل من حيث ما وقف. الـ hooks Elicitation وElicitationResult بيخلوك تعترض أو تعدّل الحوارات دي برمجيًا.
أفضل ممارسات الأمان: استخدم دايمًا environment variables للـ credentials، ما تعملش commit لـ tokens في git أبدًا، استخدم read-only tokens لما تحتاج تقرأ بيانات بس، وحدد وصول الـ server للحد الأدنى المطلوب. للمؤسسات، managed-mcp.json بيخلّي المسؤولين يفرضوا allowlist من الـ servers المسموح بيها على مستوى المنظمة.
من الإمكانيات المهمة التانية في الـ MCP: قوائم الأدوات ممكن تتحدث ديناميكيًا لما الـ servers تعلن عن تغييرات، والـ outputs الكبيرة من الـ MCP بتتقطع عشان ما تنفخش الـ context.