Firecrawl
resmiFirecrawl ile web verisi çıkarın
Firecrawl MCP ile neler yapabilirsiniz?
- Bilinen bir URL'den yapılandırılmış veri kazıma — Yapay zekadan, bir JSON şeması ile
firecrawl_scrapekullanarak bir sayfadan belirli alanları (ör. ad, fiyat) çıkarmasını isteyin. - Web'de bilgi arama — Yapay zekadan,
firecrawl_searchile web genelinde ilgili sayfaları bulmasını, isteğe bağlı olarak sonuçlardan tam içerik kazımasını isteyin. - Bir web sitesini haritalayarak URL'lerini keşfetme — Hangi sayfaları kazıyacağınıza karar vermeden önce yapay zekadan,
firecrawl_mapkullanarak bir alan adındaki tüm indekslenmiş URL'leri listelemesini isteyin. - Otonom çok kaynaklı araştırma yürütme — Yapay zekadan, bağımsız olarak gezinip veri toplayan bir
firecrawl_agentişi başlatmasını, ardından sonuçlar içinfirecrawl_agent_status'u sorgulamasını isteyin. - Dinamik bir sayfayla etkileşim kurma — Yapay zekadan, bir URL veya mevcut bir kazıma oturumu ile
firecrawl_interactkullanarak bir sayfada tıklama, yazma veya gezinme yapmasını isteyin.
Dokümantasyon
Firecrawl MCP Sunucusu
Firecrawl hizmetini MCP uyumlu yapay zeka ajanlarına getiren 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'e 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 derin araştırma
- Otomatik yeniden denemeler ve hız sınırlaması
- Bulut ve kendi sunucunuzda barındırma desteği
- SSE desteği
MCP.so'nun oyun alanındaki MCP Sunucumuz veya Klavis AI üzerinde deneyin.
Kurulum
Barındırılan MCP (anahtarsız ücretsiz katman)
Hiçbir kurulum yapmadan uzak barındırılan sunucuya bağlanın:
https://mcp.firecrawl.dev/v2/mcp
Anahtarsız ücretsiz katmanda, scrape, search ve interact bir API anahtarı olmadan çalışır (hız sınırlamalıdır). crawl, map, agent ve extract gibi diğer araçlar hâlâ bir anahtar gerektirir.
İnsan kullanıcı kaydolabildiğinde bir API anahtarı veya OAuth tercih edin. Bu, tam araç setini ve daha yüksek limitleri açar. Bir anahtarla şunu kullanın:
https://mcp.firecrawl.dev/{FIRECRAWL_API_KEY}/v2/mcp
Kurulum ayrıntıları için MCP sunucu belgelerine ve ajan katılım kılavuzuna bakın.
Yalnızca arama uç noktası
Salt okunur, yalnızca arama yapılan bir yüzey de şu adreste barındırılmaktadır:
https://mcp.firecrawl.dev/v2/mcp-search
Altı salt okunur araçtan oluşan sabit bir set sunar: firecrawl_search ve beş firecrawl_research_* aracı. Sayfa içeriği getirme işlemi yapmaz ve kendi OAuth kimliğine sahiptir; yukarıdaki tam uç nokta değişmez. Tam sözleşme için docs/search-profile.md dosyasına bakın.
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
Cursor v0.48.6'da Firecrawl MCP'yi 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" } } } }
Cursor v0.45.6'da Firecrawl MCP'yi 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, bir hesap oluşturup https://www.firecrawl.dev/app/api-keys adresinden 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 için Gerekli
FIRECRAWL_API_KEY: Firecrawl API anahtarınız- Bulut API 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 kullanılacaktı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_…) verebilir. Bu MCP sunucusu, çözümlediği 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.
Yalnızca arama yüzeyi (barındırılan)
Barındırılan modda (CLOUD_SERVICE=true) ikinci bir süreç içi örnek, yalnızca arama uç noktasına hizmet eder. Paketlenmiş hizmetin sabit bir dağıtım sözleşmesi vardır: nginx, /v2/mcp-search yolunu yerel bağlantı noktası 3001 üzerindeki örneğe yönlendirir ve OAuth korumalı kaynak tanımlayıcısı https://mcp.firecrawl.dev/v2/mcp-search şeklindedir.
FIRECRAWL_MCP_SEARCH_ENABLED (varsayılan true) desteklenen operasyonel geçiştir; arama örneğinin başlamasını önlemek için false olarak ayarlayın. Node süreci ayrıca yalıtılmış testler için FIRECRAWL_MCP_SEARCH_PORT, FIRECRAWL_MCP_SEARCH_ENDPOINT ve FIRECRAWL_MCP_SEARCH_RESOURCE_URL değerlerini kabul eder. Bu geçersiz kılmalar, paketlenmiş nginx yollarını veya yetkilendirme sunucusu izin listesini yeniden yapılandırmaz ve barındırılan dağıtımda bağımsız olarak kullanılmamalıdır.
Arama örneği, her istek için (tools/list dahil) kimlik doğrulaması gerektirir ve hedef kitlesi kendi kaynağıyla eşleşmeyen OAuth belirteçlerini reddeder.
Yapılandırma Örnekleri
Bulut API kullanımı için:
export FIRECRAWL_API_KEY=your-api-key
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
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"
}
}
}
}
Bir Araç Nasıl Seçilir
Göreviniz için doğru aracı seçmek üzere bu kılavuzu kullanın:
- Tam olarak istediğiniz URL'yi biliyorsanız: scrape kullanın (yapılandırılmış veri için JSON formatıyla)
- Birden fazla bilinen URL'niz varsa: her URL için scrape çağırın. Özellikle bir toplu API işlemine ihtiyacınız varsa, MCP dışında Firecrawl API toplu uç noktasını 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 (limitlerle!)
- Etkileşimli tarayıcı otomasyonuna ihtiyacınız varsa (tıklama, yazma, gezinme): yeni bir sayfa için bir URL ile interact kullanın veya sayfayı zaten kazıdıysanız ya da daha sıkı kazıma kontrolüne ihtiyacınız varsa scrape + interact kullanın
Hızlı Başvuru Tablosu
| Araç | En İyisi | Döndürdüğü |
|---|---|---|
| scrape | Tek sayfa içeriği | JSON (tercih edilir) veya markdown |
| interact | Bir URL veya kazınmış sayfa ile etkileşim | Yürütme sonucu + URL modu için scrapeId |
| map | Bir sitedeki URL'leri keşfetme | URL[] |
| crawl | Çok sayfalı çıkarma (limitlerle) | dahili yoklamadan sonra nihai tarama durumu/verisi |
| parse | Dosyalar ve barındırılan yükleme referansları | markdown, JSON veya belge çıktısı |
| extract | URL'lerden yapılandırılmış çıkarma | JSON yapılandırılmış veri |
| search | Bilgi için web araması | results[] |
| agent | Karmaşık çok kaynaklı araştırma | JSON (yapılandırılmış veri) |
| monitor | Yinelenen sayfa kontrolleri | izleme/kontrol meta verileri ve farklar |
| research | Makale ve GitHub deposu araştırması | araştırma sonuçları ve repo eşleşmeleri |
Format Seçim Kılavuzu
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, özetleme için tüm bir makaleyi okumak veya sayfa yapısını analiz etmek gibi, tam sayfa içeriğine gerçekten ihtiyacınız olduğunda.
Mevcut Araçlar
1. Kazıma Aracı (firecrawl_scrape)
Gelişmiş seçeneklerle tek bir URL'den içerik kazıyın.
En iyisi için:
- Hangi sayfanın bilgiyi içerdiğini tam olarak bildiğinizde, tek sayfa içerik çıkarma.
Şunlar için önerilmez:
- Birden fazla sayfadan içerik çıkarma (bilinen URL'ler için tekrarlanan kazıma çağrıları kullanın veya önce URL'leri keşfetmek için map + scrape, ya da tam sayfa içeriği için crawl kullanın)
- Hangi sayfanın bilgiyi içerdiğinden emin olmadığınızda (search kullanın)
Yaygın hatalar:
- Bir kazıma çağrısına URL listesi iletmek. MCP'de URL başına bir kez scrape çağırın. Özellikle bir toplu API işlemine ihtiyacınız varsa, MCP dışında Firecrawl API toplu uç noktasını 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ş içerik 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. Haritalama Aracı (firecrawl_map)
Sitedeki tüm dizine eklenmiş URL'leri keşfetmek için bir web sitesini haritalayın.
En iyisi için:
- Neyi kazıyacağınıza karar vermeden önce bir web sitesindeki URL'leri keşfetme
- Bir web sitesinin belirli bölümlerini bulma
Şunlar için önerilmez:
- Hangi belirli URL'ye ihtiyacınız olduğunu zaten bildiğinizde (scrape kullanın)
- Sayfaların içeriğine ihtiyacınız olduğunda (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 dizisi
3. Arama Aracı (firecrawl_search)
Web'de arama yapın ve isteğe bağlı olarak arama sonuçlarından içerik çıkarın.
En iyisi için:
- Hangi web sitesinin bilgiye sahip 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
Şunlar için önerilmez:
- Hangi web sitesini kazıyacağınızı zaten bildiğinizde (scrape kullanın)
- Tek bir web sitesinin kapsamlı kapsamına ihtiyacınız olduğunda (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",
"highlights": true,
"limit": 5,
"lang": "en",
"country": "us",
"scrapeOptions": {
"formats": ["markdown"],
"onlyMainContent": true,
"redactPII": true
}
}
}
highlights değerini, sorguyla ilgili öne çıkanları istemek için true olarak veya orijinal arama parçacıklarını korumak için false olarak ayarlayın. API'nin varsayılan davranışını kullanmak için bu değeri atlayın.
Döndürdükleri:
- Arama sonuçları dizisi (isteğe bağlı kazınmış içerikle birlikte) ve bir
idalanı. Sonuçları kullandıktan sonra 1 krediyi geri almak (arama maliyeti 2'dir) ve arama kalitesini artırmak için buiddeğerinifirecrawl_search_feedbackaracına iletin.
İstem Örneği:
"2023'te yayınlanmış yapay zeka üzerine en son araştırma makalelerini bul."
3b. 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 tek seferliktir.
Bunu, gerçekten kullandığınız her aramadan sonra (veya işe yaramadıysa) ç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ı kaydedilmez, böylece aracılar onu çağıramaz. 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 bir sonraki adımda neyin dizine eklenmesi gerektiğini bize 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 değerine 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ürdükleri:
{ success, feedbackId, creditsRefunded, alreadySubmitted? }JSON'u.
3c. 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. Özellikle arama sonucu kalitesi için,
arama özelinde rehberlik içerdiğinden
firecrawl_search_feedback aracını tercih edin.
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ı kaydedilmez, böylece aracılar onu çağıramaz.
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ürdükleri:
{ success, feedbackId, creditsRefunded, creditsRefundedToday?, dailyRefundCap?, dailyCapReached?, alreadySubmitted?, warning? }JSON'u.
4. Tarama Aracı (firecrawl_crawl)
Bir tarama işi başlatır, son duruma ulaşana kadar yoklar ve nihai tarama durumunu/verisini döndürür.
Şunlar için en uygunudur:
- Kapsamlı kapsama ihtiyacınız olduğunda, birden çok 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 (daha sıkı kontrol için harita + 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 sıkı kontrol için harita + kazıma kullanın.
Yaygın hatalar:
- limit veya maxDiscoveryDepth 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/*",
"maxDiscoveryDepth": 2,
"limit": 100,
"allowExternalLinks": false,
"deduplicateSimilarURLs": true
}
}
Döndürdükleri:
- Dahili yoklamadan sonra nihai tarama durumu ve verisi;
id,status,completed,total,creditsUsed,expiresAt,nextvedatadahil. İşi daha sonra tekrar kontrol etmeniz gerekirse, döndürüleniddeğerinifirecrawl_check_crawl_statusile kullanın.
5. Tarama Durumunu Kontrol Et (firecrawl_check_crawl_status)
Kimliğe göre mevcut bir tarama işinin durumunu ve sonuçlarını kontrol edin.
{
"name": "firecrawl_check_crawl_status",
"arguments": {
"id": "550e8400-e29b-41d4-a716-446655440000"
}
}
Döndürdükleri:
- Yanıt, tarama işinin durumunu içerir:
6. Ayrıştırma Aracı (firecrawl_parse)
Firecrawl'ın /v2/parse uç noktasıyla yerel dosyaları veya barındırılan yükleme referanslarını ayrıştırın.
Şunlar için en uygunudur: Markdown veya yapılandırılmış JSON çıktısına ihtiyaç duyan PDF'ler, Word belgeleri, elektronik tablolar, HTML dosyaları ve diğer belgeler. Barındırılan MCP, iki adımlı bir yükleme-referans akışını destekler; yerel doğrudan dosya okumaları, kendi kendine barındırılan bir FIRECRAWL_API_URL gerektirir.
Şunlar için önerilmez: Uzak URL'ler (kazıma kullanın), tek bir çağrıda birden çok dosya (dosya başına bir kez ayrıştırma çağrısı yapın) veya ekran görüntüleri ve tıklamalar gibi yalnızca tarayıcı eylemleri.
Barındırılan MCP akışı: Barındırılan MCP, çağrıyı yapanın dosya sistemini doğrudan okuyamaz. Kısa ömürlü bir yükleme komutu ve nextToolCall almak için firecrawl_parse aracını filePath ile çağırın, dosyayı yerel olarak yükleyin, ardından döndürülen uploadRef ile firecrawl_parse aracını tekrar çağırın. Barındırılan yükleme URL'sini oluşturmak, Firecrawl kimlik doğrulaması veya anahtarsız uygunluk gerektirir. Yerel npx firecrawl-mcp modunda, doğrudan dosya ayrıştırma şu anda kendi kendine barındırılan bir Firecrawl API'sine işaret eden FIRECRAWL_API_URL gerektirir; yalnızca bulut API anahtarına sahip bir yerel sunucu, bu araç aracılığıyla dosyaları okuyamaz ve yükleyemez.
Kullanım Örneği:
{
"name": "firecrawl_parse",
"arguments": {
"filePath": "/absolute/path/to/document.pdf",
"formats": ["markdown"],
"parsers": ["pdf"],
"zeroDataRetention": true
}
}
Döndürdükleri: Ayrıştırılmış belge içeriği veya bir nextToolCall ile barındırılan yükleme talimatları.
7. Çıkarma Aracı (firecrawl_extract)
LLM yeteneklerini kullanarak web sayfalarından yapılandırılmış bilgi çıkarın. Hem bulut yapay zekayı hem de kendi kendine barındırılan LLM çıkarımını destekler.
Şunlar için en uygunudur:
- Fiyatlar, adlar, 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 çıkarımı için özel istemsystemPrompt: LLM'ye rehberlik edecek sistem istemischema: Yapılandırılmış veri çıkarımı 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 işlemi yapılandırdığınız LLM'yi kullanı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ürdükleri:
- Şemanız tarafından tanımlandığı şekilde çıkarılan yapılandırılmış veri
{
"content": [
{
"type": "text",
"text": {
"name": "Example Product",
"price": 99.99,
"description": "This is an example product description"
}
}
],
"isError": false
}
8. 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 yapay zeka 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 aracını yoklarsınız.
Eşzamansız iş akışı:
- İsteminiz/şemanızla
firecrawl_agentaracını ç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ğiyle
firecrawl_agent_statusaracını yoklayın - Durum "tamamlandı" olduğunda, yanıt çıkarılan verileri içerir
Şunlar için en uygunudur:
- 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ın, ardından sonuçları yoklayın):
{
"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öndürülen iş kimliğiyle 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ürdükleri:
- Durum kontrolü için iş kimliği. Sonuçları yoklamak için
firecrawl_agent_statuskullanın.
9. 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 bitti - yanıt, çıkarılan verileri içerirfailed: Bir hata oluştu
10. Etkileşim Aracı (firecrawl_interact)
Yeni bir URL ile veya firecrawl_scrape tarafından zaten açılmış bir sayfa ile etkileşim kurun.
Şunlar için en uygunudur: Kullanımdan kaldırılan tarayıcı araçlarını geri yüklemeden dinamik sayfalardan tıklama, yazma, gezinme ve durum çıkarma.
Kullanım seçenekleri:
- Tek bir MCP çağrısında etkileşim için bir sayfayı kazımak ve açmak üzere
urliletin. - Mevcut kazınmış bir sayfayla etkileşime devam etmek için
scrapeIdiletin. urlveyascrapeId'den tam olarak birini, artıpromptveyacode'yi iletin.
Kullanım Örneği:
{
"name": "firecrawl_interact",
"arguments": {
"url": "https://example.com",
"prompt": "Click the pricing link and summarize the visible plans"
}
}
Döndürdükleri: Etkileşim sonucu ve URL modu için, takip veya temizlik amacıyla türetilen scrapeId.
11. Etkileşimi Durdur Aracı (firecrawl_interact_stop)
Etkileşim işiniz bittiğinde, kazınmış bir sayfa için etkileşim oturumunu durdurun.
{
"name": "firecrawl_interact_stop",
"arguments": {
"scrapeId": "scrape-id-here"
}
}
12. Araştırma Araçları (firecrawl_research_*)
Araştırma MCP araçları aracılığıyla makaleleri ve GitHub depolarını arayın ve inceleyin.
Mevcut araştırma araçları:
firecrawl_research_search_papers: araştırma makalelerini ara.firecrawl_research_inspect_paper: bir makaleyi incele.firecrawl_research_related_papers: ilgili makaleleri bul.firecrawl_research_read_paper: makale içeriğini oku.firecrawl_research_search_github: GitHub depolarını ara.
Şunlar için en uygunudur: Aracının genel web kazıma yerine odaklanmış bir araştırma yüzeyine ihtiyaç duyduğu literatür taraması, makale arama ve depo keşfi iş akışları.
13. İ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 saklanan son anlık görüntüyle karşılaştırır ve web kancası veya e-posta yoluyla bildirim gönderebilir.
Şunlar için en uygunudur:
- 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 zamanlamayla 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şılıyorsa niyete özel 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 dahil edin.
{
"name": "firecrawl_monitor_create",
"arguments": {
"page": "https://example.com/pricing",
"goal": "Alert when pricing, packaging, or launch messaging changes."
}
}
Web kancalarıyla birden çok 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: monitörleri listele.firecrawl_monitor_get: bir monitörü getir.firecrawl_monitor_update:goal,judgeEnabled,webhookvenotificationdahil alanları güncelle.firecrawl_monitor_run: şimdi bir kontrol tetikle.firecrawl_monitor_delete: bir monitörü sil (yıkıcıdır; yalnızca kullanıcı kaldırmak istediğinde çağırın).firecrawl_monitor_checks: kontrolleri listele, isteğe bağlı olarak duruma göre filtrele.firecrawl_monitor_check:diff,snapshot,judgment.meaningfulvejudgment.meaningfulChangesdahil sayfa düzeyinde sonuçları al.
Günlük Sistemi
Sunucu kapsamlı günlük kaydı içerir:
- İşlem durumu ve ilerlemesi
- Performans metrikleri
- Hız sınırı takibi
- Hata durumları
Örnek günlük mesajları:
[INFO] Firecrawl MCP Server initialized successfully
[INFO] Starting scrape for URL: https://example.com
[ERROR] Rate limit exceeded
Hata Yönetimi
Sunucu sağlam hata yönetimi sağlar:
- API hız sınırı hataları MCP istemcisine iletilir
- Ayrıntılı hata mesajları
- Ağ dayanıklılığı
Örnek hata yanıtı:
{
"content": [
{
"type": "text",
"text": "Error: Rate limit exceeded"
}
],
"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 ve @cawstudios'a teşekkürler!
Barındırma için MCP.so ve Klavis AI'ye ve sunucumuzu entegre eden @gstarwd, @xiangkaiz ve @zihaolin96'a teşekkürler.
Lisans
MIT Lisansı - ayrıntılar için LICENSE dosyasına bakın