Firecrawl MCP

आधिकारिक

LLM क्लाइंट जैसे Cursor और Claude में शक्तिशाली वेब स्क्रैपिंग और खोज क्षमताएँ जोड़ता है।

Firecrawl MCP के साथ आप क्या कर सकते हैं?

  • ज्ञात URL स्क्रैप करें — अपने सहायक से कहें कि वह एक पेज को साफ़ Markdown या आपके द्वारा firecrawl_scrape के ज़रिए दिए गए स्कीमा से मेल खाते संरचित JSON में लाए।
  • साइट के URL खोजें — तय करने से पहले कि कौन-से पेज लाने हैं, उससे firecrawl_map के साथ किसी साइट के इंडेक्स किए गए URL की सूची बनवाएँ।
  • वेब पर खोजें — firecrawl_search के साथ किसी क्वेरी के रैंक किए गए परिणाम पाएँ, और वैकल्पिक रूप से कुछ परिणामों के लिए पूरा पेज कंटेंट भी लाएँ।
  • कई पेज क्रॉल करें — firecrawl_crawl का उपयोग करके किसी साइट पर कंटेंट निकालें, जिसे limit, includePaths/excludePaths, या maxDiscoveryDepth से सीमित किया गया हो।
  • ब्राउज़र चलाएँ — firecrawl_interact के साथ क्लिक करें, टाइप करें, फ़ॉर्म भरें, या डायनामिक पेजों पर नेविगेट करें, और scrapeId के ज़रिए सत्र जारी रखें।
  • क्रेडिट उपयोग जाँचें — firecrawl_credit_usage के साथ पूछें कि कितने Firecrawl क्रेडिट बचे हैं या वे किस पर खर्च हुए।

दस्तावेज़

Firecrawl MCP सर्वर

एक Model Context Protocol (MCP) सर्वर जो Firecrawl — AI एजेंट्स के लिए context API — को MCP-संगत क्लाइंट्स तक लाता है: लाइव वेब पर खोजें, स्क्रैप करें और इंटरैक्ट करें, और साफ़ Markdown या संरचित डेटा प्राप्त करें।

प्रारंभिक कार्यान्वयन के लिए @vrknetha, @knacklabs को बहुत धन्यवाद!

विशेषताएँ

  • वेब पर खोजें, वैकल्पिक रूप से प्रत्येक परिणाम के लिए पूर्ण पेज सामग्री के साथ
  • डेवलपर स्रोतों (GitHub issues, merged pull requests, READMEs, और docs), अमेरिकी सरकारी स्रोतों, और वैज्ञानिक पत्रों (PubMed, bioRxiv, medRxiv, arXiv) के लिए सर्च इंडेक्स
  • किसी भी URL को साफ़ Markdown या संरचित JSON में स्क्रैप करें
  • PDFs और दस्तावेज़ों को पार्स करें
  • कई पेजों की सामग्री के लिए किसी साइट को क्रॉल करें, या उसके URLs खोजने के लिए उसे मैप करें
  • वास्तविक ब्राउज़र में पेजों के साथ इंटरैक्ट करें: क्लिक करें, टाइप करें, फ़ॉर्म भरें, और डायनामिक पेजों पर नेविगेट करें
  • बहु-स्रोत शोध के लिए Agent जॉब्स चलाएँ जो संरचित डेटा लौटाते हैं
  • पेजों की निगरानी करें और उनकी सामग्री बदलने पर सूचना पाएँ
  • वर्तमान और ऐतिहासिक Firecrawl क्रेडिट उपयोग जाँचें
  • स्वचालित पुनःप्रयास और दर सीमित करना
  • क्लाउड और स्व-होस्टेड समर्थन
  • SSE समर्थन

MCP.so के playground पर हमारे MCP सर्वर या Klavis AI पर इसे आज़माएँ।

इस सर्वर का उपयोग कब करें

  • firecrawl_scrape का उपयोग तब करें जब आपके पास कोई ज्ञात URL हो और आप उसकी सामग्री markdown के रूप में या आपके द्वारा दिए गए schema से मेल खाते JSON के रूप में चाहते हों।
  • firecrawl_map का उपयोग तब करें जब आपको किसी साइट पर URLs खोजने हों बिना उनकी सामग्री प्राप्त किए।
  • firecrawl_crawl का उपयोग तब करें जब आपको किसी साइट के अंतर्गत कई पेजों की सामग्री चाहिए; इसे सीमित करने के लिए limit, includePaths/excludePaths, या maxDiscoveryDepth सेट करें।
  • firecrawl_search का उपयोग तब करें जब आप URL के बजाय किसी क्वेरी से शुरू कर रहे हों और रैंक किए गए वेब परिणाम चाहते हों। परिणामों में अंश होते हैं; आपको जिन URLs की आवश्यकता हो उन पर firecrawl_scrape से पूर्ण पेज प्राप्त करें। scrapeOptions उसी कॉल में प्रत्येक परिणाम का पेज प्राप्त करता है और प्रत्येक को एक स्क्रैप के रूप में बिल करता है, इसलिए इसे कुछ परिणामों के पूर्ण टेक्स्ट के लिए ही रखें (search-only endpoint कभी सामग्री नहीं प्राप्त करता)।
  • firecrawl_interact का उपयोग तब करें जब किसी पेज को पढ़ने से पहले क्लिक, टाइप, या नेविगेट क्रिया की आवश्यकता हो: नए पेज के लिए url पास करें या जिसे आप पहले ही स्क्रैप कर चुके हैं उस पर जारी रखने के लिए scrapeId पास करें।
  • firecrawl_monitor_* टूल्स का उपयोग तब करें जब एक ही पेज को बार-बार के शेड्यूल पर diffs और परिवर्तन अलर्ट के साथ जाँचना हो, न कि एक बार प्राप्त करना हो।
  • firecrawl_credit_usage का उपयोग बचे हुए क्रेडिट या महीने या दिन के अनुसार खर्च किए गए क्रेडिट की जाँच करने के लिए करें, वैकल्पिक रूप से endpoint या API key के अनुसार विभाजित।
  • कुछ और विचार करें जब आपको अपने स्वयं के कई चरणों में ब्राउज़र सत्र खुला रखना हो, अपने स्वयं के पुनःप्रयास और समाप्ति लॉजिक के साथ: प्रत्येक firecrawl_interact कॉल एक prompt या code टर्न को पूर्णता तक चलाता है और नियंत्रण लौटाता है। सत्र scrapeId के माध्यम से कॉल्स के बीच बना रह सकता है और firecrawl_interact_stop के साथ समाप्त होता है, लेकिन आप इसे एक ही कॉल के भीतर क्लाइंट पक्ष से चरण-दर-चरण इंटरैक्टिव रूप से संचालित नहीं कर सकते।

