Search & Data Extraction TypeScript ★ 941

ihor-sokoliuk/mcp-searxng

SearXNG için bir Model Context Protocol Server

Claude Desktop config.json'a ekle

{
  "mcpServers": {
    "ihor-sokoliuk-mcp-searxng": {
      "command": "node",
      "args": [
        "~/.mcp/mcp-searxng/index.js"
      ]
    }
  }
}

SearXNG MCP Server

Bir MCP server, SearXNG API'sini entegre eder ve yapay zeka asistanlarına web arama yetenekleri sağlar.

https://nodei.co/npm/mcp-searxng.png?downloads=true&downloadRank=true&stars=true

https://badgen.net/docker/pulls/isokoliuk/mcp-searxng

Hızlı Başlangıç

MCP client yapılandırmanıza ekleyin (örneğin claude_desktop_config.json):

{
  "mcpServers": {
    "searxng": {
      "command": "npx",
      "args": ["-y", "mcp-searxng"],
      "env": {
        "SEARXNG_URL": "YOUR_SEARXNG_INSTANCE_URL"
      }
    }
  }
}

YOUR_SEARXNG_INSTANCE_URL yerine SearXNG örneğinizin URL'sini yazın (örneğin https://search.example.com).

Özellikler

  • Web Arama: Genel sorgular, haberler, makaleler ve sayfalandırma.
  • URL İçeriği Okuma: Sayfalandırma, bölüm filtreleme ve başlık çıkarma ile geliştiş içerik çıkarma.
  • Akıllı Önbellekleme: URL içeriği TTL (Time-To-Live) ile önbelleğe alınır ve performansı iyileştirir, gereksiz istekleri azaltır.
  • Sayfalandırma: Hangi sonuç sayfasının alınacağını kontrol edin.
  • Zaman Filtreleme: Sonuçları zaman aralığına göre filtreleyin (gün, ay, yıl).
  • Dil Seçimi: Sonuçları tercih edilen dile göre filtreleyin.
  • Güvenli Arama: Arama sonuçları için içerik filtreleme seviyesini kontrol edin.

Nasıl Çalışır

mcp-searxng bağımsız bir MCP server'ıdır — yapay zeka asistanının web arama için bağlandığı ayrı bir Node.js işlemidir. Herhangi bir SearXNG örneğini HTTP JSON API'si aracılığıyla sorgular.

SearXNG plugin'i değildir: Bu proje, yerel SearXNG plugin'i olarak yüklenemez. SEARXNG_URL ayarlayarak mevcut herhangi bir SearXNG örneğine işaret edin.

Yapay Zeka Asistanı (örneğin Claude)
        │  MCP protokolü
        ▼
  mcp-searxng  (bu proje — Node.js işlemi)
        │  HTTP JSON API  (SEARXNG_URL)
        ▼
  SearXNG örneği

Araçlar

  • searxng_web_search

    • Sayfalandırma ile web araması yapın
    • Girdiler:
      • query (string): Arama sorgusu. Bu dize harici arama hizmetlerine iletilir.
      • pageno (number, isteğe bağlı): Arama sayfası numarası, 1'den başlar (varsayılan 1)
      • time_range (string, isteğe bağlı): Sonuçları zaman aralığına göre filtreleyin - biri: "day", "month", "year" (varsayılan: hiçbiri)
      • language (string, isteğe bağlı): Sonuçlar için dil kodu (örneğin, "en", "fr", "de") veya "all" (varsayılan: "all")
      • safesearch (number, isteğe bağlı): Güvenli arama filtresi seviyesi (0: Hiçbiri, 1: Orta, 2: Sıkı) (varsayılan: örnek ayarı)
  • web_url_read

    • Gelişmiş içerik çıkarma seçenekleri ile bir URL'den içerik okuyun ve markdown'a dönüştürün
    • Girdiler:
      • url (string): Getirip işlenecek URL
      • startChar (number, isteğe bağlı): İçerik çıkarma için başlangıç karakter konumu (varsayılan: 0)
      • maxLength (number, isteğe bağlı): Döndürülecek maksimum karakter sayısı
      • section (string, isteğe bağlı): Belirli bir başlık altında içerik çıkarın (başlık metnini arar)
      • paragraphRange (string, isteğe bağlı): Belirli paragraf aralıklarını döndürün (örneğin, '1-5', '3', '10-')
      • readHeadings (boolean, isteğe bağlı): Tam içerik yerine yalnızca başlıkların listesini döndürün

