Search & Data Extraction TypeScript ★ 1,059

jae-jae/fetcher-mcp

Playwright headless browser kullanan MCP sunucusu, Javascript rendering ve akıllı içerik çıkarma desteği ile web sayfası içeriğini alır ve Markdown veya HTML formatında çıktı verir.

Claude Desktop config.json'a ekle

{
  "mcpServers": {
    "jae-jae-fetcher-mcp": {
      "command": "node",
      "args": [
        "~/.mcp/fetcher-mcp/index.js"
      ]
    }
  }
}

中文 | Deutsch | Español | français | 日本語 | 한국어 | Português | Русский

Fetcher MCP

Playwright headless browser kullanarak web sayfası içeriğini getirmek için MCP sunucusu.

🌟 Tavsiye: OllaMan - Powerful Ollama AI Model Manager.

Avantajlar

  • JavaScript Desteği: Geleneksel web kazıyıcılarından farklı olarak, Fetcher MCP JavaScript'i çalıştırmak için Playwright kullanarak dinamik web içeriğini ve modern web uygulamalarını işleyebilir.

  • Akıllı İçerik Çıkarma: Yerleşik Readability algoritması web sayfalarından ana içeriği otomatik olarak çıkartarak reklamları, navigasyonu ve diğer gereksiz öğeleri kaldırır.

  • Esnek Çıktı Formatı: Hem HTML hem de Markdown çıktı formatlarını destekleyerek çeşitli uygulamalara entegrasyon kolaylaştırır.

  • Paralel İşleme: fetch_urls aracı birden fazla URL'nin eşzamanlı olarak getirilmesini sağlayarak toplu işlemler için verimliliği önemli ölçüde artırır.

  • Kaynak Optimizasyonu: Gereksiz kaynakları (görseller, stil sayfaları, yazı tipleri, medya) otomatik olarak engellemerek bant genişliği kullanımını azaltır ve performansı iyileştirir.

  • Güçlü Hata Yönetimi: Kapsamlı hata işleme ve günlüğe kaydetme, sorunlu web sayfalarla uğraşırken bile güvenilir işlemi sağlar.

  • Yapılandırılabilir Parametreler: Zaman aşımları, içerik çıkarma ve çıktı biçimlendirmesi üzerinde hassas kontrol sağlayarak farklı kullanım durumlarına uyum sağlar.

Hızlı Başlangıç

npx ile doğrudan çalıştırın:

npx -y fetcher-mcp

İlk kurulum - gerekli tarayıcıyı yüklemek için terminalinizde aşağıdaki komutu çalıştırın:

npx playwright install chromium

HTTP ve SSE Transport

Hem Streamable HTTP endpoint hem de SSE endpoint hizmetlerini aynı anda başlatmak için --transport=http parametresini kullanın:

npx -y fetcher-mcp --log --transport=http --host=0.0.0.0 --port=3000

Başladıktan sonra sunucu aşağıdaki endpoint'leri sağlar:

  • /mcp - Streamable HTTP endpoint (modern MCP protokolü)
  • /sse - SSE endpoint (eski MCP protokolü)

İstemciler gereksinimlerine göre bağlanacak yöntemi seçebilir.

Debug Modu

Hata ayıklamak için tarayıcı penceresini göstermek üzere --debug seçeneği ile çalıştırın:

npx -y fetcher-mcp --debug

MCP Yapılandırması

Bu MCP sunucusunu Claude Desktop'ta yapılandırın:

MacOS'ta: ~/Library/Application Support/Claude/claude_desktop_config.json

Windows'ta: %APPDATA%/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "fetcher": {
      "command": "npx",
      "args": ["-y", "fetcher-mcp"]
    }
  }
}

Docker Dağıtımı

Docker ile Çalıştırma

docker run -p 3000:3000 ghcr.io/jae-jae/fetcher-mcp:latest

Docker Compose ile Dağıtma

docker-compose.yml dosyası oluşturun:

version: "3.8"

services:
  fetcher-mcp:
    image: ghcr.io/jae-jae/fetcher-mcp:latest
    container_name: fetcher-mcp
    restart: unless-stopped
    ports:
      - "3000:3000"
    environment:
      - NODE_ENV=production
    # Linux ana bilgisayarlarda host ağ modunu kullanmak tarayıcı erişim verimliliğini artırabilir
    # network_mode: "host"
    volumes:
      # Playwright için belirli sistem yollarını paylaşmak gerekebilir
      - /tmp:/tmp
    # Sağlık kontrolü
    healthcheck:
      test: ["CMD", "wget", "--spider", "-q", "http://localhost:3000"]
      interval: 30s
      timeout: 10s
      retries: 3

Ardından çalıştırın:

docker-compose up -d

