Claude Code مقابل Cursor
Claude Code (سطر أوامر Terminal) مقابل Cursor (محرر) — مقارنة أدوات البرمجة بالذكاء الاصطناعي. الوكلاء المتعددون، وضع التخطيط، Composer، تكامل بيئة التطوير، وسير عمل المطور في الإنتاج.
حزمة تعليمات وسياق وسكربتات تُحمَّل عند الحاجة
بروتوكول مفتوح يربط العميل الذكي بأنظمة خارجية حية
الاثنان ليسا منافسين بل طبقتان: المهارة تحل مسألة "كيف يُنجَز العمل"، وMCP يحل مسألة "إلى ماذا يمكن الوصول". إذا أردت تعليم إجراء متكرر أو معرفة خاصة بمؤسستك، اكتب مهارة — احتكاك منخفض وتكلفة سياق منخفضة. إذا احتجت بيانات حية أو تنفيذ عملية في نظام خارجي، أنشئ خادم MCP؛ فالملف الثابت لا يمكنه أبدًا جلب بيانات آنية. القرار اليوم يقوم على سؤال "أي أداة تحل أي مشكلة"؛ والاثنان لا يستبعد أحدهما الآخر: يمكن للمهارة أن تصف الخطوة التي تستدعي أداة MCP.
| الفئة | Agent Skills | MCP (Model Context Protocol) |
|---|---|---|
| الأداء | 8/10 | 6/10 |
| سهولة التعلّم | 8/10 | 6/10 |
| النظام البيئي | 5/10 | 9/10 |
| المجتمع | 5/10 | 9/10 |
| سوق العمل | 4/10 | 7/10 |
| الاستدامة المستقبلية | 7/10 | 9/10 |
# بنية دليل Agent Skill ونموذج SKILL.md
# المصدر: صيغة المهارة في مستودع anthropics/skills (SKILL.md + frontmatter)
pr-checklist/
├── SKILL.md
├── reference.md
└── scripts/
└── validate.py
---
# محتوى SKILL.md
---
name: pr-checklist
description: Use when opening a pull request in this repo, to apply the team's commit format, required checklist items, and reviewer assignment rules.
---
# Pull Request Checklist
When opening a PR:
1. Commit messages follow Conventional Commits (`feat:`, `fix:`, `refactor:`).
2. Run `scripts/validate.py` before pushing to check the checklist file.
3. Assign at least one reviewer from the CODEOWNERS file.
4. Link the related issue in the PR description.
See `reference.md` for the full checklist template and edge cases.
---
# scripts/validate.py — يعمل فقط عند الحاجة
import sys
def validate_checklist(pr_body: str) -> list[str]:
required = ["## Summary", "## Test plan"]
missing = [item for item in required if item not in pr_body]
return missing
if __name__ == "__main__":
body = sys.stdin.read()
missing = validate_checklist(body)
if missing:
print(f"Missing sections: {missing}")
sys.exit(1)
print("Checklist OK")// خادم MCP — أداة "get_order_status" بسيطة عبر TypeScript SDK
// المصدر: modelcontextprotocol/typescript-sdk README (حزمة الخادم v2)
import { McpServer } from "@modelcontextprotocol/server";
import { StdioServerTransport } from "@modelcontextprotocol/server/stdio";
import * as z from "zod/v4";
const server = new McpServer({
name: "orders-server",
version: "1.0.0",
});
server.registerTool(
"get_order_status",
{
title: "Get Order Status",
description: "Fetch the current status of a customer order from the live database",
inputSchema: z.object({
orderId: z.string().describe("The order ID to look up"),
}),
},
async ({ orderId }) => {
// db: عميل قاعدة البيانات الخاص بالمشروع (مثل Prisma client)
const order = await db.orders.findUnique({ where: { id: orderId } });
if (!order) {
return {
content: [{ type: "text", text: `Order ${orderId} not found` }],
isError: true,
};
}
return {
content: [
{
type: "text",
text: `Order ${orderId}: status=${order.status}, updatedAt=${order.updatedAt.toISOString()}`,
},
],
};
}
);
const transport = new StdioServerTransport();
await server.connect(transport);الاثنان ليسا منافسين بل طبقتان: المهارة تحل مسألة "كيف يُنجَز العمل"، وMCP يحل مسألة "إلى ماذا يمكن الوصول". إذا أردت تعليم إجراء متكرر أو معرفة خاصة بمؤسستك، اكتب مهارة — احتكاك منخفض وتكلفة سياق منخفضة. إذا احتجت بيانات حية أو تنفيذ عملية في نظام خارجي، أنشئ خادم MCP؛ فالملف الثابت لا يمكنه أبدًا جلب بيانات آنية. القرار اليوم يقوم على سؤال "أي أداة تحل أي مشكلة"؛ والاثنان لا يستبعد أحدهما الآخر: يمكن للمهارة أن تصف الخطوة التي تستدعي أداة MCP.
احصل على استشارة مجانيةالمهارة (Skill) هي حزمة تعليمات/إجراء ثابتة تُحمَّل للعميل الذكي عند الحاجة (ملف SKILL.md + ملفات مساندة)؛ أما MCP فهو بروتوكول يربط العميل الذكي بنظام خارجي حي (قاعدة بيانات، API، نظام ملفات). المهارة تحل "كيف يُنجَز العمل"، وMCP يحل "إلى ماذا يمكن الوصول".