यह सर्वर 27 टूल्स सूचीबद्ध करता है जब पूर्ण प्रोफ़ाइल डिफ़ॉल्ट सेटिंग्स के साथ पंजीकृत होता है (feedback टूल्स शामिल, local-keyless मोड में नहीं चल रहा)। FIRECRAWL_NO_SEARCH_FEEDBACK=1 और/या FIRECRAWL_NO_ENDPOINT_FEEDBACK=1 सेट करने से संबंधित feedback टूल्स हट जाते हैं और यह संख्या कम हो जाती है, जैसा कि local keyless स्टार्टअप करता है। टूल-स्लॉट सीमा वाले क्लाइंट्स के लिए: होस्टेड keyless endpoint (https://mcp.firecrawl.dev/v2/mcp, कोई API key नहीं) केवल 3 (firecrawl_scrape, firecrawl_search, firecrawl_parse) प्रदान करता है, और समर्पित search-only endpoint (https://mcp.firecrawl.dev/v2/mcp-search) 9 टूल्स का एक निश्चित सेट प्रदान करता है (search, developer, government, और research search, साथ ही Alexandria catalogue lookup और execution)।

इंस्टॉलेशन

होस्टेड MCP (keyless मुफ़्त टियर)

बिना किसी सेटअप के रिमोट होस्टेड सर्वर से कनेक्ट करें:

https://mcp.firecrawl.dev/v2/mcp

keyless मुफ़्त टियर पर, scrape, search, और parse बिना API key के काम करते हैं (दर-सीमित)। crawl, map, और agent जैसे अन्य टूल्स को अभी भी key की आवश्यकता होती है।

जब भी मानव साइन अप कर सके, OAuth या API key को प्राथमिकता दें। यह पूर्ण टूल सेट और उच्च सीमाएँ अनलॉक करता है।

इंटरैक्टिव खाता कनेक्शन के लिए, अपने MCP क्लाइंट को इस सर्वर URL का उपयोग करने के लिए कॉन्फ़िगर करें। यह एक MCP endpoint है, ब्राउज़र पेज नहीं; क्लाइंट के account-connection फ़्लो का उपयोग करें और पुनः कनेक्ट करते समय दूसरी Firecrawl सर्वर प्रविष्टि न जोड़ें:

https://mcp.firecrawl.dev/v2/mcp-oauth

API-key कनेक्शन के लिए (उदाहरण के लिए, एक अनुपस्थित इंटीग्रेशन), सर्वर URL को इस प्रकार रखें:

https://mcp.firecrawl.dev/v2/mcp

फिर क्लाइंट की सुरक्षित header या secret सेटिंग को इस प्रकार कॉन्फ़िगर करें:

Authorization: Bearer <FIRECRAWL_API_KEY>

API key को कभी भी सर्वर URL में न रखें। API key को कभी भी एजेंट चैट में न रखें। इसे सीधे क्लाइंट या secret manager में कॉन्फ़िगर करें। क्लाइंट-विशिष्ट निर्देशों के लिए hosted MCP setup guide और agent onboarding guide देखें।

अपने इंटीग्रेशन का नामकरण

HTTP पर कनेक्ट होने वाला इंटीग्रेशन X-Firecrawl-Origin header के साथ अपना नाम बता सकता है, उदाहरण के लिए X-Firecrawl-Origin: my-agent। सर्वर इसे Firecrawl को अनुरोध origin mcp-my-agent@<server version> के रूप में रिपोर्ट करता है, उस क्लाइंट नाम या User-Agent के स्थान पर जो वह अन्यथा रिपोर्ट करता। अक्षर, अंक और डैश का उपयोग करें: अन्य वर्णों का प्रत्येक क्रम एक डैश बन जाता है, अग्रणी और अनुगामी डैश हटा दिए जाते हैं, और नाम 48 वर्णों पर काट दिया जाता है। टूल परिणाम अप्रभावित रहते हैं; केवल Firecrawl API को भेजा गया origin (और embedder के beforeKeylessRequest को पास किया गया) बदलता है।

Search-only endpoint

एक निश्चित-दायरे वाली search सतह भी यहाँ होस्ट की गई है:

https://mcp.firecrawl.dev/v2/mcp-search

यह नौ टूल्स का एक निश्चित सेट प्रदान करता है: firecrawl_search, firecrawl_developer_search, firecrawl_gov_search, चार firecrawl_research_* टूल्स, और दो Alexandria टूल्स firecrawl_find_tools और firecrawl_scrape। इसका firecrawl_search कोई पेज सामग्री नहीं प्राप्त करता।

npx के साथ चलाना

env FIRECRAWL_API_KEY=fc-YOUR_API_KEY npx -y firecrawl-mcp

मैन्युअल इंस्टॉलेशन

npm install -g firecrawl-mcp

Cursor पर चलाना

Cursor कॉन्फ़िगर करना 🖥️ नोट: Cursor संस्करण 0.45.6+ आवश्यक है सबसे अद्यतित कॉन्फ़िगरेशन निर्देशों के लिए, कृपया MCP सर्वर कॉन्फ़िगर करने पर आधिकारिक Cursor दस्तावेज़ देखें: Cursor MCP Server Configuration Guide

Cursor v0.48.6 में Firecrawl MCP कॉन्फ़िगर करने के लिए

  1. Cursor Settings खोलें
  2. Features > MCP Servers पर जाएँ
  3. "+ Add new global MCP server" पर क्लिक करें
  4. निम्नलिखित कोड दर्ज करें:
    {
      "mcpServers": {
        "firecrawl-mcp": {
          "command": "npx",
          "args": ["-y", "firecrawl-mcp"],
          "env": {
            "FIRECRAWL_API_KEY": "YOUR-API-KEY"
          }
        }
      }
    }
    

Cursor v0.45.6 में Firecrawl MCP कॉन्फ़िगर करने के लिए

  1. Cursor Settings खोलें
  2. Features > MCP Servers पर जाएँ
  3. "+ Add New MCP Server" पर क्लिक करें
  4. निम्नलिखित दर्ज करें:
    • Name: "firecrawl-mcp" (या आपका पसंदीदा नाम)
    • Type: "command"
    • Command: 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 को अपनी Firecrawl API key से बदलें। यदि आपके पास अभी तक एक नहीं है, तो आप एक खाता बना सकते हैं और इसे https://www.firecrawl.dev/app/api-keys से प्राप्त कर सकते हैं

जोड़ने के बाद, नए टूल्स देखने के लिए MCP सर्वर सूची को रीफ़्रेश करें। Composer Agent उपयुक्त होने पर स्वचालित रूप से Firecrawl MCP का उपयोग करेगा, लेकिन आप वेब से अपनी आवश्यकता का वर्णन करके स्पष्ट रूप से इसका अनुरोध कर सकते हैं। Command+L (Mac) के माध्यम से Composer तक पहुँचें, सबमिट बटन के बगल में "Agent" चुनें, और अपनी क्वेरी दर्ज करें।

Windsurf पर चलाना

इसे अपने ./codeium/windsurf/model_config.json में जोड़ें:

{
  "mcpServers": {
    "mcp-server-firecrawl": {
      "command": "npx",
      "args": ["-y", "firecrawl-mcp"],
      "env": {
        "FIRECRAWL_API_KEY": "YOUR_API_KEY"
      }
    }
  }
}

Streamable HTTP लोकल मोड के साथ चलाना

डिफ़ॉल्ट stdio ट्रांसपोर्ट के बजाय सर्वर को लोकल रूप से Streamable HTTP का उपयोग करके चलाने के लिए:

env HTTP_STREAMABLE_SERVER=true FIRECRAWL_API_KEY=fc-YOUR_API_KEY npx -y firecrawl-mcp

url का उपयोग करें: http://localhost:3000/mcp

इस मोड में सर्वर केवल localhost, 127.0.0.1 या [::1] (किसी भी पोर्ट पर) को संबोधित अनुरोधों का उत्तर देता है, साथ ही HOST में दिए गए पते का जब वह 0.0.0.0 या :: न हो। जिस अनुरोध का Host header किसी अन्य होस्ट का नाम बताता है, या जिसका Origin header किसी अन्य साइट का नाम बताता है, उसे 403 मिलता है, और CORS headers * के बजाय अनुमत origin को प्रतिध्वनित करते हैं। /health पर GET और HEAD अनुरोधों का उत्तर होस्ट की परवाह किए बिना दिया जाता है, ताकि health checks काम करते रहें, और सर्वर प्रत्येक अस्वीकृत अनुरोध के लिए FIRECRAWL_MCP_ALLOWED_HOSTS का नाम बताते हुए एक पंक्ति लॉग करता है। यह आपके द्वारा देखे जाने वाले वेब पेजों को DNS rebinding या cross-origin अनुरोधों के माध्यम से लोकल सर्वर को कॉल करने और उसके FIRECRAWL_API_KEY का उपयोग करने से रोकता है।

सर्वर तक किसी अन्य नाम या पते के अंतर्गत पहुँचने के लिए, जैसे कि रिवर्स प्रॉक्सी के पीछे कोई hostname या LAN IP, इसे FIRECRAWL_MCP_ALLOWED_HOSTS में सूचीबद्ध करें (कॉमा-सेपरेटेड; पोर्ट अनदेखा किए जाते हैं)। यही सूची यह भी तय करती है कि कौन से ब्राउज़र origins सर्वर को कॉल कर सकते हैं। उसी मशीन पर एक रिवर्स प्रॉक्सी डिफ़ॉल्ट bind पता रख सकता है:

env HTTP_STREAMABLE_SERVER=true FIRECRAWL_API_KEY=fc-YOUR_API_KEY \
  FIRECRAWL_MCP_ALLOWED_HOSTS=mcp.home.lan npx -y firecrawl-mcp

अन्य मशीनों पर क्लाइंट्स के लिए सर्वर को non-loopback पते पर सुनने की भी आवश्यकता होती है, इसलिए HOST भी सेट करें। तब पोर्ट तक पहुँच सकने वाले प्रत्येक क्लाइंट को सर्वर की FIRECRAWL_API_KEY के साथ सेवा दी जाती है, इसलिए ऐसा केवल उस नेटवर्क पर करें जिस पर आप भरोसा करते हैं:

env HTTP_STREAMABLE_SERVER=true FIRECRAWL_API_KEY=fc-YOUR_API_KEY HOST=0.0.0.0 \
  FIRECRAWL_MCP_ALLOWED_HOSTS=192.168.1.20 npx -y firecrawl-mcp

FIRECRAWL_MCP_ALLOWED_HOSTS=* जाँच को बंद कर देता है और wildcard CORS header को पुनर्स्थापित करता है। ऐसा केवल तब करें जब सर्वर के सामने कुछ होस्ट और origins की जाँच स्वयं करता हो।

Docker के साथ चलाना

ghcr.io/firecrawl/firecrawl-mcp-server इमेज npx -y firecrawl-mcp के समान सर्वर चलाती है। main से प्रत्येक बिल्ड को latest, v<package version> और sha-<commit sha> टैग किया जाता है। v<package version> उस संस्करण के नवीनतम बिल्ड पर चला जाता है, इसलिए जब आपको एक निश्चित इमेज चाहिए तो sha-<commit sha> (या कोई digest) पिन करें।

stdio (डिफ़ॉल्ट), उन MCP क्लाइंट्स के लिए जो सर्वर को एक कमांड के रूप में लॉन्च करते हैं:

docker run -i --rm -e FIRECRAWL_API_KEY=fc-YOUR_API_KEY ghcr.io/firecrawl/firecrawl-mcp-server:latest
{
  "mcpServers": {
    "firecrawl-mcp": {
      "command": "docker",
      "args": ["run", "-i", "--rm", "-e", "FIRECRAWL_API_KEY", "ghcr.io/firecrawl/firecrawl-mcp-server:latest"],
      "env": {
        "FIRECRAWL_API_KEY": "YOUR_API_KEY"
      }
    }
  }
}

Streamable HTTP, http://localhost:3000/mcp पर सेवा दी जाती है:

docker run --rm -p 127.0.0.1:3000:3000 \
  -e HTTP_STREAMABLE_SERVER=true \
  -e FIRECRAWL_API_KEY=fc-YOUR_API_KEY \
  ghcr.io/firecrawl/firecrawl-mcp-server:latest

इमेज HOST=0.0.0.0 और PORT=3000 सेट करती है; कहीं और सुनने के लिए PORT (और -p मैपिंग) को ओवरराइड करें। सर्वर उन अनुरोधों के लिए कंटेनर की FIRECRAWL_API_KEY का उपयोग करता है जो अपनी स्वयं की क्रेडेंशियल नहीं भेजते, इसलिए उदाहरण पोर्ट को केवल 127.0.0.1 पर प्रकाशित करता है; इसे अधिक व्यापक रूप से उजागर न करें जब तक कि क्लाइंट्स को अपनी स्वयं की key देनी न हो। स्व-होस्टेड Firecrawl API का उपयोग करने के लिए FIRECRAWL_API_URL सेट करें। कंटेनर गैर-विशेषाधिकार प्राप्त node उपयोगकर्ता के रूप में चलता है। सर्वर Host और Origin headers में केवल localhost, 127.0.0.1 और [::1] का उत्तर देता है, इसलिए -p 127.0.0.1:3000:3000 मैपिंग जैसी है वैसी ही काम करती है; इसे किसी अन्य नाम के अंतर्गत पहुँचाने के लिए, -e FIRECRAWL_MCP_ALLOWED_HOSTS=<host> सेट करें (Streamable HTTP local mode देखें)।

VS Code पर चलाना

एक-क्लिक इंस्टॉलेशन के लिए, नीचे दिए गए इंस्टॉल बटनों में से एक पर क्लिक करें...

Install with NPX in VS Code Install with NPX in VS Code Insiders

मैन्युअल इंस्टॉलेशन के लिए, VS Code में अपनी User Settings (JSON) फ़ाइल में निम्नलिखित JSON ब्लॉक जोड़ें। आप Ctrl + Shift + P दबाकर और Preferences: Open User Settings (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 नामक फ़ाइल में जोड़ सकते हैं। यह आपको कॉन्फ़िगरेशन दूसरों के साथ साझा करने की अनुमति देगा:

{
  "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}"
      }
    }
  }
}

कॉन्फ़िगरेशन

पर्यावरण चर

Cloud API के लिए आवश्यक

  • FIRECRAWL_API_KEY: आपकी Firecrawl API key
    • cloud API (डिफ़ॉल्ट) का उपयोग करते समय आवश्यक
    • FIRECRAWL_API_URL के साथ स्व-होस्टेड इंस्टेंस का उपयोग करते समय वैकल्पिक
  • FIRECRAWL_API_URL (वैकल्पिक): स्व-होस्टेड इंस्टेंस के लिए कस्टम API endpoint
    • उदाहरण: https://firecrawl.your-domain.com
    • यदि प्रदान नहीं किया गया, तो cloud API का उपयोग किया जाएगा (API key आवश्यक)
  • FIRECRAWL_INTEGRATION (वैकल्पिक): इस सर्वर को लॉन्च करने वाले ऐप्स के लिए इंटीग्रेशन टैग, जैसे कोई एडिटर एक्सटेंशन
    • scrape, batch scrape, crawl, map, search, extract, agent, parse, interact और feedback अनुरोधों के integration फ़ील्ड के रूप में भेजा जाता है
    • ऐसा मान उपयोग करें जो _ से शुरू हो, उदाहरण के लिए _zed

लोकल HTTP मोड

  • FIRECRAWL_MCP_ALLOWED_HOSTS (वैकल्पिक): अतिरिक्त होस्ट नाम या पते जिनके साथ सर्वर HTTP_STREAMABLE_SERVER=true या SSE_LOCAL=true का उत्तर देता है, अल्पविराम से अलग किए गए
    • localhost, 127.0.0.1, [::1] और एक गैर-वाइल्डकार्ड HOST हमेशा अनुमत हैं; पोर्ट को अनदेखा किया जाता है
    • जिन अनुरोधों का Host या Origin हेडर किसी अन्य होस्ट का नाम लेता है, उन्हें 403 मिलता है, सिवाय /health पर किए गए GET और HEAD अनुरोधों के
    • * जाँच को बंद कर देता है; इसका उपयोग CLOUD_SERVICE=true के साथ नहीं किया जाता, जो हर होस्ट का उत्तर देता है

MCP OAuth (Bearer एक्सेस टोकन)

Firecrawl, firecrawl.dev पर प्राधिकरण सर्वर के माध्यम से OAuth एक्सेस टोकन (fco_…) जारी करता है। यह MCP सर्वर जो भी क्रेडेंशियल हल करता है, उसे Firecrawl API को Authorization: Bearer … के रूप में अग्रेषित करता है।

  • HTTP स्ट्रीम ट्रांसपोर्ट (CLOUD_SERVICE=true, HTTP_STREAMABLE_SERVER=true, या SSE_LOCAL=true): क्लाइंट को MCP अनुरोधों पर Authorization: Bearer <fco_access_token> भेजना चाहिए। जब दोनों मौजूद हों, तो OAuth बियरर टोकन x-firecrawl-api-key / x-api-key पर प्राथमिकता लेता है।
  • stdio: स्थिर एक्सेस टोकन के लिए FIRECRAWL_OAUTH_TOKEN का उपयोग करें, या API कुंजी के लिए FIRECRAWL_API_KEY का उपयोग जारी रखें।

केवल एक्सेस टोकन (fco_…) का उपयोग करें। रीफ़्रेश टोकन (fcr_…) को टोकन एंडपॉइंट पर एक्सचेंज किया जाना चाहिए, स्क्रैप/सर्च API को पास नहीं किया जाना चाहिए।

CLOUD_SERVICE=true

