Skills: تطوير الأدوات المخصصة
آخر تحديث: 2026-08-31
الأدوات المدمجة لا تكفي؟ ابنِ أدواتك الخاصة — بروتوكول MCP يعني أن قدرات المهارات بلا حدود.
1. أساسيات بروتوكول MCP
(1) ما هو MCP
بروتوكول سياق النموذج هو البروتوكول القياسي لأدوات الذكاء الاصطناعي:
TEXT
📖 للعرض فقط
بنية MCP
┌──────────┐ بروتوكول MCP ┌──────────────┐
│ عميل الذكاء │ ←──────────────→ │ خادم MCP │
│ (Claude) │ │ (أداة مخصصة) │
└──────────┘ └──────────────┘
↕
┌──────────────┐
│ خدمة خارجية │
│ (DB/API/ملف) │
└──────────────┘
(2) أنواع الأدوات
| النوع | الوصف | مثال |
|---|---|---|
| أدوات الموارد | توفير قراءة البيانات | استعلامات قواعد البيانات، أنظمة الملفات |
| أدوات الإجراءات | تنفيذ العمليات | إرسال بريد، إنشاء تذاكر |
| أدوات القوالب | توفير قوالب | قوالب التقارير، قوائم فحص المراجعة |
2. تطوير أدوات مخصصة
(1) تحليل المتطلبات
TEXT
📖 للعرض فقط
تدفق تطوير الأدوات المخصصة
1. حدد الاحتياجات التي لا تستطيع الأدوات المدمجة تلبيتها
2. حدد مدخلات/مخرجات الأداة
3. اختر التنفيذ (Node.js / Python)
4. نفّذ منطق الأداة
5. كوّن خادم MCP
6. اربط واستخدم في المهارة
(2) التنفيذ الأدنى
TYPESCRIPT
// mcp-server-example/index.ts
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
const server = new McpServer({ name: "db-query", version: "1.0.0" });
server.tool("query_database", { sql: { type: "string" } }, async ({ sql }) => {
const result = await executeQuery(sql);
return { content: [{ type: "text", text: JSON.stringify(result) }] };
});
const transport = new StdioServerTransport();
await server.connect(transport);
(3) التكوين والدمج
JSON
{
"mcpServers": {
"db-query": {
"command": "node",
"args": ["./mcp-servers/db-query/index.js"],
"env": {
"DATABASE_URL": "postgresql://localhost/mydb"
}
}
}
}
3. مبادئ تصميم الأدوات
(1) المسؤولية الواحدة
كل أداة تفعل شيئًا واحدًا:
| ✅ تصميم جيد | ❌ تصميم سيء |
|---|---|
query_database |
do_database_stuff |
send_email |
communicate |
search_logs |
find_stuff |
(2) التحقق من المدخلات
TYPESCRIPT
server.tool("query_database", {
sql: {
type: "string",
description: "عبارة استعلام SQL (SELECT فقط)",
validate: (sql: string) => {
if (/^\s*(DROP|DELETE|UPDATE|INSERT|ALTER)/i.test(sql)) {
throw new Error("يسمح فقط باستعلامات SELECT");
}
}
}
}, handler);
(3) معالجة الأخطاء
TYPESCRIPT
async ({ sql }) => {
try {
const result = await executeQuery(sql);
return { content: [{ type: "text", text: JSON.stringify(result) }] };
} catch (error) {
return {
content: [{ type: "text", text: `فشل الاستعلام: ${error.message}` }],
isError: true
};
}
};
4. تصحيح الأدوات ونشرها
(1) التصحيح المحلي
BASH
# تشغيل خادم MCP مباشرة للاختبار
node ./mcp-servers/db-query/index.js
# إرسال طلب اختبار
echo '{"method":"tools/list"}' | node ./mcp-servers/db-query/index.js
(2) التسجيل
TYPESCRIPT
// إضافة وسيط تسجيل
server.tool("query_database", { sql: { type: "string" } }, async ({ sql }) => {
console.error(`[DB-QUERY] SQL: ${sql}`);
const start = Date.now();
const result = await executeQuery(sql);
console.error(`[DB-QUERY] المدة: ${Date.now() - start}ms`);
return { content: [{ type: "text", text: JSON.stringify(result) }] };
});
(3) النشر والتوزيع
TEXT
📖 للعرض فقط
طرق النشر
├── حزمة npm: npm publish @your-org/mcp-server-xxx
├── Docker: docker build + docker push
├── مستودع Git: استنساخ مباشر واستخدام
└── قالب تكوين: توفير قالب تكوين JSON
5. ممارسة الأدوات المخصصة
▶ مثال: أداة بحث السجلات
طوّرت Alice أداة MCP لبحث السجلات:
YAML
---
name: log-analyzer
description: "تحليل السجلات: بحث، تصفية، إحصائيات"
tools:
- Read
- search_logs # أداة MCP مخصصة
---
قال Bob: "قيمة الأدوات المخصصة في ربط الذكاء الاصطناعي بأنظمتك الخاصة — حيث لا تستطيع الأدوات العامة الوصول، الأدوات المخصصة تملأ الفجوة."
❓ الأسئلة الشائعة
س هل يجب استخدام TypeScript لأدوات MCP؟
ج لا. بروتوكول MCP هو JSON-RPC؛ أي لغة يمكن تنفيذه. حزم SDK الرسمية توفر إصدارات TypeScript وPython.
س هل للأدوات المخصصة مخاطر أمنية؟
ج نعم. دائمًا نفّذ التحقق من المدخلات والتحكم في الوصول داخل الأداة؛ لا تترك الأمان كليًا لقوالب المهارة.
س هل يمكن لخادم MCP واحد توفير أدوات متعددة؟
ج نعم. لكن نوصي بألا تزيد الأدوات عن 5 لكل خادم للحفاظ على تركيز المسؤولية.
📖 ملخص
- بروتوكول MCP: بروتوكول اتصال قياسي بين عملاء الذكاء الاصطناعي والأدوات المخصصة
- تدفق التطوير: تحليل المتطلبات → تنفيذ → تكوين → تصحيح → نشر
- مبادئ التصميم: مسؤولية واحدة، تحقق من المدخلات، معالجة الأخطاء
- القيمة الأساسية: ربط الذكاء الاصطناعي بالأنظمة الخاصة، توسيع حدود قدرات المهارات
📝 تمارين
- أساسي (⭐): استخدم MCP SDK لإنشاء أداة Hello World بسيطة ودمجها مع مهارة.
- متوسط (⭐⭐): طوّر أداة MCP لاستعلام قاعدة بيانات مع التحقق من المدخلات ومعالجة الأخطاء.
- متقدم (⭐⭐⭐): طوّر أداة MCP كاملة لتحليل السجلات تدعم البحث والتصفية والإحصائيات، مع توثيق التصحيح والنشر.