DuckDuckGo kullanarak web araması yapın
Claude Desktop config.json'a ekle
{
"mcpServers": {
"nickclyde-duckduckgo-mcp-server": {
"command": "python",
"args": [
"-m",
"duckduckgo_mcp_server"
]
}
}
} Kaynak kodu al ve yerel olarak çalıştır
git clone https://github.com/nickclyde/duckduckgo-mcp-server.git ~/.mcp/duckduckgo-mcp-server
cd ~/.mcp/duckduckgo-mcp-server DuckDuckGo üzerinden web arama özellikleri sağlayan bir Model Context Protocol (MCP) sunucusu. İçerik getirme ve analiz için ek özellikler içerir.
uvx duckduckgo-mcp-server
PyPI'dan uv kullanarak kurulum yapın:
uv pip install duckduckgo-mcp-server
~/Library/Application Support/Claude/claude_desktop_config.json%APPDATA%\Claude\claude_desktop_config.jsonAşağıdaki yapılandırmayı ekleyin:
Temel Yapılandırma (SafeSearch Olmadan, Varsayılan Bölge Olmadan):
{
"mcpServers": {
"ddg-search": {
"command": "uvx",
"args": ["duckduckgo-mcp-server"]
}
}
}
SafeSearch ve Bölge Yapılandırması İle:
{
"mcpServers": {
"ddg-search": {
"command": "uvx",
"args": ["duckduckgo-mcp-server"],
"env": {
"DDG_SAFE_SEARCH": "STRICT",
"DDG_REGION": "cn-zh"
}
}
}
}
Yapılandırma Seçenekleri:
DDG_SAFE_SEARCH: SafeSearch filtreleme seviyesi (isteğe bağlı)
STRICT: Maksimum içerik filtrelemesi (kp=1)MODERATE: Dengeli filtreleme (kp=-1, belirtilmezse varsayılan)OFF: İçerik filtrelemesi yok (kp=-2)DDG_REGION: Varsayılan bölge/dil kodu (isteğe bağlı, aşağıda örnekler)
us-en: Amerika Birleşik Devletleri (İngilizce)cn-zh: Çin (Çince)jp-ja: Japonya (Japonca)wt-wt: Belirli bir bölge yokuvenv kurulu olduğundan ve uvx komutunun kullanılabilir olduğundan emin olunclaude mcp add ddg-search uvx duckduckgo-mcp-serverSunucu diğer MCP istemcileriyle kullanmak için alternatif taşımalar destekler:
# SSE taşıması
uvx duckduckgo-mcp-server --transport sse
# Streamable HTTP taşıması
uvx duckduckgo-mcp-server --transport streamable-http
Varsayılan taşıma stdio olup, Claude Desktop ve Claude Code tarafından kullanılır.
sse veya streamable-http ile çalıştırırken, --host ve --port bayraklarıyla varsayılan bağlama adresini (127.0.0.1:8000) geçersiz kılın:
uvx duckduckgo-mcp-server --transport streamable-http --host 0.0.0.0 --port 7070
Bazı siteler, User-Agent ne olursa olsun varsayılan httpx istemcisini engeller — Cloudflare Bot Management ve benzer filtreler JA3/TLS handshake'ini başlıkları değil anahtarlar. İsteğe bağlı bir backend olan curl (curl_cffi aracılığıyla), gerçek bir Chrome tarayıcısının TLS handshake'ini taklit eder ve bu kontrolleri geçer.
Kurulum:
# Varsayılan kurulum (yalnızca httpx)
uv pip install duckduckgo-mcp-server
# İsteğe bağlı tarayıcı backend'i ile
uv pip install "duckduckgo-mcp-server[browser]"
Backend seçenekleri:
| Değer | Davranış | [browser] Gerekli |
|---|---|---|
httpx |
Hafif async HTTP. Varsayılan. Çoğu sitede çalışır. | hayır |
curl |
curl_cffi ile Chrome 131 TLS taklit eder. TLS-fingerprint tabanlı filtreleri geçer. |
evet |
auto |
Önce httpx deneyen; 403 veya Cloudflare challenge yanıtında curl ile yeniden deneyen. |
evet |
Backend'i yapılandırmanın iki yolu:
Sunucu genelinde varsayılan --fetch-backend CLI bayrağı aracılığıyla (her fetch_content çağrısına uygulanır):
# Varsayılan davranış — httpx kullanır
uvx duckduckgo-mcp-server
# Her fetch için curl'ü zorla ([browser] extra gerekli)
uvx --with "duckduckgo-mcp-server[browser]" duckduckgo-mcp-server --fetch-backend curl
# Önce httpx dene, 403 / Cloudflare challenge üzerinde curl'e geri düş
uvx --with "duckduckgo-mcp-server[browser]" duckduckgo-mcp-server --fetch-backend auto
Çağrı başına geçersiz kılma fetch_content aracındaki backend argümanı aracılığıyla (CLI varsayılanını o tek çağrı için geçersiz kılar). Araç input şemasında backend sunmaktadır, bu nedenle bir MCP istemcisi fetch başına "httpx", "curl" veya "auto" seçebilir.
search aracı her zaman httpx kullanır — DuckDuckGo'nun search endpoint'i taklit gerektirmez.
Varsayılan httpx kalır, böylece taklit gerektirmeyenler ekstra dependency'nin ücretini ödemezler.
Yerel geliştirme için:
# Bağımlılıkları yükle
uv sync
# MCP Inspector ile çalıştır
mcp dev src/duckduckgo_mcp_server/server.py
# Claude Desktop ile test etmek için yerel olarak yükle
mcp install src/duckduckgo_mcp_server/server.py
# Tüm testleri çalıştır
uv run python -m pytest src/duckduckgo_mcp_server/ -v
# Yalnızca unit test'leri çalıştır
uv run python -m pytest src/duckduckgo_mcp_server/test_server.py -v
# Yalnızca e2e test'lerini çalıştır
uv run python -m pytest src/duckduckgo_mcp_server/test_e2e.py -v
async def search(query: str, max_results: int = 10, region: str = "") -> str
DuckDuckGo'da web araması yapar ve formatlanmış sonuçları döndürür.
Parametreler:
query: Arama sorgusu dizesimax_results: Döndürülecek maksimum sonuç sayısı (varsayılan: 10)region: (İsteğe bağlı) Varsayılan bölgeyi geçersiz kılmak için bölge/dil kodu. Yapılandırılmış varsayılan bölgeyi kullanmak için boş bırakın.Bölge Kodu Örnekleri:
us-en: Amerika Birleşik Devletleri (İngilizce)cn-zh: Çin (Çince)jp-ja: Japonya (Japonca)de-de: Almanya (Almanca)fr-fr: Fransa (Fransızca)wt-wt: Belirli bir bölge yokDöndürür: Başlıklar, URL'ler ve özet içeren arama sonuçlarını içeren formatlanmış dize.
Örnek Kullanım:
search("python tutorial")search("latest news", region="jp-ja") Japonca haberler içinasync def fetch_content(
url: str,
start_index: int = 0,
max_length: int = 8000,
backend: Optional[str] = None,
) -> str
Bir web sayfasından içerik getirir ve analiz eder.
Parametreler:
url: İçerik getirmek için web sayfası URL'sistart_index: Okumaya başlamak için karakter ofseti (sayfalandırma için)max_length: Döndürülecek maksimum karakter sayısıbackend: Varsayılan fetch backend'ini geçersiz kılmak için isteğe bağlı çağrı başına ("httpx", "curl" veya "auto"). Atlanırsa, sunucu başlangıcında --fetch-backend ile ayarlanan değeri kullanır.Döndürür: Web sayfasından temizlenmiş ve formatlanmış metin içeriği.
SafeSearch Filtrelemesi: Sunucu başlangıcında DDG_SAFE_SEARCH ortam değişkeni aracılığıyla yapılandırılır
kp parametresini kullanırBölge Yerelleştirmesi:
DDG_REGION ortam değişkeni aracılığıyla ayarlanırİssues ve pull request'ler memnuniyetle karşılanır! Potansiyel iyileştirmeler için bazı alanlar:
Bu proje MIT Lisansı altında lisanslanmıştır.
Exa AI Search API'sini kullanan bir Model Context Protocol (MCP) sunucusu, Claude gibi AI asistanlarının web aramaları gerçekleştirmesini sağlar. Bu kurulum, AI modellerinin gerçek zamanlı web bilgilerine güvenli ve kontrollü bir şekilde erişmesini mümkün kılar.
ArXiv araştırma makalelerinde arama yapın
Web'i keşfedin, veri çıkarın ve etkileşim kurun - tek bir arayüz ile herkese açık internet üzerinde otomatik erişimi güçlendirin.
Ücretsiz çoklu arama motoru kullanarak web araması yapın (API ANAHTARI GEREKMEZ) — Bing, Baidu, DuckDuckGo, Brave, Exa ve CSDN'yi destekler.
Brave Search API kullanarak web arama yetenekleri
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.