Özellikler

  • fetch_url - Belirtilen URL'den web sayfası içeriğini alın

    • JavaScript'i ayrıştırmak için Playwright headless tarayıcısını kullanır
    • Ana içeriğin akıllı çıkarılmasını ve Markdown'a dönüştürülmesini destekler
    • Aşağıdaki parametreleri destekler:
      • url: Getirilenecek web sayfasının URL'si (gerekli parametre)
      • timeout: Sayfa yükleme zaman aşımı (milisaniye cinsinden), varsayılan 30000 (30 saniye)
      • waitUntil: Navigasyonun ne zaman tamamlandığını belirlemeye yarayan seçenek, seçenekler: 'load', 'domcontentloaded', 'networkidle', 'commit', varsayılan 'load'
      • extractContent: Ana içeriği akıllı bir şekilde çıkarıp çıkarılmayacağı, varsayılan true
      • maxLength: Döndürülen içeriğin maksimum uzunluğu (karakter cinsinden), varsayılan sınır yok
      • returnHtml: Markdown yerine HTML içeriğinin döndürülüp döndürülmeyeceği, varsayılan false
      • waitForNavigation: İlk sayfa yüklemesinden sonra ek navigasyonun beklenmesi gerekip gerekmediği (anti-bot doğrulaması olan siteler için yararlı), varsayılan false
      • navigationTimeout: Ek navigasyon bekleme maksimum süresi (milisaniye cinsinden), varsayılan 10000 (10 saniye)
      • disableMedia: Medya kaynaklarının (görseller, stil sayfaları, yazı tipleri, medya) devre dışı bırakılıp bırakılmayacağı, varsayılan true
      • debug: Hata ayıklama modunun etkinleştirilip etkinleştirilmeyeceği (tarayıcı penceresini gösterme), belirtilirse --debug komut satırı bayrağını geçersiz kılar
  • fetch_urls - Birden fazla URL'den toplu olarak web sayfası içeriğini paralel olarak alın

    • Geliştirilmiş performans için çok sekme paralel getirme kullanır
    • Web sayfaları arasında net ayrım ile birleştirilmiş sonuçları döndürür
    • Aşağıdaki parametreleri destekler:
      • urls: Getirilecek URL'lerin dizisi (gerekli parametre)
      • Diğer parametreler fetch_url ile aynıdır
  • browser_install - Playwright Chromium tarayıcı binary'sini otomatik olarak yükleyin

    • Kullanılamadığında gerekli Chromium tarayıcı binary'sini yükler
    • Tarayıcı kurulum hatası oluştuğunda otomatik olarak önerilir
    • Aşağıdaki parametreleri destekler:
      • withDeps: Chromium tarayıcısı için gerekli sistem bağımlılıklarını yükleyin, varsayılan false
      • force: Chromium zaten yüklü olsa bile kurulumu zorlayın, varsayılan false

İpuçları

Özel Web Sitesi Senaryolarıyla Başa Çıkma

Anti-Crawler Mekanizmalarıyla Başa Çıkma

  • Komple Yükleme Bekleme: CAPTCHA, yönlendirmeler veya diğer doğrulama mekanizmaları kullanan web siteleri için istemde şunları ekleyin:

    Please wait for the page to fully load
    

    Bu waitForNavigation: true parametresini kullanacaktır.

  • Zaman Aşımını Artırma: Yavaş yüklenen web siteleri için:

    Please set the page loading timeout to 60 seconds
    

    Bu timeout ve navigationTimeout parametrelerini buna göre ayarlar.

İçerik Alma Ayarlamaları

  • Orijinal HTML Yapısını Koruma: İçerik çıkarma başarısız olabileceği durumlarda:

    Please preserve the original HTML content
    

    extractContent: false ve returnHtml: true ayarını yapar.

  • Komple Sayfa İçeriğini Getirme: Çıkartılan içerik çok sınırlı olduğunda:

    Please fetch the complete webpage content instead of just the main content
    

    extractContent: false ayarını yapar.

  • İçeriği HTML Olarak Döndürme: Varsayılan Markdown yerine HTML formatı gerektiğinde:

    Please return the content in HTML format
    

    returnHtml: true ayarını yapar.

Hata Ayıklama ve Kimlik Doğrulama

Hata Ayıklama Modunu Etkinleştirme

  • Dinamik Hata Ayıklama Aktivasyonu: Belirli bir getirme işlemi sırasında tarayıcı penceresini göstermek için:
    Please enable debug mode for this fetch operation
    
    Sunucusuz --debug bayrağı ile başlatılmış olsa bile debug: true ayarını yapar.

Kimlik Doğrulama İçin Özel Çerez Kullanma

  • Manuel Oturum Açma: Kendi kimlik bilgilerinizi kullanarak oturum açmak için:

    Please run in debug mode so I can manually log in to the website
    

    debug: true ayarını yapar veya --debug bayrağını kullanır, manual oturum açma için tarayıcı penceresini açık tutar.

  • Hata Ayıklama Tarayıcısı ile Etkileşim: Hata ayıklama modu etkinleştirildiğinde:

    1. Tarayıcı penceresi açık kalır
    2. Web sitesine kimlik bilgilerinizi kullanarak manuel olarak oturum açabilirsiniz
    3. Oturum açma tamamlandıktan sonra, içerik kimlik doğrulamalı oturumunuzla getirilecektir
  • Belirli İstekler İçin Hata Ayıklamayı Etkinleştirme: Sunucu zaten çalışıyor olsa bile, belirli bir istek için hata ayıklama modunu etkinleştirebilirsiniz:

    Please enable debug mode for this authentication step
    

    Yalnızca bu istek için debug: true ayarını yapar, manual oturum açma için tarayıcı penceresini açar.

Geliştirme

Bağımlılıkları Yükleyin

npm install

Playwright Tarayıcısını Yükleyin

Playwright için gerekli tarayıcıları yükleyin:

npm run install-browser

Sunucuyu Oluşturun

npm run build

Hata Ayıklama

Hata ayıklama için MCP Inspector kullanın:

npm run inspector

Hata ayıklama için görünür tarayıcı modunu da etkinleştirebilirsiniz:

node build/index.js --debug

İlgili Projeler

  • g-search-mcp: Aynı anda birden fazla anahtar kelimeyle paralel arama yapılmasını sağlayan güçlü Google arama MCP sunucusu. Toplu arama işlemleri ve veri toplama için mükemmeldir.

Lisans

MIT Lisansı altında lisanslanmıştır.

Powered by DartNode

Benzer MCP sunucuları

Daha fazla: Search & Data Extraction →