Firecrawl MCP Server
आधिकारिकLLM क्लाइंट जैसे Cursor और Claude में शक्तिशाली वेब स्क्रैपिंग और खोज क्षमताएँ जोड़ता है।
दस्तावेज़
Firecrawl MCP सर्वर
एक मॉडल संदर्भ प्रोटोकॉल (MCP) सर्वर जो Firecrawl को MCP-संगत AI एजेंटों तक लाता है — साफ़, एजेंट-तैयार संदर्भ के लिए लाइव वेब पर खोजें, स्क्रैप करें और इंटरैक्ट करें।
प्रारंभिक कार्यान्वयन के लिए @vrknetha, @knacklabs का बहुत-बहुत धन्यवाद!
विशेषताएँ
- वेब खोजें और पूर्ण पृष्ठ सामग्री प्राप्त करें
- किसी भी URL को साफ़, संरचित डेटा में स्क्रैप करें
- पृष्ठों के साथ इंटरैक्ट करें — क्लिक करें, नेविगेट करें और संचालित करें
- स्वायत्त एजेंट के साथ गहन शोध
- स्वचालित पुनर्प्रयास और दर सीमा
- क्लाउड और स्व-होस्टेड समर्थन
- SSE समर्थन
MCP.so के प्लेग्राउंड पर हमारे MCP सर्वर या Klavis AI पर खेलें।
स्थापना
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 सर्वर कॉन्फ़िगरेशन गाइड
Cursor v0.48.6 में Firecrawl MCP कॉन्फ़िगर करने के लिए
- Cursor सेटिंग्स खोलें
- Features > MCP Servers पर जाएँ
- "+ Add new global MCP server" पर क्लिक करें
- निम्नलिखित कोड दर्ज करें:
{ "mcpServers": { "firecrawl-mcp": { "command": "npx", "args": ["-y", "firecrawl-mcp"], "env": { "FIRECRAWL_API_KEY": "YOUR-API-KEY" } } } }
Cursor v0.45.6 में Firecrawl MCP कॉन्फ़िगर करने के लिए
- Cursor सेटिंग्स खोलें
- Features > MCP Servers पर जाएँ
- "+ Add New MCP Server" पर क्लिक करें
- निम्नलिखित दर्ज करें:
- नाम: "firecrawl-mcp" (या आपका पसंदीदा नाम)
- प्रकार: "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 कुंजी से बदलें। यदि आपके पास अभी तक एक नहीं है, तो आप एक खाता बना सकते हैं और इसे https://www.firecrawl.dev/app/api-keys से प्राप्त कर सकते हैं
जोड़ने के बाद, नए टूल देखने के लिए MCP सर्वर सूची को ताज़ा करें। Composer एजेंट उपयुक्त होने पर स्वचालित रूप से 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"
}
}
}
}
स्ट्रीमेबल HTTP स्थानीय मोड के साथ चलाना
डिफ़ॉल्ट stdio ट्रांसपोर्ट के बजाय स्थानीय रूप से स्ट्रीमेबल HTTP का उपयोग करके सर्वर चलाने के लिए:
env HTTP_STREAMABLE_SERVER=true FIRECRAWL_API_KEY=fc-YOUR_API_KEY npx -y firecrawl-mcp
url का उपयोग करें: http://localhost:3000/mcp
Smithery के माध्यम से स्थापित करना (विरासत)
Smithery के माध्यम से Claude Desktop के लिए Firecrawl स्वचालित रूप से स्थापित करने के लिए:
npx -y @smithery/cli install @mendableai/mcp-server-firecrawl --client claude
VS Code पर चलाना
एक-क्लिक स्थापना के लिए, नीचे दिए गए इंस्टॉल बटनों में से एक पर क्लिक करें...
मैन्युअल स्थापना के लिए, VS Code में अपनी उपयोगकर्ता सेटिंग्स (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}"
}
}
}
}
कॉन्फ़िगरेशन
पर्यावरण चर
क्लाउड API के लिए आवश्यक
FIRECRAWL_API_KEY: आपकी Firecrawl API कुंजी- क्लाउड API (डिफ़ॉल्ट) का उपयोग करते समय आवश्यक
FIRECRAWL_API_URLके साथ स्व-होस्टेड इंस्टेंस का उपयोग करते समय वैकल्पिक
FIRECRAWL_API_URL(वैकल्पिक): स्व-होस्टेड इंस्टेंस के लिए कस्टम API एंडपॉइंट- उदाहरण:
https://firecrawl.your-domain.com - यदि प्रदान नहीं किया गया है, तो क्लाउड API का उपयोग किया जाएगा (API कुंजी आवश्यक है)
- उदाहरण:
MCP OAuth (बियरर एक्सेस टोकन)
होस्टेड Firecrawl firecrawl.dev पर प्राधिकरण सर्वर के माध्यम से OAuth एक्सेस टोकन (fco_…) जारी कर सकता है। यह MCP सर्वर जो भी क्रेडेंशियल हल करता है उसे Authorization: Bearer … के रूप में Firecrawl API को अग्रेषित करता है।
- 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 को पास नहीं किया जाना चाहिए।
वैकल्पिक कॉन्फ़िगरेशन
पुनर्प्रयास कॉन्फ़िगरेशन
FIRECRAWL_RETRY_MAX_ATTEMPTS: पुनर्प्रयास प्रयासों की अधिकतम संख्या (डिफ़ॉल्ट: 3)FIRECRAWL_RETRY_INITIAL_DELAY: पहले पुनर्प्रयास से पहले मिलीसेकंड में प्रारंभिक विलंब (डिफ़ॉल्ट: 1000)FIRECRAWL_RETRY_MAX_DELAY: पुनर्प्रयासों के बीच मिलीसेकंड में अधिकतम विलंब (डिफ़ॉल्ट: 10000)FIRECRAWL_RETRY_BACKOFF_FACTOR: एक्सपोनेंशियल बैकऑफ गुणक (डिफ़ॉल्ट: 2)
क्रेडिट उपयोग निगरानी
FIRECRAWL_CREDIT_WARNING_THRESHOLD: क्रेडिट उपयोग चेतावनी सीमा (डिफ़ॉल्ट: 1000)FIRECRAWL_CREDIT_CRITICAL_THRESHOLD: क्रेडिट उपयोग महत्वपूर्ण सीमा (डिफ़ॉल्ट: 100)
कॉन्फ़िगरेशन उदाहरण
कस्टम पुनर्प्रयास और क्रेडिट निगरानी के साथ क्लाउड API उपयोग के लिए:
# Required for cloud API
export FIRECRAWL_API_KEY=your-api-key
# Optional retry configuration
export FIRECRAWL_RETRY_MAX_ATTEMPTS=5 # Increase max retry attempts
export FIRECRAWL_RETRY_INITIAL_DELAY=2000 # Start with 2s delay
export FIRECRAWL_RETRY_MAX_DELAY=30000 # Maximum 30s delay
export FIRECRAWL_RETRY_BACKOFF_FACTOR=3 # More aggressive backoff
# Optional credit monitoring
export FIRECRAWL_CREDIT_WARNING_THRESHOLD=2000 # Warning at 2000 credits
export FIRECRAWL_CREDIT_CRITICAL_THRESHOLD=500 # Critical at 500 credits
स्व-होस्टेड इंस्टेंस के लिए:
# 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
# Custom retry configuration
export FIRECRAWL_RETRY_MAX_ATTEMPTS=10
export FIRECRAWL_RETRY_INITIAL_DELAY=500 # Start with faster retries
Claude Desktop के साथ उपयोग
इसे अपने claude_desktop_config.json में जोड़ें:
{
"mcpServers": {
"mcp-server-firecrawl": {
"command": "npx",
"args": ["-y", "firecrawl-mcp"],
"env": {
"FIRECRAWL_API_KEY": "YOUR_API_KEY_HERE",
"FIRECRAWL_RETRY_MAX_ATTEMPTS": "5",
"FIRECRAWL_RETRY_INITIAL_DELAY": "2000",
"FIRECRAWL_RETRY_MAX_DELAY": "30000",
"FIRECRAWL_RETRY_BACKOFF_FACTOR": "3",
"FIRECRAWL_CREDIT_WARNING_THRESHOLD": "2000",
"FIRECRAWL_CREDIT_CRITICAL_THRESHOLD": "500"
}
}
}
}
सिस्टम कॉन्फ़िगरेशन
सर्वर में कई कॉन्फ़िगर करने योग्य पैरामीटर शामिल हैं जिन्हें पर्यावरण चर के माध्यम से सेट किया जा सकता है। यदि कॉन्फ़िगर नहीं किया गया है तो डिफ़ॉल्ट मान यहां दिए गए हैं:
const CONFIG = {
retry: {
maxAttempts: 3, // Number of retry attempts for rate-limited requests
initialDelay: 1000, // Initial delay before first retry (in milliseconds)
maxDelay: 10000, // Maximum delay between retries (in milliseconds)
backoffFactor: 2, // Multiplier for exponential backoff
},
credit: {
warningThreshold: 1000, // Warn when credit usage reaches this level
criticalThreshold: 100, // Critical alert when credit usage reaches this level
},
};
ये कॉन्फ़िगरेशन नियंत्रित करते हैं:
-
पुनर्प्रयास व्यवहार
- दर सीमाओं के कारण विफल अनुरोधों का स्वचालित रूप से पुनर्प्रयास करता है
- API को अभिभूत करने से बचने के लिए एक्सपोनेंशियल बैकऑफ का उपयोग करता है
- उदाहरण: डिफ़ॉल्ट सेटिंग्स के साथ, पुनर्प्रयास इस प्रकार किए जाएंगे:
- पहला पुनर्प्रयास: 1 सेकंड विलंब
- दूसरा पुनर्प्रयास: 2 सेकंड विलंब
- तीसरा पुनर्प्रयास: 4 सेकंड विलंब (maxDelay पर सीमित)
-
क्रेडिट उपयोग निगरानी
- क्लाउड API उपयोग के लिए API क्रेडिट खपत को ट्रैक करता है
- निर्दिष्ट सीमा पर चेतावनी प्रदान करता है
- अप्रत्याशित सेवा रुकावट को रोकने में मदद करता है
- उदाहरण: डिफ़ॉल्ट सेटिंग्स के साथ:
- 1000 क्रेडिट शेष पर चेतावनी
- 100 क्रेडिट शेष पर महत्वपूर्ण अलर्ट
दर सीमा और बैच प्रसंस्करण
सर्वर Firecrawl की अंतर्निहित दर सीमा और बैच प्रसंस्करण क्षमताओं का उपयोग करता है:
- एक्सपोनेंशियल बैकऑफ के साथ स्वचालित दर सीमा हैंडलिंग
- बैच संचालन के लिए कुशल समानांतर प्रसंस्करण
- स्मार्ट अनुरोध कतारबद्धता और थ्रॉटलिंग
- क्षणिक त्रुटियों के लिए स्वचालित पुनर्प्रयास
उपकरण कैसे चुनें
अपने कार्य के लिए सही उपकरण चुनने हेतु इस गाइड का उपयोग करें:
- यदि आपको सटीक URL पता है जो आप चाहते हैं:
- एक के लिए: scrape का उपयोग करें (संरचित डेटा के लिए JSON प्रारूप के साथ)
- कई के लिए: batch_scrape का उपयोग करें
- यदि आपको किसी साइट पर URL खोजने की आवश्यकता है: map का उपयोग करें
- यदि आप जानकारी के लिए वेब खोजना चाहते हैं: search का उपयोग करें
- यदि आपको कई अज्ञात स्रोतों पर जटिल शोध की आवश्यकता है: agent का उपयोग करें
- यदि आप पूरी साइट या अनुभाग का विश्लेषण करना चाहते हैं: crawl का उपयोग करें (सीमाओं के साथ!)
- यदि आपको इंटरैक्टिव ब्राउज़र स्वचालन की आवश्यकता है (क्लिक करें, टाइप करें, नेविगेट करें): scrape + interact का उपयोग करें
त्वरित संदर्भ तालिका
| उपकरण | के लिए सर्वोत्तम | रिटर्न |
|---|---|---|
| scrape | एकल पृष्ठ सामग्री | JSON (पसंदीदा) या मार्कडाउन |
| interact | स्क्रैप किए गए पृष्ठ के साथ इंटरैक्ट करें | निष्पादन परिणाम |
| batch_scrape | एकाधिक ज्ञात URL | JSON (पसंदीदा) या मार्कडाउन[] |
| map | किसी साइट पर URL खोजना | URL[] |
| crawl | बहु-पृष्ठ निष्कर्षण (सीमाओं के साथ) | मार्कडाउन/html[] |
| search | जानकारी के लिए वेब खोज | results[] |
| agent | जटिल बहु-स्रोत शोध | JSON (संरचित डेटा) |
प्रारूप चयन गाइड
scrape या batch_scrape का उपयोग करते समय, सही प्रारूप चुनें:
- JSON प्रारूप (अधिकांश मामलों के लिए अनुशंसित): जब आपको किसी पृष्ठ से विशिष्ट डेटा की आवश्यकता हो तो उपयोग करें। आपको जो निकालना है उसके आधार पर एक स्कीमा परिभाषित करें। यह प्रतिक्रियाओं को छोटा रखता है और संदर्भ विंडो ओवरफ्लो को रोकता है।
- मार्कडाउन प्रारूप (संयम से उपयोग करें): केवल तब जब आपको वास्तव में पूर्ण पृष्ठ सामग्री की आवश्यकता हो, जैसे सारांशीकरण के लिए संपूर्ण लेख पढ़ना या पृष्ठ संरचना का विश्लेषण करना।
उपलब्ध उपकरण
1. स्क्रैप उपकरण (firecrawl_scrape)
उन्नत विकल्पों के साथ एकल URL से सामग्री स्क्रैप करें।
इसके लिए सर्वोत्तम:
- एकल पृष्ठ सामग्री निष्कर्षण, जब आपको ठीक-ठीक पता हो कि किस पृष्ठ में जानकारी है।
इसके लिए अनुशंसित नहीं:
- एकाधिक पृष्ठों से सामग्री निकालना (ज्ञात URL के लिए batch_scrape का उपयोग करें, या पहले URL खोजने के लिए map + batch_scrape, या पूर्ण पृष्ठ सामग्री के लिए crawl)
- जब आप अनिश्चित हों कि किस पृष्ठ में जानकारी है (search का उपयोग करें)
सामान्य गलतियाँ:
- URL की सूची के लिए scrape का उपयोग करना (इसके बजाय batch_scrape का उपयोग करें)।
- डिफ़ॉल्ट रूप से मार्कडाउन प्रारूप का उपयोग करना (केवल वही निकालने के लिए JSON प्रारूप का उपयोग करें जो आपको चाहिए)।
सही प्रारूप चुनना:
- JSON प्रारूप (पसंदीदा): अधिकांश उपयोग मामलों के लिए, केवल आवश्यक विशिष्ट डेटा निकालने के लिए स्कीमा के साथ JSON प्रारूप का उपयोग करें। यह प्रतिक्रियाओं को केंद्रित रखता है और संदर्भ विंडो ओवरफ्लो को रोकता है।
- मार्कडाउन प्रारूप: केवल तब जब कार्य को वास्तव में पूर्ण पृष्ठ सामग्री की आवश्यकता हो (जैसे, संपूर्ण लेख का सारांश, पृष्ठ संरचना का विश्लेषण)।
प्रॉम्प्ट उदाहरण:
"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"]
}
}
]
}
}
उपयोग उदाहरण (मार्कडाउन प्रारूप - जब पूर्ण सामग्री की आवश्यकता हो):
{
"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 सेट करें।
रिटर्न:
- JSON संरचित डेटा, मार्कडाउन, ब्रांडिंग प्रोफ़ाइल, या निर्दिष्ट अन्य प्रारूप।
2. बैच स्क्रैप उपकरण (firecrawl_batch_scrape)
अंतर्निहित दर सीमा और समानांतर प्रसंस्करण के साथ कुशलतापूर्वक एकाधिक URL स्क्रैप करें।
इसके लिए सर्वोत्तम:
- एकाधिक पृष्ठों से सामग्री प्राप्त करना, जब आपको ठीक-ठीक पता हो कि किन पृष्ठों को स्क्रैप करना है।
इसके लिए अनुशंसित नहीं:
- URL खोजना (यदि आप URL नहीं जानते हैं तो पहले map का उपयोग करें)
- एकल पृष्ठ स्क्रैप करना (scrape का उपयोग करें)
सामान्य गलतियाँ:
- एक साथ बहुत सारे URL के साथ batch_scrape का उपयोग करना (दर सीमा या टोकन ओवरफ्लो हो सकता है)
प्रॉम्प्ट उदाहरण:
"इन तीन ब्लॉग पोस्ट की सामग्री प्राप्त करें: [url1, url2, url3]।"
उपयोग उदाहरण:
{
"name": "firecrawl_batch_scrape",
"arguments": {
"urls": ["https://example1.com", "https://example2.com"],
"options": {
"formats": ["markdown"],
"onlyMainContent": true
}
}
}
रिटर्न:
- प्रतिक्रिया में स्थिति जाँच के लिए ऑपरेशन ID शामिल है:
{
"content": [
{
"type": "text",
"text": "Batch operation queued with ID: batch_1. Use firecrawl_check_batch_status to check progress."
}
],
"isError": false
}
3. बैच स्थिति जाँचें (firecrawl_check_batch_status)
बैच ऑपरेशन की स्थिति जाँचें।
{
"name": "firecrawl_check_batch_status",
"arguments": {
"id": "batch_1"
}
}
4. मैप उपकरण (firecrawl_map)
साइट पर सभी अनुक्रमित URL खोजने के लिए एक वेबसाइट का मानचित्रण करें।
इसके लिए सर्वोत्तम:
- क्या स्क्रैप करना है यह तय करने से पहले किसी वेबसाइट पर URL खोजना
- किसी वेबसाइट के विशिष्ट अनुभाग ढूँढना
इसके लिए अनुशंसित नहीं:
- जब आपको पहले से ही पता हो कि आपको कौन सा विशिष्ट URL चाहिए (scrape या batch_scrape का उपयोग करें)
- जब आपको पृष्ठों की सामग्री की आवश्यकता हो (मैपिंग के बाद scrape का उपयोग करें)
सामान्य गलतियाँ:
- URL खोजने के लिए map के बजाय crawl का उपयोग करना
प्रॉम्प्ट उदाहरण:
"example.com पर सभी URL सूचीबद्ध करें।"
उपयोग उदाहरण:
{
"name": "firecrawl_map",
"arguments": {
"url": "https://example.com"
}
}
रिटर्न:
- साइट पर पाए गए URL की सरणी
5. खोज उपकरण (firecrawl_search)
वेब खोजें और वैकल्पिक रूप से खोज परिणामों से सामग्री निकालें।
इसके लिए सर्वोत्तम:
- कई वेबसाइटों पर विशिष्ट जानकारी ढूँढना, जब आप नहीं जानते कि किस वेबसाइट पर जानकारी है।
- जब आपको किसी क्वेरी के लिए सबसे प्रासंगिक सामग्री की आवश्यकता हो
इसके लिए अनुशंसित नहीं:
- जब आपको पहले से ही पता हो कि किस वेबसाइट को स्क्रैप करना है (scrape का उपयोग करें)
- जब आपको एक ही वेबसाइट का व्यापक कवरेज चाहिए (map या crawl का उपयोग करें)
सामान्य गलतियाँ:
- खुले अंत वाले प्रश्नों के लिए crawl या map का उपयोग करना (इसके बजाय search का उपयोग करें)
उपयोग उदाहरण:
{
"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 में प्रकाशित AI पर नवीनतम शोध पत्र खोजें।"
5b. खोज फीडबैक टूल (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। यह विशिष्ट सामग्री के टुकड़ों की एक सरणी है जिसे एजेंट खोजने की उम्मीद कर रहा था लेकिन नहीं मिला। प्रति गुम विषय एक प्रविष्टि — ये टीमों में एकत्रित होते हैं और हमें बताते हैं कि आगे क्या इंडेक्स करना है।
दैनिक रिफंड सीमा (प्रति टीम, प्रति UTC दिन, डिफ़ॉल्ट 100 क्रेडिट)। एक बार जब किसी टीम का creditsRefundedToday dailyRefundCap तक पहुँच जाता है, तो आगे के सबमिशन अभी भी फीडबैक रिकॉर्ड करते हैं लेकिन अब क्रेडिट रिफंड नहीं करते। प्रतिक्रिया dailyCapReached: true सेट करती है। एजेंटों को उस ध्वज को देखने पर शेष UTC दिन के लिए इस टूल को कॉल करना बंद कर देना चाहिए।
उपयोग उदाहरण:
{
"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।
5c. सामान्य फीडबैक टूल (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?, alreadySubmitted?, warning? }JSON।
6. क्रॉल टूल (firecrawl_crawl)
किसी वेबसाइट पर एक अतुल्यकालिक क्रॉल कार्य शुरू करता है और सभी पृष्ठों से सामग्री निकालता है।
इसके लिए सर्वोत्तम:
- एकाधिक संबंधित पृष्ठों से सामग्री निकालना, जब आपको व्यापक कवरेज की आवश्यकता हो।
इसके लिए अनुशंसित नहीं:
- एकल पृष्ठ से सामग्री निकालना (स्क्रैप का उपयोग करें)
- जब टोकन सीमाएँ चिंता का विषय हों (मैप + बैच_स्क्रैप का उपयोग करें)
- जब आपको तेज़ परिणाम चाहिए (क्रॉलिंग धीमी हो सकती है)
चेतावनी: क्रॉल प्रतिक्रियाएँ बहुत बड़ी हो सकती हैं और टोकन सीमा से अधिक हो सकती हैं। क्रॉल गहराई और पृष्ठों की संख्या सीमित करें, या बेहतर नियंत्रण के लिए मैप + बैच_स्क्रैप का उपयोग करें।
सामान्य गलतियाँ:
- सीमा या maxDepth बहुत अधिक सेट करना (टोकन ओवरफ्लो का कारण बनता है)
- एकल पृष्ठ के लिए क्रॉल का उपयोग करना (इसके बजाय स्क्रैप का उपयोग करें)
प्रॉम्प्ट उदाहरण:
"example.com/blog के पहले दो स्तरों से सभी ब्लॉग पोस्ट प्राप्त करें।"
उपयोग उदाहरण:
{
"name": "firecrawl_crawl",
"arguments": {
"url": "https://example.com/blog/*",
"maxDepth": 2,
"limit": 100,
"allowExternalLinks": false,
"deduplicateSimilarURLs": true
}
}
लौटाता है:
- प्रतिक्रिया में स्थिति जाँच के लिए ऑपरेशन आईडी शामिल है:
{
"content": [
{
"type": "text",
"text": "Started crawl for: https://example.com/* with job ID: 550e8400-e29b-41d4-a716-446655440000. Use firecrawl_check_crawl_status to check progress."
}
],
"isError": false
}
7. क्रॉल स्थिति जाँचें (firecrawl_check_crawl_status)
क्रॉल कार्य की स्थिति जाँचें।
{
"name": "firecrawl_check_crawl_status",
"arguments": {
"id": "550e8400-e29b-41d4-a716-446655440000"
}
}
लौटाता है:
- प्रतिक्रिया में क्रॉल कार्य की स्थिति शामिल है:
8. एक्सट्रैक्ट टूल (firecrawl_extract)
LLM क्षमताओं का उपयोग करके वेब पेजों से संरचित जानकारी निकालें। क्लाउड AI और स्व-होस्टेड LLM निष्कर्षण दोनों का समर्थन करता है।
इसके लिए सर्वोत्तम:
- कीमतों, नामों, विवरणों जैसे विशिष्ट संरचित डेटा निकालना।
इसके लिए अनुशंसित नहीं:
- जब आपको किसी पृष्ठ की पूरी सामग्री चाहिए (स्क्रैप का उपयोग करें)
- जब आप विशिष्ट संरचित डेटा की तलाश नहीं कर रहे हों
तर्क:
urls: जानकारी निकालने के लिए URL की सरणीprompt: LLM निष्कर्षण के लिए कस्टम प्रॉम्प्टsystemPrompt: LLM का मार्गदर्शन करने के लिए सिस्टम प्रॉम्प्टschema: संरचित डेटा निष्कर्षण के लिए JSON स्कीमाallowExternalLinks: बाहरी लिंक से निष्कर्षण की अनुमति देंenableWebSearch: अतिरिक्त संदर्भ के लिए वेब खोज सक्षम करेंincludeSubdomains: निष्कर्षण में उपडोमेन शामिल करें
स्व-होस्टेड इंस्टेंस का उपयोग करते समय, निष्कर्षण आपके कॉन्फ़िगर किए गए LLM का उपयोग करेगा। क्लाउड API के लिए, यह Firecrawl की प्रबंधित LLM सेवा का उपयोग करता है। प्रॉम्प्ट उदाहरण:
"इन उत्पाद पृष्ठों से उत्पाद का नाम, मूल्य और विवरण निकालें।"
उपयोग उदाहरण:
{
"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
}
}
लौटाता है:
- आपकी स्कीमा द्वारा परिभाषित निकाला गया संरचित डेटा
{
"content": [
{
"type": "text",
"text": {
"name": "Example Product",
"price": 99.99,
"description": "This is an example product description"
}
}
],
"isError": false
}
9. एजेंट टूल (firecrawl_agent)
स्वायत्त वेब अनुसंधान एजेंट। यह एक अलग AI एजेंट परत है जो स्वतंत्र रूप से इंटरनेट ब्राउज़ करती है, जानकारी खोजती है, पृष्ठों के माध्यम से नेविगेट करती है, और आपकी क्वेरी के आधार पर संरचित डेटा निकालती है।
यह कैसे काम करता है:
एजेंट वेब खोज करता है, लिंक का अनुसरण करता है, पृष्ठ पढ़ता है, और स्वायत्त रूप से डेटा एकत्र करता है। यह अतुल्यकालिक रूप से चलता है - यह तुरंत एक कार्य आईडी लौटाता है, और आप पूर्ण होने पर जाँचने और परिणाम प्राप्त करने के लिए firecrawl_agent_status को पोल करते हैं।
अतुल्यकालिक वर्कफ़्लो:
- अपने प्रॉम्प्ट/स्कीमा के साथ
firecrawl_agentको कॉल करें → कार्य आईडी लौटाता है - एजेंट अनुसंधान करते समय अन्य कार्य करें (जटिल प्रश्नों के लिए मिनट लग सकते हैं)
- प्रगति की जाँच करने के लिए कार्य आईडी के साथ
firecrawl_agent_statusको पोल करें - जब स्थिति "completed" हो, तो प्रतिक्रिया में निकाला गया डेटा शामिल होता है
इसके लिए सर्वोत्तम:
- जटिल अनुसंधान कार्य जहाँ आप सटीक URL नहीं जानते
- बहु-स्रोत डेटा संग्रह
- वेब पर बिखरी जानकारी ढूँढना
- ऐसे कार्य जहाँ आप परिणामों की प्रतीक्षा करते समय अन्य कार्य कर सकते हैं
इसके लिए अनुशंसित नहीं:
- सरल एकल-पृष्ठ स्क्रैपिंग जहाँ आप URL जानते हैं (JSON प्रारूप के साथ स्क्रैप का उपयोग करें - तेज़ और सस्ता)
तर्क:
prompt: आपके इच्छित डेटा का प्राकृतिक भाषा विवरण (आवश्यक, अधिकतम 10,000 वर्ण)urls: एजेंट को विशिष्ट पृष्ठों पर केंद्रित करने के लिए URL की वैकल्पिक सरणीschema: संरचित आउटपुट के लिए वैकल्पिक JSON स्कीमा
प्रॉम्प्ट उदाहरण:
"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" }
}
}
}
}
}
}
}
फिर लौटाए गए कार्य आईडी का उपयोग करके 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"
}
}
लौटाता है:
- स्थिति जाँच के लिए कार्य आईडी। परिणामों के लिए पोल करने हेतु
firecrawl_agent_statusका उपयोग करें।
10. एजेंट स्थिति जाँचें (firecrawl_agent_status)
एजेंट कार्य की स्थिति जाँचें और पूर्ण होने पर परिणाम प्राप्त करें। एजेंट शुरू करने के बाद परिणामों के लिए पोल करने हेतु इसका उपयोग करें।
पोलिंग पैटर्न: जटिल प्रश्नों के लिए एजेंट अनुसंधान में मिनट लग सकते हैं। स्थिति "completed" या "failed" होने तक समय-समय पर (जैसे, हर 10-30 सेकंड में) इस एंडपॉइंट को पोल करें।
{
"name": "firecrawl_agent_status",
"arguments": {
"id": "550e8400-e29b-41d4-a716-446655440000"
}
}
संभावित स्थितियाँ:
processing: एजेंट अभी भी शोध कर रहा है - बाद में जाँचेंcompleted: शोध समाप्त - प्रतिक्रिया में निकाला गया डेटा शामिल हैfailed: एक त्रुटि हुई
11. मॉनिटर टूल (firecrawl_monitor_*)
आवर्ती पृष्ठ मॉनिटर बनाएँ और प्रबंधित करें। मॉनिटर निर्धारित स्क्रैप या क्रॉल चलाते हैं, प्रत्येक परिणाम की तुलना अंतिम बनाए रखे गए स्नैपशॉट से करते हैं, और वेबहुक या ईमेल द्वारा सूचित कर सकते हैं।
इसके लिए सर्वोत्तम:
- समय के साथ एक पृष्ठ या कुछ पृष्ठों पर नज़र रखना
- सादे-अंग्रेज़ी लक्ष्य का उपयोग करके सार्थक परिवर्तनों पर सचेत करना
- जाँच इतिहास और पृष्ठ-स्तरीय अंतरों पर नज़र रखना
अनुशंसित निर्माण पैटर्न:
page या pages और goal का उपयोग करें। MCP सर्वर 30-मिनट के शेड्यूल के साथ मॉनिटर अनुरोध बनाता है और API स्वचालित रूप से सार्थक-परिवर्तन निर्णयन सक्षम करता है।
जब goal सेट होता है तो सार्थक-परिवर्तन निर्णयन स्वचालित रूप से चलता है। पृष्ठ वेबहुक monitor.page घटनाओं पर isMeaningful और judgment को उजागर करते हैं।
लक्ष्यों को संक्षिप्त 2-3 वाक्य मॉनिटर निर्देशों के रूप में लिखें। बताएं कि क्या सचेत करना चाहिए, उपयोगकर्ता द्वारा दिए गए किसी भी दायरे को संरक्षित करें, और केवल तभी आशय-विशिष्ट बहिष्करण शामिल करें जब अनुरोध से स्पष्ट हो। सामान्य शोर जैसे कि व्हाइटस्पेस, केवल-स्वरूपण परिवर्तन, अनुरोध आईडी, ट्रैकिंग पैरामीटर, सामान्य मेटाडेटा, और असंबंधित पृष्ठ क्रोम पहले से ही निर्णायक द्वारा नियंत्रित किए जाते हैं, इसलिए इसे हर लक्ष्य में न दोहराएं। यदि उपयोगकर्ता अस्पष्ट है, तो लक्ष्य को व्यापक रखें; यदि वे व्यापक निगरानी या "कोई भी परिवर्तन" माँगते हैं, तो उसे संरक्षित करें। यदि उपयोगकर्ता कहता है कि उन्हें किसी चीज़ की परवाह नहीं है, तो उसे स्पष्ट रूप से शामिल करें।
{
"name": "firecrawl_monitor_create",
"arguments": {
"page": "https://example.com/pricing",
"goal": "Alert when pricing, packaging, or launch messaging changes."
}
}
वेबहुक के साथ एकाधिक पृष्ठ:
{
"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"
}
}
उन्नत निर्माण अनुरोध:
जब आपको क्रॉल लक्ष्य, 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" }]
}
}
}
अन्य मॉनिटर टूल:
firecrawl_monitor_list: मॉनिटर सूचीबद्ध करें।firecrawl_monitor_get: एक मॉनिटर प्राप्त करें।firecrawl_monitor_update:goal,judgeEnabled,webhook, औरnotificationसहित फ़ील्ड अपडेट करें।firecrawl_monitor_run: अभी जाँच ट्रिगर करें।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
[INFO] Batch operation queued with ID: batch_1
[WARNING] Credit usage has reached warning threshold
[ERROR] Rate limit exceeded, retrying in 2s...
त्रुटि प्रबंधन
सर्वर मजबूत त्रुटि प्रबंधन प्रदान करता है:
- क्षणिक त्रुटियों के लिए स्वचालित पुनर्प्रयास
- बैकऑफ के साथ दर सीमा प्रबंधन
- विस्तृत त्रुटि संदेश
- क्रेडिट उपयोग चेतावनियाँ
- नेटवर्क लचीलापन
उदाहरण त्रुटि प्रतिक्रिया:
{
"content": [
{
"type": "text",
"text": "Error: Rate limit exceeded. Retrying in 2 seconds..."
}
],
"isError": true
}
विकास
# 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 फ़ाइल देखें