CLOUD_SERVICE=true, PORT पर स्ट्रीमेबल HTTP के माध्यम से टूल्स प्रदान करता है (डिफ़ॉल्ट 3000, 0.0.0.0 से बंधा हुआ) और सख्त डिफ़ॉल्ट के साथ: हर अनुरोध में एक क्रेडेंशियल (API कुंजी या OAuth एक्सेस टोकन) होना चाहिए, स्क्रैप केवल-पढ़ने के लिए है (नीचे स्क्रैप टूल देखें), और firecrawl_parse केवल अपलोड स्वीकार करता है।

FASTMCP_ENDPOINT टूल सतह का चयन करता है: पूर्ण टूल सेट के लिए /v2/mcp (डिफ़ॉल्ट), खाता सतह के लिए /v2/mcp-oauth, या केवल-सर्च टूल्स के लिए /v2/mcp-search (इसके लिए FIRECRAWL_MCP_SEARCH_OAUTH_ONLY=true भी आवश्यक है)। पूर्ण सतह के साथ, केवल-सर्च इंस्टेंस भी पोर्ट 3001 पर शुरू होता है; इसे बंद करने के लिए FIRECRAWL_MCP_SEARCH_ENABLED=false सेट करें।

कॉन्फ़िगरेशन उदाहरण

क्लाउड API उपयोग के लिए:

export FIRECRAWL_API_KEY=your-api-key

स्व-होस्टेड इंस्टेंस के लिए:

# Required for self-hosted
export FIRECRAWL_API_URL=https://firecrawl.your-domain.com

# Optional authentication for self-hosted
export FIRECRAWL_API_KEY=your-api-key  # If your instance requires auth

Claude Desktop के साथ उपयोग

इसे अपने claude_desktop_config.json में जोड़ें:

{
  "mcpServers": {
    "mcp-server-firecrawl": {
      "command": "npx",
      "args": ["-y", "firecrawl-mcp"],
      "env": {
        "FIRECRAWL_API_KEY": "YOUR_API_KEY_HERE"
      }
    }
  }
}

टूल कैसे चुनें

अपने कार्य के लिए सही टूल चुनने के लिए इस गाइड का उपयोग करें:

  • यदि आप जानते हैं कि आप कौन-सा सटीक URL चाहते हैं: scrape का उपयोग करें (संरचित डेटा के लिए JSON फ़ॉर्मेट के साथ)
  • यदि आपके पास कई ज्ञात URL हैं: प्रत्येक URL के लिए scrape कॉल करें। यदि आपको विशेष रूप से एक बल्क API ऑपरेशन चाहिए, तो MCP के बाहर Firecrawl API बैच एंडपॉइंट का उपयोग करें।
  • यदि आपको किसी साइट पर URL खोजने हैं: map का उपयोग करें
  • यदि आप जानकारी के लिए वेब पर खोज करना चाहते हैं: search का उपयोग करें
  • यदि आपका कोई प्रोग्रामिंग प्रश्न है (कोई लाइब्रेरी, कोई API अनुबंध, कोई त्रुटि संदेश, कोई ज्ञात बग): developer search का उपयोग करें
  • यदि आपका कोई कानूनी या नियामक प्रश्न है (कोई क़ानून, विनियम, संहिता, न्यायालय की राय, या अन्य अमेरिकी सरकारी प्रकाशन): Firecrawl Government Index का उपयोग करें
  • यदि आपको वैज्ञानिक पत्र चाहिए (बायोमेडिकल, लाइफ-साइंस, क्लिनिकल, या arXiv साहित्य): research tools का उपयोग करें, जो पेपर सारांशों और पूर्ण पाठ में खोज करते हैं। categories: ["research"] के साथ search एक अलग चीज़ है: सामान्य वेब परिणामों पर एक वेबसाइट फ़िल्टर।
  • यदि आपको बहु-स्रोत शोध चाहिए जो संरचित डेटा लौटाता है, आप URL नहीं जानते, या उत्तर कई साइटों में फैला है (कोई इकाई और उसके फ़ील्ड, कोई सूची, कोई डेटासेट): agent का उपयोग करें
  • यदि आप किसी पूरी साइट या अनुभाग का विश्लेषण करना चाहते हैं: crawl का उपयोग करें (सीमाओं के साथ!)
  • यदि आपको इंटरैक्टिव ब्राउज़र ऑटोमेशन चाहिए (क्लिक, टाइप, नेविगेट): नए पेज के लिए URL के साथ interact का उपयोग करें, या जब आप पहले ही पेज स्क्रैप कर चुके हैं या अधिक सख्त स्क्रैप नियंत्रण चाहते हैं तो scrape + interact का उपयोग करें
  • यदि आपको किसी सूचीबद्ध प्रदाता (Alexandria) से डेटा चाहिए: sources: ["alexandria"] के साथ खोजें, find_tools के साथ चयनित अनुबंध का निरीक्षण करें, और इसे scrape alexandria के साथ निष्पादित करें

त्वरित संदर्भ तालिका

टूलसबसे उपयुक्तलौटाता है
scrapeएकल पेज सामग्रीJSON (पसंदीदा) या markdown
interactकिसी URL या स्क्रैप किए गए पेज के साथ इंटरैक्ट करेंनिष्पादन परिणाम + URL मोड के लिए scrapeId
mapकिसी साइट पर URL खोजनाURL[]
crawlबहु-पेज निष्कर्षण (सीमाओं के साथ)आंतरिक पोलिंग के बाद अंतिम क्रॉल स्थिति/डेटा
parseफ़ाइलें और होस्टेड अपलोड संदर्भmarkdown, JSON, या दस्तावेज़ आउटपुट
searchजानकारी के लिए वेब खोजresults[]
find_toolsAlexandria कैटलॉग ब्राउज़िंग और URL लुकअपप्रदाता, टूल अनुबंध और nextTool नेविगेशन
developerडेवलपर स्रोतों पर प्रोग्रामिंग प्रश्नअंशों के साथ results[]
govअमेरिकी प्राथमिक कानून और नियामक सामग्रीस्निपेट के साथ results[]
agentबहु-स्रोत शोध, अज्ञात या कई साइटेंJSON (संरचित डेटा)
monitorआवर्ती पेज जाँचमॉनिटर/जाँच मेटाडेटा और अंतर
researchपेपर और GitHub रिपॉज़िटरी शोधशोध परिणाम और रेपो मिलान

फ़ॉर्मेट चयन गाइड

scrape का उपयोग करते समय, सही फ़ॉर्मेट चुनें:

  • JSON फ़ॉर्मेट (अधिकांश मामलों के लिए अनुशंसित): जब आपको किसी पेज से विशिष्ट डेटा चाहिए तो इसका उपयोग करें। जो आपको निकालना है उसके आधार पर एक स्कीमा परिभाषित करें। यह प्रतिक्रियाओं को छोटा रखता है और कॉन्टेक्स्ट विंडो ओवरफ़्लो से बचाता है।
  • Markdown फ़ॉर्मेट (संयम से उपयोग करें): केवल तब जब आपको वास्तव में पूर्ण पेज सामग्री की आवश्यकता हो, जैसे सारांश के लिए पूरा लेख पढ़ना या पेज संरचना का विश्लेषण करना।

उपलब्ध टूल्स

1. Scrape टूल (firecrawl_scrape)

उन्नत विकल्पों के साथ एकल URL से सामग्री स्क्रैप करें।

सबसे उपयुक्त:

  • एकल पेज सामग्री निष्कर्षण, जब आप ठीक से जानते हैं कि कौन-सा पेज जानकारी रखता है।

अनुशंसित नहीं:

  • कई पेजों से सामग्री निकालना (ज्ञात URL के लिए बार-बार scrape कॉल का उपयोग करें, या पहले URL खोजने के लिए map + scrape, या पूर्ण पेज सामग्री के लिए crawl)
  • जब आप अनिश्चित हों कि कौन-सा पेज जानकारी रखता है (search का उपयोग करें)

सामान्य गलतियाँ:

  • एक scrape कॉल में URL की सूची पास करना। MCP में प्रत्येक URL के लिए scrape को एक बार कॉल करें। यदि आपको विशेष रूप से एक बल्क API ऑपरेशन चाहिए, तो MCP के बाहर Firecrawl API बैच एंडपॉइंट का उपयोग करें।
  • डिफ़ॉल्ट रूप से markdown फ़ॉर्मेट का उपयोग करना (केवल वही निकालने के लिए JSON फ़ॉर्मेट का उपयोग करें जो आपको चाहिए)।

सही फ़ॉर्मेट चुनना:

  • JSON फ़ॉर्मेट (पसंदीदा): अधिकांश उपयोग मामलों के लिए, केवल विशिष्ट आवश्यक डेटा निकालने के लिए स्कीमा के साथ JSON फ़ॉर्मेट का उपयोग करें। यह प्रतिक्रियाओं को केंद्रित रखता है और कॉन्टेक्स्ट विंडो ओवरफ़्लो को रोकता है।
  • Markdown फ़ॉर्मेट: केवल तब जब कार्य के लिए वास्तव में पूर्ण पेज सामग्री आवश्यक हो (जैसे, पूरे लेख का सारांश बनाना, पेज संरचना का विश्लेषण करना)।

प्रॉम्प्ट उदाहरण:

"https://example.com/product. से उत्पाद विवरण प्राप्त करें"

उपयोग उदाहरण (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"]
        }
      }
    ]
  }
}

उपयोग उदाहरण (markdown फ़ॉर्मेट - जब पूर्ण सामग्री आवश्यक हो):

{
  "name": "firecrawl_scrape",
  "arguments": {
    "url": "https://example.com/article",
    "formats": ["markdown"],
    "onlyMainContent": true
  }
}

उपयोग उदाहरण (ब्रांडिंग फ़ॉर्मेट - ब्रांड पहचान निकालें):

{
  "name": "firecrawl_scrape",
  "arguments": {
    "url": "https://example.com",
    "formats": ["branding"]
  }
}

ब्रांडिंग फ़ॉर्मेट: डिज़ाइन विश्लेषण या शैली प्रतिकृति के लिए व्यापक ब्रांड पहचान (रंग, फ़ॉन्ट, टाइपोग्राफ़ी, स्पेसिंग, लोगो, UI घटक) निकालता है। गोपनीयता: व्यक्तिगत रूप से पहचान योग्य जानकारी को संपादित करके सामग्री लौटाने के लिए redactPII: true सेट करें। CLOUD_SERVICE=true के साथ: scrape केवल-पढ़ने के लिए है। यह कोई ब्राउज़र actions नहीं लेता और प्रदाता की शर्तें स्वीकार नहीं कर सकता। एक नामित profile सहेजे गए ब्राउज़र स्थिति को उसमें परिवर्तन सहेजे बिना लोड करता है, और पूर्ण एंडपॉइंट का firecrawl_search scrapeOptions.profile को उसी तरह व्यवहार करता है। ब्राउज़र स्थिति को किसी प्रोफ़ाइल में सहेजने के लिए, पेज को firecrawl_interact के साथ खोलें (नीचे देखें)। कोई संगठन व्यवस्थापक डैशबोर्ड में शर्तें स्वीकार करता है।

लौटाता है:

  • JSON संरचित डेटा, markdown, ब्रांडिंग प्रोफ़ाइल, या अन्य फ़ॉर्मेट जैसा निर्दिष्ट हो।

2. Map टूल (firecrawl_map)

साइट पर सभी अनुक्रमित URL खोजने के लिए किसी वेबसाइट को मैप करें।

सबसे उपयुक्त:

  • यह तय करने से पहले कि क्या स्क्रैप करना है, किसी वेबसाइट पर URL खोजना
  • किसी वेबसाइट के विशिष्ट अनुभाग खोजना

अनुशंसित नहीं:

  • जब आप पहले से जानते हैं कि आपको कौन-सा विशिष्ट URL चाहिए (scrape का उपयोग करें)
  • जब आपको पेजों की सामग्री चाहिए (मैप करने के बाद scrape का उपयोग करें)

सामान्य गलतियाँ:

  • URL खोजने के लिए map के बजाय crawl का उपयोग करना

प्रॉम्प्ट उदाहरण:

"example.com पर सभी URL सूचीबद्ध करें।"

उपयोग उदाहरण:

{
  "name": "firecrawl_map",
  "arguments": {
    "url": "https://example.com"
  }
}

