Rules وفهرسة قاعدة الكود وMCP
تهيئة Cursor Rules لفرض اتفاقيات المشروع، واستخدام فهرسة قاعدة الكود للبحث الدلالي، وتوصيل خوادم MCP لتوسيع قدرات Cursor.
تهيئة Cursor Rules لفرض اتفاقيات المشروع، واستخدام فهرسة قاعدة الكود للبحث الدلالي، وتوصيل خوادم MCP لتوسيع قدرات Cursor.
تتيح لك Cursor Rules ضبط تعليمات دائمة تُطبَّق على كل جلسة chat و Agent في مشروعك. إنها ما يعادل إعطاء Cursor إحاطة دائمة حول كيفية كتابة فريقك للكود.
تُخزَّن Rules في .cursor/rules/ كملفات Markdown. يمكنك إنشاء أكبر عدد تريده من ملفات القواعد، منظمة حسب الموضوع.
أنشئ ملف .cursor/rules/general.md في جذر مشروعك:
# Project Rules
## Technology Stack
- Framework: Next.js 15 with App Router
- Styling: Tailwind CSS v4 (no tailwind.config.js)
- Database: Drizzle ORM with Postgres
- Auth: Better Auth
## Coding Conventions
- Use `const` and arrow functions for components
- Always use TypeScript strict mode — no `any`
- Co-locate component tests in `__tests__/` adjacent to the component
- Import order: React → external libraries → internal modules
## Do Not
- Do not use `useEffect` for data fetching — use React Server Components or TanStack Query
- Do not add barrel index files (no `components/index.ts`)يدعم Cursor ثلاثة أنواع من القواعد:
| النوع | موقع الملف | متى يُطبَّق |
|---|---|---|
| Always | .cursor/rules/*.md | كل طلب chat و Agent |
| Auto | .cursor/rules/*.md مع frontmatter globs | فقط عند فتح الملفات المطابقة |
| Manual | مُشار إليه عبر @rules/filename في chat | فقط عند ذكره صراحةً |
للقواعد المطبّقة تلقائياً، أضف frontmatter glob:
---
globs: ["**/*.test.ts", "**/*.spec.ts"]
---
# Test File Rules
Always use Vitest. Mock external services with `vi.mock()`.
Use `describe` blocks for grouping and `it` for individual cases.تنشط هذه القاعدة فقط عند العمل على ملفات الاختبار.
تُقرأ Rules في كل طلب وتُحسب ضمن نافذة السياق. احرص على إيجاز القواعد وتركيزها — تجنب إضافة وثائق مرجعية أو أمثلة كبيرة مباشرة في ملفات القواعد.
عند فتح مشروع، يبني Cursor فهرساً دلالياً لكودك. يعمل هذا الفهرس على تشغيل قدرة البحث @codebase في Chat.
في Chat، استخدم @codebase متبوعاً بسؤالك للبحث عبر جميع الملفات المفهرسة:
@codebase How does this app handle pagination?
يبحث Cursor في الفهرس بشكل دلالي — يجد الكود المتعلق بالترقيم حتى لو لم تشمل أسماء المتغيرات كلمة "pagination" حرفياً.
يمكنك أيضاً استخدام @codebase في وضع Agent للسماح لـ Cursor باستكشاف قاعدة الكود باستقلالية أثناء تخطيط نهجه:
@codebase Refactor all API calls to use the centralized httpClient utility
سيمسح Agent قاعدة الكود، ويجد كل نمط استدعاء API، ويعيد كتابتها.
يعيش الفهرس محلياً على جهازك ولا يُرسل إلى أي خادم حتى تُجري طلب chat.
قد تعاني المستودعات الكبيرة جداً (أكثر من 100 ألف ملف) من فهرسة أبطأ أو غير مكتملة. استخدم .cursorignore (بنفس صياغة .gitignore) لاستبعاد node_modules ومخرجات البناء والملفات المولّدة من الفهرس.
أنشئ .cursorignore في جذر مشروعك لاستبعاد الملفات من الفهرس:
node_modules/
.next/
dist/
*.lock
*.log
بروتوكول سياق النموذج (MCP) هو معيار مفتوح يتيح لك توصيل أدوات خارجية ومصادر بيانات بـ Cursor. بمجرد الاتصال، يمكن لوضع Agent في Cursor استدعاء هذه الأدوات كجزء من سير عمله.
يأتي Cursor مع عدة تكاملات MCP مدمجة:
تُهيَّأ خوادم MCP في .cursor/mcp.json:
{
"mcpServers": {
"github": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-github"],
"env": {
"GITHUB_TOKEN": "${GITHUB_TOKEN}"
}
},
"postgres": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-postgres", "postgresql://localhost/mydb"]
}
}
}بمجرد تهيئة خادم MCP، يمكنك طرح أسئلة بلغة طبيعية في Chat وسيستخدم Agent أدوات الخادم للإجابة عليها — استعلام قاعدة بيانات، أو قراءة مشكلات GitHub، أو جلب بيانات خارجية كجزء من مهمة أكبر.
تمنح Rules Cursor تعليمات دائمة خاصة بالمشروع. تتيح فهرسة قاعدة الكود البحث الدلالي عبر مشروعك بأكمله. تُوسّع خوادم MCP Cursor بمصادر بيانات وأدوات خارجية. معاً تجعل هذه الثلاثة Cursor على دراية عميقة بسياق مشروعك وقادراً على العمل مع بيئة التطوير الكاملة الخاصة بك.