
خادم MCP يوفر إمكانيات استخراج بيانات الويب والزحف والبحث لوكلاء الذكاء الاصطناعي. يدعم استخراج البيانات المنظمة والتصفح التفاعلي والبحث العميق عبر API موحدة.
خادم بروتوكول سياق النموذج (MCP) الذي يجلب Firecrawl لوكلاء الذكاء الاصطناعي المتوافقين مع MCP — ابحث، واكشط، وتفاعل مع الويب المباشر للحصول على سياق نظيف وجاهز للوكيل.
شكر كبير لـ @vrknetha و @knacklabs على التنفيذ الأولي!
جرب خادم MCP الخاص بنا على منصة MCP.so التشغيلية أو على Klavis AI.
اتصل بالخادم المُستضاف عن بُعد دون أي إعداد:``` https://mcp.firecrawl.dev/v2/mcp
في الطبقة المجانية بدون مفتاح، تعمل أدوات `scrape` و `search` و `interact` بدون مفتاح API (مع تحديد المعدل). أما الأدوات الأخرى مثل `crawl` و `map` و `agent` و `extract` فلا تزال تحتاج إلى مفتاح.
يُفضَّل استخدام مفتاح API أو OAuth كلما أمكن للمستخدم التسجيل. فهو يفتح مجموعة الأدوات الكاملة وحدود أعلى. باستخدام المفتاح، استخدم:```
https://mcp.firecrawl.dev/{FIRECRAWL_API_KEY}/v2/mcp
راجع وثائق خادم MCP و دليل إعداد الوكيل للحصول على تفاصيل الإعداد.
env FIRECRAWL_API_KEY=fc-YOUR_API_KEY npx -y firecrawl-mcp
### التثبيت اليدوي```bash
npm install -g firecrawl-mcp
تكوين Cursor 🖥️ ملاحظة: يتطلب إصدار Cursor 0.45.6+ للحصول على أحدث إرشادات التكوين، يُرجى الرجوع إلى وثائق Cursor الرسمية حول تكوين خوادم MCP: دليل تكوين خادم MCP لـ Cursor
لتكوين Firecrawl MCP في Cursor v0.48.6
لتكوين Firecrawl MCP في Cursor v0.45.6
env FIRECRAWL_API_KEY=your-api-key npx -y firecrawl-mcpإذا كنت تستخدم Windows وتواجه مشاكل، جرب
cmd /c "set FIRECRAWL_API_KEY=your-api-key && npx -y firecrawl-mcp"
استبدل your-api-key بمفتاح API الخاص بك من Firecrawl. إذا لم يكن لديك واحد بعد، يمكنك إنشاء حساب والحصول عليه من https://www.firecrawl.dev/app/api-keys
بعد الإضافة، قم بتحديث قائمة خوادم MCP لرؤية الأدوات الجديدة. سيقوم وكيل Composer تلقائيًا باستخدام Firecrawl MCP عند الاقتضاء، ولكن يمكنك طلب ذلك صراحةً بوصف احتياجاتك من تجريف الويب. يمكنك الوصول إلى Composer عبر Command+L (Mac)، اختر "Agent" بجوار زر الإرسال، وأدخل استفسارك.
أضف هذا إلى ملف ./codeium/windsurf/model_config.json:```json
{
"mcpServers": {
"mcp-server-firecrawl": {
"command": "npx",
"args": ["-y", "firecrawl-mcp"],
"env": {
"FIRECRAWL_API_KEY": "YOUR_API_KEY"
}
}
}
}
### التشغيل باستخدام Streamable HTTP Local Mode
لتشغيل الخادم باستخدام Streamable HTTP محليًا بدلاً من نقل stdio الافتراضي:```bash
env HTTP_STREAMABLE_SERVER=true FIRECRAWL_API_KEY=fc-YOUR_API_KEY npx -y firecrawl-mcp
استخدم الرابط: http://localhost:3000/mcp
لتثبيت Firecrawl لـ Claude Desktop تلقائيًا عبر Smithery:```bash npx -y @smithery/cli install @mendableai/mcp-server-firecrawl --client claude
### التشغيل في VS Code
للتثبيت بنقرة واحدة، انقر على أحد أزرار التثبيت أدناه...
[](https://insiders.vscode.dev/redirect/mcp/install?name=firecrawl&inputs=%5B%7B%22type%22%3A%22promptString%22%2C%22id%22%3A%22apiKey%22%2C%22description%22%3A%22Firecrawl%20API%20Key%22%2C%22password%22%3Atrue%7D%5D&config=%7B%22command%22%3A%22npx%22%2C%22args%22%3A%5B%22-y%22%2C%22firecrawl-mcp%22%5D%2C%22env%22%3A%7B%22FIRECRAWL_API_KEY%22%3A%22%24%7Binput%3AapiKey%7D%22%7D%7D) [](https://insiders.vscode.dev/redirect/mcp/install?name=firecrawl&inputs=%5B%7B%22type%22%3A%22promptString%22%2C%22id%22%3A%22apiKey%22%2C%22description%22%3A%22Firecrawl%20API%20Key%22%2C%22password%22%3Atrue%7D%5D&config=%7B%22command%22%3A%22npx%22%2C%22args%22%3A%5B%22-y%22%2C%22firecrawl-mcp%22%5D%2C%22env%22%3A%7B%22FIRECRAWL_API_KEY%22%3A%22%24%7Binput%3AapiKey%7D%22%7D%7D&quality=insiders)
للتثبيت اليدوي، أضف كتلة JSON التالية إلى ملف إعدادات المستخدم (JSON) في VS Code. يمكنك فعل ذلك بالضغط على `Ctrl + Shift + P` ثم كتابة `Preferences: Open User Settings (JSON)`.```json
{
"mcp": {
"inputs": [
{
"type": "promptString",
"id": "apiKey",
"description": "Firecrawl API Key",
"password": true
}
],
"servers": {
"firecrawl": {
"command": "npx",
"args": ["-y", "firecrawl-mcp"],
"env": {
"FIRECRAWL_API_KEY": "${input:apiKey}"
}
}
}
}
}
اختيارياً، يمكنك إضافته إلى ملف يُسمى .vscode/mcp.json في مساحة العمل الخاصة بك. سيتيح لك ذلك مشاركة الإعداد مع الآخرين:```json
{
"inputs": [
{
"type": "promptString",
"id": "apiKey",
"description": "Firecrawl API Key",
"password": true
}
],
"servers": {
"firecrawl": {
"command": "npx",
"args": ["-y", "firecrawl-mcp"],
"env": {
"FIRECRAWL_API_KEY": "${input:apiKey}"
}
}
}
}
## الإعدادات
### متغيرات البيئة
#### المطلوب لواجهة برمجة التطبيقات السحابية
- `FIRECRAWL_API_KEY`: مفتاح Firecrawl API الخاص بك
- مطلوب عند استخدام واجهة برمجة التطبيقات السحابية (الافتراضي)
- اختياري عند استخدام مثيل مستضاف ذاتياً مع `FIRECRAWL_API_URL`
- `FIRECRAWL_API_URL` (اختياري): نقطة نهاية API مخصصة للمثيلات المستضافة ذاتياً
- مثال: `https://firecrawl.your-domain.com`
- إذا لم يتم توفيرها، سيتم استخدام واجهة برمجة التطبيقات السحابية (يتطلب مفتاح API)
#### مصادقة OAuth لـ MCP (رموز الوصول من نوع Bearer)
يمكن لـ Firecrawl المستضاف إصدار **رموز وصول** OAuth (`fco_…`) عبر خادم التفويض على [firecrawl.dev](https://firecrawl.dev). يقوم خادم MCP هذا بإعادة توجيه أي بيانات اعتماد يحلها إلى واجهة برمجة تطبيقات Firecrawl كـ `Authorization: Bearer …`.
- **نقل التدفق عبر HTTP** (`CLOUD_SERVICE=true` أو `HTTP_STREAMABLE_SERVER=true` أو `SSE_LOCAL=true`): يجب على العملاء إرسال `Authorization: Bearer <fco_access_token>` في طلبات MCP. رمز الوصول من نوع Bearer (OAuth) له الأولوية على `x-firecrawl-api-key` / `x-api-key` عندما يكون كلاهما موجوداً.
- **stdio:** استخدم `FIRECRAWL_OAUTH_TOKEN` لرمز وصول ثابت، أو استمر في استخدام `FIRECRAWL_API_KEY` لمفتاح API.
استخدم **رموز الوصول** (`fco_…`) فقط. يجب استبدال رموز التحديث (`fcr_…`) في نقطة نهاية الرمز، وليس تمريرها إلى واجهة برمجة تطبيقات الكشط/البحث.
### أمثلة الإعدادات
لاستخدام واجهة برمجة التطبيقات السحابية:```bash
export FIRECRAWL_API_KEY=your-api-key
للنسخة المستضافة ذاتيًا:```bash
export FIRECRAWL_API_URL=https://firecrawl.your-domain.com
export FIRECRAWL_API_KEY=your-api-key # If your instance requires auth
### الاستخدام مع Claude Desktop
أضف هذا إلى `claude_desktop_config.json` الخاص بك:```json
{
"mcpServers": {
"mcp-server-firecrawl": {
"command": "npx",
"args": ["-y", "firecrawl-mcp"],
"env": {
"FIRECRAWL_API_KEY": "YOUR_API_KEY_HERE"
}
}
}
}
استخدم هذا الدليل لاختيار الأداة المناسبة لمهمتك:
عند استخدام scrape، اختر التنسيق المناسب:
firecrawl_scrape)استخراج المحتوى من عنوان URL واحد مع خيارات متقدمة.
الأفضل لـ:
غير موصى به لـ:
الأخطاء الشائعة:
اختيار التنسيق المناسب:
مثال على الطلب:
"احصل على تفاصيل المنتج من https://example.com/product."
مثال الاستخدام (تنسيق JSON - مُفضّل):```json { "name": "firecrawl_scrape", "arguments": { "url": "https://example.com/product", "formats": [ { "type": "json", "prompt": "Extract the product information", "schema": { "type": "object", "properties": { "name": { "type": "string" }, "price": { "type": "number" }, "description": { "type": "string" } }, "required": ["name", "price"] } } ] } }
**مثال الاستخدام (تنسيق ماركداون - عند الحاجة إلى المحتوى الكامل):**```json
{
"name": "firecrawl_scrape",
"arguments": {
"url": "https://example.com/article",
"formats": ["markdown"],
"onlyMainContent": true
}
}
مثال الاستخدام (تنسيق العلامة التجارية - استخراج هوية العلامة):```json { "name": "firecrawl_scrape", "arguments": { "url": "https://example.com", "formats": ["branding"] } }
**تنسيق العلامة التجارية:** يستخرج هوية العلامة التجارية الشاملة (الألوان والخطوط والطباعة والتباعد والشعار ومكونات واجهة المستخدم) لتحليل التصميم أو نسخ الأنماط.
**الخصوصية:** قم بتعيين `redactPII: true` لإرجاع المحتوى مع إخفاء المعلومات الشخصية القابلة للتحديد.
**الإرجاعات:**
- بيانات JSON منظمة، ماركداون، ملف تعريف العلامة التجارية، أو تنسيقات أخرى كما هو محدد.
### 2. أداة الخريطة (`firecrawl_map`)
قم بتخطيط موقع ويب لاكتشاف جميع عناوين URL المفهرسة على الموقع.
**الأفضل لـ:**
- اكتشاف عناوين URL على موقع ويب قبل تحديد ما تريد كشطه.
- العثور على أقسام محددة من موقع ويب.
**غير موصى به لـ:**
- عندما تعرف بالفعل عنوان URL المحدد الذي تحتاجه (استخدم الكشط).
- عندما تحتاج إلى محتوى الصفحات (استخدم الكشط بعد التخطيط).
**الأخطاء الشائعة:**
- استخدام الزحف لاكتشاف عناوين URL بدلاً من الخريطة.
**مثال على المطالبة:**
> "List all URLs on example.com."
**مثال الاستخدام:**```json
{
"name": "firecrawl_map",
"arguments": {
"url": "https://example.com"
}
}
الإرجاع:
firecrawl_search)ابحث في الويب واستخرج المحتوى من نتائج البحث اختياريًا.
الأفضل لـ:
غير موصى به لـ:
الأخطاء الشائعة:
مثال الاستخدام:```json { "name": "firecrawl_search", "arguments": { "query": "latest AI research papers 2023", "limit": 5, "lang": "en", "country": "us", "scrapeOptions": { "formats": ["markdown"], "onlyMainContent": true, "redactPII": true } } }
**الإرجاع:**
- مصفوفة من نتائج البحث (مع محتوى مقشود اختياري)، بالإضافة إلى حقل `id`. مرر هذا `id` إلى `firecrawl_search_feedback` بعد استخدام النتائج لاسترداد 1 رصيد (تكلفة البحث 2) وتحسين جودة البحث.
**مثال موجه:**
> "ابحث عن أحدث الأوراق البحثية حول الذكاء الاصطناعي المنشورة في عام 2023."
### 3b. أداة ملاحظات البحث (`firecrawl_search_feedback`)
ترسل ملاحظات منظمة حول نتيجة `firecrawl_search` سابقة. أول ملاحظة لكل معرف بحث تسترد 1 رصيد وتحسن جودة بحث Firecrawl. ذاتية التطابق لكل معرف بحث.
**استدعِ هذه الأداة بعد كل بحث تستخدمه فعليًا** (أو الذي لم يكن مفيدًا). الملاحظات السيئة أو الجزئية مع `missingContent` تكون بنفس قيمة الملاحظات الجيدة.
**الانسحاب:** قم بتعيين `FIRECRAWL_NO_SEARCH_FEEDBACK=1` (أو `FIRECRAWL_DISABLE_SEARCH_FEEDBACK=1`) في البيئة عند بدء تشغيل خادم MCP. لن يتم تسجيل أداة `firecrawl_search_feedback`، لذا لا يمكن للوكلاء استدعاءها. يمكن لمسؤولي الفريق أيضًا تعطيل الملاحظات من جانب الخادم؛ في هذه الحالة، يتم تسجيل الأداة ولكنها تعيد دائمًا `feedbackErrorCode: "TEAM_OPTED_OUT"`.
**أهم حقل:** `missingContent`. هو مصفوفة من قطع المحتوى المحددة التي توقع الوكيل العثور عليها لكنه لم يجدها. إدخال واحد لكل موضوع مفقود — تتجمع هذه عبر الفرق وتخبرنا بما يجب فهرسته بعد ذلك.
**الحد الأقصى للاسترداد اليومي (لكل فريق، لكل يوم بالتوقيت العالمي المنسق، الافتراضي 100 رصيد).** بمجرد أن يصل `creditsRefundedToday` للفريق إلى `dailyRefundCap`، فإن التقديمات اللاحقة لا تزال تسجل الملاحظات ولكنها لم تعد تسترد الأرصدة. يضبط الرد `dailyCapReached: true`. يجب على الوكلاء التوقف عن استدعاء هذه الأداة لبقية اليوم بالتوقيت العالمي المنسق عندما يرون هذه العلامة.
**مثال استخدام:**```json
{
"name": "firecrawl_search_feedback",
"arguments": {
"searchId": "0193f6c5-1234-7890-abcd-1234567890ab",
"rating": "good",
"valuableSources": [
{
"url": "https://docs.firecrawl.dev/features/search",
"reason": "Most up-to-date description of /search."
}
],
"missingContent": [
{
"topic": "Pricing for the search endpoint",
"description": "No pricing tier table for /search specifically."
},
{ "topic": "Per-team rate limits" }
],
"querySuggestions": "Boost docs.firecrawl.dev for queries that mention 'firecrawl'"
}
}
الإرجاع:
{ success, feedbackId, creditsRefunded, alreadySubmitted? } JSON.firecrawl_feedback)ترسل ملاحظات منظمة لوظيفة نقطة نهاية v2 مكتملة عبر /v2/feedback.
استخدم هذا للملاحظات على مستوى نقطة النهاية لوظائف scrape، parse، map، أو search.
بالنسبة لجودة نتائج البحث تحديدًا، يُفضل استخدام firecrawl_search_feedback لأنها تتضمن إرشادات خاصة بالبحث.
اجعل الملاحظات موجزة: استخدم رموز المشكلات، العلامات، الملاحظات القصيرة، عناوين URL، أرقام الصفحات، وكائنات بيانات وصفية صغيرة. لا تقم بتضمين مخرجات scrape/parse الخام.
إلغاء الاشتراك: قم بتعيين FIRECRAWL_NO_ENDPOINT_FEEDBACK=1 (أو FIRECRAWL_DISABLE_ENDPOINT_FEEDBACK=1) في البيئة عند بدء تشغيل خادم MCP. لن يتم تسجيل أداة firecrawl_feedback، وبالتالي لا يمكن للوكلاء استدعاءها.
مثال الاستخدام:```json { "name": "firecrawl_feedback", "arguments": { "endpoint": "scrape", "jobId": "0193f6c5-1234-7890-abcd-1234567890ab", "rating": "partial", "issues": ["missing_markdown"], "tags": ["docs"], "note": "The pricing table was missing from the markdown output.", "url": "https://example.com/pricing", "pageNumbers": [1], "metadata": { "format": "markdown" } } }
**الإرجاع:**
- `{ success, feedbackId, creditsRefunded, creditsRefundedToday?, dailyRefundCap?, dailyCapReached?, alreadySubmitted?, warning? }` JSON.
### 4. أداة الزحف (`firecrawl_crawl`)
تبدأ مهمة زحف، وتستقصي حتى تصل إلى حالة نهائية، وتعيد حالة/بيانات الزحف النهائية.
**الأفضل لـ:**
- استخراج المحتوى من عدة صفحات مترابطة، عندما تحتاج إلى تغطية شاملة.
**غير موصى به لـ:**
- استخراج المحتوى من صفحة واحدة (استخدم scrape)
- عندما تكون حدود الرموز (tokens) مصدر قلق (استخدم map + scrape للتحكم الأكثر دقة)
- عندما تحتاج إلى نتائج سريعة (الزحف قد يكون بطيئًا)
**تحذير:**
يمكن أن تكون استجابات الزحف كبيرة جدًا وقد تتجاوز حدود الرموز. حدد عمق الزحف وعدد الصفحات، أو استخدم map + scrape للتحكم الأكثر دقة.
**الأخطاء الشائعة:**
- تعيين الحد أو maxDiscoveryDepth مرتفعًا جدًا (يسبب تجاوز الرموز)
- استخدام الزحف لصفحة واحدة (استخدم scrape بدلاً من ذلك)
**مثال على الأمر:**
> "احصل على جميع منشورات المدونة من المستويين الأولين من example.com/blog."
**مثال الاستخدام:**```json
{
"name": "firecrawl_crawl",
"arguments": {
"url": "https://example.com/blog/*",
"maxDiscoveryDepth": 2,
"limit": 100,
"allowExternalLinks": false,
"deduplicateSimilarURLs": true
}
}
القيمة المعادة:
id، status، completed، total، creditsUsed، expiresAt، next، وdata. استخدم id المعاد مع firecrawl_check_crawl_status إذا كنت بحاجة إلى إعادة التحقق من المهمة لاحقًا.firecrawl_check_crawl_status)تحقق من حالة ونتائج مهمة زحف موجودة باستخدام المعرف.```json { "name": "firecrawl_check_crawl_status", "arguments": { "id": "550e8400-e29b-41d4-a716-446655440000" } }
**الإرجاعات:**
- يتضمن الرد حالة مهمة الزحف:
### 6. أداة التحليل (`firecrawl_parse`)
قم بتحليل الملفات المحلية أو مراجع التحميل المستضاف باستخدام نقطة نهاية `/v2/parse` من Firecrawl.
**الأفضل لـ:** ملفات PDF، مستندات Word، جداول البيانات، ملفات HTML، وغيرها من المستندات التي تحتاج إلى إخراج Markdown أو JSON منظم. يدعم MCP المستضاف تدفق مرجع التحميل من خطوتين؛ تتطلب قراءة الملفات المحلية المباشرة عنوان `FIRECRAWL_API_URL` مستضاف ذاتيًا.
**غير موصى به لـ:** عناوين URL عن بعد (استخدم scrape)، ملفات متعددة في استدعاء واحد (استدعِ parse مرة لكل ملف)، أو إجراءات المتصفح فقط مثل لقطات الشاشة والنقرات.
**تدفق MCP المستضاف:** لا يمكن لـ MCP المستضاف قراءة نظام ملفات المتصل مباشرة. قم باستدعاء `firecrawl_parse` مع `filePath` لتلقي أمر تحميل قصير الأجل و `nextToolCall`، ثم قم بتحميل الملف محليًا، ثم استدعِ `firecrawl_parse` مرة أخرى مع `uploadRef` الذي تم إرجاعه. يتطلب إنشاء عنوان URL للتحميل المستضاف مصادقة Firecrawl أو أهلية بدون مفتاح. في وضع `npx firecrawl-mcp` المحلي، يتطلب تحليل الملفات المباشر حاليًا `FIRECRAWL_API_URL` يشير إلى واجهة برمجة تطبيقات Firecrawl مستضاف ذاتيًا؛ لا يمكن للخادم المحلي العادي الذي يستخدم فقط مفتاح API سحابي قراءة ورفع الملفات من خلال هذه الأداة.
**مثال الاستخدام:**
```json
{
"filePath": "./path/to/document.pdf",
"formats": ["markdown"]
}
``````json
{
"name": "firecrawl_parse",
"arguments": {
"filePath": "/absolute/path/to/document.pdf",
"formats": ["markdown"],
"parsers": ["pdf"],
"zeroDataRetention": true
}
}
الإرجاع: محتوى المستند المحلل أو تعليمات التحميل المستضافة مع nextToolCall.
firecrawl_extract)استخراج معلومات منظمة من صفحات الويب باستخدام قدرات نماذج اللغة الكبيرة (LLM). تدعم كلاً من الذكاء الاصطناعي السحابي والاستخراج عبر LLM المستضاف ذاتياً.
الأنسب لـ:
غير موصى به لـ:
الوسائط:
urls: مصفوفة من عناوين URL لاستخراج المعلومات منهاprompt: موجه مخصص لاستخراج LLMsystemPrompt: موجه النظام لتوجيه LLMschema: مخطط JSON لاستخراج البيانات المنظمةallowExternalLinks: السماح بالاستخراج من الروابط الخارجيةenableWebSearch: تمكين البحث على الويب للحصول على سياق إضافيincludeSubdomains: تضمين النطاقات الفرعية في الاستخراجعند استخدام مثيل مستضاف ذاتياً، سيستخدم الاستخراج LLM الذي قمت بتكوينه. بالنسبة لواجهة برمجة التطبيقات السحابية، فإنه يستخدم خدمة LLM المدارة من Firecrawl. مثال على الموجه:
"استخرج اسم المنتج وسعره ووصفه من صفحات المنتجات هذه."
مثال على الاستخدام:```json { "name": "firecrawl_extract", "arguments": { "urls": ["https://example.com/page1", "https://example.com/page2"], "prompt": "Extract product information including name, price, and description", "systemPrompt": "You are a helpful assistant that extracts product information", "schema": { "type": "object", "properties": { "name": { "type": "string" }, "price": { "type": "number" }, "description": { "type": "string" } }, "required": ["name", "price"] }, "allowExternalLinks": false, "enableWebSearch": false, "includeSubdomains": false } }
**إرجاع:**
- البيانات المنظمة المستخرجة كما هو محدد في مخططك```json
{
"content": [
{
"type": "text",
"text": {
"name": "Example Product",
"price": 99.99,
"description": "This is an example product description"
}
}
],
"isError": false
}
firecrawl_agent)وكيل بحث ويب مستقل. هذه طبقة وكيل ذكاء اصطناعي منفصلة تتصفح الإنترنت بشكل مستقل، وتبحث عن المعلومات، وتتنقل بين الصفحات، وتستخرج البيانات المنظمة بناءً على استفسارك.
كيف يعمل:
يقوم الوكيل بإجراء عمليات بحث على الويب، ويتبع الروابط، ويقرأ الصفحات، ويجمع البيانات بشكل مستقل. يعمل هذا بشكل غير متزامن - حيث يُرجع معرف مهمة فورًا، وتقوم بالاستعلام عن firecrawl_agent_status للتحقق من اكتمال المهمة واسترداد النتائج.
سير العمل غير المتزامن:
firecrawl_agent مع طلبك/مخططك → يُرجع معرف مهمةfirecrawl_agent_status باستخدام معرف المهمة للتحقق من التقدمأفضل لـ:
غير موصى به لـ:
الوسائط:
prompt: وصف نصي طبيعي للبيانات التي تريدها (مطلوب، بحد أقصى 10,000 حرف)urls: مصفوفة اختيارية من عناوين URL لتوجيه الوكيل إلى صفحات محددةschema: مخطط JSON اختياري للإخراج المنظممثال على الطلب:
"اعثر على مؤسسي Firecrawl وخلفياتهم"
مثال الاستخدام (بدء الوكيل، ثم الاستعلام عن النتائج):
{
"prompt": "Find the founders of Firecrawl and their backgrounds",
"schema": {
"type": "object",
"properties": {
"founders": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {"type": "string"},
"background": {"type": "string"}
}
}
}
}
}
}
``````json
{
"name": "firecrawl_agent",
"arguments": {
"prompt": "Find the top 5 AI startups founded in 2024 and their funding amounts",
"schema": {
"type": "object",
"properties": {
"startups": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": { "type": "string" },
"funding": { "type": "string" },
"founded": { "type": "string" }
}
}
}
}
}
}
}
ثم قم بالاستعلام باستخدام firecrawl_agent_status باستخدام معرف المهمة المُعاد.
مثال الاستخدام (مع عناوين URL - يركز الوكيل على صفحات محددة):```json { "name": "firecrawl_agent", "arguments": { "urls": ["https://docs.firecrawl.dev", "https://firecrawl.dev/pricing"], "prompt": "Compare the features and pricing information from these pages" } }
**الإرجاع:**
- معرف الوظيفة للتحقق من الحالة. استخدم `firecrawl_agent_status` للاستعلام عن النتائج.
### 9. التحقق من حالة الوكيل (`firecrawl_agent_status`)
التحقق من حالة وظيفة الوكيل واسترجاع النتائج عند اكتمالها. استخدم هذا للاستعلام عن النتائج بعد بدء وكيل.
**نمط الاستعلام الدوري:** قد يستغرق بحث الوكيل دقائق للاستعلامات المعقدة. استعلم عن هذه النقطة الطرفية بشكل دوري (مثل كل 10-30 ثانية) حتى تصبح الحالة "completed" أو "failed".```json
{
"name": "firecrawl_agent_status",
"arguments": {
"id": "550e8400-e29b-41d4-a716-446655440000"
}
}
الحالات المحتملة:
processing: الوكيل لا يزال يبحث - تحقق لاحقاًcompleted: اكتمل البحث - الرد يتضمن البيانات المستخرجةfailed: حدث خطأfirecrawl_interact)تفاعل مع رابط جديد أو مع صفحة تم فتحها بالفعل بواسطة firecrawl_scrape.
الأفضل من أجل: النقر، الكتابة، التنقل، واستخراج الحالة من الصفحات الديناميكية دون استعادة أدوات المتصفح القديمة.
خيارات الاستخدام:
url لتجريد الصفحة وفتحها للتفاعل في استدعاء MCP واحد.scrapeId لمواصلة التفاعل مع صفحة تم تجريدها بالفعل.url أو scrapeId، بالإضافة إلى إما prompt أو code.مثال استخدام:```json { "name": "firecrawl_interact", "arguments": { "url": "https://example.com", "prompt": "Click the pricing link and summarize the visible plans" } }
**النتيجة:** نتيجة التفاعل، وفي وضع URL، قيمة `scrapeId` المشتقة للمتابعة أو التنظيف.
### 11. أداة إيقاف التفاعل (`firecrawl_interact_stop`)
أوقف جلسة تفاعل لصفحة تم تجريفها عند الانتهاء من التفاعل.```json
{
"name": "firecrawl_interact_stop",
"arguments": {
"scrapeId": "scrape-id-here"
}
}
firecrawl_research_*)ابحث وافحص الأوراق البحثية ومستودعات GitHub من خلال أدوات MCP البحثية.
أدوات البحث المتاحة:
firecrawl_research_search_papers: ابحث عن الأوراق البحثية.firecrawl_research_inspect_paper: افحص ورقة بحثية واحدة.firecrawl_research_related_papers: ابحث عن الأوراق ذات الصلة.firecrawl_research_read_paper: اقرأ محتوى الورقة البحثية.firecrawl_research_search_github: ابحث في مستودعات GitHub.الأفضل لـ: مراجعة الأدبيات، البحث عن الأوراق، وسير عمل اكتشاف المستودعات حيث يحتاج الوكيل إلى سطح بحثي مركّز بدلاً من كشط الويب العام.
firecrawl_monitor_*)أنشئ وأدر مراقبين دوريين للصفحات. يقوم المراقبون بتشغيل عمليات الكشط أو الزحف المجدولة، ويقارنون كل نتيجة مع آخر لقطة محفوظة، ويمكنهم الإخطار عبر webhook أو البريد الإلكتروني.
الأفضل لـ:
نمط الإنشاء الموصى به:
استخدم page أو pages مع goal. يقوم خادم MCP ببناء طلب المراقبة بجدول زمني مدته 30 دقيقة وتمكّن واجهة API الحكم على التغييرات الهامة تلقائيًا.
يتم تشغيل الحكم على التغييرات الهامة تلقائيًا عند تعيين goal. تكشف خطافات الويب (webhooks) للصفحة عن isMeaningful و judgment في أحداث monitor.page.
اكتب الأهداف كتعليمات مراقبة موجزة من 2-3 جمل. اذكر ما يجب أن يؤدي إلى تفعيل التنبيه، وحافظ على أي نطاق قدمه المستخدم، وقم بتضمين استثناءات خاصة بالنية فقط عندما تكون واضحة من الطلب. يتم بالفعل التعامل مع الضوضاء العامة مثل المسافات البيضاء، والتغييرات في التنسيق فقط، ومعرفات الطلبات، ومعلمات التتبع، والبيانات الوصفية العامة، وعناصر الصفحة غير ذات الصلة بواسطة الحكم، لذا لا تكررها في كل هدف. إذا كان المستخدم غامضًا، اجعل الهدف واسعًا؛ إذا طلب مراقبة واسعة أو "أي تغيير"، فاحتفظ بذلك. إذا قال المستخدم أنه لا يهتم بشيء، فقم بتضمين ذلك صراحةً.```json { "name": "firecrawl_monitor_create", "arguments": { "page": "https://example.com/pricing", "goal": "Alert when pricing, packaging, or launch messaging changes." } }
**صفحات متعددة مع webhooks:**```json
{
"name": "firecrawl_monitor_create",
"arguments": {
"pages": ["https://example.com/pricing", "https://example.com/changelog"],
"goal": "Alert when pricing, packaging, or launch messaging changes.",
"webhookUrl": "https://example.com/webhooks/firecrawl"
}
}
طلبات الإنشاء المتقدمة:
مرر body عندما تحتاج إلى أهداف الزحف، تتبع تغييرات JSON، الاحتفاظ المخصص، أو التحكم الصريح judgeEnabled.```json
{
"name": "firecrawl_monitor_create",
"arguments": {
"body": {
"name": "Docs monitor",
"schedule": { "text": "hourly", "timezone": "UTC" },
"goal": "Alert when docs pages add, remove, or materially change API behavior.",
"targets": [{ "type": "crawl", "url": "https://example.com/docs" }]
}
}
}
**أدوات مراقبة أخرى:**
- `firecrawl_monitor_list`: قائمة المراقبات.
- `firecrawl_monitor_get`: الحصول على مراقبة واحدة.
- `firecrawl_monitor_update`: تحديث الحقول بما في ذلك `goal` و `judgeEnabled` و `webhook` و `notification`.
- `firecrawl_monitor_run`: تشغيل فحص الآن.
- `firecrawl_monitor_delete`: حذف مراقبة (تدميري؛ اتصل به فقط عندما ينوي المستخدم إزالته).
- `firecrawl_monitor_checks`: قائمة الفحوصات، يمكن تصفيتها حسب الحالة اختيارياً.
- `firecrawl_monitor_check`: الحصول على نتائج على مستوى الصفحة، بما في ذلك `diff` و `snapshot` و `judgment.meaningful` و `judgment.meaningfulChanges`.
## نظام التسجيل
يتضمن الخادم تسجيلاً شاملاً:
- حالة العملية والتقدم
- مقاييس الأداء
- تتبع حد المعدل
- حالات الخطأ
أمثلة على رسائل السجل:```
[INFO] Firecrawl MCP Server initialized successfully
[INFO] Starting scrape for URL: https://example.com
[ERROR] Rate limit exceeded
يوفر الخادم معالجة قوية للأخطاء:
مثال على استجابة الخطأ:```json { "content": [ { "type": "text", "text": "Error: Rate limit exceeded" } ], "isError": true }
## التطوير```bash
# Install dependencies
npm install
# Build
npm run build
# Run tests
npm test
npm testشكر لـ @vrknetha، @cawstudios على التنفيذ الأولي!
شكر لـ MCP.so و Klavis AI على الاستضافة ولـ @gstarwd، @xiangkaiz و @zihaolin96 على دمج خادمنا.
رخصة MIT - انظر ملف LICENSE للتفاصيل
| الأداة | الأفضل لـ | يُرجع |
|---|
| scrape | محتوى صفحة واحدة | JSON (مُفضّل) أو markdown |
| interact | التفاعل مع عنوان URL أو صفحة مُجلَبة | نتيجة التنفيذ + معرف الجلب لوضع عنوان URL |
| map | اكتشاف عناوين URL على موقع | URL[] |
| crawl | استخراج متعدد الصفحات (مع حدود) | حالة/بيانات الجلب النهائية بعد الاقتراع الداخلي |
| parse | الملفات ومراجع التحميل المستضافة | markdown أو JSON أو إخراج مستند |
| extract | استخراج منظم من عناوين URL | بيانات JSON منظمة |
| search | البحث في الويب عن معلومات | results[] |
| agent | بحث معقد عبر مصادر متعددة | JSON (بيانات منظمة) |
| monitor | فحوصات دورية للصفحة | بيانات تعريف الفحص/المراقبة والاختلافات |
| research | بحث في الأوراق ومستودعات GitHub | نتائج البحث ومطابقات المستودعات |