लौटाता है:

  • साइट पर मिले URL की सरणी

3. Search टूल (firecrawl_search)

वेब पर खोजें और वैकल्पिक रूप से खोज परिणामों से सामग्री निकालें।

सबसे उपयुक्त:

  • कई वेबसाइटों में विशिष्ट जानकारी खोजना, जब आप नहीं जानते कि किस वेबसाइट में जानकारी है।
  • जब आपको किसी क्वेरी के लिए सबसे प्रासंगिक सामग्री चाहिए

अनुशंसित नहीं:

  • जब आप पहले से जानते हैं कि कौन-सी वेबसाइट स्क्रैप करनी है (scrape का उपयोग करें)
  • जब आपको किसी एकल वेबसाइट की व्यापक कवरेज चाहिए (map या crawl का उपयोग करें)

सामान्य गलतियाँ:

  • खुले प्रश्नों के लिए crawl या map का उपयोग करना (इसके बजाय search का उपयोग करें)

उपयोग उदाहरण:

{
  "name": "firecrawl_search",
  "arguments": {
    "query": "remote work stipend policies at tech companies",
    "highlights": true,
    "limit": 5,
    "lang": "en",
    "country": "us"
  }
}

एक ही कॉल में कुछ परिणामों का पूर्ण पाठ प्राप्त करने के लिए, "scrapeOptions": { "formats": ["markdown"], "onlyMainContent": true } जोड़ें। प्रत्येक प्राप्त परिणाम का बिल एक scrape के रूप में होता है, इसलिए अधिकांश प्रश्नों के लिए अंशों का उपयोग करें और केवल उन URL को firecrawl_scrape करें जिनकी आपको आवश्यकता है।

क्वेरी-प्रासंगिक हाइलाइट्स का अनुरोध करने के लिए highlights को true पर सेट करें या मूल खोज स्निपेट रखने के लिए false पर सेट करें। API के डिफ़ॉल्ट व्यवहार का उपयोग करने के लिए इसे छोड़ दें।

data.tools में सिमेंटिक टूल खोज के लिए "sources": ["alexandria"] जोड़ें, वैकल्पिक रूप से वेब/समाचार/छवियों के साथ मिश्रित। एक क्वेरी आवश्यक है। प्रासंगिक लुकअप और प्रगतिशील प्रकटीकरण के लिए firecrawl_find_tools का उपयोग करें; देखें Alexandria Tools।

वैज्ञानिक पत्रों के लिए, देखें Research Tools: वे पेपर सारांशों और पूर्ण पाठ में खोज करते हैं, जबकि यहाँ categories: ["research"] सामान्य वेब परिणामों को शोध-संबद्ध वेबसाइटों तक फ़िल्टर करता है।

लौटाता है:

  • स्रोत के अनुसार समूहीकृत खोज परिणाम (data.web, data.images, data.news), वैकल्पिक स्क्रैप की गई सामग्री के साथ, साथ ही एक id फ़ील्ड। प्रत्येक परिणाम में एक source और 1-अनुक्रमित position होता है, जो अपने समूह के भीतर 1 से क्रमांकित होता है — सरणी तत्वों को गिनने के बजाय जोड़ी को सीधे firecrawl_search_feedback के valuableResults में कॉपी करें। परिणामों का उपयोग करने के बाद 1 क्रेडिट वापस पाने (खोज की लागत 2 है) और खोज गुणवत्ता में सुधार के लिए उस id को firecrawl_search_feedback में पास करें।

प्रॉम्प्ट उदाहरण:

"टेक कंपनियों में रिमोट वर्क स्टाइपेंड नीतियों की तुलना करें।"

3b. Search Feedback टूल (firecrawl_search_feedback)

पिछले firecrawl_search परिणाम पर संरचित प्रतिक्रिया भेजता है। प्रति खोज आईडी पहली प्रतिक्रिया 1 क्रेडिट वापस करती है और Firecrawl की खोज गुणवत्ता में सुधार करती है। प्रति खोज आईडी इडेम्पोटेंट।

हर उस खोज के बाद इसे कॉल करें जिसका आप वास्तव में उपयोग करते हैं (या जिससे मदद नहीं मिली)। missingContent के साथ खराब/आंशिक प्रतिक्रिया उतनी ही मूल्यवान है जितनी अच्छी प्रतिक्रिया।

ऑप्ट आउट: MCP सर्वर शुरू करते समय पर्यावरण में FIRECRAWL_NO_SEARCH_FEEDBACK=1 (या FIRECRAWL_DISABLE_SEARCH_FEEDBACK=1) सेट करें। firecrawl_search_feedback टूल पंजीकृत नहीं होगा, इसलिए एजेंट इसे कॉल नहीं कर सकेंगे। टीम व्यवस्थापक सर्वर-साइड पर भी प्रतिक्रिया अक्षम कर सकते हैं; उस स्थिति में, टूल पंजीकृत होता है लेकिन हमेशा feedbackErrorCode: "TEAM_OPTED_OUT" लौटाता है। सबसे महत्वपूर्ण फ़ील्ड: missingContent। यह उन विशिष्ट सामग्री अंशों की एक सरणी है जिन्हें एजेंट ने पाए जाने की अपेक्षा की थी लेकिन नहीं मिले। प्रत्येक अनुपलब्ध विषय के लिए एक प्रविष्टि; ये टीमों में एकत्रित होती हैं और हमें बताती हैं कि आगे किसे इंडेक्स करना है। उपयोगी परिणामों के लिए, valuableResults का उपयोग source/position युग्म के साथ करें जो प्रत्येक परिणाम पर अंकित होता है — परिणाम समूहीकृत होते हैं और प्रत्येक समूह 1 से स्वतंत्र रूप से क्रमांकित होता है, इसलिए दोनों आवश्यक हैं। प्रत्येक उपयोगी परिणाम सूचीबद्ध करें (सूचीबद्ध न किए गए परिणामों को अनुपयोगी माना जाता है), और valuableSources को उन उपयोगी URL के लिए आरक्षित रखें जो लौटाए गए परिणामों में शामिल नहीं थे।

दैनिक रिफ़ंड सीमा (प्रति टीम, प्रति UTC दिन, डिफ़ॉल्ट 100 क्रेडिट)। एक बार जब किसी टीम का creditsRefundedToday dailyRefundCap तक पहुँच जाता है, तो आगे के सबमिशन अभी भी फ़ीडबैक रिकॉर्ड करते हैं लेकिन क्रेडिट रिफ़ंड नहीं करते। प्रतिक्रिया dailyCapReached: true सेट करती है। जब एजेंट को वह फ़्लैग दिखे, तो उन्हें UTC दिन के शेष समय के लिए इस टूल को कॉल करना बंद कर देना चाहिए।

उपयोग उदाहरण:

{
  "name": "firecrawl_search_feedback",
  "arguments": {
    "searchId": "0193f6c5-1234-7890-abcd-1234567890ab",
    "rating": "good",
    "valuableResults": [
      { "source": "web", "position": 1 },
      { "source": "web", "position": 3 },
      { "source": "news", "position": 2, "reason": "Broke the pricing change." }
    ],
    "valuableSources": [
      {
        "url": "https://docs.firecrawl.dev/pricing",
        "reason": "Not in the results; found via a result's pricing link. Answered the question."
      }
    ],
    "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।

3c. सामान्य फ़ीडबैक टूल (firecrawl_feedback)

/v2/feedback के माध्यम से पूर्ण हुए v2 एंडपॉइंट जॉब के लिए संरचित फ़ीडबैक भेजता है। इसका उपयोग scrape, parse, map, या search जॉब्स पर एंडपॉइंट-स्तरीय फ़ीडबैक के लिए करें। विशेष रूप से सर्च-परिणाम गुणवत्ता के लिए, firecrawl_search_feedback को प्राथमिकता दें क्योंकि इसमें सर्च-विशिष्ट मार्गदर्शन शामिल है।

फ़ीडबैक संक्षिप्त रखें: इश्यू कोड, टैग, छोटे नोट्स, URL, पेज नंबर, और छोटे मेटाडेटा ऑब्जेक्ट का उपयोग करें। कच्चे स्क्रैप/पार्स आउटपुट शामिल न करें।

ऑप्ट आउट: MCP सर्वर शुरू करते समय एनवायरनमेंट में FIRECRAWL_NO_ENDPOINT_FEEDBACK=1 (या FIRECRAWL_DISABLE_ENDPOINT_FEEDBACK=1) सेट करें। firecrawl_feedback टूल पंजीकृत नहीं होगा, इसलिए एजेंट इसे कॉल नहीं कर सकेंगे।

उपयोग उदाहरण:

{
  "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?, websiteCapReached?, alreadySubmitted?, warning? } JSON।

4. क्रॉल टूल (firecrawl_crawl)

एक क्रॉल जॉब शुरू करता है, टर्मिनल स्थिति तक पोल करता है, और अंतिम क्रॉल स्थिति/डेटा लौटाता है।

इसके लिए सर्वोत्तम:

  • कई संबंधित पेजों से सामग्री निकालना, जब आपको व्यापक कवरेज की आवश्यकता हो।

इसके लिए अनुशंसित नहीं:

  • एकल पेज से सामग्री निकालना (scrape का उपयोग करें)
  • जब टोकन सीमाएँ चिंता का विषय हों (अधिक नियंत्रण के लिए map + scrape का उपयोग करें)
  • जब आपको तेज़ परिणाम चाहिए (क्रॉलिंग धीमी हो सकती है)

चेतावनी: क्रॉल प्रतिक्रियाएँ बहुत बड़ी हो सकती हैं और टोकन सीमाओं से अधिक हो सकती हैं। क्रॉल की गहराई और पेजों की संख्या सीमित करें, या अधिक नियंत्रण के लिए map + scrape का उपयोग करें।

सामान्य गलतियाँ:

  • limit या maxDiscoveryDepth बहुत अधिक सेट करना (टोकन ओवरफ़्लो का कारण बनता है)
  • एकल पेज के लिए crawl का उपयोग करना (इसके बजाय scrape का उपयोग करें)

प्रॉम्प्ट उदाहरण:

"example.com/blog के पहले दो स्तरों से सभी ब्लॉग पोस्ट प्राप्त करें।"

उपयोग उदाहरण:

{
  "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 के साथ उपयोग करें।

5. क्रॉल स्थिति जाँचें (firecrawl_check_crawl_status)

ID द्वारा किसी मौजूदा क्रॉल जॉब की स्थिति और परिणाम जाँचें।

{
  "name": "firecrawl_check_crawl_status",
  "arguments": {
    "id": "550e8400-e29b-41d4-a716-446655440000"
  }
}

रिटर्न करता है:

  • प्रतिक्रिया में क्रॉल जॉब की स्थिति शामिल होती है:

6. पार्स टूल (firecrawl_parse)

Firecrawl के /v2/parse एंडपॉइंट के साथ स्थानीय फ़ाइलों या होस्टेड अपलोड संदर्भों को पार्स करें।

इसके लिए सर्वोत्तम: PDF, Word दस्तावेज़, स्प्रेडशीट, HTML फ़ाइलें, और अन्य दस्तावेज़ जिन्हें markdown या संरचित JSON आउटपुट की आवश्यकता होती है। होस्टेड एंडपॉइंट दो-चरणीय अपलोड फ़्लो का उपयोग करता है; स्थानीय सीधे फ़ाइल पढ़ने के लिए स्व-होस्टेड FIRECRAWL_API_URL आवश्यक है।

इसके लिए अनुशंसित नहीं: रिमोट URL (scrape का उपयोग करें), एक कॉल में कई फ़ाइलें (प्रत्येक फ़ाइल के लिए parse को एक बार कॉल करें), या केवल-ब्राउज़र क्रियाएँ जैसे स्क्रीनशॉट और क्लिक।

होस्टेड एंडपॉइंट: यह आपकी फ़ाइलसिस्टम नहीं पढ़ सकता। अल्पकालिक अपलोड कमांड और nextToolCall प्राप्त करने के लिए filePath के साथ firecrawl_parse को कॉल करें, फ़ाइल को स्थानीय रूप से अपलोड करें, फिर लौटाए गए uploadRef के साथ firecrawl_parse को फिर से कॉल करें। अपलोड चरण के लिए Firecrawl प्रमाणीकरण या कीलेस टियर आवश्यक है। स्थानीय npx firecrawl-mcp मोड में, सीधे फ़ाइल पार्सिंग के लिए वर्तमान में FIRECRAWL_API_URL की आवश्यकता होती है जो स्व-होस्टेड Firecrawl API की ओर इंगित करे; केवल क्लाउड API-कुंजी वाला सादा स्थानीय सर्वर इस टूल के माध्यम से फ़ाइलें पढ़ और अपलोड नहीं कर सकता।

उपयोग उदाहरण:

{
  "name": "firecrawl_parse",
  "arguments": {
    "filePath": "/absolute/path/to/document.pdf",
    "formats": ["markdown"],
    "parsers": ["pdf"],
    "zeroDataRetention": true
  }
}

रिटर्न करता है: पार्स किया गया दस्तावेज़ सामग्री या nextToolCall के साथ होस्टेड अपलोड निर्देश।

7. Scrape JSON के साथ संरचित डेटा

किसी ज्ञात पेज से संरचित डेटा के लिए, formats: ["json"] के साथ प्रति URL एक बार firecrawl_scrape को कॉल करें। निष्कर्षण प्रॉम्प्ट और JSON स्कीमा को jsonOptions में रखें।

{
  "name": "firecrawl_scrape",
  "arguments": {
    "url": "https://example.com/product",
    "formats": ["json"],
    "jsonOptions": {
      "prompt": "Extract the product name, price, and description.",
      "schema": {
        "type": "object",
        "properties": {
          "name": { "type": "string" },
          "price": { "type": "number" },
          "description": { "type": "string" }
        },
        "required": ["name", "price"]
      }
    }
  }
}

जब URL ज्ञात न हों या डेटा कई साइटों में फैला हो, तो बहु-स्रोत शोध के लिए firecrawl_agent का उपयोग करें।

8. एजेंट टूल (firecrawl_agent)

स्वायत्त वेब शोध एजेंट जो संरचित डेटा लौटाता है जब आप URL नहीं जानते या उत्तर कई साइटों में फैला हो। आपको जिन फ़ील्ड्स की आवश्यकता है उनका वर्णन करें, वैकल्पिक रूप से एक JSON स्कीमा और सीड URL पास करें, और एजेंट खोजता है, नेविगेट करता है, पेज पढ़ता है, और स्रोतों में एकत्रित JSON लौटाता है। इसका उपयोग किसी एंटिटी और उसके फ़ील्ड्स के लिए, सूचियों और डेटासेट के लिए, और उन पेजों के लिए करें जिन्हें डेटा तक पहुँचने के लिए नेविगेशन की आवश्यकता होती है। एक ज्ञात URL के लिए इसके बजाय JSON प्रारूप के साथ firecrawl_scrape का उपयोग करें।

यह कैसे काम करता है:

एजेंट वेब खोजें करता है, लिंक का अनुसरण करता है, पेज पढ़ता है, और स्वायत्त रूप से डेटा एकत्र करता है। यह अतुल्यकालिक रूप से चलता है - यह तुरंत एक जॉब ID लौटाता है, और आप पूर्ण होने की जाँच करने और परिणाम प्राप्त करने के लिए firecrawl_agent_status को पोल करते हैं।

अतुल्यकालिक वर्कफ़्लो:

  1. अपने प्रॉम्प्ट/स्कीमा के साथ firecrawl_agent को कॉल करें → जॉब ID लौटाता है
  2. जब एजेंट शोध करता है तब अन्य कार्य करें (जटिल क्वेरी के लिए मिनट लग सकते हैं)
  3. प्रगति जाँचने के लिए जॉब ID के साथ firecrawl_agent_status को पोल करें
  4. जब स्थिति "completed" हो, तो प्रतिक्रिया में निकाला गया डेटा शामिल होता है

इसके लिए सर्वोत्तम:

  • जटिल शोध कार्य जहाँ आप सटीक URL नहीं जानते
  • बहु-स्रोत डेटा संग्रह
  • वेब में बिखरी हुई जानकारी खोजना
  • ऐसे कार्य जहाँ आप परिणामों की प्रतीक्षा करते समय अन्य कार्य कर सकते हैं

इसके लिए अनुशंसित नहीं:

  • सरल एकल-पेज स्क्रैपिंग जहाँ आप URL जानते हैं (JSON प्रारूप के साथ scrape का उपयोग करें - तेज़ और सस्ता)

आर्ग्युमेंट्स:

  • prompt: आपके द्वारा चाहे गए डेटा का प्राकृतिक भाषा विवरण (आवश्यक, अधिकतम 10,000 अक्षर)
  • urls: एजेंट को विशिष्ट पेजों पर केंद्रित करने के लिए URL की वैकल्पिक सरणी
  • schema: संरचित आउटपुट के लिए वैकल्पिक JSON स्कीमा
  • effort: वैकल्पिक। एजेंट कार्य के लिए "low", "medium" या "high" रीज़निंग बजट।
  • maxCredits: वैकल्पिक धनात्मक पूर्णांक। इस रन के लिए क्रेडिट में खर्च सीमा। छोड़े जाने पर API डिफ़ॉल्ट 2,500 पर होता है, और मुफ़्त अनुरोध को 2,500 पर सीमित करता है।
  • strictConstrainToURLs: वैकल्पिक बूलियन। यदि true, तो एजेंट केवल urls में दिए गए URL पर जाता है।
  • threadId: वैकल्पिक। किसी मौजूदा थ्रेड को जारी रखें: किसी पिछले firecrawl_agent या firecrawl_agent_status परिणाम से threadId। नया थ्रेड शुरू करने के लिए छोड़ दें। फ़ॉलो-अप पर, छोड़ी गई mode, urls, schema और exchange सेटिंग्स पिछले टर्न से बनी रहती हैं।
  • mode: वैकल्पिक। "extract" (डिफ़ॉल्ट) हर टर्न पर पूरा संरचित परिणाम लौटाता है। "chat" ऐसे फ़ॉलो-अप को जो कोई नया डेटा नहीं माँगता, दोबारा रन के बजाय message में छोटा उत्तर पाने देता है; exchange.requireApproval को इसकी आवश्यकता होती है।
  • exchange: वैकल्पिक। इस टर्न के लिए Alexandria प्रदाता सेटिंग्स, जो POST /v2/agent को जैसी हैं वैसी ही अग्रेषित की जाती हैं:
    • enabled, toolkits (अधिकतम 5 प्रदाता स्लग), maxCalls (1 से 30), requireApproval (सशुल्क कॉल टर्न को pendingApproval के साथ समाप्त करते हैं; उसी कॉल पर mode: "chat" आवश्यक है, फ़ॉलो-अप पर भी)
    • onTermsRequired: क्या करें जब एजेंट द्वारा उपयोग किया जाने वाला कोई Alexandria प्रदाता ऐसे डेटा शर्तों की माँग करता है जिन्हें आपकी टीम ने स्वीकार नहीं किया है। गेटेड प्रदाताओं को किसी भी मोड में कभी कॉल नहीं किया जाता। फ़ॉलो-अप पर छोड़े जाने पर पिछले टर्न का मान बना रहता है।
      • "skip" (डिफ़ॉल्ट): केवल स्वीकृत प्रदाताओं के साथ उत्तर दें। स्थिति परिणाम पर exchange.skippedProviders उन गेटेड प्रदाताओं को सूचीबद्ध करता है जो सहायक होते।
      • "ask": वही, साथ ही एक शर्तें pendingApproval और exchange.requiresAction जिसमें अनुमोदन ID और प्रदाता आवश्यकताएँ हों। शर्तें terms/show के साथ पढ़ें; एक संगठन व्यवस्थापक उन्हें Firecrawl डैशबोर्ड में स्वीकार करता है।
    • approve: { approvalId, callIds?, always? } उस pendingApproval को हाँ कहता है जिस पर पिछला टर्न समाप्त हुआ था। callIds और always केवल सशुल्क-कॉल अनुमोदनों पर लागू होते हैं।
    • decline: { approvalId } ना कहता है। अस्वीकृत शर्त प्रस्ताव उन प्रदाताओं को थ्रेड के शेष भाग से बाहर रखता है।
    • approve और decline को threadId आवश्यक है, और उनमें से केवल एक ही भेजा जा सकता है।

प्रदाता शर्तें (ask मोड): कोई ऑटो-स्वीकार मोड नहीं है। जब कोई टर्न शर्त प्रस्ताव पर समाप्त होता है, तो स्थिति परिणाम में pendingApproval (kind: "terms") और exchange.requiresAction होता है जिसमें approvalId और प्रदाता आवश्यकताएँ हों। उस API पेलोड में कोई भी terms/accept डिस्क्रिप्टर MCP के माध्यम से उपलब्ध नहीं है। प्रदाता का उपयोग करने के लिए:

  1. उपयोगकर्ता को शर्तें दिखाएँ (terms/show से firecrawl_scrape तक alexandria के साथ)।
  2. किसी संगठन व्यवस्थापक को प्रदाता के URL पर, या डेटा स्रोत सेटिंग्स पर शर्तें स्वीकार करने के लिए निर्देशित करें। डेटा अनुरोध सहमति नहीं है।
  3. व्यवस्थापक के डैशबोर्ड में स्वीकृति की पुष्टि करने की प्रतीक्षा करें।
  4. उसी थ्रेड को जारी रखें: उसी threadId और exchange.approve: { "approvalId": "..." } के साथ firecrawl_agent को कॉल करें। यह शोध फिर से शुरू करता है और शर्तें स्वीकार नहीं करता।

यदि उपयोगकर्ता ना कहता है, तो इसके बजाय उसी threadId और exchange.decline: { "approvalId": "..." } के साथ firecrawl_agent को कॉल करें।

प्रॉम्प्ट उदाहरण:

"Firecrawl के संस्थापकों और उनकी पृष्ठभूमि का पता लगाएँ"

उपयोग उदाहरण (एजेंट शुरू करें, फिर परिणामों के लिए पोल करें):

{
  "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" }
            }
          }
        }
      }
    }
  }
}

फिर लौटाए गए जॉब ID का उपयोग करके firecrawl_agent_status के साथ पोल करें।

उपयोग उदाहरण (URL के साथ - एजेंट विशिष्ट पेजों पर केंद्रित होता है):

{
  "name": "firecrawl_agent",
  "arguments": {
    "urls": ["https://docs.firecrawl.dev", "https://firecrawl.dev/pricing"],
    "prompt": "Compare the features and pricing information from these pages"
  }
}

उपयोग उदाहरण (उसी थ्रेड पर फ़ॉलो-अप):

{
  "name": "firecrawl_agent",
  "arguments": {
    "prompt": "Only keep the startups based in Europe",
    "threadId": "0199a1b2-0000-7000-8000-000000000031"
  }
}

उपयोग उदाहरण (व्यवस्थापक द्वारा डैशबोर्ड स्वीकृति की पुष्टि के बाद थ्रेड जारी रखें):

{
  "name": "firecrawl_agent",
  "arguments": {
    "prompt": "The admin confirmed acceptance of the Apollo terms in the dashboard. Continue.",
    "threadId": "0199a1b2-0000-7000-8000-000000000031",
    "exchange": { "approve": { "approvalId": "0199a1b2-0000-7000-8000-000000000033" } }
  }
}

रिटर्न करता है:

  • स्थिति जाँच के लिए जॉब ID, साथ ही threadId और threadTurn। परिणामों के लिए पोल करने हेतु firecrawl_agent_status का उपयोग करें।

9. एजेंट स्थिति जाँचें (firecrawl_agent_status)

किसी एजेंट जॉब की स्थिति जाँचें और पूर्ण होने पर परिणाम प्राप्त करें। एजेंट शुरू करने के बाद परिणामों के लिए पोल करने हेतु इसका उपयोग करें।

पोलिंग पैटर्न: जटिल क्वेरी के लिए एजेंट शोध में मिनट लग सकते हैं। इस एंडपॉइंट को समय-समय पर (जैसे, हर 10-30 सेकंड में) पोल करें जब तक स्थिति "completed" या "failed" न हो जाए।

{
  "name": "firecrawl_agent_status",
  "arguments": {
    "id": "550e8400-e29b-41d4-a716-446655440000"
  }
}