Kurulum

NPM (global kurulum)
npm install -g mcp-searxng
{
  "mcpServers": {
    "searxng": {
      "command": "mcp-searxng",
      "env": {
        "SEARXNG_URL": "YOUR_SEARXNG_INSTANCE_URL"
      }
    }
  }
}
Docker

Önceden oluşturulmuş görüntü:

docker pull isokoliuk/mcp-searxng:latest
{
  "mcpServers": {
    "searxng": {
      "command": "docker",
      "args": [
        "run", "-i", "--rm",
        "-e", "SEARXNG_URL",
        "isokoliuk/mcp-searxng:latest"
      ],
      "env": {
        "SEARXNG_URL": "YOUR_SEARXNG_INSTANCE_URL"
      }
    }
  }
}

Ek ortam değişkenleri iletmek için args'a -e VAR_NAME ekleyin ve değişkeni env'a ekleyin.

Yerel olarak derleyin:

docker build -t mcp-searxng:latest -f Dockerfile .

Yukarıdaki aynı yapılandırmayı kullanın, isokoliuk/mcp-searxng:latest yerine mcp-searxng:latest yazın.

Docker Compose

docker-compose.yml:

services:
  mcp-searxng:
    image: isokoliuk/mcp-searxng:latest
    stdin_open: true
    environment:
      - SEARXNG_URL=YOUR_SEARXNG_INSTANCE_URL
      # Gerektiğinde isteğe bağlı değişkenler ekleyin — bkz. CONFIGURATION.md

MCP client yapılandırması:

{
  "mcpServers": {
    "searxng": {
      "command": "docker-compose",
      "args": ["run", "--rm", "mcp-searxng"]
    }
  }
}
HTTP Taşıması

Varsayılan olarak server STDIO kullanır. HTTP modunu etkinleştirmek için MCP_HTTP_PORT ayarlayın:

{
  "mcpServers": {
    "searxng-http": {
      "command": "mcp-searxng",
      "env": {
        "SEARXNG_URL": "YOUR_SEARXNG_INSTANCE_URL",
        "MCP_HTTP_PORT": "3000"
      }
    }
  }
}

Uç noktalar: POST/GET/DELETE /mcp (MCP protokolü), GET /health (sağlık kontrolü)

Bunu deneyin:

MCP_HTTP_PORT=3000 SEARXNG_URL=http://localhost:8080 mcp-searxng
curl http://localhost:3000/health

Yapılandırma

SEARXNG_URL ortam değişkenini SearXNG örneğiniz URL'sine ayarlayın. Diğer tüm değişkenler isteğe bağlıdır.

Tam ortam değişkeni referansı: CONFIGURATION.md

Sorun Giderme

SearXNG'den 403 Forbidden

SearXNG örneğinizin muhtemelen JSON format devre dışıdır. settings.yml dosyasını düzenleyin (genellikle /etc/searxng/settings.yml):

search:
  formats:
    - html
    - json

SearXNG'yi yeniden başlatın (docker restart searxng) ardından doğrulayın:

curl 'http://localhost:8080/search?q=test&format=json'

Bir JSON yanıtı almalısınız. Değilse, dosyanın doğru şekilde monte edildiğini ve YAML girintisinin geçerli olduğunu onaylayın.

Ayrıca bkz: SearXNG settings docs · tartışma

Katkıda Bulunma

Bkz. CONTRIBUTING.md

Lisans

MIT — ayrıntılar için LICENSE dosyasını inceleyin.

Benzer MCP sunucuları

Daha fazla: Search & Data Extraction →