Firecrawl MCP Server
resmiCursor ve Claude gibi LLM istemcilerine güçlü web kazıma ve arama yetenekleri ekler.
Dokümantasyon
Firecrawl MCP Sunucusu
Firecrawl hizmetini MCP uyumlu yapay zeka ajanlarına taşıyan bir Model Bağlam Protokolü (MCP) sunucusu — temiz, ajana hazır bağlam için canlı web'de arama yapın, kazıyın ve etkileşime geçin.
İlk uygulama için @vrknetha ve @knacklabs kişilerine büyük teşekkürler!
Özellikler
- Web'de arama yapın ve tam sayfa içeriğini alın
- Herhangi bir URL'yi temiz, yapılandırılmış veriye kazıyın
- Sayfalarla etkileşime geçin — tıklayın, gezinin ve işlem yapın
- Otonom ajan ile derinlemesine araştırma
- Otomatik yeniden denemeler ve hız sınırlandırma
- Bulut ve kendi sunucunuzda barındırma desteği
- SSE desteği
MCP.so'nun oyun alanında MCP Sunucumuz veya Klavis AI üzerinde denemeler yapın.
Kurulum
npx ile Çalıştırma
env FIRECRAWL_API_KEY=fc-YOUR_API_KEY npx -y firecrawl-mcp
Manuel Kurulum
npm install -g firecrawl-mcp
Cursor'da Çalıştırma
Cursor'ı Yapılandırma 🖥️ Not: Cursor sürüm 0.45.6 veya üstü gerektirir. En güncel yapılandırma talimatları için lütfen MCP sunucularını yapılandırma hakkındaki resmi Cursor belgelerine bakın: Cursor MCP Sunucu Yapılandırma Kılavuzu
Firecrawl MCP'yi Cursor v0.48.6 sürümünde yapılandırmak için
- Cursor Ayarlarını açın
- Özellikler > MCP Sunucuları'na gidin
- "+ Yeni global MCP sunucusu ekle"ye tıklayın
- Aşağıdaki kodu girin:
{ "mcpServers": { "firecrawl-mcp": { "command": "npx", "args": ["-y", "firecrawl-mcp"], "env": { "FIRECRAWL_API_KEY": "YOUR-API-KEY" } } } }
Firecrawl MCP'yi Cursor v0.45.6 sürümünde yapılandırmak için
- Cursor Ayarlarını açın
- Özellikler > MCP Sunucuları'na gidin
- "+ Yeni MCP Sunucusu Ekle"ye tıklayın
- Aşağıdakileri girin:
- Ad: "firecrawl-mcp" (veya tercih ettiğiniz ad)
- Tür: "command"
- Komut:
env FIRECRAWL_API_KEY=your-api-key npx -y firecrawl-mcp
Windows kullanıyorsanız ve sorun yaşıyorsanız,
cmd /c "set FIRECRAWL_API_KEY=your-api-key && npx -y firecrawl-mcp"deneyin
your-api-key kısmını Firecrawl API anahtarınızla değiştirin. Henüz bir anahtarınız yoksa, https://www.firecrawl.dev/app/api-keys adresinden bir hesap oluşturup alabilirsiniz.
Ekledikten sonra, yeni araçları görmek için MCP sunucu listesini yenileyin. Composer Agent uygun olduğunda Firecrawl MCP'yi otomatik olarak kullanacaktır, ancak web kazıma ihtiyaçlarınızı açıklayarak açıkça talep edebilirsiniz. Composer'a Command+L (Mac) ile erişin, gönder düğmesinin yanındaki "Agent"ı seçin ve sorgunuzu girin.
Windsurf'te Çalıştırma
Bunu ./codeium/windsurf/model_config.json dosyanıza ekleyin:
{
"mcpServers": {
"mcp-server-firecrawl": {
"command": "npx",
"args": ["-y", "firecrawl-mcp"],
"env": {
"FIRECRAWL_API_KEY": "YOUR_API_KEY"
}
}
}
}
Akışkan HTTP Yerel Modu ile Çalıştırma
Varsayılan stdio aktarımı yerine sunucuyu yerel olarak Akışkan HTTP kullanarak çalıştırmak için:
env HTTP_STREAMABLE_SERVER=true FIRECRAWL_API_KEY=fc-YOUR_API_KEY npx -y firecrawl-mcp
URL'yi kullanın: http://localhost:3000/mcp
Smithery Üzerinden Kurulum (Eski)
Claude Desktop için Firecrawl'ı Smithery aracılığıyla otomatik olarak kurmak için:
npx -y @smithery/cli install @mendableai/mcp-server-firecrawl --client claude
VS Code'da Çalıştırma
Tek tıklamayla kurulum için aşağıdaki kurulum düğmelerinden birine tıklayın...
Manuel kurulum için, aşağıdaki JSON bloğunu VS Code'daki Kullanıcı Ayarları (JSON) dosyanıza ekleyin. Bunu Ctrl + Shift + P tuşlarına basıp Preferences: Open User Settings (JSON) yazarak yapabilirsiniz.
{
"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}"
}
}
}
}
}
İsteğe bağlı olarak, çalışma alanınızdaki .vscode/mcp.json adlı bir dosyaya ekleyebilirsiniz. Bu, yapılandırmayı başkalarıyla paylaşmanıza olanak tanır:
{
"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}"
}
}
}
}
Yapılandırma
Ortam Değişkenleri
Bulut API'si için Gerekli
FIRECRAWL_API_KEY: Firecrawl API anahtarınız- Bulut API'si kullanırken gereklidir (varsayılan)
FIRECRAWL_API_URLile kendi sunucunuzda barındırılan örnek kullanırken isteğe bağlıdır
FIRECRAWL_API_URL(İsteğe bağlı): Kendi sunucunuzda barındırılan örnekler için özel API uç noktası- Örnek:
https://firecrawl.your-domain.com - Sağlanmazsa, bulut API'si kullanılır (API anahtarı gerektirir)
- Örnek:
MCP OAuth (Taşıyıcı erişim belirteçleri)
Barındırılan Firecrawl, firecrawl.dev üzerindeki yetkilendirme sunucusu aracılığıyla OAuth erişim belirteçleri (fco_…) düzenleyebilir. Bu MCP sunucusu, çözdüğü kimlik bilgisini Firecrawl API'sine Authorization: Bearer … olarak iletir.
- HTTP akış aktarımları (
CLOUD_SERVICE=true,HTTP_STREAMABLE_SERVER=trueveyaSSE_LOCAL=true): İstemciler MCP isteklerindeAuthorization: Bearer <fco_access_token>göndermelidir. Her ikisi de mevcut olduğunda bir OAuth taşıyıcı belirtecix-firecrawl-api-key/x-api-keyyerine önceliklidir. - stdio: Statik bir erişim belirteci için
FIRECRAWL_OAUTH_TOKENkullanın veya bir API anahtarı içinFIRECRAWL_API_KEYkullanmaya devam edin.
Yalnızca erişim belirteçlerini (fco_…) kullanın. Yenileme belirteçleri (fcr_…), kazıma/arama API'sine iletilmemeli, belirteç uç noktasında değiştirilmelidir.
İsteğe Bağlı Yapılandırma
Yeniden Deneme Yapılandırması
FIRECRAWL_RETRY_MAX_ATTEMPTS: Maksimum yeniden deneme sayısı (varsayılan: 3)FIRECRAWL_RETRY_INITIAL_DELAY: İlk yeniden denemeden önce milisaniye cinsinden başlangıç gecikmesi (varsayılan: 1000)FIRECRAWL_RETRY_MAX_DELAY: Yeniden denemeler arasında milisaniye cinsinden maksimum gecikme (varsayılan: 10000)FIRECRAWL_RETRY_BACKOFF_FACTOR: Üstel geri çekilme çarpanı (varsayılan: 2)
Kredi Kullanımı İzleme
FIRECRAWL_CREDIT_WARNING_THRESHOLD: Kredi kullanımı uyarı eşiği (varsayılan: 1000)FIRECRAWL_CREDIT_CRITICAL_THRESHOLD: Kredi kullanımı kritik eşiği (varsayılan: 100)
Yapılandırma Örnekleri
Özel yeniden deneme ve kredi izleme ile bulut API kullanımı için:
# 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
Kendi sunucunuzda barındırılan örnek için:
# 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 ile Kullanım
Bunu claude_desktop_config.json dosyanıza ekleyin:
{
"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"
}
}
}
}
Sistem Yapılandırması
Sunucu, ortam değişkenleri aracılığıyla ayarlanabilen çeşitli yapılandırılabilir parametreler içerir. Yapılandırılmadığında varsayılan değerler şunlardır:
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
},
};
Bu yapılandırmalar şunları kontrol eder:
-
Yeniden Deneme Davranışı
- Hız sınırlamaları nedeniyle başarısız olan istekleri otomatik olarak yeniden dener
- API'yi aşırı yüklememek için üstel geri çekilme kullanır
- Örnek: Varsayılan ayarlarla, yeniden denemeler şu şekilde yapılır:
-
- yeniden deneme: 1 saniye gecikme
-
- yeniden deneme: 2 saniye gecikme
-
- yeniden deneme: 4 saniye gecikme (maxDelay ile sınırlı)
-
-
Kredi Kullanımı İzleme
- Bulut API kullanımı için API kredi tüketimini takip eder
- Belirtilen eşiklerde uyarılar sağlar
- Beklenmedik hizmet kesintisini önlemeye yardımcı olur
- Örnek: Varsayılan ayarlarla:
- 1000 kredi kaldığında uyarı
- 100 kredi kaldığında kritik uyarı
Hız Sınırlandırma ve Toplu İşleme
Sunucu, Firecrawl'ın yerleşik hız sınırlandırma ve toplu işleme yeteneklerini kullanır:
- Üstel geri çekilme ile otomatik hız sınırı yönetimi
- Toplu işlemler için verimli paralel işleme
- Akıllı istek sıraya alma ve kısma
- Geçici hatalar için otomatik yeniden denemeler
Araç Seçme Kılavuzu
Göreviniz için doğru aracı seçmek üzere bu kılavuzu kullanın:
- Tam olarak hangi URL'leri istediğinizi biliyorsanız:
- Bir tane için: scrape kullanın (yapılandırılmış veri için JSON formatıyla)
- Birden fazla için: batch_scrape kullanın
- Bir sitedeki URL'leri keşfetmeniz gerekiyorsa: map kullanın
- Bilgi için web'de arama yapmak istiyorsanız: search kullanın
- Birden fazla bilinmeyen kaynakta karmaşık araştırmaya ihtiyacınız varsa: agent kullanın
- Tüm bir siteyi veya bölümü analiz etmek istiyorsanız: crawl kullanın (sınırlarla!)
- Etkileşimli tarayıcı otomasyonuna ihtiyacınız varsa (tıklama, yazma, gezinme): scrape + interact kullanın
Hızlı Başvuru Tablosu
| Araç | En İyi Kullanım | Döndürdüğü |
|---|---|---|
| scrape | Tek sayfa içeriği | JSON (tercih edilir) veya markdown |
| interact | Kazınmış bir sayfayla etkileşim | Yürütme sonucu |
| batch_scrape | Bilinen birden fazla URL | JSON (tercih edilir) veya markdown[] |
| map | Bir sitedeki URL'leri keşfetme | URL[] |
| crawl | Çok sayfalı çıkarma (sınırlarla) | markdown/html[] |
| search | Bilgi için web araması | sonuçlar[] |
| agent | Karmaşık çok kaynaklı araştırma | JSON (yapılandırılmış veri) |
Format Seçim Kılavuzu
scrape veya batch_scrape kullanırken doğru formatı seçin:
- JSON formatı (çoğu durum için önerilir): Bir sayfadan belirli verilere ihtiyacınız olduğunda kullanın. Çıkarmak istediğiniz şeye göre bir şema tanımlayın. Bu, yanıtları küçük tutar ve bağlam penceresi taşmasını önler.
- Markdown formatı (idareli kullanın): Yalnızca, tüm bir makaleyi özetleme veya sayfa yapısını analiz etme gibi, tam sayfa içeriğine gerçekten ihtiyacınız olduğunda kullanın.
Mevcut Araçlar
1. Kazıma Aracı (firecrawl_scrape)
Gelişmiş seçeneklerle tek bir URL'den içerik kazıyın.
En iyi olduğu durumlar:
- Bilginin tam olarak hangi sayfada olduğunu bildiğinizde, tek sayfa içerik çıkarma.
Önerilmediği durumlar:
- Birden fazla sayfadan içerik çıkarma (bilinen URL'ler için batch_scrape veya önce URL'leri keşfetmek için map + batch_scrape ya da tam sayfa içeriği için crawl kullanın)
- Bilginin hangi sayfada olduğundan emin değilseniz (search kullanın)
Yaygın hatalar:
- Bir URL listesi için scrape kullanmak (bunun yerine batch_scrape kullanın).
- Varsayılan olarak markdown formatını kullanmak (yalnızca ihtiyacınız olanı çıkarmak için JSON formatını kullanın).
Doğru formatı seçme:
- JSON formatı (tercih edilir): Çoğu kullanım durumu için, yalnızca ihtiyaç duyulan belirli verileri çıkarmak üzere bir şema ile JSON formatını kullanın. Bu, yanıtları odaklı tutar ve bağlam penceresi taşmasını önler.
- Markdown formatı: Yalnızca görev gerçekten tam sayfa içeriğini gerektirdiğinde (ör. tüm bir makaleyi özetleme, sayfa yapısını analiz etme).
İstem Örneği:
"https://example.com/product. adresinden ürün detaylarını al"
Kullanım Örneği (JSON formatı - tercih edilir):
{
"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"]
}
}
]
}
}
Kullanım Örneği (markdown formatı - tam içerik gerektiğinde):
{
"name": "firecrawl_scrape",
"arguments": {
"url": "https://example.com/article",
"formats": ["markdown"],
"onlyMainContent": true
}
}
Kullanım Örneği (markalaşma formatı - marka kimliğini çıkar):
{
"name": "firecrawl_scrape",
"arguments": {
"url": "https://example.com",
"formats": ["branding"]
}
}
Markalaşma formatı: Tasarım analizi veya stil kopyalama için kapsamlı marka kimliğini (renkler, yazı tipleri, tipografi, boşluk, logo, UI bileşenleri) çıkarır.
Gizlilik: Kişisel olarak tanımlanabilir bilgileri gizlenmiş olarak içeriği döndürmek için redactPII: true ayarlayın.
Döndürdüğü:
- JSON yapılandırılmış veri, markdown, markalaşma profili veya belirtilen diğer formatlar.
2. Toplu Kazıma Aracı (firecrawl_batch_scrape)
Yerleşik hız sınırlandırma ve paralel işleme ile birden fazla URL'yi verimli bir şekilde kazıyın.
En iyi olduğu durumlar:
- Hangi sayfaları kazıyacağınızı tam olarak bildiğinizde, birden fazla sayfadan içerik alma.
Önerilmediği durumlar:
- URL'leri keşfetme (URL'leri bilmiyorsanız önce map kullanın)
- Tek bir sayfayı kazıma (scrape kullanın)
Yaygın hatalar:
- Aynı anda çok fazla URL ile batch_scrape kullanmak (hız sınırlarına veya belirteç taşmasına neden olabilir)
İstem Örneği:
"Şu üç blog yazısının içeriğini al: [url1, url2, url3]."
Kullanım Örneği:
{
"name": "firecrawl_batch_scrape",
"arguments": {
"urls": ["https://example1.com", "https://example2.com"],
"options": {
"formats": ["markdown"],
"onlyMainContent": true
}
}
}
Döndürdüğü:
- Yanıt, durum kontrolü için işlem kimliği içerir:
{
"content": [
{
"type": "text",
"text": "Batch operation queued with ID: batch_1. Use firecrawl_check_batch_status to check progress."
}
],
"isError": false
}
3. Toplu İşlem Durumunu Kontrol Et (firecrawl_check_batch_status)
Bir toplu işlemin durumunu kontrol edin.
{
"name": "firecrawl_check_batch_status",
"arguments": {
"id": "batch_1"
}
}
4. Haritalama Aracı (firecrawl_map)
Sitedeki tüm dizine eklenmiş URL'leri keşfetmek için bir web sitesini haritalayın.
En iyi olduğu durumlar:
- Neyi kazıyacağınıza karar vermeden önce bir web sitesindeki URL'leri keşfetme
- Bir web sitesinin belirli bölümlerini bulma
Önerilmediği durumlar:
- Hangi belirli URL'ye ihtiyacınız olduğunu zaten biliyorsanız (scrape veya batch_scrape kullanın)
- Sayfaların içeriğine ihtiyacınız varsa (haritalamadan sonra scrape kullanın)
Yaygın hatalar:
- URL'leri keşfetmek için map yerine crawl kullanmak
İstem Örneği:
"example.com'daki tüm URL'leri listele."
Kullanım Örneği:
{
"name": "firecrawl_map",
"arguments": {
"url": "https://example.com"
}
}
Döndürdüğü:
- Sitede bulunan URL'lerin dizisi
5. Arama Aracı (firecrawl_search)
Web'de arama yapın ve isteğe bağlı olarak arama sonuçlarından içerik çıkarın.
En iyi olduğu durumlar:
- Hangi web sitesinde olduğunu bilmediğinizde, birden fazla web sitesinde belirli bilgileri bulma.
- Bir sorgu için en alakalı içeriğe ihtiyacınız olduğunda
Önerilmediği durumlar:
- Hangi web sitesini kazıyacağınızı zaten biliyorsanız (scrape kullanın)
- Tek bir web sitesinin kapsamlı kapsamına ihtiyacınız varsa (map veya crawl kullanın)
Yaygın hatalar:
- Açık uçlu sorular için crawl veya map kullanmak (bunun yerine search kullanın)
Kullanım Örneği:
{
"name": "firecrawl_search",
"arguments": {
"query": "latest AI research papers 2023",
"limit": 5,
"lang": "en",
"country": "us",
"scrapeOptions": {
"formats": ["markdown"],
"onlyMainContent": true,
"redactPII": true
}
}
}
Döndürdüğü:
- İsteğe bağlı olarak kazınmış içerik içeren arama sonuçları dizisi ve bir
idalanı. Sonuçları kullandıktan sonra 1 kredi iadesi almak (arama maliyeti 2'dir) ve arama kalitesini artırmak için buid'yifirecrawl_search_feedback'e iletin.
İstem Örneği:
"2023'te yayınlanan yapay zeka üzerine en son araştırma makalelerini bul."
5b. Arama Geri Bildirim Aracı (firecrawl_search_feedback)
Önceki bir firecrawl_search sonucu hakkında yapılandırılmış geri bildirim gönderir. Her arama kimliği için ilk geri bildirim 1 kredi iade eder ve Firecrawl'ın arama kalitesini artırır. Arama kimliği başına idempotenttir.
Bunu gerçekten kullandığınız her aramadan sonra (veya işe yaramayan her aramadan sonra) çağırın. missingContent ile yapılan kötü/kısmi geri bildirim, iyi geri bildirim kadar değerlidir.
Devre dışı bırakma: MCP sunucusunu başlatırken ortamda FIRECRAWL_NO_SEARCH_FEEDBACK=1 (veya FIRECRAWL_DISABLE_SEARCH_FEEDBACK=1) ayarlayın. firecrawl_search_feedback aracı kaydedilmeyecek, böylece aracılar onu çağıramayacaktır. Ekip yöneticileri sunucu tarafında da geri bildirimi devre dışı bırakabilir; bu durumda araç kaydedilir ancak her zaman feedbackErrorCode: "TEAM_OPTED_OUT" döndürür.
En önemli alan: missingContent. Bu, aracının bulmayı beklediği ancak bulamadığı belirli içerik parçalarının bir dizisidir. Eksik her konu için bir giriş — bunlar ekipler arasında toplanır ve bize bir sonraki adımda neyi dizine ekleyeceğimizi söyler.
Günlük iade üst sınırı (ekip başına, UTC günü başına, varsayılan 100 kredi). Bir ekibin creditsRefundedToday değeri dailyRefundCap'e ulaştığında, sonraki gönderimler geri bildirimi kaydetmeye devam eder ancak artık kredi iade etmez. Yanıt dailyCapReached: true olarak ayarlanır. Aracılar bu bayrağı gördüklerinde UTC gününün geri kalanında bu aracı çağırmayı bırakmalıdır.
Kullanım Örneği:
{
"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'"
}
}
Döndürür:
{ success, feedbackId, creditsRefunded, alreadySubmitted? }JSON.
5c. Genel Geri Bildirim Aracı (firecrawl_feedback)
/v2/feedback aracılığıyla tamamlanmış bir v2 uç noktası işi için yapılandırılmış geri bildirim gönderir.
Bunu scrape, parse, map veya search
işleri için uç nokta düzeyinde geri bildirim amacıyla kullanın. Arama sonucu kalitesi için özellikle
firecrawl_search_feedback'yi tercih edin çünkü aramaya özel rehberlik içerir.
Geri bildirimi kısa tutun: sorun kodları, etiketler, kısa notlar, URL'ler, sayfa numaraları ve küçük meta veri nesneleri kullanın. Ham kazıma/ayrıştırma çıktılarını dahil etmeyin.
Devre dışı bırakma: MCP sunucusunu başlatırken ortamda FIRECRAWL_NO_ENDPOINT_FEEDBACK=1 (veya FIRECRAWL_DISABLE_ENDPOINT_FEEDBACK=1) ayarlayın. firecrawl_feedback aracı kaydedilmeyecek, böylece aracılar onu çağıramayacaktır.
Kullanım Örneği:
{
"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"
}
}
}
Döndürür:
{ success, feedbackId, creditsRefunded, creditsRefundedToday?, dailyRefundCap?, dailyCapReached?, alreadySubmitted?, warning? }JSON.
6. Tarama Aracı (firecrawl_crawl)
Bir web sitesinde eşzamansız bir tarama işi başlatır ve tüm sayfalardan içerik çıkarır.
Şunlar için en iyisi:
- Kapsamlı kapsama ihtiyacınız olduğunda, birden fazla ilişkili sayfadan içerik çıkarmak.
Şunlar için önerilmez:
- Tek bir sayfadan içerik çıkarmak (kazıma kullanın)
- Belirteç sınırları endişe yarattığında (harita + toplu_kazıma kullanın)
- Hızlı sonuçlara ihtiyacınız olduğunda (tarama yavaş olabilir)
Uyarı: Tarama yanıtları çok büyük olabilir ve belirteç sınırlarını aşabilir. Tarama derinliğini ve sayfa sayısını sınırlayın veya daha iyi kontrol için harita + toplu_kazıma kullanın.
Yaygın hatalar:
- Sınır veya maxDepth değerini çok yüksek ayarlamak (belirteç taşmasına neden olur)
- Tek bir sayfa için tarama kullanmak (bunun yerine kazıma kullanın)
İstem Örneği:
"example.com/blog'un ilk iki seviyesindeki tüm blog gönderilerini al."
Kullanım Örneği:
{
"name": "firecrawl_crawl",
"arguments": {
"url": "https://example.com/blog/*",
"maxDepth": 2,
"limit": 100,
"allowExternalLinks": false,
"deduplicateSimilarURLs": true
}
}
Döndürür:
- Yanıt, durum kontrolü için işlem kimliğini içerir:
{
"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. Tarama Durumunu Kontrol Et (firecrawl_check_crawl_status)
Bir tarama işinin durumunu kontrol edin.
{
"name": "firecrawl_check_crawl_status",
"arguments": {
"id": "550e8400-e29b-41d4-a716-446655440000"
}
}
Döndürür:
- Yanıt, tarama işinin durumunu içerir:
8. Çıkarma Aracı (firecrawl_extract)
LLM yeteneklerini kullanarak web sayfalarından yapılandırılmış bilgi çıkarın. Hem bulut AI hem de kendi kendine barındırılan LLM çıkarmayı destekler.
Şunlar için en iyisi:
- Fiyatlar, isimler, ayrıntılar gibi belirli yapılandırılmış verileri çıkarmak.
Şunlar için önerilmez:
- Bir sayfanın tam içeriğine ihtiyacınız olduğunda (kazıma kullanın)
- Belirli yapılandırılmış veri aramadığınızda
Argümanlar:
urls: Bilgi çıkarılacak URL'lerin dizisiprompt: LLM çıkarma için özel istemsystemPrompt: LLM'yi yönlendirmek için sistem istemischema: Yapılandırılmış veri çıkarma için JSON şemasıallowExternalLinks: Harici bağlantılardan çıkarmaya izin verenableWebSearch: Ek bağlam için web aramasını etkinleştirincludeSubdomains: Çıkarmaya alt alan adlarını dahil et
Kendi kendine barındırılan bir örnek kullanırken, çıkarma yapılandırılmış LLM'nizi kullanacaktır. Bulut API için Firecrawl'ın yönetilen LLM hizmetini kullanır. İstem Örneği:
"Bu ürün sayfalarından ürün adını, fiyatını ve açıklamasını çıkar."
Kullanım Örneği:
{
"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
}
}
Döndürür:
- Şemanız tarafından tanımlanan şekilde çıkarılmış yapılandırılmış veri
{
"content": [
{
"type": "text",
"text": {
"name": "Example Product",
"price": 99.99,
"description": "This is an example product description"
}
}
],
"isError": false
}
9. Aracı Aracı (firecrawl_agent)
Otonom web araştırma aracısı. Bu, interneti bağımsız olarak tarayan, bilgi arayan, sayfalarda gezinen ve sorgunuza dayalı olarak yapılandırılmış veri çıkaran ayrı bir AI aracı katmanıdır.
Nasıl çalışır:
Aracı web aramaları yapar, bağlantıları takip eder, sayfaları okur ve verileri otonom olarak toplar. Bu eşzamansız olarak çalışır - hemen bir iş kimliği döndürür ve tamamlandığında kontrol etmek ve sonuçları almak için firecrawl_agent_status'i yoklarsınız.
Eşzamansız iş akışı:
- İstem/şemanız ile
firecrawl_agent'i çağırın → iş kimliği döndürür - Aracı araştırma yaparken diğer işleri yapın (karmaşık sorgular için dakikalar sürebilir)
- İlerlemeyi kontrol etmek için iş kimliği ile
firecrawl_agent_status'i yoklayın - Durum "tamamlandı" olduğunda, yanıt çıkarılan verileri içerir
Şunlar için en iyisi:
- Tam URL'leri bilmediğiniz karmaşık araştırma görevleri
- Çok kaynaklı veri toplama
- Web'e dağılmış bilgileri bulma
- Sonuçları beklerken başka işler yapabileceğiniz görevler
Şunlar için önerilmez:
- URL'yi bildiğiniz basit tek sayfalı kazıma (JSON formatıyla kazıma kullanın - daha hızlı ve daha ucuz)
Argümanlar:
prompt: İstediğiniz verinin doğal dil açıklaması (gerekli, maksimum 10.000 karakter)urls: Aracıyı belirli sayfalara odaklamak için isteğe bağlı URL dizisischema: Yapılandırılmış çıktı için isteğe bağlı JSON şeması
İstem Örneği:
"Firecrawl'ın kurucularını ve geçmişlerini bul"
Kullanım Örneği (aracıyı başlat, ardından sonuçlar için yokla):
{
"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" }
}
}
}
}
}
}
}
Ardından dönen iş kimliği ile firecrawl_agent_status kullanarak yoklayın.
Kullanım Örneği (URL'lerle - aracı belirli sayfalara odaklanır):
{
"name": "firecrawl_agent",
"arguments": {
"urls": ["https://docs.firecrawl.dev", "https://firecrawl.dev/pricing"],
"prompt": "Compare the features and pricing information from these pages"
}
}
Döndürür:
- Durum kontrolü için iş kimliği. Sonuçları yoklamak için
firecrawl_agent_statuskullanın.
10. Aracı Durumunu Kontrol Et (firecrawl_agent_status)
Bir aracı işinin durumunu kontrol edin ve tamamlandığında sonuçları alın. Bir aracıyı başlattıktan sonra sonuçları yoklamak için bunu kullanın.
Yoklama deseni: Aracı araştırması karmaşık sorgular için dakikalar sürebilir. Durum "tamamlandı" veya "başarısız" olana kadar bu uç noktayı periyodik olarak (örneğin, her 10-30 saniyede bir) yoklayın.
{
"name": "firecrawl_agent_status",
"arguments": {
"id": "550e8400-e29b-41d4-a716-446655440000"
}
}
Olası durumlar:
processing: Aracı hala araştırıyor - daha sonra tekrar kontrol edincompleted: Araştırma tamamlandı - yanıt çıkarılan verileri içerirfailed: Bir hata oluştu
11. İzleme Araçları (firecrawl_monitor_*)
Yinelenen sayfa izleyicileri oluşturun ve yönetin. İzleyiciler zamanlanmış kazımalar veya taramalar çalıştırır, her sonucu son tutulan anlık görüntüyle karşılaştırır ve web kancası veya e-posta ile bildirim gönderebilir.
Şunlar için en iyisi:
- Zaman içinde bir sayfayı veya birkaç sayfayı izlemek
- Düz İngilizce bir hedef kullanarak anlamlı değişikliklerde uyarı vermek
- Kontrol geçmişini ve sayfa düzeyinde farkları takip etmek
Önerilen oluşturma deseni:
page veya pages artı goal kullanın. MCP sunucusu, izleme isteğini 30 dakikalık bir zamanlama ile oluşturur ve API anlamlı değişiklik yargılamasını otomatik olarak etkinleştirir.
Anlamlı değişiklik yargılaması, goal ayarlandığında otomatik olarak çalışır. Sayfa web kancaları, monitor.page olaylarında isMeaningful ve judgment'yi ortaya çıkarır.
Hedefleri 2-3 cümlelik kısa izleme talimatları olarak yazın. Neyin uyarı tetiklemesi gerektiğini söyleyin, kullanıcının verdiği kapsamı koruyun ve yalnızca istekten açıkça anlaşıldığında niyete özgü hariç tutmaları ekleyin. Boşluk, yalnızca biçimlendirme değişiklikleri, istek kimlikleri, izleme parametreleri, genel meta veriler ve ilgisiz sayfa kromu gibi genel gürültüler zaten yargıç tarafından ele alınır, bu nedenle bunları her hedefte tekrarlamayın. Kullanıcı belirsizse, hedefi geniş tutun; geniş izleme veya "herhangi bir değişiklik" isterlerse, bunu koruyun. Kullanıcı bir şeyi umursamadığını söylerse, bunu açıkça belirtin.
{
"name": "firecrawl_monitor_create",
"arguments": {
"page": "https://example.com/pricing",
"goal": "Alert when pricing, packaging, or launch messaging changes."
}
}
Web kancaları ile birden fazla sayfa:
{
"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"
}
}
Gelişmiş oluşturma istekleri:
Tarama hedeflerine, JSON değişiklik takibine, özel saklamaya veya açık judgeEnabled kontrolüne ihtiyacınız olduğunda body iletin.
{
"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" }]
}
}
}
Diğer izleme araçları:
firecrawl_monitor_list: izleyicileri listele.firecrawl_monitor_get: bir izleyiciyi getir.firecrawl_monitor_update:goal,judgeEnabled,webhookvenotificationdahil alanları güncelle.firecrawl_monitor_run: şimdi bir kontrol tetikle.firecrawl_monitor_checks: isteğe bağlı olarak duruma göre filtrelenmiş kontrolleri listele.firecrawl_monitor_check:diff,snapshot,judgment.meaningfulvejudgment.meaningfulChangesdahil sayfa düzeyinde sonuçları al.
Günlük Kaydı Sistemi
Sunucu kapsamlı günlük kaydı içerir:
- İşlem durumu ve ilerlemesi
- Performans metrikleri
- Kredi kullanımı izleme
- Hız sınırı takibi
- Hata koşulları
Örnek günlük mesajları:
[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...
Hata İşleme
Sunucu sağlam hata işleme sağlar:
- Geçici hatalar için otomatik yeniden denemeler
- Geri çekilme ile hız sınırı işleme
- Ayrıntılı hata mesajları
- Kredi kullanım uyarıları
- Ağ dayanıklılığı
Örnek hata yanıtı:
{
"content": [
{
"type": "text",
"text": "Error: Rate limit exceeded. Retrying in 2 seconds..."
}
],
"isError": true
}
Geliştirme
# Install dependencies
npm install
# Build
npm run build
# Run tests
npm test
Katkıda Bulunma
- Depoyu çatallayın
- Özellik dalınızı oluşturun
- Testleri çalıştırın:
npm test - Bir çekme isteği gönderin
Katkıda bulunanlara teşekkürler
İlk uygulama için @vrknetha, @cawstudios'a teşekkürler!
Barındırma için MCP.so ve Klavis AI'ye ve sunucumuzu entegre eden @gstarwd, @xiangkaiz ve @zihaolin96'ya teşekkürler.
Lisans
MIT Lisansı - ayrıntılar için LICENSE dosyasına bakın