संभावित स्थितियाँ:

  • processing: एजेंट अभी भी शोध कर रहा है - बाद में फिर जाँचें
  • completed: शोध समाप्त - प्रतिक्रिया में निकाला गया डेटा शामिल है
  • failed: एक त्रुटि हुई

10. इंटरैक्ट टूल (firecrawl_interact)

किसी नए URL के साथ या उस पेज के साथ इंटरैक्ट करें जिसे पहले ही firecrawl_scrape द्वारा खोला गया है।

इसके लिए सर्वोत्तम: पदावनत ब्राउज़र टूल को पुनर्स्थापित किए बिना क्लिक करना, टाइप करना, नेविगेट करना, और गतिशील पेजों से स्थिति निकालना।

उपयोग विकल्प:

  • एक MCP कॉल में पेज को स्क्रैप और इंटरैक्शन के लिए खोलने हेतु url पास करें।
  • किसी मौजूदा स्क्रैप किए गए पेज के साथ इंटरैक्ट करना जारी रखने हेतु scrapeId पास करें।
  • ब्राउज़र स्थिति (कुकीज़, localStorage) को नामित प्रोफ़ाइल में सहेजने के लिए, scrapeOptions: { "profile": { "name": "my-profile", "saveChanges": true } } के साथ url पास करें। जब firecrawl_interact_stop सत्र समाप्त करता है तब स्थिति सहेजी जाती है।
  • url या scrapeId में से ठीक एक, साथ ही prompt या code में से कोई एक पास करें।

उपयोग उदाहरण:

{
  "name": "firecrawl_interact",
  "arguments": {
    "url": "https://example.com",
    "prompt": "Click the pricing link and summarize the visible plans"
  }
}

रिटर्न करता है: इंटरैक्शन परिणाम और, URL मोड के लिए, फ़ॉलो-अप या क्लीनअप के लिए व्युत्पन्न scrapeId।

11. इंटरैक्ट रोकें टूल (firecrawl_interact_stop)

जब आप इंटरैक्ट करना पूरा कर लें तो स्क्रैप किए गए पेज के लिए इंटरैक्ट सत्र रोकें।

{
  "name": "firecrawl_interact_stop",
  "arguments": {
    "scrapeId": "scrape-id-here"
  }
}

12. शोध टूल (firecrawl_research_*)

research MCP टूल्स के माध्यम से पेपर और GitHub रिपॉज़िटरी खोजें और निरीक्षण करें।

कवर करता है: बायोमेडिकल, लाइफ-साइंस और क्लिनिकल साहित्य (PubMed, bioRxiv, medRxiv) के साथ-साथ arXiv और अन्य वैज्ञानिक स्रोतों के पेपर सारांश और पूर्ण पाठ।

उपलब्ध research टूल्स:

  • firecrawl_research_search_papers: प्राकृतिक-भाषा क्वेरी के साथ पेपर मेटाडेटा और सारांश खोजें, वैकल्पिक लेखक, श्रेणी और तिथि फ़िल्टर के साथ।
  • firecrawl_research_inspect_paper: एक पेपर ID (arXiv, PMC, PMID, या DOI) के लिए विहित मेटाडेटा प्राप्त करें।
  • firecrawl_research_related_papers: साइटेशन ग्राफ़ के माध्यम से एक या अधिक एंकर पेपर से विस्तार करें।
  • firecrawl_research_read_paper: किसी विशिष्ट पेपर से पूर्ण-पाठ अंश पढ़ें।

सबसे उपयुक्त: साहित्य समीक्षा, पेपर लुकअप, और रिपॉज़िटरी डिस्कवरी वर्कफ़्लो के लिए जहाँ एजेंट को सामान्य वेब खोज के बजाय एक केंद्रित research सतह की आवश्यकता होती है।

firecrawl_search के साथ categories: ["research"] एक अलग सतह है: यह सामान्य वेब परिणामों को research-संबद्ध वेबसाइटों तक फ़िल्टर करता है और पेपर रिकॉर्ड नहीं, बल्कि पेज स्निपेट लौटाता है। इन टूल्स का उपयोग तब करें जब प्रश्न साहित्य के बारे में ही हो, और एक ही प्रश्न के कई भिन्न फ़्रेमिंग पास करें, क्योंकि वे एकल क्वेरी की तुलना में भिन्न पेपर सामने लाते हैं।

13. Monitor टूल्स (firecrawl_monitor_*)

आवर्ती पेज मॉनिटर बनाएँ और प्रबंधित करें। मॉनिटर निर्धारित स्क्रैप या क्रॉल चलाते हैं, प्रत्येक परिणाम की अंतिम रखे गए स्नैपशॉट से तुलना करते हैं, और webhook या ईमेल द्वारा सूचित कर सकते हैं।

सबसे उपयुक्त:

  • समय के साथ एक पेज या कुछ पेजों पर नज़र रखना
  • सरल-अंग्रेज़ी लक्ष्य का उपयोग करके सार्थक परिवर्तनों पर अलर्ट करना
  • चेक इतिहास और पेज-स्तरीय डिफ़ ट्रैक करना

अनुशंसित create पैटर्न:

page या pages के साथ goal का उपयोग करें। MCP सर्वर 30-मिनट के शेड्यूल के साथ मॉनिटर अनुरोध बनाता है और API स्वचालित रूप से सार्थक-परिवर्तन निर्णय सक्षम करता है।

सार्थक-परिवर्तन निर्णय तब स्वचालित रूप से चलता है जब goal सेट होता है। पेज webhooks monitor.page इवेंट्स पर isMeaningful और judgment उजागर करते हैं।

लक्ष्यों को संक्षिप्त 2-3 वाक्यों के मॉनिटर निर्देशों के रूप में लिखें। बताएँ कि किस चीज़ से अलर्ट ट्रिगर होना चाहिए, उपयोगकर्ता द्वारा दिए गए किसी भी दायरे को सुरक्षित रखें, और इरादे-विशिष्ट बहिष्करण केवल तभी शामिल करें जब अनुरोध से स्पष्ट हो। व्हाइटस्पेस, केवल-फ़ॉर्मेटिंग परिवर्तन, अनुरोध ID, ट्रैकिंग पैराम, सामान्य मेटाडेटा, और असंबंधित पेज क्रोम जैसे सामान्य शोर को जज पहले से संभालता है, इसलिए इसे हर लक्ष्य में न दोहराएँ। यदि उपयोगकर्ता अस्पष्ट है, तो लक्ष्य को व्यापक रखें; यदि वे व्यापक निगरानी या "कोई भी परिवर्तन" माँगते हैं, तो उसे सुरक्षित रखें। यदि उपयोगकर्ता कहता है कि उन्हें किसी चीज़ की परवाह नहीं है, तो उसे स्पष्ट रूप से शामिल करें।

{
  "name": "firecrawl_monitor_create",
  "arguments": {
    "page": "https://example.com/pricing",
    "goal": "Alert when pricing, packaging, or launch messaging changes."
  }
}

webhooks के साथ कई पेज:

{
  "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"
  }
}

उन्नत create अनुरोध:

जब आपको crawl लक्ष्य, JSON परिवर्तन ट्रैकिंग, कस्टम रिटेंशन, या स्पष्ट judgeEnabled नियंत्रण की आवश्यकता हो तो body पास करें।

{
  "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" }]
    }
  }
}

अन्य monitor टूल्स:

  • 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 शामिल हैं।

14. Developer Search टूल (firecrawl_developer_search)

कोडिंग एजेंट के लिए बनाए गए इंडेक्स में खोजें। इंडेक्स GitHub issues, merged pull requests, रिपॉज़िटरी READMEs, और कोड दस्तावेज़ीकरण को कवर करता है।

सबसे उपयुक्त: एक प्रोग्रामिंग प्रश्न: कोड व्यवहार, कोई लाइब्रेरी या फ़्रेमवर्क, कोई API अनुबंध, कोई त्रुटि संदेश, या कोई ज्ञात बग।

आर्ग्युमेंट:

{
  "name": "firecrawl_developer_search",
  "arguments": {
    "query": "how do I configure retries",
    "k": 10,
    "skills": "only"
  }
}
  • query (आवश्यक): developer प्रश्न या खोज वाक्यांश।
  • k: रैंक किए गए परिणामों की संख्या। डिफ़ॉल्ट 10 है और अधिकतम 100 है।
  • skills: केवल agent-skill फ़ाइलों में खोजने के लिए "only" पर सेट करें।

लौटाता है: रैंक किए गए परिणाम। प्रत्येक परिणाम में एक ID, एक स्रोत प्रकार (issue, pull_request, readme, या doc), एक URL, एक शीर्षक, और markdown में मेल खाते अंश होते हैं।

firecrawl_search के साथ categories: ["developer"] वेब परिणामों के साथ उसी इंडेक्स में खोजता है। इसके बजाय इस टूल का उपयोग तब करें जब आपको मेल खाते अंश, skills फ़िल्टर, या प्रतिक्रिया में कोई वेब परिणाम नहीं चाहिए। search-only endpoint दोनों टूल्स को उजागर करता है, और वहाँ भी वही विकल्प लागू होता है।

14b. Government Index Search टूल (firecrawl_gov_search)

US संघीय, राज्य, और स्थानीय सरकारी स्रोतों से प्राथमिक कानून और नियामक सामग्री खोजें: क़ानून, विनियम, संहिताएँ, न्यायालय राय, और अन्य सरकारी प्रकाशन।

सबसे उपयुक्त: एक कानूनी या नियामक प्रश्न जिसके लिए शासी पाठ या आधिकारिक सरकारी स्रोत की आवश्यकता होती है।

आर्ग्युमेंट:

{
  "name": "firecrawl_gov_search",
  "arguments": {
    "query": "excessive force claims against police officers",
    "k": 10,
    "courtType": "federal-appellate",
    "cites": "42 U.S.C. § 1983"
  }
}
  • query (आवश्यक): कानूनी या नियामक प्रश्न या खोज वाक्यांश।
  • k: रैंक किए गए परिणामों की संख्या। डिफ़ॉल्ट 10 है और अधिकतम 100 है।
  • jurisdiction: केवल एक क्षेत्राधिकार के पेज रखें: संघीय के लिए "us", या "us-" के साथ दो-अक्षर का राज्य या क्षेत्र कोड, जैसे "us-ca" या "us-dc"।
  • court: केवल एक न्यायालय के लिए लेबल किए गए पेज रखें, CourtListener court id द्वारा, जैसे "scotus", "ca9" या "nysd"।
  • courtType: केवल एक प्रकार के न्यायालय के पेज रखें: federal-supreme, federal-appellate, federal-district, federal-bankruptcy, federal-special, military, state-supreme, state-appellate, state-trial, state-special या state-attorney-general।
  • cites: केवल उन पेजों को रखें जो किसी एक कानून या मामले का हवाला देते हैं, मुद्रित उद्धरण के रूप में जैसे "42 U.S.C. § 1983" या "5 U.S. 137", या citation id के रूप में जैसे "us:usc:42:1983"।
  • domain: केवल एक साइट के पेज रखें, जैसे "irs.gov"।

फ़िल्टर वैकल्पिक हैं और संयोजित होते हैं: एक परिणाम को हर सेट किए गए फ़िल्टर से मेल खाना चाहिए। फ़िल्टर केवल उन पेजों को रखते हैं जिन्हें इंडेक्स ने लेबल किया है, इसलिए एक फ़िल्टर की गई खोज प्रासंगिक पेजों को छोड़ सकती है, और कोई परिणाम न होना इसका अर्थ नहीं कि कोई मौजूद नहीं है। न्यायालय लेबल संघीय न्यायालयों और case-law संग्रहों के लिए सबसे पूर्ण हैं।

लौटाता है: रैंक किए गए परिणाम। प्रत्येक परिणाम में एक स्थिति, एक शीर्षक, एक URL, और मेल खाता स्निपेट होता है। search-only endpoint यह टूल भी उजागर करता है।

firecrawl_search के साथ categories: ["gov"] उन्हीं स्रोतों में खोजता है और हिट्स को data.web में category: "gov" के साथ लौटाता है। gov श्रेणी इन फ़िल्टर को नहीं लेती और अन्य श्रेणियों के साथ संयोजित नहीं की जा सकती।

15. Alexandria टूल्स

Firecrawl Alexandria डेटा प्रदाताओं का एक कैटलॉग है जिसे Firecrawl API के माध्यम से Firecrawl API key के साथ उस टीम पर पहुँचा जा सकता है जिसके पास Alexandria पहुँच हो। Keyless सत्रों (hosted या local) को Alexandria requires an API key on a team with Alexandria access मिलता है; hosted keyless सत्रों के लिए Alexandria discovery टूल्स सूचीबद्ध नहीं हैं।

Semantic discovery (firecrawl_search):

{
  "name": "firecrawl_search",
  "arguments": {
    "query": "podcast conversations about AI agents",
    "sources": ["web", "alexandria"],
    "domainTools": true,
    "limit": 2
  }
}

data.tools डिफ़ॉल्ट रूप से provider, capability, और description के साथ संक्षिप्त सुझाव देता है। मेटाडेटा और नेविगेशन के लिए toolDetail: "summary" सेट करें, या inputs, response fields और examples सहित contracts के लिए toolDetail: "full" सेट करें। domainTools: true उसी array में query mentions और result URLs के लिए प्रासंगिक मिलान जोड़ता है। अनुपलब्ध discovery के लिए warning जाँचें। खोज के लिए एक query आवश्यक है और यह catalogue traversal फ़िल्टर स्वीकार नहीं करता। यह discovery पूर्ण और search-only दोनों MCP सतहों पर काम करता है।

Progressive disclosure (firecrawl_find_tools):

{
  "name": "firecrawl_find_tools",
  "arguments": {
    "providers": ["particle"],
    "capabilities": ["podcasts/episodes/search"],
    "expand": ["options", "response", "examples"],
    "limit": 2
  }
}

श्रेणियों के लिए बिना आर्ग्युमेंट के शुरू करें, फिर कैटलॉग को उत्तरोत्तर संकीर्ण करें:

आर्ग्युमेंटपरिणाम
{}श्रेणियाँ और संक्षिप्त विवरण
{"categories":["podcasts"]}उस श्रेणी में providers
{"categories":["podcasts"],"providers":["particle"]}संक्षिप्त टूल नाम और विवरण
{"providers":["particle"],"capabilities":["podcasts/episodes/search"]}चयनित inputs, constraints, response, और examples पूर्ण रूप से

कोई group hop आवश्यक नहीं है। स्पष्ट level categories, providers, groups, या tools का समर्थन करता है; स्पष्ट expand contract अनुभागों का चयन करता है। expand: [] capability चुनते समय भी परिणामों को संक्षिप्त रखता है। व्यापक पूर्ण contracts के लिए, स्पष्ट रूप से level: "tools" और expand: ["options", "response", "examples"] का अनुरोध करें। URLs पेज को fetch किए बिना प्रासंगिक discovery प्रदान करते हैं। टूल परिणाम प्रति-capability credit मूल्यों को छोड़ देते हैं जब तक includeCosts: true सेट न हो; अनुवर्ती nextTool आर्ग्युमेंट इसे बनाए रखते हैं।

परिणाम data.alexandria[0].data में हैं। किसी आइटम के nextTool का पालन उसके name को उसके arguments के साथ कॉल करके करें; पेज का nextTool पेजिनेशन को आगे बढ़ाता है। मौजूदा next ऑब्जेक्ट Alexandria discovery कॉल बने रहते हैं जो firecrawl_scrape के माध्यम से उपयोग करने योग्य हैं। Discovery में शून्य credits खर्च होते हैं और यह कभी भी provider टूल्स को निष्पादित नहीं करता। निष्पादन से पहले चयनित पूर्ण contract पढ़ें।

इन नियंत्रणों के लिए मेल खाता Alexandria API deployment आवश्यक है।

Execute (firecrawl_scrape के साथ alexandria): url के बजाय alexandria पास करें (दोनों में से ठीक एक; requestId और timeout भी दिए जा सकते हैं)। एकल कॉल या दस कॉल तक का array स्वीकार किया जाता है।

{
  "name": "firecrawl_scrape",
  "arguments": {
    "alexandria": [
      {
        "provider": "fred",
        "capability": "series/observations",
        "options": { "series_id": "CPIAUCSL" }
      }
    ]
  }
}

लौटाता है: { success, scrape_id, requestId, data: { alexandria: [...], creditsCost } }। प्रत्येक आइटम या तो एक परिणाम (provider, capability, data, records, upstreamStatus) है या code के साथ एक error; provider त्रुटि के लिए batch कभी भी पूर्ण रूप से विफल नहीं होता और data.creditsCost अनुरोध के लिए कुल शुल्क है। Alexandria त्रुटि बॉडी (Alexandria पहुँच के बिना 403, और 402/409 billing स्थितियाँ) अपने code के साथ in-band रिले की जाती हैं।

निष्पादन एक x-request-id उत्पन्न करता है और सफलता या विफलता पर उसे लौटाता है। उसी requestId के साथ समान payload को पुनः प्रयास करें; अनिश्चित परिणाम के बाद नई ID न बनाएँ। उपलब्ध credits API द्वारा जाँचे जाते हैं।

जिस Alexandria provider की शर्तें टीम ने स्वीकार नहीं की हैं, वह कुछ भी चलने से पहले HTTP 403 और इस बॉडी के साथ विफल होता है:

{
  "success": false,
  "code": "THIRD_PARTY_DATA_TERMS_REQUIRED",
  "error": "An organization admin must accept the benzinga provider's terms (version 2026-09-12-placeholder) before this request can run. Accept them at https://www.firecrawl.dev/app/alexandria/benzinga",
  "requiresAction": {
    "type": "accept_terms",
    "terms": "benzinga",
    "version": "2026-09-12-placeholder",
    "url": "https://www.firecrawl.dev/app/alexandria/benzinga"
  }
}

टूल परिणाम इसे एक त्रुटि के रूप में रिले करता है जिसमें structuredContent में code, status: 403, requestId, अपरिवर्तित requiresAction ऑब्जेक्ट, और next_actions (human_action_required फिर retry_same_request) होते हैं। शर्तें स्वीकार करना एक कानूनी कार्य है, इसलिए एक संगठन व्यवस्थापक उन्हें Firecrawl डैशबोर्ड में स्वीकार करता है, MCP के माध्यम से नहीं। लौटाए गए nextTool कॉल का उपयोग firecrawl_scrape के साथ alexandria: [{provider: "firecrawl", capability: "terms/show", options: {provider: "<provider>"}}] का उपयोग करके समझौते को पढ़ने के लिए करें, जो provider निष्पादन से अलग भेजा जाता है, और इसे उपयोगकर्ता के सामने प्रस्तुत करें। फिर एक संगठन व्यवस्थापक इसे requiresAction.url पर, या https://www.firecrawl.dev/app/settings?tab=data-sources. पर स्वीकार करता है firecrawl_scrape किसी भी अन्य terms/* capability को अस्वीकार करता है, इसलिए यह कोई खाता परिवर्तन नहीं करता। डेटा के लिए अनुरोध सहमति नहीं है, और कोई स्वचालित स्वीकृति या अनिश्चित पुनः प्रयास नहीं होते। अवरुद्ध retrieval के लिए कोई credits शुल्क नहीं लिया जाता। व्यवस्थापक द्वारा स्वीकृति की पुष्टि के बाद, उसी टूल को समान payload और requestId के साथ फिर से कॉल करें।

16. Credit Usage टूल

इस टूल के लिए एक प्रमाणित Firecrawl खाता आवश्यक है और यह read-only है।

  • firecrawl_credit_usage डिफ़ॉल्ट रूप से { "view": "current" } होता है और remainingCredits, planCredits, billingPeriodStart, और billingPeriodEnd लौटाता है। जब टीम के पास टॉप-अप या ग्रांट हों तो शेष क्रेडिट योजना क्रेडिट से अधिक हो सकते हैं।
  • कैलेंडर-माह अवधियों के लिए { "view": "historical" } पास करें जिनमें startDate, endDate, और creditsUsed शामिल हों। { "byApiKey": true } पास करने से ऐतिहासिक दृश्य भी चुना जाता है और अवधियाँ API कुंजी के अनुसार विभाजित होती हैं; तब प्रत्येक पंक्ति में apiKey शामिल होता है। इसके बजाय { "byEndpoint": true } पास करने से अवधियाँ उस एंडपॉइंट के अनुसार विभाजित होती हैं जिसने क्रेडिट का उपयोग किया (scrape, search, crawl, map, agent, ...); तब प्रत्येक पंक्ति में endpoint शामिल होता है। प्रति कैलेंडर माह के बजाय प्रति UTC दिन एक अवधि के लिए { "bin": "day" } पास करें। byApiKey को byEndpoint के साथ न मिलाएँ, और इनमें से किसी को भी { "view": "current" } के साथ न मिलाएँ। नवीनतम अवधि का endDate null हो सकता है। यदि Firecrawl API अभी तक एंडपॉइंट विभाजन या दैनिक अवधियाँ प्रदान नहीं करता है, तो परिणाम में notice और मासिक आँकड़े होते हैं।

प्रोग्रामेटिक उपयोग (अस्थिर)

पैकेज सर्वर को किसी अन्य रनटाइम में एम्बेड करने के लिए एक लाइब्रेरी एंट्री पॉइंट भी प्रदान करता है। यह अस्थिर है: API, इसके विकल्प और इसके प्रकार किसी भी रिलीज़ में बदल सकते हैं, जिसमें माइनर और पैच रिलीज़ शामिल हैं, इसलिए किसी सटीक संस्करण को पिन करें।

npm install --save-exact firecrawl-mcp zod

उदाहरण zod के साथ टूल पैरामीटर परिभाषित करता है, इसलिए एम्बेडिंग प्रोजेक्ट इसे अपनी स्वयं की निर्भरता के रूप में इंस्टॉल करता है।

import { createFirecrawlMcpServer } from 'firecrawl-mcp/server';
import { z } from 'zod';

const server = createFirecrawlMcpServer({
  transport: 'httpStream',
  apiKey: process.env.FIRECRAWL_API_KEY,
  unstable_hooks: {
    registerExtraTools: (registrar) => {
      registrar.addTool({
        name: 'my_tool',
        description: 'An extra tool served next to the Firecrawl tools.',
        parameters: z.object({ text: z.string() }),
        execute: async ({ text }) => text,
      });
    },
  },
});

await server.start({
  transportType: 'httpStream',
  httpStream: { port: 3000, host: '127.0.0.1', endpoint: '/mcp', stateless: true },
});
// MCP endpoint: http://127.0.0.1:3000/mcp

host को स्पष्ट रूप से सेट करें। इसके बिना सर्वर localhost पर सुनता है, जिसे Node एक ही पते पर बाइंड करता है (अक्सर केवल ::1), इसलिए 127.0.0.1 पर अनुरोध अस्वीकार कर दिए जाते हैं। अन्य मशीनों से कनेक्शन स्वीकार करने के लिए 0.0.0.0 या :: का उपयोग केवल नेटवर्क एक्सेस नियंत्रणों या unstable_hooks.authenticate जाँच के पीछे करें: इसके बिना, पोर्ट तक पहुँच सकने वाले प्रत्येक कॉलर को कॉन्फ़िगर किए गए apiKey के साथ सेवा दी जाती है।

लाइब्रेरी Host या Origin की जाँच तब तक नहीं करती जब तक कहा न जाए, और इसके CORS हेडर किसी भी ओरिजिन की अनुमति देते हैं। उसी मशीन पर ब्राउज़र से पहुँचने योग्य सर्वर को httpStream.allowedHosts पास करना चाहिए (उदाहरण के लिए ['localhost', '127.0.0.1', '[::1]']): जिन अनुरोधों का Host या Origin हेडर किसी अन्य होस्ट का नाम लेता है, उन्हें तब 403 मिलता है (स्वास्थ्य पथ पर GET और HEAD को छोड़कर), और CORS हेडर अनुमत ओरिजिन को प्रतिध्वनित करते हैं। कमांड लाइन स्थानीय HTTP मोड में इस सूची को सेट करती है।

विकल्प CLI के पर्यावरण चरों को प्रतिबिंबित करते हैं: apiUrl, apiKey, transport, logging, safeMode, fileAccess (local या upload), requireCredential, searchFeedback और endpointFeedback। unstable_hooks स्वीकार करता है:

हुकउद्देश्य
authenticate(request)किसी अनुरोध के लिए सत्र हल करें; अस्वीकार करने के लिए Response फेंकें।
wrapTool(tool)प्रत्येक पंजीकृत टूल को सजाएँ।
onToolResult(event)प्रत्येक टूल कॉल के आरंभ और परिणाम का अवलोकन करें।
instructionsसर्वर निर्देश, या डिफ़ॉल्ट में से चुनने वाला फ़ंक्शन।
registerExtraTools(registrar, context)अंतर्निहित टूल के बाद टूल जोड़ें।
outboundRequest(session)प्रत्येक Firecrawl API अनुरोध के लिए क्रेडेंशियल और अतिरिक्त हेडर।
beforeKeylessRequest(session, origin)फेंककर कुंजी-रहित अनुरोध अस्वीकार करें।
toolFilter(name)अंतर्निहित टूल को इंस्टेंस से बाहर रखें।
configureHttp(app)HTTP रूट जोड़ें।
oauth.protectedResourceOAuth संरक्षित-संसाधन मेटाडेटा प्रदान करें।

सर्वर आधिकारिक MCP TypeScript SDK (@modelcontextprotocol/server) पर बना है। SDK के अपने प्रकारों के बजाय firecrawl-mcp/server से निर्यात किए गए प्रकारों (Session, ToolDefinition, ToolRegistrar, FirecrawlMcpServerHooks और अन्य) का उपयोग करें।

एंट्री पॉइंट उन हेल्परों को भी निर्यात करता है जिनका उपयोग अंतर्निहित टूल करते हैं, जैसे recoveryPayload, normalizeHeader, requestOrigin, isRuntimeUserAgent, initializeClientSlug, searchToolBaseFields, searchOutputSchema और structuredCompact, ताकि अतिरिक्त टूल और हुक अंतर्निहित व्यवहार से मेल खा सकें। वे भी अस्थिर हैं।

लॉगिंग सिस्टम

सर्वर में व्यापक लॉगिंग शामिल है:

  • ऑपरेशन स्थिति और प्रगति
  • प्रदर्शन मेट्रिक्स
  • दर सीमा ट्रैकिंग
  • त्रुटि स्थितियाँ

उदाहरण लॉग संदेश:

[INFO] Firecrawl MCP Server initialized successfully
[INFO] Starting scrape for URL: https://example.com
[ERROR] Rate limit exceeded

त्रुटि प्रबंधन

सर्वर मज़बूत त्रुटि प्रबंधन प्रदान करता है:

  • MCP क्लाइंट तक पहुँचाई गई API दर-सीमा त्रुटियाँ
  • विस्तृत त्रुटि संदेश
  • नेटवर्क लचीलापन

उदाहरण त्रुटि प्रतिक्रिया:

{
  "content": [
    {
      "type": "text",
      "text": "Error: Rate limit exceeded"
    }
  ],
  "isError": true
}

विकास

# Install dependencies
npm install

# Build
npm run build

# Run tests
npm test

योगदान

  1. रिपॉज़िटरी को फ़ोर्क करें
  2. अपनी फ़ीचर ब्रांच बनाएँ
  3. परीक्षण चलाएँ: npm test
  4. पुल अनुरोध सबमिट करें

योगदानकर्ताओं को धन्यवाद

प्रारंभिक कार्यान्वयन के लिए @vrknetha, @cawstudios को धन्यवाद!

होस्टिंग के लिए MCP.so और Klavis AI को और हमारे सर्वर को एकीकृत करने के लिए @gstarwd, @xiangkaiz और @zihaolin96 को धन्यवाद।

लाइसेंस

MIT लाइसेंस - विवरण के लिए LICENSE फ़ाइल देखें

संरचित डेटा और बड़े परिणाम

प्रमाणित खोज डिफ़ॉल्ट रूप से वेब परिणाम, सिमैंटिक Alexandria टूल, और डोमेन मिलान पर आधारित होती है। वास्तविक प्रश्न से शुरू करें। सीधे सिमैंटिक टूल लुकअप, चयनित कॉन्ट्रैक्ट, या प्रगतिशील ब्राउज़िंग के लिए firecrawl_find_tools का उपयोग करें: श्रेणियाँ → प्रदाता → संक्षिप्त टूल → चयनित कॉन्ट्रैक्ट। टूल को firecrawl_scrape के माध्यम से निष्पादित करें; सामान्य URL स्क्रैपिंग और खोज कभी भी प्रदाता टूल को स्वचालित रूप से निष्पादित नहीं करते।

चयनित कॉन्ट्रैक्ट के लिए, expand: ["options", "response"] को प्राथमिकता दें और उदाहरणों का अनुरोध केवल तब करें जब इनपुट का आकार स्पष्ट न हो। संबंधित क्षमताओं का एक साथ निरीक्षण करें और लौटाए गए कॉन्ट्रैक्ट का पुनः उपयोग करें।

संभावित रूप से बड़े वर्कफ़्लो परिणाम के लिए, निष्पादन से पहले एक शीर्ष-स्तरीय requestId प्रदान करें और सुरक्षित रखें। वह ID तब भी उपलब्ध रहता है जब क्लाइंट प्रतिक्रिया को अस्वीकार कर देता है। नियमित URL स्क्रैप इसके बजाय लौटाए गए स्क्रैप ID का उपयोग करते हैं।

बड़े रखे गए वर्कफ़्लो या नियमित स्क्रैप परिणाम के लिए, firecrawl_scrape को इसके साथ कॉल करें:

{
  "alexandria": {
    "provider": "firecrawl",
    "capability": "bash",
    "options": {
      "requestId": "<source-request-or-scrape-id>",
      "command": "ls -lh"
    }
  }
}

data.alexandria[0].data में stdout, stderr, exitCode, और workspaceId पढ़ें। jq का उपयोग करके response.json का निरीक्षण करने के लिए options: {workspaceId, command} के साथ जारी रखें, या नियमित स्क्रैप के लिए सीमित टेक्स्ट कमांड का उपयोग करके document.md के साथ। आउटपुट को चुनिंदा रखें। स्रोत लोडिंग एक स्टैंडअलोन कॉल होनी चाहिए; इसका नेस्टेड स्रोत ID शीर्ष-स्तरीय निष्पादन अनुरोध ID से भिन्न होता है। वर्कस्पेस पाँच निष्क्रिय मिनटों के बाद समाप्त हो जाते हैं, और प्रत्येक परिणाम नहीं रखा जाता (ZDR और API-प्रदाता वर्कफ़्लो पेलोड सहित)। खोज ID समर्थित नहीं हैं।

वर्कफ़्लो स्रोतों के लिए, response.json API एनवेलप को संरक्षित करता है: .data.alexandria[].data चुनें, फिर चयनित कॉन्ट्रैक्ट का response.key जब गैर-रिक्त हो। जब वह आकार ज्ञात हो तो संबंधित गणनाओं और प्रोजेक्शनों को एक ही Bash कमांड में संयोजित करें, बजाय बार-बार कुंजियों का निरीक्षण करने के।

20,000 अनुमानित टोकन (सीरियलाइज़्ड UTF-8 बाइट्स को चार से विभाजित) से अधिक के सफल Alexandria निष्पादन प्रतिक्रियाएँ, रिमोट Bash द्वारा पूर्ण बैच के सुलभ होने की पुष्टि के बाद एक छोटा हैंडऑफ़ लौटाती हैं। रखे गए डेटा का निरीक्षण करने के लिए nextTool का पालन करें। यह एक Bash कॉल जोड़ता है और पाँच मिनट के निष्क्रिय TTL वाला वर्कस्पेस शुरू करता है। पूरा पेलोड संरक्षित रहता है। यदि पुष्टि विफल होती है, तो मूल प्रतिक्रिया इनलाइन रहती है। खोज, सामान्य URL स्क्रैप, त्रुटि प्रतिक्रियाएँ और Firecrawl उपयोगिता कॉल अपरिवर्तित रहते हैं। यह डिलीवरी बजट क्लाइंट के शेष संदर्भ को नहीं मापता; कोई प्रोसेस-लोकल परिणाम कैश नहीं जोड़ा जाता। जब स्थानीय फ़ाइलसिस्टम टूल उपलब्ध हों, तो CLI आउटपुट सहेजना और चयनित अनुभागों को पढ़ना एक अन्य विकल्प है।

CLI खोज अनुक्रम इन MCP कॉलों से मेल खाता है:

इरादाटूलआर्ग्युमेंट
वेब + सिमैंटिक + डोमेन टूलfirecrawl_search{"query":"<user question>"}
केवल सिमैंटिक टूलfirecrawl_search{"query":"<user question>","sources":["alexandria"]}
श्रेणियाँfirecrawl_find_tools{}
किसी श्रेणी में प्रदाताfirecrawl_find_tools{"categories":["<category-id>"]}
संक्षिप्त प्रदाता टूलfirecrawl_find_tools{"providers":["<provider-id>"]}
चयनित कॉन्ट्रैक्टfirecrawl_find_tools{"providers":["<provider-id>"],"capabilities":["<capability-id>"]}
निष्पादित करेंfirecrawl_scrape{"alexandria":{"provider":"<provider-id>","capability":"<capability-id>","options":{"<required-field>":"<value>"}}}

Find Tools और निष्पादन दोनों पूर्ण सतह और खोज सतह पर उपलब्ध हैं। जब मौजूद हो तो खोज से एक पूर्ण कॉन्ट्रैक्ट का पुनः उपयोग करें, बजाय एक और खोज कॉल करने के। लौटाए गए nextTool नेविगेशन का पालन केवल तब करें जब अधिक परिणामों की आवश्यकता हो।

Alexandria सत्र प्रतिक्रिया

मौजूदा firecrawl_feedback टूल endpoint: "alexandria" स्वीकार करता है:

{
  "endpoint": "alexandria",
  "rating": "partial",
  "requestedWebsite": {
    "url": "https://example.com",
    "requestedFunctionality": "Find records and download their attachments"
  },
  "objective": "Compare contract requirements across agencies before bidding",
  "rationale": "Found summaries but could not retrieve attachments"
}

वैकल्पिक objective सत्र का अंतर्निहित लक्ष्य है: एजेंट या उसके उपयोगकर्ता ने अंततः क्या हासिल करने का प्रयास किया, requestedWebsite में दी गई एकल वेबसाइट से परे।

यह प्रमाणित POST /v2/feedback का उपयोग करता है, बिना किसी जॉब ID के। यह टीम की सबसे हाल की Alexandria खोज, डिस्कवरी, या निष्पादन के 20 मिनट के भीतर आना चाहिए; बाद की प्रतिक्रिया FEEDBACK_WINDOW_EXPIRED के साथ अस्वीकार कर दी जाती है। पात्र प्रतिक्रिया 1 क्रेडिट वापस कर सकती है, प्रति वेबसाइट 10 क्रेडिट और प्रति टीम 100 क्रेडिट (UTC दिन) की दैनिक सीमाओं के अधीन। किसी भी सीमा से अधिक होने पर, प्रतिक्रिया अभी भी बिना किसी वापसी के दर्ज की जाती है, और प्रतिक्रिया websiteCapReached या dailyCapReached सेट करती है। वैकल्पिक providerFeedback और capabilityFeedback सरणियाँ कवरेज अंतरालों और निष्पादन समस्याओं का वर्णन करती हैं; टूल स्कीमा समर्थित समस्या मानों को सूचीबद्ध करता है। new_capability_request के लिए requestedFunctionality आवश्यक है; missing_capability (प्रदाता मौजूद है लेकिन क्षमता का अभाव है) के लिए नहीं। मौजूदा प्रतिक्रिया ऑप्ट-आउट और प्रमाणीकरण नियंत्रण लागू होते हैं।

पात्र Alexandria निष्पादन और डिस्कवरी परिणामों में टूल नाम और आर्ग्युमेंट के एक कंकाल के साथ एक feedbackTool पॉइंटर शामिल होता है। पॉइंटर Firecrawl-आंतरिक कॉल जैसे bash के लिए और जब firecrawl_feedback पंजीकृत नहीं है (FIRECRAWL_NO_ENDPOINT_FEEDBACK या कुंजी-रहित स्टार्टअप) तब छोड़ दिया जाता है।